Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Graph menu proposal #3306

Closed
wants to merge 14 commits into from
Closed
35 changes: 33 additions & 2 deletions app/src/main/kotlin/app/aaps/activities/HistoryBrowseActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,13 @@ import android.annotation.SuppressLint
import android.content.Context
import android.os.Bundle
import android.util.DisplayMetrics
import android.view.Menu
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.appcompat.widget.PopupMenu
import app.aaps.core.data.time.T
import app.aaps.core.interfaces.configuration.Config
import app.aaps.core.interfaces.logging.AAPSLogger
Expand All @@ -33,6 +36,7 @@ import app.aaps.core.ui.activities.TranslatedDaggerAppCompatActivity
import app.aaps.core.ui.extensions.toVisibility
import app.aaps.core.ui.extensions.toVisibilityKeepSpace
import app.aaps.databinding.ActivityHistorybrowseBinding
import app.aaps.plugins.main.R
import app.aaps.plugins.main.general.overview.graphData.GraphData
import com.google.android.material.datepicker.MaterialDatePicker
import com.jjoe64.graphview.GraphView
Expand Down Expand Up @@ -140,7 +144,25 @@ class HistoryBrowseActivity : TranslatedDaggerAppCompatActivity() {
binding.bgGraph.gridLabelRenderer?.reloadStyles()
binding.bgGraph.gridLabelRenderer?.labelVerticalWidth = axisWidth

overviewMenus.setupChartMenu(context, binding.chartMenuButton)
overviewMenus.setupChartMenu(binding.chartMenuButton)
binding.scaleButton.setOnClickListener { v: View ->
val popup = PopupMenu(v.context, v)
popup.menu.add(Menu.NONE, 6, Menu.NONE, rh.gs(R.string.graph_long_scale_6h))
popup.menu.add(Menu.NONE, 12, Menu.NONE, rh.gs(R.string.graph_long_scale_12h))
popup.menu.add(Menu.NONE, 18, Menu.NONE, rh.gs(R.string.graph_long_scale_18h))
popup.menu.add(Menu.NONE, 24, Menu.NONE, rh.gs(R.string.graph_long_scale_24h))
popup.setOnMenuItemClickListener {
// id == Range to display ...
rangeToDisplay = it.itemId
updateScaletext()
rxBus.send(EventScale(rangeToDisplay))
return@setOnMenuItemClickListener true
}
binding.scaleButton.setCompoundDrawablesWithIntrinsicBounds(null, null, rh.gd(R.drawable.ic_arrow_drop_up_white_24dp), null)
popup.setOnDismissListener { binding.scaleButton.setCompoundDrawablesWithIntrinsicBounds(null, null, rh.gd(R.drawable.ic_arrow_drop_down_white_24dp), null) }
popup.show()
false
}
prepareGraphsIfNeeded(overviewMenus.setting.size)
savedInstanceState?.let { bundle ->
rangeToDisplay = bundle.getInt("rangeToDisplay", 0)
Expand Down Expand Up @@ -291,12 +313,21 @@ class HistoryBrowseActivity : TranslatedDaggerAppCompatActivity() {
binding.zoom.text = rangeToDisplay.toString()
}

private fun updateScaletext() {
binding.scaleButton.text = when (rangeToDisplay) {
6 -> rh.gs(R.string.graph_scale_6h)
12 -> rh.gs(R.string.graph_scale_12h)
18 -> rh.gs(R.string.graph_scale_18h)
24 -> rh.gs(R.string.graph_scale_24h)
else -> ""
}
}
@SuppressLint("SetTextI18n")
fun updateGUI(from: String) {
aapsLogger.debug(LTag.UI, "updateGui $from")

updateDate()

updateScaletext()
val pump = activePlugin.activePump
val graphData = GraphData(injector, binding.bgGraph, historyBrowserData.overviewData)
val menuChartSettings = overviewMenus.setting
Expand Down
17 changes: 13 additions & 4 deletions app/src/main/res/layout/activity_historybrowse.xml
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,23 @@
android:layout_width="wrap_content"
android:layout_height="match_parent" />

<Button
android:id="@+id/scale_button"
android:layout_width="65dp"
android:layout_height="35dp"
android:layout_marginStart="35dp"
android:textAllCaps="false"
android:layout_alignParentStart="true"
android:padding = "0dp"
android:drawableRight="@drawable/ic_arrow_drop_down_white_24dp"
android:contentDescription="@string/a11y_graph_scale" />

<ImageButton
android:id="@+id/chart_menu_button"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_alignParentEnd="true"
android:contentDescription="@string/chart_menu"
android:paddingTop="5dp"
app:srcCompat="@drawable/ic_arrow_drop_down_white_24dp" />

</RelativeLayout>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package app.aaps.core.interfaces.overview

import android.content.Context
import android.widget.Button
import android.widget.ImageButton

interface OverviewMenus {
Expand All @@ -23,7 +24,7 @@ interface OverviewMenus {

val setting: List<Array<Boolean>>
fun loadGraphConfig()
fun setupChartMenu(context: Context, chartButton: ImageButton)
fun setupChartMenu(chartButton: ImageButton)
fun enabledTypes(graph: Int): String
fun isEnabledIn(type: CharType): Int
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,14 @@ import android.os.HandlerThread
import android.util.DisplayMetrics
import android.util.TypedValue
import android.view.LayoutInflater
import android.view.Menu
import android.view.View
import android.view.View.OnLongClickListener
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.TextView
import androidx.appcompat.widget.PopupMenu
import androidx.core.text.toSpanned
import androidx.recyclerview.widget.LinearLayoutManager
import app.aaps.core.data.configuration.Constants
Expand Down Expand Up @@ -220,8 +222,31 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
sp.putBoolean(app.aaps.core.utils.R.string.key_objectiveusescale, true)
false
}

prepareGraphsIfNeeded(overviewMenus.setting.size)
context?.let { overviewMenus.setupChartMenu(it, binding.graphsLayout.chartMenuButton) }
overviewMenus.setupChartMenu(binding.graphsLayout.chartMenuButton)
updateScaletext()


binding.graphsLayout.scaleButton.setOnClickListener { v: View ->
val popup = PopupMenu(v.context, v)
popup.menu.add(Menu.NONE, 6, Menu.NONE, rh.gs(R.string.graph_long_scale_6h))
popup.menu.add(Menu.NONE, 12, Menu.NONE, rh.gs(R.string.graph_long_scale_12h))
popup.menu.add(Menu.NONE, 18, Menu.NONE, rh.gs(R.string.graph_long_scale_18h))
popup.menu.add(Menu.NONE, 24, Menu.NONE, rh.gs(R.string.graph_long_scale_24h))
popup.setOnMenuItemClickListener {
// id == Range to display ...
sp.putInt(app.aaps.core.utils.R.string.key_rangetodisplay, it.itemId)
updateScaletext()
rxBus.send(EventPreferenceChange(rh.gs(app.aaps.core.utils.R.string.key_rangetodisplay)))
return@setOnMenuItemClickListener true
}
binding.graphsLayout.scaleButton.setCompoundDrawablesWithIntrinsicBounds(null, null, rh.gd(R.drawable.ic_arrow_drop_up_white_24dp), null)
popup.setOnDismissListener { binding.graphsLayout.scaleButton.setCompoundDrawablesWithIntrinsicBounds(null, null, rh.gd(R.drawable.ic_arrow_drop_down_white_24dp), null) }
popup.show()
false
}

binding.graphsLayout.chartMenuButton.visibility = preferences.simpleMode.not().toVisibility()

binding.activeProfile.setOnClickListener(this)
Expand All @@ -241,6 +266,18 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
binding.infoLayout.apsMode.setOnLongClickListener(this)
}


private fun updateScaletext() {
val selectedScale = sp.getInt(app.aaps.core.utils.R.string.key_rangetodisplay, 6)
binding.graphsLayout.scaleButton.text = when (selectedScale) {
6 -> rh.gs(R.string.graph_scale_6h)
12 -> rh.gs(R.string.graph_scale_12h)
18 -> rh.gs(R.string.graph_scale_18h)
24 -> rh.gs(R.string.graph_scale_24h)
else -> ""
}
}

@Synchronized
override fun onPause() {
super.onPause()
Expand Down Expand Up @@ -351,6 +388,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
if (!config.appInitialized) return
runOnUiThread {
_binding ?: return@runOnUiThread
updateScaletext()
updateTime()
updateSensitivity()
updateGraph()
Expand Down
Loading