diff --git a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt
index d3736c6869..8f64cb226b 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/HistoryBrowseActivity.kt
@@ -1,7 +1,6 @@
package info.nightscout.androidaps.activities
import android.annotation.SuppressLint
-import android.app.DatePickerDialog
import android.content.Context
import android.os.Bundle
import android.util.DisplayMetrics
@@ -9,6 +8,7 @@ import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.RelativeLayout
import android.widget.TextView
+import com.google.android.material.datepicker.MaterialDatePicker
import com.jjoe64.graphview.GraphView
import dagger.android.HasAndroidInjector
import info.nightscout.androidaps.R
@@ -148,33 +148,18 @@ class HistoryBrowseActivity : NoSplashAppCompatActivity() {
true
}
- // create an OnDateSetListener
- val dateSetListener = DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth ->
- Calendar.getInstance().also { calendar ->
- calendar.timeInMillis = overviewData.fromTime
- calendar[Calendar.YEAR] = year
- calendar[Calendar.MONTH] = monthOfYear
- calendar[Calendar.DAY_OF_MONTH] = dayOfMonth
- calendar[Calendar.MILLISECOND] = 0
- calendar[Calendar.SECOND] = 0
- calendar[Calendar.MINUTE] = 0
- calendar[Calendar.HOUR_OF_DAY] = 0
- setTime(calendar.timeInMillis)
- binding.date.text = dateUtil.dateAndTimeString(overviewData.fromTime)
- }
- loadAll("onClickDate")
- }
-
binding.date.setOnClickListener {
- val cal = Calendar.getInstance()
- cal.timeInMillis = overviewData.fromTime
- DatePickerDialog(
- this,
- dateSetListener,
- cal.get(Calendar.YEAR),
- cal.get(Calendar.MONTH),
- cal.get(Calendar.DAY_OF_MONTH)
- ).show()
+ MaterialDatePicker.Builder.datePicker()
+ .setSelection(dateUtil.timeStampToUtcDateMilis(overviewData.fromTime))
+ .build()
+ .apply {
+ addOnPositiveButtonClickListener { selection ->
+ setTime(dateUtil.mergeUtcDateToTimestamp(overviewData.fromTime, selection))
+ binding.date.text = dateUtil.dateAndTimeString(overviewData.fromTime)
+ loadAll("onClickDate")
+ }
+ }
+ .show(supportFragmentManager, "history_date_picker")
}
val dm = DisplayMetrics()
@@ -184,9 +169,8 @@ class HistoryBrowseActivity : NoSplashAppCompatActivity() {
else
windowManager.defaultDisplay.getMetrics(dm)
-
axisWidth = if (dm.densityDpi <= 120) 3 else if (dm.densityDpi <= 160) 10 else if (dm.densityDpi <= 320) 35 else if (dm.densityDpi <= 420) 50 else if (dm.densityDpi <= 560) 70 else 80
- binding.bgGraph.gridLabelRenderer?.gridColor = rh.gac(this, R.attr.graphgrid)
+ binding.bgGraph.gridLabelRenderer?.gridColor = rh.gac(this, R.attr.graphGrid)
binding.bgGraph.gridLabelRenderer?.reloadStyles()
binding.bgGraph.gridLabelRenderer?.labelVerticalWidth = axisWidth
@@ -259,12 +243,12 @@ class HistoryBrowseActivity : NoSplashAppCompatActivity() {
val graph = GraphView(this)
graph.layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, rh.dpToPx(100)).also { it.setMargins(0, rh.dpToPx(15), 0, rh.dpToPx(10)) }
- graph.gridLabelRenderer?.gridColor = rh.gac(R.attr.graphgrid)
+ graph.gridLabelRenderer?.gridColor = rh.gac(R.attr.graphGrid)
graph.gridLabelRenderer?.reloadStyles()
graph.gridLabelRenderer?.isHorizontalLabelsVisible = false
graph.gridLabelRenderer?.labelVerticalWidth = axisWidth
graph.gridLabelRenderer?.numVerticalLabels = 3
- graph.viewport.backgroundColor = rh.gac(this, R.attr.viewPortbackgroundColor)
+ graph.viewport.backgroundColor = rh.gac(this, R.attr.viewPortBackgroundColor)
relativeLayout.addView(graph)
val label = TextView(this)
@@ -421,4 +405,4 @@ class HistoryBrowseActivity : NoSplashAppCompatActivity() {
binding.progressBar.progress = percent
binding.progressBar.visibility = (percent != 100).toVisibilityKeepSpace()
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/ProfileHelperActivity.kt b/app/src/main/java/info/nightscout/androidaps/activities/ProfileHelperActivity.kt
index 36a548d0f2..81563f0944 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/ProfileHelperActivity.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/ProfileHelperActivity.kt
@@ -316,7 +316,7 @@ class ProfileHelperActivity : NoSplashAppCompatActivity() {
}
private fun setBackgroundColorOnSelected(tab: Int) {
- binding.menu1.setBackgroundColor(rh.gac(this, if (tab == 1) R.attr.defaultbackground else R.attr.helperProfileColor))
- binding.menu2.setBackgroundColor(rh.gac(this, if (tab == 0) R.attr.defaultbackground else R.attr.examinedProfileColor))
+ binding.menu1.setBackgroundColor(rh.gac(this, if (tab == 1) R.attr.defaultBackground else R.attr.helperProfileColor))
+ binding.menu2.setBackgroundColor(rh.gac(this, if (tab == 0) R.attr.defaultBackground else R.attr.examinedProfileColor))
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsBolusCarbsFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsBolusCarbsFragment.kt
index e70e7a9cbe..a4fa56a699 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsBolusCarbsFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsBolusCarbsFragment.kt
@@ -269,8 +269,6 @@ class TreatmentsBolusCarbsFragment : DaggerFragment() {
}
holder.binding.calculation.tag = ml
- val nextTimestamp = if (mealLinks.size != position + 1) timestamp(mealLinks[position + 1]) else 0L
- holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(timestamp(ml), nextTimestamp).toVisibility()
}
override fun getItemCount() = mealLinks.size
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsCareportalFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsCareportalFragment.kt
index 37713a7e30..820b5d3b93 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsCareportalFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsCareportalFragment.kt
@@ -173,8 +173,6 @@ class TreatmentsCareportalFragment : DaggerFragment() {
actionHelper.updateSelection(position, therapyEvent, holder.binding.cbRemove.isChecked)
}
holder.binding.cbRemove.isChecked = actionHelper.isSelected(position)
- val nextTimestamp = if (therapyList.size != position + 1) therapyList[position + 1].timestamp else 0L
- holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(therapyEvent.timestamp, nextTimestamp).toVisibility()
}
override fun getItemCount() = therapyList.size
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsExtendedBolusesFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsExtendedBolusesFragment.kt
index b7ffd407c8..e21bd897ae 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsExtendedBolusesFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsExtendedBolusesFragment.kt
@@ -163,8 +163,6 @@ class TreatmentsExtendedBolusesFragment : DaggerFragment() {
}
holder.binding.cbRemove.isChecked = actionHelper.isSelected(position)
}
- val nextTimestamp = if (extendedBolusList.size != position + 1) extendedBolusList[position + 1].timestamp else 0L
- holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(extendedBolus.timestamp, nextTimestamp).toVisibility()
}
override fun getItemCount() = extendedBolusList.size
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsProfileSwitchFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsProfileSwitchFragment.kt
index 92f9d5f38b..49e8c4ca52 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsProfileSwitchFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsProfileSwitchFragment.kt
@@ -214,8 +214,6 @@ class TreatmentsProfileSwitchFragment : DaggerFragment() {
}
holder.binding.clone.visibility = (profileSwitch is ProfileSealed.PS).toVisibility()
holder.binding.spacer.visibility = (profileSwitch is ProfileSealed.PS).toVisibility()
- val nextTimestamp = if (profileSwitchList.size != position + 1) profileSwitchList[position + 1].timestamp else 0L
- holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(profileSwitch.timestamp, nextTimestamp).toVisibility()
}
override fun getItemCount() = profileSwitchList.size
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTempTargetFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTempTargetFragment.kt
index 028ae4f99a..137d6cf94c 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTempTargetFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTempTargetFragment.kt
@@ -192,8 +192,6 @@ class TreatmentsTempTargetFragment : DaggerFragment() {
else -> holder.binding.reasonColon.currentTextColor
}
)
- val nextTimestamp = if (tempTargetList.size != position + 1) tempTargetList[position + 1].timestamp else 0L
- holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(tempTarget.timestamp, nextTimestamp).toVisibility()
}
override fun getItemCount() = tempTargetList.size
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTemporaryBasalsFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTemporaryBasalsFragment.kt
index da76998092..1f585ecd0a 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTemporaryBasalsFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsTemporaryBasalsFragment.kt
@@ -204,8 +204,6 @@ class TreatmentsTemporaryBasalsFragment : DaggerFragment() {
}
holder.binding.cbRemove.isChecked = actionHelper.isSelected(position)
}
- val nextTimestamp = if (tempBasalList.size != position + 1) tempBasalList[position + 1].timestamp else 0L
- holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(tempBasal.timestamp, nextTimestamp).toVisibility()
}
override fun getItemCount() = tempBasalList.size
diff --git a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsUserEntryFragment.kt b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsUserEntryFragment.kt
index 0303f5bf7c..bd442ce723 100644
--- a/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsUserEntryFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/activities/fragments/TreatmentsUserEntryFragment.kt
@@ -134,8 +134,6 @@ class TreatmentsUserEntryFragment : DaggerFragment() {
holder.binding.iconSource.setImageResource(userEntryPresentationHelper.iconId(current.source))
holder.binding.values.text = userEntryPresentationHelper.listToPresentationString(current.values)
holder.binding.values.visibility = (holder.binding.values.text != "").toVisibility()
- val nextTimestamp = if (entries.size != position + 1) entries[position + 1].timestamp else 0L
- holder.binding.delimiter.visibility = dateUtil.isSameDayGroup(current.timestamp, nextTimestamp).toVisibility()
}
inner class UserEntryViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctionImplementation.kt b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctionImplementation.kt
index 63e03478dc..89b1da7047 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctionImplementation.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/configBuilder/ProfileFunctionImplementation.kt
@@ -130,7 +130,6 @@ class ProfileFunctionImplementation @Inject constructor(
}
}
-
return null
}
@@ -205,4 +204,4 @@ class ProfileFunctionImplementation @Inject constructor(
} else returnValue = false
return returnValue
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt
index 5b412076b5..84cd7eebba 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/ObjectivesFragment.kt
@@ -1,6 +1,6 @@
package info.nightscout.androidaps.plugins.constraints.objectives
-import android.graphics.Color
+import android.annotation.SuppressLint
import android.os.Bundle
import android.os.Handler
import android.os.HandlerThread
@@ -153,6 +153,7 @@ class ObjectivesFragment : DaggerFragment() {
return ViewHolder(LayoutInflater.from(parent.context).inflate(R.layout.objectives_item, parent, false))
}
+ @SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
val objective = objectivesPlugin.objectives[position]
holder.binding.title.text = rh.gs(R.string.nth_objective, position + 1)
@@ -167,7 +168,7 @@ class ObjectivesFragment : DaggerFragment() {
} else
holder.binding.gate.visibility = View.GONE
if (!objective.isStarted) {
- holder.binding.gate.setTextColor(-0x1)
+ holder.binding.gate.setTextColor(rh.gac(context, R.attr.defaultTextColor))
holder.binding.verify.visibility = View.GONE
holder.binding.progress.visibility = View.GONE
holder.binding.accomplished.visibility = View.GONE
@@ -178,7 +179,7 @@ class ObjectivesFragment : DaggerFragment() {
else
holder.binding.start.visibility = View.GONE
} else if (objective.isAccomplished) {
- holder.binding.gate.setTextColor(-0xb350b0)
+ holder.binding.gate.setTextColor(rh.gac(context, R.attr.isAccomplishedColor))
holder.binding.verify.visibility = View.GONE
holder.binding.progress.visibility = View.GONE
holder.binding.start.visibility = View.GONE
@@ -186,7 +187,7 @@ class ObjectivesFragment : DaggerFragment() {
holder.binding.unfinish.visibility = View.VISIBLE
holder.binding.unstart.visibility = View.GONE
} else if (objective.isStarted) {
- holder.binding.gate.setTextColor(-0x1)
+ holder.binding.gate.setTextColor(rh.gac(context,R.attr.defaultTextColor))
holder.binding.verify.visibility = View.VISIBLE
holder.binding.verify.isEnabled = objective.isCompleted || binding.fake.isChecked
holder.binding.start.visibility = View.GONE
@@ -200,7 +201,7 @@ class ObjectivesFragment : DaggerFragment() {
// name
val name = TextView(holder.binding.progress.context)
name.text = "${rh.gs(task.task)}:"
- name.setTextColor(-0x1)
+ name.setTextColor(rh.gac(context,R.attr.defaultTextColor) )
holder.binding.progress.addView(name, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
// hint
task.hints.forEach { h ->
@@ -209,9 +210,9 @@ class ObjectivesFragment : DaggerFragment() {
}
// state
val state = TextView(holder.binding.progress.context)
- state.setTextColor(-0x1)
+ state.setTextColor(rh.gac(context,R.attr.defaultTextColor))
val basicHTML = "%2\$s"
- val formattedHTML = String.format(basicHTML, if (task.isCompleted()) "#4CAF50" else "#FF9800", task.progress)
+ val formattedHTML = String.format(basicHTML, if (task.isCompleted()) rh.gac(context, R.attr.isCompletedColor) else rh.gac(context, R.attr.isNotCompletedColor), task.progress)
state.text = HtmlHelper.fromHtml(formattedHTML)
state.gravity = Gravity.END
holder.binding.progress.addView(state, LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT)
@@ -228,7 +229,7 @@ class ObjectivesFragment : DaggerFragment() {
}
// horizontal line
val separator = View(holder.binding.progress.context)
- separator.setBackgroundColor(Color.DKGRAY)
+ separator.setBackgroundColor(rh.gac(context, R.attr.separatorColor))
holder.binding.progress.addView(separator, LinearLayout.LayoutParams.MATCH_PARENT, 2)
}
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.kt
index 0da7daa37c..9faa974d1f 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/objectives/objectives/Objective.kt
@@ -176,7 +176,7 @@ abstract class Objective(injector: HasAndroidInjector, spName: String, @StringRe
textView.setText(hint)
textView.autoLinkMask = Linkify.WEB_URLS
textView.linksClickable = true
- textView.setLinkTextColor(Color.YELLOW)
+ textView.setLinkTextColor(rh.gac(context, R.attr.colorSecondary))
Linkify.addLinks(textView, Linkify.WEB_URLS)
return textView
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt
index a45ae8dd50..8347a45715 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/constraints/versionChecker/VersionCheckerPlugin.kt
@@ -80,7 +80,6 @@ class VersionCheckerPlugin @Inject constructor(
return
}
-
if (isOldVersion(gracePeriod.warning.daysToMillis()) && shouldWarnAgain()) {
// store last notification time
sp.putLong(R.string.key_last_versionchecker_plugin_warning, now)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/NSDeviceStatus.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/NSDeviceStatus.kt
index b7435e3916..c0a7e3a9b5 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/NSDeviceStatus.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/nsclient/data/NSDeviceStatus.kt
@@ -157,7 +157,7 @@ class NSDeviceStatus @Inject constructor(
//String[] ALL_STATUS_FIELDS = {"reservoir", "battery", "clock", "status", "device"};
val string = StringBuilder()
- .append("")
+ .append("")
.append(rh.gs(R.string.pump))
.append(": ")
@@ -248,7 +248,7 @@ class NSDeviceStatus @Inject constructor(
val openApsStatus: Spanned
get() {
val string = StringBuilder()
- .append("")
+ .append("")
.append(rh.gs(R.string.openaps_short))
.append(": ")
@@ -321,7 +321,7 @@ class NSDeviceStatus @Inject constructor(
val uploaderStatusSpanned: Spanned
get() {
val string = StringBuilder()
- string.append("")
+ string.append("")
string.append(rh.gs(R.string.uploader_short))
string.append(": ")
val iterator: Iterator<*> = deviceStatusData.uploaderMap.entries.iterator()
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt
index 7244b943f5..1d35a47c86 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewFragment.kt
@@ -170,7 +170,7 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
binding.notifications.setHasFixedSize(false)
binding.notifications.layoutManager = LinearLayoutManager(view.context)
axisWidth = if (dm.densityDpi <= 120) 3 else if (dm.densityDpi <= 160) 10 else if (dm.densityDpi <= 320) 35 else if (dm.densityDpi <= 420) 50 else if (dm.densityDpi <= 560) 70 else 80
- binding.graphsLayout.bgGraph.gridLabelRenderer?.gridColor = rh.gac(context, R.attr.graphgrid)
+ binding.graphsLayout.bgGraph.gridLabelRenderer?.gridColor = rh.gac(context, R.attr.graphGrid)
binding.graphsLayout.bgGraph.gridLabelRenderer?.reloadStyles()
binding.graphsLayout.bgGraph.gridLabelRenderer?.labelVerticalWidth = axisWidth
binding.graphsLayout.bgGraph.layoutParams?.height = rh.dpToPx(skinProvider.activeSkin().mainGraphHeight)
@@ -179,7 +179,6 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
carbAnimation?.setEnterFadeDuration(1200)
carbAnimation?.setExitFadeDuration(1200)
-
binding.graphsLayout.bgGraph.setOnLongClickListener {
overviewData.rangeToDisplay += 6
overviewData.rangeToDisplay = if (overviewData.rangeToDisplay > 24) 6 else overviewData.rangeToDisplay
@@ -549,16 +548,16 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
binding.buttonsLayout.cgmButton.setCompoundDrawablesWithIntrinsicBounds(null, rh.gd(R.drawable.ic_byoda), null, null)
for (drawable in binding.buttonsLayout.cgmButton.compoundDrawables) {
drawable?.mutate()
- drawable?.colorFilter = PorterDuffColorFilter(rh.gac(context, R.attr.cgmdexColor), PorterDuff.Mode.SRC_IN)
+ drawable?.colorFilter = PorterDuffColorFilter(rh.gac(context, R.attr.cgmDexColor), PorterDuff.Mode.SRC_IN)
}
- binding.buttonsLayout.cgmButton.setTextColor(rh.gac(context, R.attr.cgmdexColor))
+ binding.buttonsLayout.cgmButton.setTextColor(rh.gac(context, R.attr.cgmDexColor))
} else if (xDripIsBgSource) {
binding.buttonsLayout.cgmButton.setCompoundDrawablesWithIntrinsicBounds(null, rh.gd(R.drawable.ic_xdrip), null, null)
for (drawable in binding.buttonsLayout.cgmButton.compoundDrawables) {
drawable?.mutate()
- drawable?.colorFilter = PorterDuffColorFilter(rh.gac(context, R.attr.cgmxdripColor), PorterDuff.Mode.SRC_IN)
+ drawable?.colorFilter = PorterDuffColorFilter(rh.gac(context, R.attr.cgmXdripColor), PorterDuff.Mode.SRC_IN)
}
- binding.buttonsLayout.cgmButton.setTextColor(rh.gac(context, R.attr.cgmxdripColor))
+ binding.buttonsLayout.cgmButton.setTextColor(rh.gac(context, R.attr.cgmXdripColor))
}
binding.buttonsLayout.cgmButton.visibility = (sp.getBoolean(R.string.key_show_cgm_button, false) && (xDripIsBgSource || dexcomIsSource)).toVisibility()
@@ -714,12 +713,12 @@ class OverviewFragment : DaggerFragment(), View.OnClickListener, OnLongClickList
val graph = GraphView(context)
graph.layoutParams =
LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, rh.dpToPx(skinProvider.activeSkin().secondaryGraphHeight)).also { it.setMargins(0, rh.dpToPx(15), 0, rh.dpToPx(10)) }
- graph.gridLabelRenderer?.gridColor = rh.gac(context, R.attr.graphgrid)
+ graph.gridLabelRenderer?.gridColor = rh.gac(context, R.attr.graphGrid)
graph.gridLabelRenderer?.reloadStyles()
graph.gridLabelRenderer?.isHorizontalLabelsVisible = false
graph.gridLabelRenderer?.labelVerticalWidth = axisWidth
graph.gridLabelRenderer?.numVerticalLabels = 3
- graph.viewport.backgroundColor = rh.gac(context, R.attr.viewPortbackgroundColor)
+ graph.viewport.backgroundColor = rh.gac(context, R.attr.viewPortBackgroundColor)
relativeLayout.addView(graph)
val label = TextView(context)
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt
index 78990dce99..b055d92501 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/OverviewMenus.kt
@@ -8,7 +8,6 @@ import android.view.Menu
import android.view.View
import android.widget.ImageButton
import androidx.annotation.AttrRes
-import androidx.annotation.ColorRes
import androidx.annotation.StringRes
import androidx.appcompat.widget.PopupMenu
import com.google.gson.Gson
@@ -45,7 +44,7 @@ class OverviewMenus @Inject constructor(
BGI(R.string.overview_show_bgi, R.attr.bgiColor, R.attr.menuTextColor, primary = false, secondary = true,shortnameId = R.string.bgi_shortname),
SEN(R.string.overview_show_sensitivity, R.attr.ratioColor, R.attr.menuTextColorInverse, primary = false, secondary = true,shortnameId = R.string.sensitivity_shortname),
ACT(R.string.overview_show_activity, R.attr.activityColor, R.attr.menuTextColor, primary = true, secondary = false,shortnameId = R.string.activity_shortname),
- DEVSLOPE(R.string.overview_show_deviationslope, R.attr.devslopeposColor, R.attr.menuTextColor, primary = false, secondary = true,shortnameId = R.string.devslope_shortname)
+ DEVSLOPE(R.string.overview_show_deviationslope, R.attr.devSlopePosColor, R.attr.menuTextColor, primary = false, secondary = true, shortnameId = R.string.devslope_shortname)
}
companion object {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.kt
index 128f6c6613..5c1ffc8c27 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/activities/QuickWizardListActivity.kt
@@ -76,6 +76,10 @@ class QuickWizardListActivity : DaggerAppCompatActivityWithResult(), OnStartDrag
else -> R.drawable.ic_smartphone
}
)
+ holder.binding.device.contentDescription = when (quickWizard[position].device()) {
+ QuickWizardEntry.DEVICE_WATCH -> rh.gs(R.string.a11y_only_on_watch)
+ else -> rh.gs(R.string.a11y_only_on_phone)
+ }
}
holder.binding.root.setOnClickListener {
if (actionHelper.isNoAction) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt
index 41f210e7eb..9341f74dc7 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/dialogs/EditQuickWizardDialog.kt
@@ -1,6 +1,5 @@
package info.nightscout.androidaps.plugins.general.overview.dialogs
-import android.app.TimePickerDialog
import android.os.Bundle
import android.text.format.DateFormat
import android.view.LayoutInflater
@@ -8,6 +7,8 @@ import android.view.View
import android.view.ViewGroup
import android.view.Window
import android.view.WindowManager
+import com.google.android.material.timepicker.MaterialTimePicker
+import com.google.android.material.timepicker.TimeFormat
import dagger.android.support.DaggerDialogFragment
import info.nightscout.androidaps.R
import info.nightscout.androidaps.databinding.OverviewEditquickwizardDialogBinding
@@ -24,6 +25,7 @@ import info.nightscout.androidaps.utils.wizard.QuickWizard
import info.nightscout.androidaps.utils.wizard.QuickWizardEntry
import info.nightscout.shared.sharedPreferences.SP
import org.json.JSONException
+import java.util.*
import javax.inject.Inject
class EditQuickWizardDialog : DaggerDialogFragment(), View.OnClickListener {
@@ -40,8 +42,7 @@ class EditQuickWizardDialog : DaggerDialogFragment(), View.OnClickListener {
private var _binding: OverviewEditquickwizardDialogBinding? = null
- // This property is only valid between onCreateView and
- // onDestroyView.
+ // This property is only valid between onCreateView and onDestroyView.
private val binding get() = _binding!!
override fun onCreateView(
@@ -96,41 +97,35 @@ class EditQuickWizardDialog : DaggerDialogFragment(), View.OnClickListener {
}
binding.okcancel.cancel.setOnClickListener { dismiss() }
- // create an OnTimeSetListener
- val fromTimeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute ->
- fromSeconds = (T.hours(hour.toLong()).secs() + T.mins(minute.toLong()).secs()).toInt()
- binding.from.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(fromSeconds))
+ binding.from.setOnClickListener {
+ val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H
+ val timePicker = MaterialTimePicker.Builder()
+ .setTimeFormat(clockFormat)
+ .setHour(T.secs(fromSeconds.toLong()).hours().toInt())
+ .setMinute(T.secs((fromSeconds % 3600).toLong()).mins().toInt())
+ .build()
+ timePicker.addOnPositiveButtonClickListener {
+ fromSeconds = (T.hours(timePicker.hour.toLong()).secs() + T.mins(timePicker.minute.toLong()).secs()).toInt()
+ binding.from.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(fromSeconds))
+ }
+ timePicker.show(parentFragmentManager, "event_time_time_picker")
}
- binding.from.setOnClickListener {
- context?.let {
- TimePickerDialog(
- it,
- fromTimeSetListener,
- T.secs(fromSeconds.toLong()).hours().toInt(),
- T.secs((fromSeconds % 3600).toLong()).mins().toInt(),
- DateFormat.is24HourFormat(context)
- ).show()
- }
- }
fromSeconds = entry.validFrom()
binding.from.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(fromSeconds))
- val toTimeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute ->
- toSeconds = (T.hours(hour.toLong()).secs() + T.mins(minute.toLong()).secs()).toInt()
- binding.to.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(toSeconds))
- }
-
binding.to.setOnClickListener {
- context?.let {
- TimePickerDialog(
- it,
- toTimeSetListener,
- T.secs(toSeconds.toLong()).hours().toInt(),
- T.secs((toSeconds % 3600).toLong()).mins().toInt(),
- DateFormat.is24HourFormat(context)
- ).show()
+ val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H
+ val timePicker = MaterialTimePicker.Builder()
+ .setTimeFormat(clockFormat)
+ .setHour(T.secs(toSeconds.toLong()).hours().toInt())
+ .setMinute(T.secs((toSeconds % 3600).toLong()).mins().toInt())
+ .build()
+ timePicker.addOnPositiveButtonClickListener {
+ toSeconds = (T.hours(timePicker.hour.toLong()).secs() + T.mins(timePicker.minute.toLong()).secs()).toInt()
+ binding.to.text = dateUtil.timeString(dateUtil.secondsOfTheDayToMilliseconds(toSeconds))
}
+ timePicker.show(parentFragmentManager, "event_time_time_picker")
}
fun usePercentage(custom: Boolean) {
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphData/GraphData.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphData/GraphData.kt
index b63425970b..9b21d70219 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphData/GraphData.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphData/GraphData.kt
@@ -1,6 +1,5 @@
package info.nightscout.androidaps.plugins.general.overview.graphData
-import android.graphics.Color
import android.graphics.DashPathEffect
import android.graphics.Paint
import com.jjoe64.graphview.GraphView
@@ -66,7 +65,7 @@ class GraphData(
addSeries(AreaGraphSeries(inRangeAreaDataPoints).also {
it.color = 0
it.isDrawBackground = true
- it.backgroundColor = rh.gac(graph.context,R.attr.inrangeBackground)
+ it.backgroundColor = rh.gac(graph.context,R.attr.inRangeBackground)
})
}
@@ -201,7 +200,7 @@ class GraphData(
paint.style = Paint.Style.STROKE
paint.strokeWidth = 2f
paint.pathEffect = DashPathEffect(floatArrayOf(10f, 20f), 0f)
- paint.color = Color.WHITE
+ paint.color = rh.gac(graph.context, R.attr.dotLineColor)
})
})
}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphExtensions/BolusDataPoint.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphExtensions/BolusDataPoint.kt
index b9bbb79809..c354ad9fbb 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphExtensions/BolusDataPoint.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/overview/graphExtensions/BolusDataPoint.kt
@@ -34,8 +34,7 @@ class BolusDataPoint @Inject constructor(
else if (data.isValid) rh.gac(context, R.attr.bolusDataPointColor)
else rh.gac(context, R.attr.alarmColor)
-
override fun setY(y: Double) {
yValue = y
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/comm/Session.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/comm/Session.kt
index 7067ddd073..5fb6b34605 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/comm/Session.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/comm/Session.kt
@@ -16,7 +16,6 @@ class Session(val authHeader: String?,
@Volatile
internal var iterations: Int = 0
-
fun populateHeaders(headers: Headers) {
if (this.token == null) {
this.token = headers.get(sessionTokenHeader)
@@ -39,4 +38,4 @@ class Session(val authHeader: String?,
datasetReply = obj
}
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/elements/ProfileElement.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/elements/ProfileElement.kt
index c4f47e5aa3..12c7b55fd7 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/elements/ProfileElement.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/elements/ProfileElement.kt
@@ -95,5 +95,3 @@ class ProfileElement(ps: EffectiveProfileSwitch, serialNumber: String, dateUtil:
internal var amount: Double
)
}
-
-
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/messages/DatasetReplyMessage.kt b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/messages/DatasetReplyMessage.kt
index f19070624b..9db4595c16 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/messages/DatasetReplyMessage.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/general/tidepool/messages/DatasetReplyMessage.kt
@@ -1,6 +1,5 @@
package info.nightscout.androidaps.plugins.general.tidepool.messages
-
class DatasetReplyMessage {
internal var data: Data? = null
diff --git a/app/src/main/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpFragment.kt b/app/src/main/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpFragment.kt
index ea85e983b5..d36c5225ea 100644
--- a/app/src/main/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpFragment.kt
+++ b/app/src/main/java/info/nightscout/androidaps/plugins/pump/virtual/VirtualPumpFragment.kt
@@ -47,10 +47,8 @@ class VirtualPumpFragment : DaggerFragment() {
// onDestroyView.
private val binding get() = _binding!!
- override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
- _binding = VirtualpumpFragmentBinding.inflate(inflater, container, false)
- return binding.root
- }
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
+ VirtualpumpFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root
@Synchronized
override fun onResume() {
diff --git a/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt b/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt
index a65c77a569..6bde38ee9a 100644
--- a/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt
+++ b/app/src/main/java/info/nightscout/androidaps/receivers/DataReceiver.kt
@@ -28,7 +28,6 @@ open class DataReceiver : DaggerBroadcastReceiver() {
val bundle = intent.extras ?: return
aapsLogger.debug(LTag.DATABASE, "onReceive ${intent.action} ${BundleLogger.log(bundle)}")
-
when (intent.action) {
Intents.ACTION_NEW_BG_ESTIMATE ->
OneTimeWorkRequest.Builder(XdripPlugin.XdripWorker::class.java)
@@ -74,4 +73,4 @@ open class DataReceiver : DaggerBroadcastReceiver() {
}?.let { request -> dataWorker.enqueue(request) }
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/PrefImportSummaryDialog.kt b/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/PrefImportSummaryDialog.kt
index 46756397d5..60edb6b6ad 100644
--- a/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/PrefImportSummaryDialog.kt
+++ b/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/PrefImportSummaryDialog.kt
@@ -16,6 +16,7 @@ import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.annotation.StyleRes
import androidx.appcompat.view.ContextThemeWrapper
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
import info.nightscout.androidaps.R
import info.nightscout.androidaps.extensions.runOnUiThread
import info.nightscout.androidaps.plugins.general.maintenance.formats.Prefs
@@ -49,7 +50,6 @@ object PrefImportSummaryDialog {
var idx = 0
val details = LinkedList()
-
for ((metaKey, metaEntry) in prefs.metadata) {
val rowLayout = LayoutInflater.from(themedCtx).inflate(R.layout.import_summary_item, null)
val label = (rowLayout.findViewById(R.id.summary_text) as TextView)
@@ -92,7 +92,7 @@ object PrefImportSummaryDialog {
webView.setBackgroundColor(Color.TRANSPARENT)
webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null)
- AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(context, R.style.DialogTheme)
.setCustomTitle(
AlertDialogHelper.buildCustomTitle(
context,
@@ -109,11 +109,10 @@ object PrefImportSummaryDialog {
}
}
- val builder = AlertDialogHelper.Builder(context, theme)
+ val builder = MaterialAlertDialogBuilder(context, theme)
.setMessage(context.getString(messageRes))
.setCustomTitle(AlertDialogHelper.buildCustomTitle(context, context.getString(R.string.nav_import), headerIcon, theme))
.setView(innerLayout)
-
.setNegativeButton(android.R.string.cancel) { dialog: DialogInterface, _: Int ->
dialog.dismiss()
SystemClock.sleep(100)
@@ -137,4 +136,4 @@ object PrefImportSummaryDialog {
dialog.setCanceledOnTouchOutside(false)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/TwoMessagesAlertDialog.kt b/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/TwoMessagesAlertDialog.kt
index 0bfd1f72f9..d4f2787538 100644
--- a/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/TwoMessagesAlertDialog.kt
+++ b/app/src/main/java/info/nightscout/androidaps/utils/alertDialogs/TwoMessagesAlertDialog.kt
@@ -8,6 +8,7 @@ import android.view.LayoutInflater
import android.view.View
import android.widget.TextView
import androidx.annotation.DrawableRes
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
import info.nightscout.androidaps.R
import info.nightscout.androidaps.extensions.runOnUiThread
@@ -19,7 +20,7 @@ object TwoMessagesAlertDialog {
val secondMessageLayout = LayoutInflater.from(context).inflate(R.layout.dialog_alert_two_messages, null)
(secondMessageLayout.findViewById(R.id.password_prompt_title) as TextView).text = secondMessage
- AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(context, R.style.DialogTheme)
.setMessage(message)
.setCustomTitle(
AlertDialogHelper.buildCustomTitle(
@@ -32,7 +33,6 @@ object TwoMessagesAlertDialog {
dialog.dismiss()
SystemClock.sleep(100)
if (ok != null) runOnUiThread { ok() }
-
}
.setNegativeButton(android.R.string.cancel) { dialog: DialogInterface, _: Int ->
dialog.dismiss()
@@ -43,4 +43,4 @@ object TwoMessagesAlertDialog {
.setCanceledOnTouchOutside(false)
}
-}
\ No newline at end of file
+}
diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBasalDataWorker.kt b/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBasalDataWorker.kt
index d69bde9668..3310638636 100644
--- a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBasalDataWorker.kt
+++ b/app/src/main/java/info/nightscout/androidaps/workflow/PrepareBasalDataWorker.kt
@@ -3,7 +3,6 @@ package info.nightscout.androidaps.workflow
import android.content.Context
import android.graphics.DashPathEffect
import android.graphics.Paint
-import androidx.core.content.ContextCompat
import androidx.work.Worker
import androidx.work.WorkerParameters
import androidx.work.workDataOf
@@ -118,7 +117,7 @@ class PrepareBasalDataWorker(
// create series
data.overviewData.baseBasalGraphSeries = LineGraphSeries(Array(baseBasalArray.size) { i -> baseBasalArray[i] }).also {
it.isDrawBackground = true
- it.backgroundColor = rh.gac(ctx, R.attr.basebasalColor )
+ it.backgroundColor = rh.gac(ctx, R.attr.baseBasalColor )
it.thickness = 0
}
data.overviewData.tempBasalGraphSeries = LineGraphSeries(Array(tempBasalArray.size) { i -> tempBasalArray[i] }).also {
diff --git a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareIobAutosensGraphDataWorker.kt b/app/src/main/java/info/nightscout/androidaps/workflow/PrepareIobAutosensGraphDataWorker.kt
index cc81bf3593..35046e295b 100644
--- a/app/src/main/java/info/nightscout/androidaps/workflow/PrepareIobAutosensGraphDataWorker.kt
+++ b/app/src/main/java/info/nightscout/androidaps/workflow/PrepareIobAutosensGraphDataWorker.kt
@@ -30,7 +30,6 @@ import info.nightscout.androidaps.receivers.DataWorker
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.DecimalFormatter
import info.nightscout.androidaps.utils.resources.ResourceHelper
-import info.nightscout.androidaps.utils.resources.getThemeColor
import info.nightscout.shared.logging.AAPSLogger
import info.nightscout.shared.logging.LTag
import java.util.ArrayList
@@ -159,15 +158,15 @@ class PrepareIobAutosensGraphDataWorker(
// DEVIATIONS
if (autosensData != null) {
- var color = rh.gac( ctx, R.attr.deviationblackColor) // "="
+ var color = rh.gac( ctx, R.attr.deviationBlackColor) // "="
if (autosensData.type == "" || autosensData.type == "non-meal") {
- if (autosensData.pastSensitivity == "C") color = rh.gac( ctx, R.attr.deviationgreyColor)
- if (autosensData.pastSensitivity == "+") color = rh.gac( ctx, R.attr.deviationgreenColor)
- if (autosensData.pastSensitivity == "-") color = rh.gac( ctx, R.attr.deviationredColor)
+ if (autosensData.pastSensitivity == "C") color = rh.gac( ctx, R.attr.deviationGreyColor)
+ if (autosensData.pastSensitivity == "+") color = rh.gac( ctx, R.attr.deviationGreenColor)
+ if (autosensData.pastSensitivity == "-") color = rh.gac( ctx, R.attr.deviationRedColor)
} else if (autosensData.type == "uam") {
color = rh.gac( ctx, R.attr.uamColor)
} else if (autosensData.type == "csf") {
- color = rh.gac( ctx, R.attr.deviationgreyColor)
+ color = rh.gac( ctx, R.attr.deviationGreyColor)
}
devArray.add(OverviewPlugin.DeviationDataPoint(time.toDouble(), autosensData.deviation, color, data.overviewData.devScale))
data.overviewData.maxDevValueFound = maxOf(data.overviewData.maxDevValueFound, abs(autosensData.deviation), abs(bgi))
@@ -272,11 +271,11 @@ class PrepareIobAutosensGraphDataWorker(
// DEV SLOPE
data.overviewData.dsMaxSeries = LineGraphSeries(Array(dsMaxArray.size) { i -> dsMaxArray[i] }).also {
- it.color = rh.gac( ctx, R.attr.devslopeposColor)
+ it.color = rh.gac( ctx, R.attr.devSlopePosColor)
it.thickness = 3
}
data.overviewData.dsMinSeries = LineGraphSeries(Array(dsMinArray.size) { i -> dsMinArray[i] }).also {
- it.color = rh.gac( ctx, R.attr.devslopenegColor)
+ it.color = rh.gac( ctx, R.attr.devSlopeNegColor)
it.thickness = 3
}
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_IOB_AUTOSENS_DATA, 100, null))
diff --git a/app/src/main/res/drawable/ic_byoda.xml b/app/src/main/res/drawable/ic_byoda.xml
index da63bef0df..8a3de6c453 100644
--- a/app/src/main/res/drawable/ic_byoda.xml
+++ b/app/src/main/res/drawable/ic_byoda.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24">
+ android:fillColor="@color/byodaGray"/>
diff --git a/app/src/main/res/drawable/ic_cp_basal_no_tbr.xml b/app/src/main/res/drawable/ic_cp_basal_no_tbr.xml
index 840a639f9c..e9385125b6 100644
--- a/app/src/main/res/drawable/ic_cp_basal_no_tbr.xml
+++ b/app/src/main/res/drawable/ic_cp_basal_no_tbr.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24">
+ android:fillColor="?attr/basalNoTbrColor"/>
diff --git a/app/src/main/res/drawable/ic_cp_basal_start.xml b/app/src/main/res/drawable/ic_cp_basal_start.xml
index 1b7781daed..22ba9382ec 100644
--- a/app/src/main/res/drawable/ic_cp_basal_start.xml
+++ b/app/src/main/res/drawable/ic_cp_basal_start.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24">
+ android:fillColor="?attr/basalStartColor"/>
diff --git a/app/src/main/res/drawable/ic_cp_basal_tbr_high.xml b/app/src/main/res/drawable/ic_cp_basal_tbr_high.xml
index 1b7781daed..dba9f794d9 100644
--- a/app/src/main/res/drawable/ic_cp_basal_tbr_high.xml
+++ b/app/src/main/res/drawable/ic_cp_basal_tbr_high.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24">
+ android:fillColor="?attr/basalHighColor"/>
diff --git a/app/src/main/res/drawable/ic_cp_basal_tbr_low.xml b/app/src/main/res/drawable/ic_cp_basal_tbr_low.xml
index 9f3d94563f..bcac9407aa 100644
--- a/app/src/main/res/drawable/ic_cp_basal_tbr_low.xml
+++ b/app/src/main/res/drawable/ic_cp_basal_tbr_low.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24">
+ android:fillColor="?attr/basalLowColor"/>
diff --git a/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml b/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml
index f78eaede2c..e5dc16a43e 100644
--- a/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml
+++ b/app/src/main/res/drawable/ic_swap_vert_black_48dp_green.xml
@@ -1,4 +1,4 @@
-
diff --git a/app/src/main/res/drawable/ic_target_manual.xml b/app/src/main/res/drawable/ic_target_manual.xml
index fc41c52757..086076077e 100644
--- a/app/src/main/res/drawable/ic_target_manual.xml
+++ b/app/src/main/res/drawable/ic_target_manual.xml
@@ -8,7 +8,7 @@
android:fillColor="@color/tempTargetConfirmation"/>
+ android:fillColor="@color/inRange"/>
diff --git a/app/src/main/res/drawable/ic_temptarget_flat.xml b/app/src/main/res/drawable/ic_temptarget_flat.xml
index bf1a2492a1..dff5ff88e4 100644
--- a/app/src/main/res/drawable/ic_temptarget_flat.xml
+++ b/app/src/main/res/drawable/ic_temptarget_flat.xml
@@ -5,7 +5,7 @@
android:viewportHeight="24">
+ android:fillColor="@color/inRange"/>
diff --git a/app/src/main/res/drawable/ic_temptarget_low.xml b/app/src/main/res/drawable/ic_temptarget_low.xml
index a161fd12f4..b91b1dac51 100644
--- a/app/src/main/res/drawable/ic_temptarget_low.xml
+++ b/app/src/main/res/drawable/ic_temptarget_low.xml
@@ -5,7 +5,7 @@
android:viewportHeight="24">
+ android:fillColor="@color/inRange"/>
diff --git a/app/src/main/res/drawable/ic_trash_outline.xml b/app/src/main/res/drawable/ic_trash_outline.xml
index a411c394e0..296cdd090a 100644
--- a/app/src/main/res/drawable/ic_trash_outline.xml
+++ b/app/src/main/res/drawable/ic_trash_outline.xml
@@ -3,5 +3,5 @@
android:width="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
-
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/ic_x_swap_vert.xml b/app/src/main/res/drawable/ic_x_swap_vert.xml
index f5182fe7b4..3d6735ae12 100644
--- a/app/src/main/res/drawable/ic_x_swap_vert.xml
+++ b/app/src/main/res/drawable/ic_x_swap_vert.xml
@@ -4,7 +4,8 @@
android:viewportHeight="24"
android:viewportWidth="24"
xmlns:android="http://schemas.android.com/apk/res/android">
-
-
-
+
+
+
diff --git a/app/src/main/res/layout/actions_fragment.xml b/app/src/main/res/layout/actions_fragment.xml
index e8362b0524..aff0d78e1b 100644
--- a/app/src/main/res/layout/actions_fragment.xml
+++ b/app/src/main/res/layout/actions_fragment.xml
@@ -1,4 +1,5 @@
-
-
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ android:layout_marginTop="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="false"
+ android:layout_gravity="center">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ android:layout_marginTop="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="false"
+ android:layout_gravity="center">
-
+ android:layout_marginTop="10dp" />
-
+
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ android:layout_marginTop="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="false"
+ android:layout_gravity="center">
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ android:layout_marginTop="4dp"
+ android:layout_marginBottom="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="false"
+ android:layout_gravity="center">
-
-
-
+ android:paddingStart="15dp"
+ android:paddingEnd="15dp"
+ android:text="@string/tools" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ android:layout_marginTop="10dp"
+ android:padding="10dip"
+ app:columnCount="2">
-
+
-
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_historybrowse.xml b/app/src/main/res/layout/activity_historybrowse.xml
index f3792b7e91..f904a06eb4 100644
--- a/app/src/main/res/layout/activity_historybrowse.xml
+++ b/app/src/main/res/layout/activity_historybrowse.xml
@@ -59,7 +59,7 @@
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
- android:text="24" />
+ tools:text="24" />
@@ -111,5 +111,4 @@
-
diff --git a/app/src/main/res/layout/activity_logsetting.xml b/app/src/main/res/layout/activity_logsetting.xml
index cb1573ecf8..4236005fd8 100644
--- a/app/src/main/res/layout/activity_logsetting.xml
+++ b/app/src/main/res/layout/activity_logsetting.xml
@@ -31,8 +31,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/nav_logsettings"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
diff --git a/app/src/main/res/layout/activity_profilehelper.xml b/app/src/main/res/layout/activity_profilehelper.xml
index 73353f3d1c..b9e2aaf3b5 100644
--- a/app/src/main/res/layout/activity_profilehelper.xml
+++ b/app/src/main/res/layout/activity_profilehelper.xml
@@ -15,7 +15,7 @@
@@ -25,10 +25,9 @@
android:layout_height="30dp"
android:layout_weight="1"
android:gravity="center"
- android:paddingLeft="5dp"
- android:paddingRight="5dp"
- android:text="1"
- tools:ignore="HardcodedText" />
+ android:paddingStart="5dp"
+ android:paddingEnd="5dp"
+ android:text="Profile 1" />
+ android:paddingStart="5dp"
+ android:paddingEnd="5dp"
+ android:text="Profile 2" />
@@ -178,7 +176,7 @@
@@ -64,8 +65,8 @@
android:layout_gravity="bottom|center_horizontal"
android:background="@color/black_alpha_40"
android:orientation="horizontal"
- android:paddingLeft="16dp"
- android:paddingRight="16dp">
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp">
@@ -72,6 +73,7 @@
android:layout_width="140sp"
android:layout_height="wrap_content"
android:hint="@string/smscommunicator_code_verify_hint"
+ android:importantForAutofill="no"
android:inputType="number"
android:maxLength="12"
android:textAlignment="center"
@@ -97,12 +99,12 @@
diff --git a/app/src/main/res/layout/activity_stats.xml b/app/src/main/res/layout/activity_stats.xml
index 4ac78458af..e34d749e7b 100644
--- a/app/src/main/res/layout/activity_stats.xml
+++ b/app/src/main/res/layout/activity_stats.xml
@@ -32,8 +32,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/statistics"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -47,56 +47,100 @@
android:orientation="horizontal"
android:padding="5dp" />
-
+ android:layout_gravity="center"
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ app:cardCornerRadius="4dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="false"
+ app:contentPadding="2dp">
-
-
-
-
-
-
-
+ android:layout_marginStart="10dp"
+ android:orientation="vertical" />
-
+
+
+
+
+ android:layout_marginStart="10dp"
+ android:orientation="vertical" />
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_survey.xml b/app/src/main/res/layout/activity_survey.xml
index 835cf769af..ae711855bf 100644
--- a/app/src/main/res/layout/activity_survey.xml
+++ b/app/src/main/res/layout/activity_survey.xml
@@ -177,7 +177,6 @@
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
-
diff --git a/app/src/main/res/layout/bgsource_item.xml b/app/src/main/res/layout/bgsource_item.xml
index 03929f1f05..261b3c0475 100644
--- a/app/src/main/res/layout/bgsource_item.xml
+++ b/app/src/main/res/layout/bgsource_item.xml
@@ -1,13 +1,18 @@
-
+ android:layout_marginStart="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ android:layout_gravity="center">
-
+
diff --git a/app/src/main/res/layout/careportal_stats_fragment.xml b/app/src/main/res/layout/careportal_stats_fragment.xml
index e5d724cc09..cccb4541d7 100644
--- a/app/src/main/res/layout/careportal_stats_fragment.xml
+++ b/app/src/main/res/layout/careportal_stats_fragment.xml
@@ -36,8 +36,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
- android:paddingLeft="2dp"
- android:paddingRight="2dp"
+ android:paddingStart="2dp"
+ android:paddingEnd="2dp"
android:textSize="14sp" />
@@ -108,11 +108,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
- android:paddingLeft="2dp"
- android:paddingRight="2dp"
+ android:paddingStart="2dp"
+ android:paddingEnd="2dp"
android:textSize="14sp" />
-
@@ -182,8 +181,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
- android:paddingLeft="2dp"
- android:paddingRight="2dp"
+ android:paddingStart="2dp"
+ android:paddingEnd="2dp"
android:textSize="14sp" />
@@ -255,8 +254,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
- android:paddingLeft="2dp"
- android:paddingRight="2dp"
+ android:paddingStart="2dp"
+ android:paddingEnd="2dp"
android:textSize="14sp" />
+ android:importantForAccessibility="no"
+ app:srcCompat="@drawable/ic_visibility"
+ app:tint="?android:attr/colorAccent" />
+
-
\ No newline at end of file
+
+
diff --git a/app/src/main/res/layout/configbuilder_single_plugin.xml b/app/src/main/res/layout/configbuilder_single_plugin.xml
index d48ef40a5f..397c755aba 100644
--- a/app/src/main/res/layout/configbuilder_single_plugin.xml
+++ b/app/src/main/res/layout/configbuilder_single_plugin.xml
@@ -38,7 +38,8 @@
android:layout_width="36dp"
android:layout_height="36dp"
android:layout_gravity="center_vertical"
- android:layout_marginEnd="8dp" />
+ android:layout_marginEnd="8dp"
+ android:importantForAccessibility="no" />
@@ -70,6 +72,7 @@
android:layout_height="wrap_content"
android:textSize="12sp"
tools:text="A super exquisite plugin description" />
+
@@ -80,6 +83,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
+ android:contentDescription="@string/a11y_open_settings"
android:background="?attr/selectableItemBackgroundBorderless"
app:srcCompat="@drawable/ic_settings" />
@@ -88,4 +92,5 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:saveEnabled="false" />
-
\ No newline at end of file
+
+
diff --git a/app/src/main/res/layout/dialog_calibration.xml b/app/src/main/res/layout/dialog_calibration.xml
index e52e675e3c..dc4fc27176 100644
--- a/app/src/main/res/layout/dialog_calibration.xml
+++ b/app/src/main/res/layout/dialog_calibration.xml
@@ -31,8 +31,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/overview_calibration"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
diff --git a/app/src/main/res/layout/dialog_carbs.xml b/app/src/main/res/layout/dialog_carbs.xml
index eb9bc9c37b..2e44aa81c3 100644
--- a/app/src/main/res/layout/dialog_carbs.xml
+++ b/app/src/main/res/layout/dialog_carbs.xml
@@ -30,8 +30,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/carbs"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -75,6 +75,7 @@
@@ -241,7 +242,6 @@
android:text="+20"
tools:ignore="HardcodedText" />
-
+
diff --git a/app/src/main/res/layout/dialog_extendedbolus.xml b/app/src/main/res/layout/dialog_extendedbolus.xml
index b26d2cfc9a..fdea04ea7a 100644
--- a/app/src/main/res/layout/dialog_extendedbolus.xml
+++ b/app/src/main/res/layout/dialog_extendedbolus.xml
@@ -29,8 +29,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/virtualpump_extendedbolus_label"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -73,8 +73,8 @@
android:layout_gravity="center_vertical"
android:gravity="start"
android:minWidth="45dp"
- android:paddingLeft="5dp"
- android:paddingRight="5dp"
+ android:paddingStart="5dp"
+ android:paddingEnd="5dp"
android:text="@string/insulin_unit_shortname"
android:textAppearance="?android:attr/textAppearanceSmall" />
@@ -108,18 +108,17 @@
android:layout_gravity="center_vertical"
android:gravity="start"
android:minWidth="45dp"
- android:paddingLeft="5dp"
- android:paddingRight="5dp"
+ android:paddingStart="5dp"
+ android:paddingEnd="5dp"
android:text="@string/unit_minute_short"
android:textAppearance="?android:attr/textAppearanceSmall" />
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/dialog_fill.xml b/app/src/main/res/layout/dialog_fill.xml
index 38f675407d..01bd3dd1c2 100644
--- a/app/src/main/res/layout/dialog_fill.xml
+++ b/app/src/main/res/layout/dialog_fill.xml
@@ -30,8 +30,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/primefill"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -86,8 +86,8 @@
android:layout_width="wrap_content"
android:layout_height="40dp"
android:layout_gravity="end"
- android:paddingLeft="5dp"
- android:paddingRight="5dp"
+ android:paddingStart="5dp"
+ android:paddingEnd="5dp"
app:customContentDescription="@string/overview_insulin_label" />
@@ -145,29 +145,28 @@
android:padding="5dp">
+ tools:text="+0.5" />
+ tools:text="+1.0" />
+ tools:text="+2.0" />
diff --git a/app/src/main/res/layout/dialog_loop.xml b/app/src/main/res/layout/dialog_loop.xml
index 13738c5c3e..5f0cad9ba3 100644
--- a/app/src/main/res/layout/dialog_loop.xml
+++ b/app/src/main/res/layout/dialog_loop.xml
@@ -31,8 +31,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/loop"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -46,7 +46,6 @@
android:orientation="horizontal"
android:padding="5dp" />
-
@@ -72,14 +71,14 @@
-
-
-
-
\ No newline at end of file
+
+
diff --git a/app/src/main/res/layout/dialog_profileswitch.xml b/app/src/main/res/layout/dialog_profileswitch.xml
index f8b51f33b4..8531857cbb 100644
--- a/app/src/main/res/layout/dialog_profileswitch.xml
+++ b/app/src/main/res/layout/dialog_profileswitch.xml
@@ -30,8 +30,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/careportal_profileswitch"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -61,7 +61,6 @@
-
@@ -129,8 +128,8 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="120dp"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp"
android:text="@string/careportal_newnstreatment_percentage_label"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="bold" />
@@ -151,7 +150,8 @@
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:text="%"
- android:textAppearance="?android:attr/textAppearanceSmall" />
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ tools:ignore="HardcodedText" />
@@ -166,8 +166,8 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="120dp"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp"
android:text="@string/careportal_newnstreatment_timeshift_label"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="bold" />
@@ -202,15 +202,15 @@
android:layout_height="wrap_content"
android:layout_gravity="center"
android:width="120dp"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp"
android:text="@string/careportal_temporarytarget"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="bold" />
-
diff --git a/app/src/main/res/layout/dialog_tempbasal.xml b/app/src/main/res/layout/dialog_tempbasal.xml
index f43b8cc0fc..94a4d347d4 100644
--- a/app/src/main/res/layout/dialog_tempbasal.xml
+++ b/app/src/main/res/layout/dialog_tempbasal.xml
@@ -30,8 +30,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/tempbasal_label"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -77,7 +77,8 @@
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:text="%"
- android:textAppearance="?android:attr/textAppearanceSmall" />
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ tools:ignore="HardcodedText" />
diff --git a/app/src/main/res/layout/dialog_temptarget.xml b/app/src/main/res/layout/dialog_temptarget.xml
index 581b196fb7..3fc766f916 100644
--- a/app/src/main/res/layout/dialog_temptarget.xml
+++ b/app/src/main/res/layout/dialog_temptarget.xml
@@ -30,8 +30,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/careportal_temporarytarget"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -140,14 +140,14 @@
diff --git a/app/src/main/res/layout/dialog_wizard.xml b/app/src/main/res/layout/dialog_wizard.xml
index 69f9ae3459..08fa04d594 100644
--- a/app/src/main/res/layout/dialog_wizard.xml
+++ b/app/src/main/res/layout/dialog_wizard.xml
@@ -30,8 +30,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/boluswizard"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -48,8 +48,8 @@
+ android:paddingStart="0dp"
+ android:paddingEnd="5dp">
+ android:textStyle="bold"
+ tools:ignore="HardcodedText" />
@@ -191,8 +192,8 @@
android:id="@+id/total"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp"
android:text="2.35U 28g"
android:textAppearance="?android:attr/textAppearanceLarge"
tools:ignore="HardcodedText" />
@@ -202,8 +203,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="10dp"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp"
android:text="50%"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textColor="?attr/bolusColor"
@@ -347,7 +348,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:checked="false"
- android:contentDescription="set carb timer alarm"
+ android:contentDescription="@string/a11y_set_carb_timer"
android:drawableEnd="@drawable/ic_access_alarm_24dp"
android:layoutDirection="rtl"
android:padding="2dp" />
@@ -384,7 +385,8 @@
android:layout_marginEnd="5dp"
android:layout_weight="0.5"
android:hint="@string/profile"
- android:paddingStart="7dp">
+ android:paddingStart="7dp"
+ android:paddingEnd="0dp">
-
diff --git a/app/src/main/res/layout/food_fragment.xml b/app/src/main/res/layout/food_fragment.xml
index 5f0b63fa7d..a64274ad54 100644
--- a/app/src/main/res/layout/food_fragment.xml
+++ b/app/src/main/res/layout/food_fragment.xml
@@ -8,7 +8,7 @@
-
-
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ android:layout_marginTop="4dp"
+ app:strokeWidth="1dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="true"
+ android:layout_gravity="center">
+ android:paddingStart="3dp"
+ android:paddingEnd="3dp">
+ android:layout_marginStart="5dp">
-
-
+
diff --git a/app/src/main/res/layout/import_summary_details.xml b/app/src/main/res/layout/import_summary_details.xml
index 8c9c0bd7f2..41d3d9db4a 100644
--- a/app/src/main/res/layout/import_summary_details.xml
+++ b/app/src/main/res/layout/import_summary_details.xml
@@ -3,8 +3,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
- android:paddingLeft="8dp"
- android:paddingRight="8dp">
+ android:paddingStart="8dp"
+ android:paddingEnd="8dp">
diff --git a/app/src/main/res/layout/localprofile_fragment.xml b/app/src/main/res/layout/localprofile_fragment.xml
index ec8234f334..f1bd26f410 100644
--- a/app/src/main/res/layout/localprofile_fragment.xml
+++ b/app/src/main/res/layout/localprofile_fragment.xml
@@ -296,11 +296,11 @@
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center_horizontal"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:layout_weight="1"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp"
android:text="@string/activate_profile"
app:icon="@drawable/ic_local_activate"
app:iconTint="@color/ic_local_activate" />
@@ -317,11 +317,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:layout_marginLeft="5dp"
- android:layout_marginRight="5dp"
+ android:layout_marginStart="5dp"
+ android:layout_marginEnd="5dp"
android:layout_weight="1"
- android:paddingLeft="1dp"
- android:paddingRight="1dp"
+ android:paddingStart="1dp"
+ android:paddingEnd="1dp"
android:text="@string/reset"
app:icon="@drawable/ic_local_reset"
app:iconTint="@color/ic_local_reset" />
@@ -332,11 +332,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:layout_marginLeft="5dp"
- android:layout_marginRight="5dp"
+ android:layout_marginStart="5dp"
+ android:layout_marginEnd="5dp"
android:layout_weight="1"
- android:paddingLeft="1dp"
- android:paddingRight="1dp"
+ android:paddingStart="1dp"
+ android:paddingEnd="1dp"
android:text="@string/save"
app:icon="@drawable/ic_local_save"
app:iconTint="@color/ic_local_save" />
@@ -347,5 +347,3 @@
-
-
diff --git a/app/src/main/res/layout/logsettings_item.xml b/app/src/main/res/layout/logsettings_item.xml
index 0c4634ac90..5a64ac9b08 100644
--- a/app/src/main/res/layout/logsettings_item.xml
+++ b/app/src/main/res/layout/logsettings_item.xml
@@ -13,11 +13,10 @@
android:textSize="12sp"
tools:text="TYPE" />
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/loop_fragment.xml b/app/src/main/res/layout/loop_fragment.xml
index 98525ce294..bdd975b74e 100644
--- a/app/src/main/res/layout/loop_fragment.xml
+++ b/app/src/main/res/layout/loop_fragment.xml
@@ -56,9 +56,9 @@
@@ -102,9 +102,9 @@
@@ -147,9 +147,9 @@
@@ -192,9 +192,9 @@
@@ -237,9 +237,9 @@
@@ -282,9 +282,9 @@
@@ -327,9 +327,9 @@
@@ -372,9 +372,9 @@
@@ -417,9 +417,9 @@
@@ -462,9 +462,9 @@
@@ -507,9 +507,9 @@
diff --git a/app/src/main/res/layout/maintenance_fragment.xml b/app/src/main/res/layout/maintenance_fragment.xml
index ff9ae43fd4..e059bf928c 100644
--- a/app/src/main/res/layout/maintenance_fragment.xml
+++ b/app/src/main/res/layout/maintenance_fragment.xml
@@ -24,9 +24,9 @@
style="@style/GrayButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="10dp"
+ android:layout_marginStart="10dp"
android:layout_marginTop="3dp"
- android:layout_marginRight="10dp"
+ android:layout_marginEnd="10dp"
android:layout_marginBottom="3dp"
android:layout_weight="0.5"
android:text="@string/nav_logsettings"
@@ -37,9 +37,9 @@
style="@style/GrayButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="10dp"
+ android:layout_marginStart="10dp"
android:layout_marginTop="3dp"
- android:layout_marginRight="10dp"
+ android:layout_marginEnd="10dp"
android:layout_marginBottom="3dp"
android:layout_weight="0.5"
android:text="@string/send_all_logs"
@@ -50,9 +50,9 @@
style="@style/GrayButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="10dp"
+ android:layout_marginStart="10dp"
android:layout_marginTop="3dp"
- android:layout_marginRight="10dp"
+ android:layout_marginEnd="10dp"
android:layout_marginBottom="3dp"
android:layout_weight="0.5"
android:text="@string/delete_logs"
@@ -63,9 +63,9 @@
style="@style/GrayButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="10dp"
+ android:layout_marginStart="10dp"
android:layout_marginTop="3dp"
- android:layout_marginRight="10dp"
+ android:layout_marginEnd="10dp"
android:layout_marginBottom="3dp"
android:layout_weight="0.5"
android:text="@string/nav_export"
@@ -76,23 +76,22 @@
style="@style/GrayButton"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
- android:layout_marginLeft="10dp"
+ android:layout_marginStart="10dp"
android:layout_marginTop="3dp"
- android:layout_marginRight="10dp"
+ android:layout_marginEnd="10dp"
android:layout_marginBottom="3dp"
android:layout_weight="0.5"
android:text="@string/nav_import"
android:textColor="?attr/treatmentButton" />
-
@@ -23,7 +23,7 @@
android:id="@+id/url"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginLeft="5dp"
+ android:layout_marginStart="5dp"
android:autoLink="web"
tools:ignore="RtlHardcoded" />
@@ -32,8 +32,8 @@
@@ -48,8 +48,8 @@
android:id="@+id/autoscroll"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="10dp"
android:text="@string/nsclientinternal_autoscroll"
tools:ignore="RtlHardcoded" />
@@ -58,14 +58,14 @@
@@ -90,17 +90,17 @@
android:id="@+id/queue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_marginLeft="5dp"
- android:layout_marginRight="5dp" />
+ android:layout_marginStart="5dp"
+ android:layout_marginEnd="5dp" />
@@ -150,8 +150,8 @@
android:id="@+id/log_scrollview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
- android:layout_marginLeft="5dp"
- android:layout_marginRight="5dp">
+ android:layout_marginStart="5dp"
+ android:layout_marginEnd="5dp">
@@ -51,7 +50,7 @@
android:text="@string/reset" />
@@ -77,10 +76,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:text="Question"
android:textAppearance="@style/TextAppearance.AppCompat.Medium"
app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@id/exam_name" />
+ app:layout_constraintTop_toBottomOf="@id/exam_name"
+ tools:text="Question" />
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="Name" />
+ app:layout_constraintTop_toBottomOf="@+id/exam_hints"
+ tools:text="Disabled until:" />
diff --git a/app/src/main/res/layout/objectives_fragment.xml b/app/src/main/res/layout/objectives_fragment.xml
index fa2e8c2150..37363a8491 100644
--- a/app/src/main/res/layout/objectives_fragment.xml
+++ b/app/src/main/res/layout/objectives_fragment.xml
@@ -10,8 +10,8 @@
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
- android:paddingLeft="16dp"
- android:paddingRight="16dp"
+ android:paddingStart="16dp"
+ android:paddingEnd="16dp"
android:paddingTop="16dp"
android:visibility="gone">
@@ -19,7 +19,7 @@
android:id="@+id/fake"
android:layout_width="0dp"
android:layout_height="wrap_content"
- android:layout_marginRight="16dp"
+ android:layout_marginEnd="16dp"
android:layout_weight="1"
android:text="Enable fake time and progress" />
diff --git a/app/src/main/res/layout/objectives_item.xml b/app/src/main/res/layout/objectives_item.xml
index b0906b8f02..9083300a3c 100644
--- a/app/src/main/res/layout/objectives_item.xml
+++ b/app/src/main/res/layout/objectives_item.xml
@@ -1,18 +1,20 @@
-
+ app:contentPadding="16dp"
+ android:layout_gravity="center">
+ tools:text="Request code: XXXXX" />
+ android:inputType="text"
+ tools:hint="XXXXXXXXXX"
+ android:importantForAutofill="no" />
-
+
diff --git a/app/src/main/res/layout/openapsama_fragment.xml b/app/src/main/res/layout/openapsama_fragment.xml
index 099997d324..8420607244 100644
--- a/app/src/main/res/layout/openapsama_fragment.xml
+++ b/app/src/main/res/layout/openapsama_fragment.xml
@@ -63,9 +63,9 @@
@@ -88,9 +88,9 @@
@@ -133,9 +133,9 @@
@@ -178,9 +178,9 @@
@@ -223,9 +223,9 @@
@@ -268,9 +268,9 @@
@@ -313,9 +313,9 @@
@@ -358,9 +358,9 @@
@@ -403,9 +403,9 @@
@@ -428,18 +428,18 @@
@@ -482,9 +482,9 @@
@@ -527,9 +527,9 @@
@@ -572,9 +572,9 @@
diff --git a/app/src/main/res/layout/overview_buttons_layout.xml b/app/src/main/res/layout/overview_buttons_layout.xml
index d4142c46b1..aaab5175ca 100644
--- a/app/src/main/res/layout/overview_buttons_layout.xml
+++ b/app/src/main/res/layout/overview_buttons_layout.xml
@@ -9,7 +9,7 @@
@@ -85,15 +85,16 @@
android:layout_gravity="center"
android:gravity="center_horizontal|center_vertical"
android:padding="10dp"
- android:text="08:20pm"
- android:textAppearance="@style/TextAppearance.AppCompat.Medium" />
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+ tools:text="08:20pm" />
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+ tools:ignore="HardcodedText" />
+ android:textAppearance="@style/TextAppearance.AppCompat.Medium"
+ tools:text="08:20pm" />
@@ -123,17 +124,17 @@
+ android:text="@string/device_all" />
+ android:text="@string/device_phone" />
+ android:text="@string/device_watch" />
@@ -245,7 +246,6 @@
-
+ android:maxLength="3"/>
-
-
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ android:layout_marginTop="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="false"
+ android:layout_gravity="center">
-
+ android:orientation="horizontal" >
-
+
-
+
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+ android:layout_marginStart="4dp"
+ android:layout_marginEnd="4dp"
+ android:layout_marginTop="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="false"
+ android:layout_gravity="center">
-
+ android:background="?attr/colorControlHighlight"
+ app:alignContent="stretch"
+ app:alignItems="stretch"
+ app:flexDirection="row"
+ app:flexWrap="wrap"
+ app:justifyContent="center">
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
-
+
-
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/overview_graphs_layout.xml b/app/src/main/res/layout/overview_graphs_layout.xml
index dd35dc7684..70bcfa678e 100644
--- a/app/src/main/res/layout/overview_graphs_layout.xml
+++ b/app/src/main/res/layout/overview_graphs_layout.xml
@@ -1,7 +1,6 @@
diff --git a/app/src/main/res/layout/overview_info_layout.xml b/app/src/main/res/layout/overview_info_layout.xml
index c8e73887b7..b787e50049 100644
--- a/app/src/main/res/layout/overview_info_layout.xml
+++ b/app/src/main/res/layout/overview_info_layout.xml
@@ -42,7 +42,6 @@
app:layout_constraintTop_toTopOf="@+id/bg"
tools:ignore="HardcodedText" />
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/layout/overview_notification_item.xml b/app/src/main/res/layout/overview_notification_item.xml
index aba885b816..8f04a749d1 100644
--- a/app/src/main/res/layout/overview_notification_item.xml
+++ b/app/src/main/res/layout/overview_notification_item.xml
@@ -1,14 +1,17 @@
-
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ android:layout_gravity="center"
+ app:cardBackgroundColor="?attr/notificationUrgent">
-
+
diff --git a/app/src/main/res/layout/overview_quickwizardlist_item.xml b/app/src/main/res/layout/overview_quickwizardlist_item.xml
index 2496e6e0bc..25301a3bb6 100644
--- a/app/src/main/res/layout/overview_quickwizardlist_item.xml
+++ b/app/src/main/res/layout/overview_quickwizardlist_item.xml
@@ -1,15 +1,18 @@
-
+ android:layout_marginStart="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ app:cardElevation="4dp"
+ app:cardUseCompatPadding="true"
+ android:layout_gravity="center">
+ app:srcCompat="@drawable/ic_quick_wizard" />
+ android:contentDescription="@string/a11y_only_on_phone"
+ app:srcCompat="@drawable/ic_smartphone" />
+ app:srcCompat="@drawable/ic_reorder_gray_24dp" />
-
-
+
diff --git a/app/src/main/res/layout/overview_statuslights_layout.xml b/app/src/main/res/layout/overview_statuslights_layout.xml
index ab2402c373..546409aa7e 100644
--- a/app/src/main/res/layout/overview_statuslights_layout.xml
+++ b/app/src/main/res/layout/overview_statuslights_layout.xml
@@ -7,17 +7,18 @@
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_marginBottom="3dp"
- android:background="?attr/colorControlHighlight"
android:orientation="horizontal"
android:paddingTop="4dp"
- android:paddingBottom="4dp">
+ android:paddingBottom="4dp"
+ android:baselineAligned="false">
+ android:gravity="center_horizontal"
+ tools:ignore="UseCompoundDrawables">
@@ -74,7 +76,8 @@
android:layout_height="fill_parent"
android:layout_weight="1"
android:focusable="true"
- android:gravity="center_horizontal">
+ android:gravity="center_horizontal"
+ tools:ignore="UseCompoundDrawables">
diff --git a/app/src/main/res/layout/timelistedit_element.xml b/app/src/main/res/layout/timelistedit_element.xml
index 4ff1634cb0..7de7d779fc 100644
--- a/app/src/main/res/layout/timelistedit_element.xml
+++ b/app/src/main/res/layout/timelistedit_element.xml
@@ -12,7 +12,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginRight="10dp"
+ android:layout_marginEnd="10dp"
android:minWidth="80dp" />
+ android:layout_marginEnd="5dp" />
@@ -46,7 +46,7 @@
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_vertical"
- android:layout_marginLeft="15dp"
+ android:layout_marginStart="15dp"
android:contentDescription="@string/remove_label"
app:srcCompat="@drawable/ic_remove" />
diff --git a/app/src/main/res/layout/timelistedit_element_vertical.xml b/app/src/main/res/layout/timelistedit_element_vertical.xml
index fbe0bce438..5cbe81213e 100644
--- a/app/src/main/res/layout/timelistedit_element_vertical.xml
+++ b/app/src/main/res/layout/timelistedit_element_vertical.xml
@@ -12,7 +12,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
- android:layout_marginRight="10dp"
+ android:layout_marginEnd="10dp"
android:minWidth="80dp" />
+ android:layout_marginEnd="5dp" />
@@ -46,7 +46,7 @@
android:layout_width="35dp"
android:layout_height="35dp"
android:layout_gravity="center_vertical"
- android:layout_marginLeft="15dp"
+ android:layout_marginStart="15dp"
android:contentDescription="@string/remove_label"
app:srcCompat="@drawable/ic_remove" />
diff --git a/app/src/main/res/layout/treatments_bolus_carbs_item.xml b/app/src/main/res/layout/treatments_bolus_carbs_item.xml
index 5c3c7502b6..d21c778f3e 100644
--- a/app/src/main/res/layout/treatments_bolus_carbs_item.xml
+++ b/app/src/main/res/layout/treatments_bolus_carbs_item.xml
@@ -1,11 +1,17 @@
-
+ android:layout_marginStart="4dp"
+ android:layout_marginBottom="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ android:layout_gravity="center">
-
-
-
+
diff --git a/app/src/main/res/layout/treatments_careportal_item.xml b/app/src/main/res/layout/treatments_careportal_item.xml
index bb4fff2681..6431d6eee5 100644
--- a/app/src/main/res/layout/treatments_careportal_item.xml
+++ b/app/src/main/res/layout/treatments_careportal_item.xml
@@ -1,11 +1,17 @@
-
+ android:layout_marginStart="4dp"
+ android:layout_marginBottom="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ android:layout_gravity="center">
-
-
-
+
diff --git a/app/src/main/res/layout/treatments_extendedbolus_item.xml b/app/src/main/res/layout/treatments_extendedbolus_item.xml
index 587a3e6410..18621d3e9d 100644
--- a/app/src/main/res/layout/treatments_extendedbolus_item.xml
+++ b/app/src/main/res/layout/treatments_extendedbolus_item.xml
@@ -1,11 +1,17 @@
-
+ android:layout_marginStart="4dp"
+ android:layout_marginBottom="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ android:layout_gravity="center">
-
-
-
+
diff --git a/app/src/main/res/layout/treatments_profileswitch_item.xml b/app/src/main/res/layout/treatments_profileswitch_item.xml
index ee4331c46a..407af40983 100644
--- a/app/src/main/res/layout/treatments_profileswitch_item.xml
+++ b/app/src/main/res/layout/treatments_profileswitch_item.xml
@@ -1,11 +1,17 @@
-
+ android:layout_marginStart="4dp"
+ android:layout_marginBottom="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ android:layout_gravity="center">
-
-
-
+
diff --git a/app/src/main/res/layout/treatments_tempbasals_item.xml b/app/src/main/res/layout/treatments_tempbasals_item.xml
index 94840ce53a..6f20e98720 100644
--- a/app/src/main/res/layout/treatments_tempbasals_item.xml
+++ b/app/src/main/res/layout/treatments_tempbasals_item.xml
@@ -1,11 +1,17 @@
-
+ android:layout_marginStart="4dp"
+ android:layout_marginBottom="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ android:layout_gravity="center">
@@ -182,16 +188,6 @@
-
-
-
+
diff --git a/app/src/main/res/layout/treatments_temptarget_item.xml b/app/src/main/res/layout/treatments_temptarget_item.xml
index b6a5ce8e0c..8124661300 100644
--- a/app/src/main/res/layout/treatments_temptarget_item.xml
+++ b/app/src/main/res/layout/treatments_temptarget_item.xml
@@ -1,11 +1,17 @@
-
+ android:layout_marginStart="4dp"
+ android:layout_marginBottom="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp"
+ android:layout_gravity="center">
-
-
-
+
diff --git a/app/src/main/res/layout/treatments_user_entry_item.xml b/app/src/main/res/layout/treatments_user_entry_item.xml
index 04110b1e3d..e2e2f6fe76 100644
--- a/app/src/main/res/layout/treatments_user_entry_item.xml
+++ b/app/src/main/res/layout/treatments_user_entry_item.xml
@@ -1,102 +1,101 @@
-
+ android:layout_gravity="center"
+ android:layout_marginStart="4dp"
+ android:layout_marginBottom="4dp"
+ app:cardCornerRadius="4dp"
+ app:contentPadding="2dp">
-
+ android:orientation="vertical">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/virtualpump_fragment.xml b/app/src/main/res/layout/virtualpump_fragment.xml
index 082f4abeae..ab29406d59 100644
--- a/app/src/main/res/layout/virtualpump_fragment.xml
+++ b/app/src/main/res/layout/virtualpump_fragment.xml
@@ -33,7 +33,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/basebasalrate_label"
android:textSize="14sp" />
@@ -53,7 +53,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -62,8 +62,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -78,7 +78,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/tempbasal_label"
android:textSize="14sp" />
@@ -98,7 +98,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -107,8 +107,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -123,7 +123,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/virtualpump_extendedbolus_label"
android:textSize="14sp" />
@@ -143,7 +143,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -152,8 +152,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -168,7 +168,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/battery_label"
android:textSize="14sp" />
@@ -188,7 +188,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -198,8 +198,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -214,7 +214,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/reservoir_label"
android:textSize="14sp" />
@@ -234,7 +234,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -244,8 +244,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -260,7 +260,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/serialnumber"
android:textSize="14sp" />
@@ -280,7 +280,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -290,8 +290,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -306,7 +306,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/virtualpump_type"
android:textSize="14sp" />
@@ -326,7 +326,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -336,8 +336,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -352,7 +352,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/virtualpump_definition"
android:textSize="14sp" />
@@ -372,7 +372,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
diff --git a/app/src/main/res/layout/wear_fragment.xml b/app/src/main/res/layout/wear_fragment.xml
index f93423a895..a5eba31c66 100644
--- a/app/src/main/res/layout/wear_fragment.xml
+++ b/app/src/main/res/layout/wear_fragment.xml
@@ -16,8 +16,8 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:layout_marginTop="3dp"
android:layout_weight="0.5"
android:text="@string/resend_all_data"
@@ -29,8 +29,8 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="3dp"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:layout_marginTop="3dp"
android:layout_weight="0.5"
android:text="@string/open_settings_on_wear"
diff --git a/app/src/main/res/values-es-rES/strings.xml b/app/src/main/res/values-es-rES/strings.xml
index f2e22c879e..5168e374f2 100644
--- a/app/src/main/res/values-es-rES/strings.xml
+++ b/app/src/main/res/values-es-rES/strings.xml
@@ -450,7 +450,7 @@
ACTIVAR PERFIL
INVÁLIDO
Porcentaje
- Cambio de tiempo
+ Tiempo del cambio
Objetivo temporal por defecto
Duración OT Comiendo Pronto
Objetivo Comiendo Pronto
diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml
index 84ca1479ce..7b255bbf49 100644
--- a/app/src/main/res/values-fr-rFR/strings.xml
+++ b/app/src/main/res/values-fr-rFR/strings.xml
@@ -435,6 +435,8 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Activer les transmissions locales
OpenAPS SMB
SI dynamique
+ Facteur d\'ajustement SI dynamique %%
+ Facteur d\'ajustement pour SI dynamique. Définissez plus de 100 %% pour des corrections plus agressives et moins de 100 %% pour des corrections moins agressives.
Activer RNS
Activer SMB
Utiliser les Super Micro Bolus au lieu des débits de base temporaires pour une action rapide
@@ -814,6 +816,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Sur chaque téléphone suiveur, installez une appli. Authentificateur qui prend en charge les jetons RFC 6238 TOTP. Les applications libres populaires sont:\n • Authy\n • Google Authenticator\n • LastPass Authenticator\n • FreeOTP Authenticator
En réinitialisant l\'Authentificateur, vous invalidez tous les authentificateurs déjà initialisés. Vous devrez les reconfigurer !
Prédictions
+ Traitements
Pente de déviations
Echec de l\'authentification
Insuline absolue
@@ -993,6 +996,7 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Cibles Temp
Glucides et bolus
Êtes-vous sûr de vouloir supprimer %1$d entrée(s)
+ Aucun enregistrement disponible
Masquer la boucle
Afficher les entrées boucle
%1$d sélectionnée(s)
@@ -1004,4 +1008,5 @@ L\'ENSEMBLE DES RISQUES LIÉS À LA QUALITÉ ET À LA PERFORMANCE DU PROGRAMME S
Afficher les entrées de la boucle
Masquer les entrées de la boucle
Widget AndroidAPS
+ Configurer l’opacité
diff --git a/app/src/main/res/values-ru-rRU/strings.xml b/app/src/main/res/values-ru-rRU/strings.xml
index 5b6ef2440f..3edbacc44f 100644
--- a/app/src/main/res/values-ru-rRU/strings.xml
+++ b/app/src/main/res/values-ru-rRU/strings.xml
@@ -246,6 +246,7 @@
Смарт-часы Wear
повторить отправку всех данных
Открыть настройки на Wear
+ Базальная скорость
значение базала ниже минимума. профиль не создан!
гликемия:
прошлый СК:
@@ -433,6 +434,8 @@
Активировать локальную передачу
Супер микро болюс OpenAPS
Динамический ISF
+ Коэффициент регулировки динамического диапазона чувствительности ISF %%
+ Коэффициент корректировки динамического диапазона чувствительности ISF. Установите более 100% для более агрессивных доз коррекции и менее 100% для менее агрессивной коррекции.
Включить непредвиденный прием пищи UAM
Включить супер микро болюс SMB
Для ускорения действия используйте супер микро болюсы SMB вместо временного базала
@@ -812,6 +815,7 @@
В каждом отслеживающем телефоне установите приложение Authenticator, поддерживающее маркеры TOTP RFC 6238. Популярные бесплатные приложения: \n Authy\n Google Authenticator\n LastPass Authenticator\n FreeOTP Authenticator
После сброса аутентификатора вы делаете все созданные идентификаторы недействительными. Вам нужно будет снова создать их!
Прогнозирование
+ Терапия
Линия отклонения
Ошибка авторизации
Абсолютный инсулин
@@ -881,6 +885,7 @@
Принимать события APS автономно
Принимать события APS введенные через NS или клиент NS автономно
Получать временную базальную скорость TBR и пролонгированный болюс EB
+ Принять TBR и EB введеные с другого устройства
Принимать инсулин
Принимать инсулин, введенный через NS или NSClient (не подается, только рассчитывается как активный IOB)
Принимать углеводы
@@ -903,6 +908,7 @@
Ошибки
Замедлить выгрузку
Состояние данных ГК
+ Удалить значения ГК
время, отработанное катетером помпы
время отработанное разовой помпой
Разовая помпа
@@ -934,7 +940,17 @@
инсулин
уровень глюкозы в крови (ГК)
устаревшие данные
+ установить напоминание
+ добавить новый профиль
+ клонировать текущий профиль
+ удалить текущий профиль
+ добавить новый в список
+ Выберите темную, светлую или системную тему
+ Цветовая схема приложения
+ Тёмная тема
+ Светлая тема
+ Использовать тему устройства
Неизвестная конфигурация врем цели: %1$s
Отменить врем цели?
@@ -944,6 +960,33 @@
Макс ГК вне диапазона!
ВремЦель:\nМин: %1$s\nМакс.: %2$s\nДлительность: %3$s
ВремЦель:\nЦель: %1$s\nДлительность: %2$s
+ ВремЦель:\Причина: %1$s\nЦель.: %2$s\nДлительность: %3$s
+ Мастер: %1$s\nИнсулин: %2$.2fЕд\nУгл: %3$dg
+ Мастер:\nИнсулин: %1$.2fЕд\nУгл: %2$dg
+ Показать запись на устройстве:
+ Выбранный мастер быстрого доступа больше недоступен, обновите плитку
+ Нет данных ГК для основы расчета!
+ Активный профиль не установлен!
+ Неизвестный COB! Отсутствуют данные ГК или приложения недавно перезапущено?
+ Нарушено ограничение по углеводам!
+ Кальк (IC: %2$.1f, ISF: %2$.1f) из:\"
+ Углеводов: %1$.2fгУ
+ Акт Инс COB: %1$.0fг %2$.2fед
+ ГК: %1$.2f
+ Базал IOB: %1$.2fед
+ Болюсный IOB: %1$.2fед
+ Суперболюсный: %1$.2fед
+ тренд 15\': %1$.2f
+ Процент: %1$.2fU x %2$d%% = %3$.2f
+ Нарушено ограничение по инсулину!\nНевозможно подать %1$.2fед
+ ВремЦ: %1$s
+ %1$s до %2$s
+ Нет доступных помп!
+ Неизвестная команда:
+ Процент
+ По умолчанию приложения
+ Показать недействительные / удаленные записи
+ Скрыть недействительные / удаленные записи
Выберите профиль для изменения
Обновить из Nightscout
Удалить выбранные элементы
@@ -952,10 +995,17 @@
Временные цели
Углеводы и болюс
Вы уверены, что хотите удалить %1$d элементов
+ Нет доступных записей
Скрыть цикл
Показать цикл
%1$d выбрано
+ Сортировать
+ Диалог отменен
Ниже целевых
В целевом диапазоне
Выше целевых
+ Показать записи цикла
+ Скрыть записи цикла
+ Виджет androidAPS
+ Настроить прозрачность
diff --git a/app/src/main/res/values-tr-rTR/strings.xml b/app/src/main/res/values-tr-rTR/strings.xml
index 4bba41c245..31784497f1 100644
--- a/app/src/main/res/values-tr-rTR/strings.xml
+++ b/app/src/main/res/values-tr-rTR/strings.xml
@@ -816,6 +816,7 @@ Aktif Karbonhidratın ne kadar hızlı sindirildiğine ve KŞ\'nin beklenenden d
Her takipçi telefonunda, RFC 6238 TOTP belirteçlerini destekleyen Kimlik Doğrulayıcı uygulamasını yükleyin. Popüler ücretsiz uygulamalar şunlardır:\n • Authy\n • Google Authenticator\n • LastPass Authenticator\n • FreeOTP Authenticator
Doğrulayıcıyı (Authenticator) sıfırlayarak, önceden sağlanmış tüm doğrulayıcıları geçersiz kılarsınız. Onları tekrar kurmanız gerekecek!
Tahminler
+ Tedaviler
Sapma eğimi
Yetkilendirme başarısız oldu
Mutlak insülin
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
index c64cb175a7..b4c15f6ed8 100644
--- a/app/src/main/res/values/dimens.xml
+++ b/app/src/main/res/values/dimens.xml
@@ -1,6 +1,5 @@
-
+
+ QR Code for setup one time password
+ open settings
+ set carb timer alarm
+ All
+ Phone
+ Watch
+ only on watch
+ only on phone
+ drag and drop handle
+
+
GlucoRx Aidex
Aidex
Receive BG values from GlucoRx Aidex CGMS.
-
-
+
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 74f76fe8cf..00fc05980d 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -13,12 +13,10 @@
-
\ No newline at end of file
+
diff --git a/app/src/main/res/xml/pref_openapssmb.xml b/app/src/main/res/xml/pref_openapssmb.xml
index 945161d9af..ebe3e0ec92 100644
--- a/app/src/main/res/xml/pref_openapssmb.xml
+++ b/app/src/main/res/xml/pref_openapssmb.xml
@@ -113,14 +113,12 @@
validate:minNumber="15"
validate:testType="numericRange" />
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/app/src/main/res/xml/pref_safety.xml b/app/src/main/res/xml/pref_safety.xml
index 6113be6c13..641ddf6aee 100644
--- a/app/src/main/res/xml/pref_safety.xml
+++ b/app/src/main/res/xml/pref_safety.xml
@@ -25,7 +25,6 @@
validate:floatminNumber="0.1"
validate:testType="floatNumericRange" />
-
-
\ No newline at end of file
+
diff --git a/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueImplementationTest.kt b/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueImplementationTest.kt
index 1f49ca02a5..88b8075457 100644
--- a/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueImplementationTest.kt
+++ b/app/src/test/java/info/nightscout/androidaps/queue/CommandQueueImplementationTest.kt
@@ -299,7 +299,6 @@ class CommandQueueImplementationTest : TestBaseWithProfile() {
Assert.assertFalse(commandQueue.isCustomCommandRunning(CustomCommand2::class.java))
Assert.assertFalse(commandQueue.isCustomCommandRunning(CustomCommand3::class.java))
-
Assert.assertEquals(1, commandQueue.size())
}
@@ -504,4 +503,4 @@ class CommandQueueImplementationTest : TestBaseWithProfile() {
override val statusDescription: String
get() = "CUSTOM COMMAND 3"
}
-}
\ No newline at end of file
+}
diff --git a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionCarePortalEvent.kt b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionCarePortalEvent.kt
index ba7385cc9b..d5f9e18caa 100644
--- a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionCarePortalEvent.kt
+++ b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/actions/ActionCarePortalEvent.kt
@@ -38,7 +38,6 @@ class ActionCarePortalEvent(injector: HasAndroidInjector) : Action(injector) {
@Inject lateinit var glucoseStatusProvider: GlucoseStatusProvider
@Inject lateinit var uel: UserEntryLogger
-
private val disposable = CompositeDisposable()
var note = InputString()
@@ -118,4 +117,4 @@ class ActionCarePortalEvent(injector: HasAndroidInjector) : Action(injector) {
}
override fun isValid(): Boolean = true
-}
\ No newline at end of file
+}
diff --git a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDateTime.kt b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDateTime.kt
index fb1f779f0f..861cf8a194 100644
--- a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDateTime.kt
+++ b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputDateTime.kt
@@ -1,12 +1,17 @@
package info.nightscout.androidaps.plugins.general.automation.elements
-import android.app.DatePickerDialog
-import android.app.TimePickerDialog
+import android.content.Context
import android.graphics.Typeface
import android.text.format.DateFormat
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
+import androidx.appcompat.app.AppCompatActivity
+import android.view.ContextThemeWrapper
+import androidx.fragment.app.FragmentManager
+import com.google.android.material.datepicker.MaterialDatePicker
+import com.google.android.material.timepicker.MaterialTimePicker
+import com.google.android.material.timepicker.TimeFormat
import info.nightscout.androidaps.automation.R
import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.androidaps.utils.resources.ResourceHelper
@@ -32,24 +37,17 @@ class InputDateTime(private val rh: ResourceHelper, private val dateUtil: DateUt
text = dateUtil.dateString(value)
setPadding(px, px, px, px)
setOnClickListener {
- root.context?.let {
- val cal = Calendar.getInstance()
- cal.timeInMillis = value
- DatePickerDialog(
- it,
- { _, year, monthOfYear, dayOfMonth ->
- value = Calendar.getInstance().apply {
- timeInMillis = value
- set(Calendar.YEAR, year)
- set(Calendar.MONTH, monthOfYear)
- set(Calendar.DAY_OF_MONTH, dayOfMonth)
- }.timeInMillis
- text = dateUtil.dateString(value)
- },
- cal.get(Calendar.YEAR),
- cal.get(Calendar.MONTH),
- cal.get(Calendar.DAY_OF_MONTH)
- ).show()
+ getFragmentManager(root.context)?.let { fm ->
+ MaterialDatePicker.Builder.datePicker()
+ .setSelection(dateUtil.timeStampToUtcDateMilis(value))
+ .build()
+ .apply {
+ addOnPositiveButtonClickListener { selection ->
+ value = dateUtil.mergeUtcDateToTimestamp(value, selection)
+ text = dateUtil.dateString(value)
+ }
+ }
+ .show(fm, "input_date_picker")
}
}
})
@@ -58,28 +56,31 @@ class InputDateTime(private val rh: ResourceHelper, private val dateUtil: DateUt
text = dateUtil.timeString(value)
setPadding(px, px, px, px)
setOnClickListener {
- root.context?.let {
- val cal = Calendar.getInstance()
- cal.timeInMillis = value
- TimePickerDialog(
- it,
- { _, hour, minute ->
- value = Calendar.getInstance().apply {
- timeInMillis = value
- set(Calendar.HOUR_OF_DAY, hour)
- set(Calendar.MINUTE, minute)
- set(Calendar.SECOND, 0) // randomize seconds to prevent creating record of the same time, if user choose time manually
- }.timeInMillis
- text = dateUtil.timeString(value)
- },
- cal.get(Calendar.HOUR_OF_DAY),
- cal.get(Calendar.MINUTE),
- DateFormat.is24HourFormat(it)
- ).show()
+ getFragmentManager(root.context)?.let { fm ->
+ val cal = Calendar.getInstance().apply { timeInMillis = value }
+ val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H
+ val timePicker = MaterialTimePicker.Builder()
+ .setTimeFormat(clockFormat)
+ .setHour(cal.get(Calendar.HOUR_OF_DAY))
+ .setMinute(cal.get(Calendar.MINUTE))
+ .build()
+ timePicker.addOnPositiveButtonClickListener {
+ value = dateUtil.mergeHourMinuteToTimestamp(value, timePicker.hour, timePicker.minute)
+ text = dateUtil.timeString(value)
+ }
+ timePicker.show(fm, "input_time_picker")
}
}
}
)
})
}
-}
\ No newline at end of file
+
+ private fun getFragmentManager(context: Context?): FragmentManager? {
+ return when (context) {
+ is AppCompatActivity -> context.supportFragmentManager
+ is ContextThemeWrapper -> getFragmentManager(context.baseContext)
+ else -> null
+ }
+ }
+}
diff --git a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTime.kt b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTime.kt
index fcee35b411..5ea6c66ff0 100644
--- a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTime.kt
+++ b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTime.kt
@@ -1,12 +1,16 @@
package info.nightscout.androidaps.plugins.general.automation.elements
-import android.app.TimePickerDialog
+import android.content.Context
import android.graphics.Typeface
import android.text.format.DateFormat
-import android.view.Gravity
+import android.view.ContextThemeWrapper
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
+import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentManager
+import com.google.android.material.timepicker.MaterialTimePicker
+import com.google.android.material.timepicker.TimeFormat
import info.nightscout.androidaps.automation.R
import info.nightscout.androidaps.interfaces.Profile
import info.nightscout.androidaps.utils.DateUtil
@@ -34,19 +38,19 @@ class InputTime(private val rh: ResourceHelper, private val dateUtil: DateUtil)
val px = rh.dpToPx(10)
setPadding(px, px, px, px)
setOnClickListener {
- root.context?.let {
- val cal = Calendar.getInstance()
- cal.timeInMillis = toMills(value)
- TimePickerDialog(
- it,
- { _, hour, minute ->
- value = 60 * hour + minute
- text = dateUtil.timeString(toMills(value))
- },
- cal.get(Calendar.HOUR_OF_DAY),
- cal.get(Calendar.MINUTE),
- DateFormat.is24HourFormat(it)
- ).show()
+ getFragmentManager(root.context)?.let { fm ->
+ val cal = Calendar.getInstance().apply { timeInMillis = toMills(value) }
+ val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H
+ val timePicker = MaterialTimePicker.Builder()
+ .setTimeFormat(clockFormat)
+ .setHour(cal.get(Calendar.HOUR_OF_DAY))
+ .setMinute(cal.get(Calendar.MINUTE))
+ .build()
+ timePicker.addOnPositiveButtonClickListener {
+ value = 60 * timePicker.hour + timePicker.minute
+ text = dateUtil.timeString(toMills(value))
+ }
+ timePicker.show(fm, "input_time_picker")
}
}
})
@@ -56,4 +60,12 @@ class InputTime(private val rh: ResourceHelper, private val dateUtil: DateUtil)
private fun toMills(minutesSinceMidnight: Int): Long = MidnightTime.calcPlusMinutes(minutesSinceMidnight)
private fun getMinSinceMidnight(time: Long): Int = Profile.secondsFromMidnight(time) / 60
-}
\ No newline at end of file
+
+ private fun getFragmentManager(context: Context?): FragmentManager? {
+ return when (context) {
+ is AppCompatActivity -> context.supportFragmentManager
+ is ContextThemeWrapper -> getFragmentManager(context.baseContext)
+ else -> null
+ }
+ }
+}
diff --git a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTimeRange.kt b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTimeRange.kt
index 343f617a27..a417c1891b 100644
--- a/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTimeRange.kt
+++ b/automation/src/main/java/info/nightscout/androidaps/plugins/general/automation/elements/InputTimeRange.kt
@@ -1,12 +1,17 @@
package info.nightscout.androidaps.plugins.general.automation.elements
-import android.app.TimePickerDialog
+import android.content.Context
import android.graphics.Typeface
import android.text.format.DateFormat
+import android.view.ContextThemeWrapper
import android.view.Gravity
import android.view.ViewGroup
import android.widget.LinearLayout
import android.widget.TextView
+import androidx.appcompat.app.AppCompatActivity
+import androidx.fragment.app.FragmentManager
+import com.google.android.material.timepicker.MaterialTimePicker
+import com.google.android.material.timepicker.TimeFormat
import info.nightscout.androidaps.automation.R
import info.nightscout.androidaps.interfaces.Profile
import info.nightscout.androidaps.utils.DateUtil
@@ -38,19 +43,19 @@ class InputTimeRange(private val rh: ResourceHelper, private val dateUtil: DateU
text = dateUtil.timeString(toMills(start))
setPadding(px, px, px, px)
setOnClickListener {
- root.context?.let {
- val cal = Calendar.getInstance()
- cal.timeInMillis = toMills(start)
- TimePickerDialog(
- it,
- { _, hour, minute ->
- start = 60 * hour + minute
- text = dateUtil.timeString(toMills(start))
- },
- cal.get(Calendar.HOUR_OF_DAY),
- cal.get(Calendar.MINUTE),
- DateFormat.is24HourFormat(it)
- ).show()
+ getFragmentManager(root.context)?.let { fm ->
+ val cal = Calendar.getInstance().apply { timeInMillis = toMills(start) }
+ val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H
+ val timePicker = MaterialTimePicker.Builder()
+ .setTimeFormat(clockFormat)
+ .setHour(cal.get(Calendar.HOUR_OF_DAY))
+ .setMinute(cal.get(Calendar.MINUTE))
+ .build()
+ timePicker.addOnPositiveButtonClickListener {
+ start = 60 * timePicker.hour + timePicker.minute
+ text = dateUtil.timeString(toMills(start))
+ }
+ timePicker.show(fm, "input_time_range_start_picker")
}
}
})
@@ -59,19 +64,19 @@ class InputTimeRange(private val rh: ResourceHelper, private val dateUtil: DateU
text = rh.gs(R.string.and) + " " + dateUtil.timeString(toMills(end))
setPadding(px, px, px, px)
setOnClickListener {
- root.context?.let {
- val cal = Calendar.getInstance()
- cal.timeInMillis = toMills(end)
- TimePickerDialog(
- it,
- { _, hour, minute ->
- end = 60 * hour + minute
- text = dateUtil.timeString(toMills(end))
- },
- cal.get(Calendar.HOUR_OF_DAY),
- cal.get(Calendar.MINUTE),
- DateFormat.is24HourFormat(it)
- ).show()
+ getFragmentManager(root.context)?.let { fm ->
+ val cal = Calendar.getInstance().apply { timeInMillis = toMills(end) }
+ val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H
+ val timePicker = MaterialTimePicker.Builder()
+ .setTimeFormat(clockFormat)
+ .setHour(cal.get(Calendar.HOUR_OF_DAY))
+ .setMinute(cal.get(Calendar.MINUTE))
+ .build()
+ timePicker.addOnPositiveButtonClickListener {
+ end = 60 * timePicker.hour + timePicker.minute
+ text = dateUtil.timeString(toMills(end))
+ }
+ timePicker.show(fm, "input_time_range_end_picker")
}
}
})
@@ -81,4 +86,12 @@ class InputTimeRange(private val rh: ResourceHelper, private val dateUtil: DateU
private fun toMills(minutesSinceMidnight: Int): Long = MidnightTime.calcPlusMinutes(minutesSinceMidnight)
private fun getMinSinceMidnight(time: Long): Int = Profile.secondsFromMidnight(time) / 60
-}
\ No newline at end of file
+
+ private fun getFragmentManager(context: Context?): FragmentManager? {
+ return when (context) {
+ is AppCompatActivity -> context.supportFragmentManager
+ is ContextThemeWrapper -> getFragmentManager(context.baseContext)
+ else -> null
+ }
+ }
+}
diff --git a/automation/src/main/res/layout/automation_action_item.xml b/automation/src/main/res/layout/automation_action_item.xml
index a63d9437a0..187abda4a9 100644
--- a/automation/src/main/res/layout/automation_action_item.xml
+++ b/automation/src/main/res/layout/automation_action_item.xml
@@ -2,13 +2,14 @@
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
-
\ No newline at end of file
+
diff --git a/automation/src/main/res/layout/automation_dialog_action.xml b/automation/src/main/res/layout/automation_dialog_action.xml
index 4033009e15..ba6a516e70 100644
--- a/automation/src/main/res/layout/automation_dialog_action.xml
+++ b/automation/src/main/res/layout/automation_dialog_action.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
- tools:context=".plugins.general.automation.dialogs.EditActionDialog">
+ tools:context="info.nightscout.androidaps.plugins.general.automation.dialogs.EditActionDialog">
@@ -56,4 +56,4 @@
-
\ No newline at end of file
+
diff --git a/automation/src/main/res/layout/automation_dialog_choose_action.xml b/automation/src/main/res/layout/automation_dialog_choose_action.xml
index 8bbb4f5010..ac3997cf97 100644
--- a/automation/src/main/res/layout/automation_dialog_choose_action.xml
+++ b/automation/src/main/res/layout/automation_dialog_choose_action.xml
@@ -2,12 +2,10 @@
+ tools:context="info.nightscout.androidaps.plugins.general.automation.dialogs.EditEventDialog">
@@ -56,4 +54,4 @@
-
\ No newline at end of file
+
diff --git a/automation/src/main/res/layout/automation_dialog_choose_operation.xml b/automation/src/main/res/layout/automation_dialog_choose_operation.xml
index ad78796e59..f19c77f2fd 100644
--- a/automation/src/main/res/layout/automation_dialog_choose_operation.xml
+++ b/automation/src/main/res/layout/automation_dialog_choose_operation.xml
@@ -30,8 +30,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/please_choose_a_operation_type"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
diff --git a/automation/src/main/res/layout/automation_dialog_choose_trigger.xml b/automation/src/main/res/layout/automation_dialog_choose_trigger.xml
index 99eadab1bd..c4c139c607 100644
--- a/automation/src/main/res/layout/automation_dialog_choose_trigger.xml
+++ b/automation/src/main/res/layout/automation_dialog_choose_trigger.xml
@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusableInTouchMode="true"
- tools:context=".plugins.general.automation.dialogs.EditEventDialog">
+ tools:context="info.nightscout.androidaps.plugins.general.automation.dialogs.EditEventDialog">
@@ -48,4 +48,4 @@
-
\ No newline at end of file
+
diff --git a/automation/src/main/res/layout/automation_dialog_edit_trigger.xml b/automation/src/main/res/layout/automation_dialog_edit_trigger.xml
index dc10ff98b9..97c8d7eebe 100644
--- a/automation/src/main/res/layout/automation_dialog_edit_trigger.xml
+++ b/automation/src/main/res/layout/automation_dialog_edit_trigger.xml
@@ -30,8 +30,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/triggers"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
diff --git a/automation/src/main/res/layout/automation_dialog_event.xml b/automation/src/main/res/layout/automation_dialog_event.xml
index ebbed9ad65..a94169dd49 100644
--- a/automation/src/main/res/layout/automation_dialog_event.xml
+++ b/automation/src/main/res/layout/automation_dialog_event.xml
@@ -26,11 +26,11 @@
app:srcCompat="@drawable/ic_action_orange_48dp" />
@@ -93,6 +94,7 @@
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerVertical="true"
+ android:importantForAccessibility="no"
app:srcCompat="@drawable/ic_trigger_green_48dp" />
+ android:text="@string/edit_short"
+ tools:ignore="RelativeOverlap" />
@@ -156,6 +159,7 @@
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_centerVertical="true"
+ android:importantForAccessibility="no"
app:srcCompat="@drawable/ic_action_orange_48dp" />
+ android:text="@string/add_short"
+ tools:ignore="RelativeOverlap" />
@@ -195,4 +200,4 @@
-
\ No newline at end of file
+
diff --git a/automation/src/main/res/values-ru-rRU/strings.xml b/automation/src/main/res/values-ru-rRU/strings.xml
index a1d0b8c967..2caaa73c95 100644
--- a/automation/src/main/res/values-ru-rRU/strings.xml
+++ b/automation/src/main/res/values-ru-rRU/strings.xml
@@ -113,4 +113,11 @@
Автоматизированное событие
Повторный заказ
Действия пользователя
+ Удалить автоматизацию
+ Сортировать автоматизацию
+ Удалить выбранные элементы
+ %1$d выбрано
+ Вы уверены, что хотите удалить %1$d элемент
+ Сортировать
+ Автоматизация системы
diff --git a/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt b/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt
index b65690a315..5e27ece0c8 100644
--- a/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt
+++ b/automation/src/test/java/info/nightscout/androidaps/plugins/general/automation/TestBase.kt
@@ -41,7 +41,6 @@ open class TestBase {
return uninitialized()
}
-
fun eqObject(expected: T): T {
Mockito.eq(expected)
return uninitialized()
@@ -49,4 +48,4 @@ open class TestBase {
@Suppress("Unchecked_Cast")
fun uninitialized(): T = null as T
-}
\ No newline at end of file
+}
diff --git a/build.gradle b/build.gradle
index 0de39506d7..e6093e77bd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -56,7 +56,7 @@ buildscript {
}
plugins {
- id "io.gitlab.arturbosch.detekt" version "1.19.0"
+ id "io.gitlab.arturbosch.detekt" version "1.20.0"
id "org.jlleitschuh.gradle.ktlint" version "10.2.1"
id 'org.barfuin.gradle.jacocolog' version '2.0.0'
id 'org.jetbrains.kotlin.android' version '1.6.20' apply false
@@ -72,13 +72,17 @@ allprojects {
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
kotlinOptions {
freeCompilerArgs = [
- // Ignore warning for @ExperimentalCoroutinesApi
- "-Xuse-experimental=kotlinx.coroutines.ExperimentalCoroutinesApi",
+ '-opt-in=kotlin.RequiresOptIn',
'-Xjvm-default=all' //Support @JvmDefault
]
jvmTarget = "11"
}
}
+ gradle.projectsEvaluated {
+ tasks.withType(JavaCompile) {
+ options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
+ }
+ }
}
apply from: 'gradle/jacoco_project.gradle'
diff --git a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java
deleted file mode 100644
index b0fc0d809c..0000000000
--- a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.java
+++ /dev/null
@@ -1,299 +0,0 @@
-package info.nightscout.androidaps.plugins.pump.combo;
-
-
-import android.graphics.Color;
-import android.graphics.Typeface;
-import android.os.Bundle;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.Button;
-import android.widget.LinearLayout;
-import android.widget.TextView;
-
-import androidx.annotation.NonNull;
-import androidx.fragment.app.FragmentActivity;
-
-import javax.inject.Inject;
-
-import dagger.android.support.DaggerFragment;
-import info.nightscout.androidaps.combo.R;
-import info.nightscout.androidaps.interfaces.CommandQueue;
-import info.nightscout.androidaps.plugins.bus.RxBus;
-import info.nightscout.androidaps.plugins.pump.combo.data.ComboErrorUtil;
-import info.nightscout.androidaps.plugins.pump.combo.events.EventComboPumpUpdateGUI;
-import info.nightscout.androidaps.plugins.pump.combo.ruffyscripter.PumpState;
-import info.nightscout.androidaps.plugins.pump.combo.ruffyscripter.history.Bolus;
-import info.nightscout.androidaps.queue.Callback;
-import info.nightscout.androidaps.queue.events.EventQueueChanged;
-import info.nightscout.androidaps.utils.DateUtil;
-import info.nightscout.androidaps.utils.FabricPrivacy;
-import info.nightscout.androidaps.utils.resources.ResourceHelper;
-import info.nightscout.androidaps.utils.rx.AapsSchedulers;
-import io.reactivex.rxjava3.disposables.CompositeDisposable;
-
-public class ComboFragment extends DaggerFragment {
- @Inject ComboPlugin comboPlugin;
- @Inject CommandQueue commandQueue;
- @Inject ResourceHelper rh;
- @Inject RxBus rxBus;
- @Inject DateUtil dateUtil;
- @Inject FabricPrivacy fabricPrivacy;
- @Inject AapsSchedulers aapsSchedulers;
- @Inject ComboErrorUtil errorUtil;
-
- private final CompositeDisposable disposable = new CompositeDisposable();
-
- private TextView stateView;
- private TextView activityView;
- private TextView batteryView;
- private TextView reservoirView;
- private TextView lastConnectionView;
- private TextView lastBolusView;
- private TextView baseBasalRate;
- private TextView tempBasalText;
- private Button refreshButton;
- private TextView bolusCount;
- private TextView tbrCount;
-
- private View errorCountDelimiter;
- private LinearLayout errorCountLayout;
- private TextView errorCountLabel;
- private TextView errorCountDots;
- private TextView errorCountValue;
-
- @Override
- public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
- Bundle savedInstanceState) {
- View view = inflater.inflate(R.layout.combopump_fragment, container, false);
-
- stateView = view.findViewById(R.id.combo_state);
- activityView = view.findViewById(R.id.combo_activity);
- batteryView = view.findViewById(R.id.combo_pumpstate_battery);
- reservoirView = view.findViewById(R.id.combo_insulinstate);
- lastBolusView = view.findViewById(R.id.combo_last_bolus);
- lastConnectionView = view.findViewById(R.id.combo_lastconnection);
- baseBasalRate = view.findViewById(R.id.combo_base_basal_rate);
- tempBasalText = view.findViewById(R.id.combo_temp_basal);
- bolusCount = view.findViewById(R.id.combo_bolus_count);
- tbrCount = view.findViewById(R.id.combo_tbr_count);
-
- errorCountDelimiter = view.findViewById(R.id.combo_connection_error_delimiter);
- errorCountLayout = view.findViewById(R.id.combo_connection_error_layout);
- errorCountLabel = view.findViewById(R.id.combo_connection_error_label);
- errorCountDots = view.findViewById(R.id.combo_connection_error_dots);
- errorCountValue = view.findViewById(R.id.combo_connection_error_value);
-
- refreshButton = view.findViewById(R.id.combo_refresh_button);
- refreshButton.setOnClickListener(v -> {
- refreshButton.setEnabled(false);
- commandQueue.readStatus(rh.gs(R.string.user_request), new Callback() {
- @Override
- public void run() {
- runOnUiThread(() -> refreshButton.setEnabled(true));
- }
- });
- });
-
- return view;
- }
-
- @Override
- public synchronized void onResume() {
- super.onResume();
- disposable.add(rxBus
- .toObservable(EventComboPumpUpdateGUI.class)
- .observeOn(aapsSchedulers.getMain())
- .subscribe(event -> updateGui(), fabricPrivacy::logException)
- );
- disposable.add(rxBus
- .toObservable(EventQueueChanged.class)
- .observeOn(aapsSchedulers.getMain())
- .subscribe(event -> updateGui(), fabricPrivacy::logException)
- );
- updateGui();
- }
-
- @Override
- public synchronized void onPause() {
- super.onPause();
- disposable.clear();
- }
-
- private void runOnUiThread(Runnable action) {
- FragmentActivity activity = getActivity();
- if (activity != null) {
- activity.runOnUiThread(action);
- }
- }
-
- public void updateGui() {
-
- // state
- stateView.setText(comboPlugin.getStateSummary());
- PumpState ps = comboPlugin.getPump().state;
- if (ps.insulinState == PumpState.EMPTY || ps.batteryState == PumpState.EMPTY
- || ps.activeAlert != null && ps.activeAlert.errorCode != null) {
- stateView.setTextColor(rh.gac(getContext(), R.attr.warningColor));
- stateView.setTypeface(null, Typeface.BOLD);
- } else if (comboPlugin.getPump().state.suspended
- || ps.activeAlert != null && ps.activeAlert.warningCode != null) {
- stateView.setTextColor(rh.gac(getContext(), R.attr.omniYellowColor));
- stateView.setTypeface(null, Typeface.BOLD);
- } else {
- stateView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor));
- stateView.setTypeface(null, Typeface.NORMAL);
- }
-
- // activity
- String activity = comboPlugin.getPump().activity;
- if (activity != null) {
- activityView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor));
- activityView.setTextSize(14);
- activityView.setText(activity);
- } else if (commandQueue.size() > 0) {
- activityView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor));
- activityView.setTextSize(14);
- activityView.setText("");
- } else if (comboPlugin.isInitialized()) {
- activityView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor));
- activityView.setTextSize(20);
- activityView.setText("{fa-bed}");
- } else {
- activityView.setTextColor(rh.gac(getContext(), R.attr.warningColor));
- activityView.setTextSize(14);
- activityView.setText(rh.gs(R.string.pump_unreachable));
- }
-
- if (comboPlugin.isInitialized()) {
- // battery
- batteryView.setTextSize(20);
- if (ps.batteryState == PumpState.EMPTY) {
- batteryView.setText("{fa-battery-empty}");
- batteryView.setTextColor(rh.gac(getContext(), R.attr.warningColor));
- } else if (ps.batteryState == PumpState.LOW) {
- batteryView.setText("{fa-battery-quarter}");
- batteryView.setTextColor(rh.gac(getContext(), R.attr.omniYellowColor));
- } else {
- batteryView.setText("{fa-battery-full}");
- batteryView.setTextColor(Color.WHITE);
- }
-
- // reservoir
- int reservoirLevel = comboPlugin.getPump().reservoirLevel;
- if (reservoirLevel != -1) {
- reservoirView.setText(reservoirLevel + " " + rh.gs(R.string.insulin_unit_shortname));
- } else if (ps.insulinState == PumpState.LOW) {
- reservoirView.setText(rh.gs(R.string.combo_reservoir_low));
- } else if (ps.insulinState == PumpState.EMPTY) {
- reservoirView.setText(rh.gs(R.string.combo_reservoir_empty));
- } else {
- reservoirView.setText(rh.gs(R.string.combo_reservoir_normal));
- }
-
- if (ps.insulinState == PumpState.UNKNOWN) {
- reservoirView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor));
- reservoirView.setTypeface(null, Typeface.NORMAL);
- } else if (ps.insulinState == PumpState.LOW) {
- reservoirView.setTextColor(rh.gac(getContext(), R.attr.omniYellowColor));
- reservoirView.setTypeface(null, Typeface.BOLD);
- } else if (ps.insulinState == PumpState.EMPTY) {
- reservoirView.setTextColor(rh.gac(getContext(), R.attr.warningColor));
- reservoirView.setTypeface(null, Typeface.BOLD);
- } else {
- reservoirView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor));
- reservoirView.setTypeface(null, Typeface.NORMAL);
- }
-
- // last connection
- String minAgo = dateUtil.minAgo(rh, comboPlugin.getPump().lastSuccessfulCmdTime);
- long min = (System.currentTimeMillis() - comboPlugin.getPump().lastSuccessfulCmdTime) / 1000 / 60;
- if (comboPlugin.getPump().lastSuccessfulCmdTime + 60 * 1000 > System.currentTimeMillis()) {
- lastConnectionView.setText(R.string.combo_pump_connected_now);
- lastConnectionView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor));
- } else if (comboPlugin.getPump().lastSuccessfulCmdTime + 30 * 60 * 1000 < System.currentTimeMillis()) {
- lastConnectionView.setText(rh.gs(R.string.combo_no_pump_connection, min));
- lastConnectionView.setTextColor(rh.gac(getContext(), R.attr.warningColor));
- } else {
- lastConnectionView.setText(minAgo);
- lastConnectionView.setTextColor(rh.gac(getContext(), R.attr.defaultTextColor));
- }
-
- // last bolus
- Bolus bolus = comboPlugin.getPump().lastBolus;
- if (bolus != null) {
- long agoMsc = System.currentTimeMillis() - bolus.timestamp;
- double bolusMinAgo = agoMsc / 60d / 1000d;
- String unit = rh.gs(R.string.insulin_unit_shortname);
- String ago;
- if ((agoMsc < 60 * 1000)) {
- ago = rh.gs(R.string.combo_pump_connected_now);
- } else if (bolusMinAgo < 60) {
- ago = dateUtil.minAgo(rh, bolus.timestamp);
- } else {
- ago = dateUtil.hourAgo(bolus.timestamp, rh);
- }
- lastBolusView.setText(rh.gs(R.string.combo_last_bolus, bolus.amount, unit, ago));
- } else {
- lastBolusView.setText("");
- }
-
- // base basal rate
- baseBasalRate.setText(rh.gs(R.string.pump_basebasalrate, comboPlugin.getBaseBasalRate()));
-
- // TBR
- String tbrStr = "";
- if (ps.tbrPercent != -1 && ps.tbrPercent != 100) {
- long minSinceRead = (System.currentTimeMillis() - comboPlugin.getPump().state.timestamp) / 1000 / 60;
- long remaining = ps.tbrRemainingDuration - minSinceRead;
- if (remaining >= 0) {
- tbrStr = rh.gs(R.string.combo_tbr_remaining, ps.tbrPercent, remaining);
- }
- }
- tempBasalText.setText(tbrStr);
-
- // stats
- bolusCount.setText(String.valueOf(comboPlugin.getBolusesDelivered()));
- tbrCount.setText(String.valueOf(comboPlugin.getTbrsSet()));
-
- updateErrorDisplay(false);
- } else {
- updateErrorDisplay(true);
- }
- }
-
- private void updateErrorDisplay(boolean forceHide) {
- int errorCount = -1;
-
- if (!forceHide) {
- ComboErrorUtil.DisplayType displayType = errorUtil.getDisplayType();
-
- if (displayType== ComboErrorUtil.DisplayType.ON_ERROR || displayType== ComboErrorUtil.DisplayType.ALWAYS) {
- int errorCountInternal = errorUtil.getErrorCount();
-
- if (errorCountInternal>0) {
- errorCount = errorCountInternal;
- } else if (displayType== ComboErrorUtil.DisplayType.ALWAYS) {
- errorCount = 0;
- }
- }
- }
-
- if (errorCount >=0) {
- errorCountDelimiter.setVisibility(View.VISIBLE);
- errorCountLayout.setVisibility(View.VISIBLE);
- errorCountLabel.setVisibility(View.VISIBLE);
- errorCountDots.setVisibility(View.VISIBLE);
- errorCountValue.setVisibility(View.VISIBLE);
- errorCountValue.setText(errorCount==0 ?
- "-" :
- ""+errorCount);
- } else {
- errorCountDelimiter.setVisibility(View.GONE);
- errorCountLayout.setVisibility(View.GONE);
- errorCountLabel.setVisibility(View.GONE);
- errorCountDots.setVisibility(View.GONE);
- errorCountValue.setVisibility(View.GONE);
- }
- }
-}
diff --git a/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.kt b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.kt
new file mode 100644
index 0000000000..91b6a34aa0
--- /dev/null
+++ b/combo/src/main/java/info/nightscout/androidaps/plugins/pump/combo/ComboFragment.kt
@@ -0,0 +1,254 @@
+package info.nightscout.androidaps.plugins.pump.combo
+
+import android.annotation.SuppressLint
+import android.graphics.Color
+import android.graphics.Typeface
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import dagger.android.support.DaggerFragment
+import info.nightscout.androidaps.combo.R
+import info.nightscout.androidaps.combo.databinding.CombopumpFragmentBinding
+import info.nightscout.androidaps.extensions.runOnUiThread
+import info.nightscout.androidaps.interfaces.CommandQueue
+import info.nightscout.androidaps.plugins.bus.RxBus
+import info.nightscout.androidaps.plugins.pump.combo.data.ComboErrorUtil
+import info.nightscout.androidaps.plugins.pump.combo.data.ComboErrorUtil.DisplayType
+import info.nightscout.androidaps.plugins.pump.combo.events.EventComboPumpUpdateGUI
+import info.nightscout.androidaps.plugins.pump.combo.ruffyscripter.PumpState
+import info.nightscout.androidaps.queue.Callback
+import info.nightscout.androidaps.queue.events.EventQueueChanged
+import info.nightscout.androidaps.utils.DateUtil
+import info.nightscout.androidaps.utils.FabricPrivacy
+import info.nightscout.androidaps.utils.resources.ResourceHelper
+import info.nightscout.androidaps.utils.rx.AapsSchedulers
+import io.reactivex.rxjava3.disposables.CompositeDisposable
+import io.reactivex.rxjava3.kotlin.plusAssign
+import javax.inject.Inject
+
+class ComboFragment : DaggerFragment() {
+
+ @Inject lateinit var comboPlugin: ComboPlugin
+ @Inject lateinit var commandQueue: CommandQueue
+ @Inject lateinit var rh: ResourceHelper
+ @Inject lateinit var rxBus: RxBus
+ @Inject lateinit var dateUtil: DateUtil
+ @Inject lateinit var fabricPrivacy: FabricPrivacy
+ @Inject lateinit var aapsSchedulers: AapsSchedulers
+ @Inject lateinit var errorUtil: ComboErrorUtil
+
+ private val disposable = CompositeDisposable()
+
+ private var _binding: CombopumpFragmentBinding? = null
+
+ // This property is only valid between onCreateView and
+ // onDestroyView.
+ private val binding get() = _binding!!
+
+ override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View =
+ CombopumpFragmentBinding.inflate(inflater, container, false).also { _binding = it }.root
+
+ @Synchronized override fun onResume() {
+ super.onResume()
+ disposable += rxBus
+ .toObservable(EventComboPumpUpdateGUI::class.java)
+ .observeOn(aapsSchedulers.main)
+ .subscribe({ updateGui() }, fabricPrivacy::logException)
+ disposable += rxBus
+ .toObservable(EventQueueChanged::class.java)
+ .observeOn(aapsSchedulers.main)
+ .subscribe({ updateGui() }, fabricPrivacy::logException)
+ binding.comboRefreshButton.setOnClickListener {
+ binding.comboRefreshButton.isEnabled = false
+ commandQueue.readStatus(rh.gs(R.string.user_request), object : Callback() {
+ override fun run() {
+ runOnUiThread { binding.comboRefreshButton.isEnabled = true }
+ }
+ })
+ }
+ updateGui()
+ }
+
+ @Synchronized override fun onPause() {
+ super.onPause()
+ disposable.clear()
+ }
+
+ @SuppressLint("SetTextI18n")
+ fun updateGui() {
+ _binding ?: return
+ // state
+ binding.comboState.text = comboPlugin.stateSummary
+ val ps = comboPlugin.pump.state
+ if (ps.insulinState == PumpState.EMPTY || ps.batteryState == PumpState.EMPTY || ps.activeAlert != null && ps.activeAlert.errorCode != null) {
+ binding.comboState.setTextColor(rh.gac(context, R.attr.warningColor))
+ binding.comboState.setTypeface(null, Typeface.BOLD)
+ } else if (comboPlugin.pump.state.suspended
+ || ps.activeAlert != null && ps.activeAlert.warningCode != null
+ ) {
+ binding.comboState.setTextColor(rh.gac(context, R.attr.omniYellowColor))
+ binding.comboState.setTypeface(null, Typeface.BOLD)
+ } else {
+ binding.comboState.setTextColor(rh.gac(context, R.attr.defaultTextColor))
+ binding.comboState.setTypeface(null, Typeface.NORMAL)
+ }
+
+ // activity
+ val activity = comboPlugin.pump.activity
+ when {
+ activity != null -> {
+ binding.comboActivity.setTextColor(rh.gac(context, R.attr.defaultTextColor))
+ binding.comboActivity.textSize = 14f
+ binding.comboActivity.text = activity
+ }
+
+ commandQueue.size() > 0 -> {
+ binding.comboActivity.setTextColor(rh.gac(context, R.attr.defaultTextColor))
+ binding.comboActivity.textSize = 14f
+ binding.comboActivity.text = ""
+ }
+
+ comboPlugin.isInitialized() -> {
+ binding.comboActivity.setTextColor(rh.gac(context, R.attr.defaultTextColor))
+ binding.comboActivity.textSize = 20f
+ binding.comboActivity.text = "{fa-bed}"
+ }
+
+ else -> {
+ binding.comboActivity.setTextColor(rh.gac(context, R.attr.warningColor))
+ binding.comboActivity.textSize = 14f
+ binding.comboActivity.text = rh.gs(R.string.pump_unreachable)
+ }
+ }
+ if (comboPlugin.isInitialized()) {
+ // battery
+ binding.comboPumpstateBattery.textSize = 20f
+ when (ps.batteryState) {
+ PumpState.EMPTY -> {
+ binding.comboPumpstateBattery.text = "{fa-battery-empty}"
+ binding.comboPumpstateBattery.setTextColor(rh.gac(context, R.attr.warningColor))
+ }
+
+ PumpState.LOW -> {
+ binding.comboPumpstateBattery.text = "{fa-battery-quarter}"
+ binding.comboPumpstateBattery.setTextColor(rh.gac(context, R.attr.omniYellowColor))
+ }
+
+ else -> {
+ binding.comboPumpstateBattery.text = "{fa-battery-full}"
+ binding.comboPumpstateBattery.setTextColor(Color.WHITE)
+ }
+ }
+
+ // reservoir
+ val reservoirLevel = comboPlugin.pump.reservoirLevel
+ when {
+ reservoirLevel != -1 -> binding.comboInsulinstate.text = reservoirLevel.toString() + " " + rh.gs(R.string.insulin_unit_shortname)
+ ps.insulinState == PumpState.LOW -> binding.comboInsulinstate.text = rh.gs(R.string.combo_reservoir_low)
+ ps.insulinState == PumpState.EMPTY -> binding.comboInsulinstate.text = rh.gs(R.string.combo_reservoir_empty)
+ else -> binding.comboInsulinstate.text = rh.gs(R.string.combo_reservoir_normal)
+ }
+ when (ps.insulinState) {
+ PumpState.UNKNOWN -> {
+ binding.comboInsulinstate.setTextColor(rh.gac(context, R.attr.defaultTextColor))
+ binding.comboInsulinstate.setTypeface(null, Typeface.NORMAL)
+ }
+ PumpState.LOW -> {
+ binding.comboInsulinstate.setTextColor(rh.gac(context, R.attr.omniYellowColor))
+ binding.comboInsulinstate.setTypeface(null, Typeface.BOLD)
+ }
+ PumpState.EMPTY -> {
+ binding.comboInsulinstate.setTextColor(rh.gac(context, R.attr.warningColor))
+ binding.comboInsulinstate.setTypeface(null, Typeface.BOLD)
+ }
+ else -> {
+ binding.comboInsulinstate.setTextColor(rh.gac(context, R.attr.defaultTextColor))
+ binding.comboInsulinstate.setTypeface(null, Typeface.NORMAL)
+ }
+ }
+
+ // last connection
+ val minAgo = dateUtil.minAgo(rh, comboPlugin.pump.lastSuccessfulCmdTime)
+ val min = (System.currentTimeMillis() - comboPlugin.pump.lastSuccessfulCmdTime) / 1000 / 60
+ when {
+ comboPlugin.pump.lastSuccessfulCmdTime + 60 * 1000 > System.currentTimeMillis() -> {
+ binding.comboLastconnection.setText(R.string.combo_pump_connected_now)
+ binding.comboLastconnection.setTextColor(rh.gac(context, R.attr.defaultTextColor))
+ }
+ comboPlugin.pump.lastSuccessfulCmdTime + 30 * 60 * 1000 < System.currentTimeMillis() -> {
+ binding.comboLastconnection.text = rh.gs(R.string.combo_no_pump_connection, min)
+ binding.comboLastconnection.setTextColor(rh.gac(context, R.attr.warningColor))
+ }
+ else -> {
+ binding.comboLastconnection.text = minAgo
+ binding.comboLastconnection.setTextColor(rh.gac(context, R.attr.defaultTextColor))
+ }
+ }
+
+ // last bolus
+ val bolus = comboPlugin.pump.lastBolus
+ if (bolus != null) {
+ val agoMsc = System.currentTimeMillis() - bolus.timestamp
+ val bolusMinAgo = agoMsc / 60.0 / 1000.0
+ val unit = rh.gs(R.string.insulin_unit_shortname)
+ val ago: String = when {
+ agoMsc < 60 * 1000 -> rh.gs(R.string.combo_pump_connected_now)
+ bolusMinAgo < 60 -> dateUtil.minAgo(rh, bolus.timestamp)
+
+ else -> dateUtil.hourAgo(bolus.timestamp, rh)
+ }
+ binding.comboLastBolus.text = rh.gs(R.string.combo_last_bolus, bolus.amount, unit, ago)
+ } else {
+ binding.comboLastBolus.text = ""
+ }
+
+ // base basal rate
+ binding.comboBaseBasalRate.text = rh.gs(R.string.pump_basebasalrate, comboPlugin.baseBasalRate)
+
+ // TBR
+ var tbrStr = ""
+ if (ps.tbrPercent != -1 && ps.tbrPercent != 100) {
+ val minSinceRead = (System.currentTimeMillis() - comboPlugin.pump.state.timestamp) / 1000 / 60
+ val remaining = ps.tbrRemainingDuration - minSinceRead
+ if (remaining >= 0) {
+ tbrStr = rh.gs(R.string.combo_tbr_remaining, ps.tbrPercent, remaining)
+ }
+ }
+ binding.comboTempBasal.text = tbrStr
+
+ // stats
+ binding.comboBolusCount.text = comboPlugin.bolusesDelivered.toString()
+ binding.comboTbrCount.text = comboPlugin.tbrsSet.toString()
+ binding.serialNumber.text = comboPlugin.serialNumber()
+ updateErrorDisplay(false)
+ } else {
+ updateErrorDisplay(true)
+ }
+ }
+
+ private fun updateErrorDisplay(forceHide: Boolean) {
+ var errorCount = -1
+ if (!forceHide) {
+ val displayType = errorUtil.displayType
+ if (displayType === DisplayType.ON_ERROR || displayType === DisplayType.ALWAYS) {
+ val errorCountInternal = errorUtil.errorCount
+ if (errorCountInternal > 0) {
+ errorCount = errorCountInternal
+ } else if (displayType === DisplayType.ALWAYS) {
+ errorCount = 0
+ }
+ }
+ }
+ if (errorCount >= 0) {
+ binding.comboConnectionErrorValue.visibility = View.VISIBLE
+ binding.comboConnectionErrorLayout.visibility = View.VISIBLE
+ binding.comboConnectionErrorValue.visibility = View.VISIBLE
+ binding.comboConnectionErrorValue.text = if (errorCount == 0) "-" else "" + errorCount
+ } else {
+ binding.comboConnectionErrorValue.visibility = View.GONE
+ binding.comboConnectionErrorLayout.visibility = View.GONE
+ binding.comboConnectionErrorValue.visibility = View.GONE
+ }
+ }
+}
\ No newline at end of file
diff --git a/combo/src/main/res/layout/combopump_fragment.xml b/combo/src/main/res/layout/combopump_fragment.xml
index 8225bb48e7..3225c78e76 100644
--- a/combo/src/main/res/layout/combopump_fragment.xml
+++ b/combo/src/main/res/layout/combopump_fragment.xml
@@ -30,7 +30,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/combo_pump_state_label"
android:textSize="14sp" />
@@ -50,7 +50,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -59,8 +59,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -75,7 +75,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/combo_pump_activity_label"
android:textSize="14sp" />
@@ -95,7 +95,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -104,12 +104,11 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
-
@@ -141,7 +140,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:text=""
android:textSize="14sp" />
@@ -151,8 +150,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -167,7 +166,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/reservoir_label"
android:textSize="14sp" />
@@ -187,7 +186,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -196,8 +195,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -212,7 +211,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/lastconnection_label"
android:textSize="14sp" />
@@ -232,7 +231,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -241,8 +240,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -257,7 +256,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/lastbolus_label"
android:textSize="14sp" />
@@ -277,7 +276,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -286,8 +285,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -302,7 +301,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/basebasalrate_label"
android:textSize="14sp" />
@@ -322,7 +321,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -331,8 +330,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -347,7 +346,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/tempbasal_label"
android:textSize="14sp" />
@@ -367,7 +366,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -376,8 +375,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -392,7 +391,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/combo_bolus_count"
android:textSize="14sp" />
@@ -412,7 +411,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -421,8 +420,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -437,7 +436,7 @@
android:layout_height="wrap_content"
android:layout_weight="1.5"
android:gravity="end"
- android:paddingRight="5dp"
+ android:paddingEnd="5dp"
android:text="@string/combo_tbr_count"
android:textSize="14sp" />
@@ -457,7 +456,7 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="start"
- android:paddingLeft="5dp"
+ android:paddingStart="5dp"
android:textSize="14sp" />
@@ -467,8 +466,8 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
android:layout_marginTop="5dp"
android:background="?android:attr/dividerHorizontal" />
@@ -479,17 +478,15 @@
android:orientation="horizontal">
@@ -514,8 +511,53 @@
android:layout_width="fill_parent"
android:layout_height="2dip"
android:layout_marginBottom="5dp"
- android:layout_marginLeft="20dp"
- android:layout_marginRight="20dp"
+ android:layout_marginStart="20dp"
+ android:layout_marginEnd="20dp"
+ android:layout_marginTop="5dp"
+ android:background="?android:attr/dividerHorizontal" />
+
+
+
+
+
+
+
+
+
+
+
+
@@ -534,7 +576,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
- android:paddingRight="4dp"
+ android:paddingEnd="4dp"
android:orientation="vertical">
diff --git a/core/src/main/java/info/nightscout/androidaps/activities/NoSplashAppCompatActivity.kt b/core/src/main/java/info/nightscout/androidaps/activities/NoSplashAppCompatActivity.kt
index 430c562448..eb93cbbc3c 100644
--- a/core/src/main/java/info/nightscout/androidaps/activities/NoSplashAppCompatActivity.kt
+++ b/core/src/main/java/info/nightscout/androidaps/activities/NoSplashAppCompatActivity.kt
@@ -8,7 +8,6 @@ import info.nightscout.androidaps.utils.locale.LocaleHelper
import io.reactivex.rxjava3.disposables.CompositeDisposable
import javax.inject.Inject
-
open class NoSplashAppCompatActivity : DaggerAppCompatActivityWithResult() {
@Inject lateinit var rxBus: RxBus
diff --git a/core/src/main/java/info/nightscout/androidaps/data/IobTotal.kt b/core/src/main/java/info/nightscout/androidaps/data/IobTotal.kt
index 629eabe3b8..74bd1713b3 100644
--- a/core/src/main/java/info/nightscout/androidaps/data/IobTotal.kt
+++ b/core/src/main/java/info/nightscout/androidaps/data/IobTotal.kt
@@ -118,7 +118,6 @@ class IobTotal(val time: Long) : DataPointWithLabelInterface {
return color
}
-
fun setColor(color: Int): IobTotal {
this.color = color
return this
@@ -141,4 +140,4 @@ class IobTotal(val time: Long) : DataPointWithLabelInterface {
return result
}
}
-}
\ No newline at end of file
+}
diff --git a/core/src/main/java/info/nightscout/androidaps/dialogs/DialogFragmentWithDate.kt b/core/src/main/java/info/nightscout/androidaps/dialogs/DialogFragmentWithDate.kt
index a4cff0630e..7a56579093 100644
--- a/core/src/main/java/info/nightscout/androidaps/dialogs/DialogFragmentWithDate.kt
+++ b/core/src/main/java/info/nightscout/androidaps/dialogs/DialogFragmentWithDate.kt
@@ -1,7 +1,5 @@
package info.nightscout.androidaps.dialogs
-import android.app.DatePickerDialog
-import android.app.TimePickerDialog
import android.os.Bundle
import android.text.format.DateFormat
import android.view.View
@@ -11,12 +9,15 @@ import android.view.WindowManager
import android.widget.Button
import android.widget.TextView
import androidx.fragment.app.FragmentManager
+import com.google.android.material.datepicker.MaterialDatePicker
+import com.google.android.material.timepicker.MaterialTimePicker
+import com.google.android.material.timepicker.TimeFormat
import dagger.android.support.DaggerDialogFragment
import info.nightscout.androidaps.core.R
+import info.nightscout.androidaps.extensions.toVisibility
+import info.nightscout.androidaps.utils.DateUtil
import info.nightscout.shared.logging.AAPSLogger
import info.nightscout.shared.logging.LTag
-import info.nightscout.androidaps.utils.DateUtil
-import info.nightscout.androidaps.extensions.toVisibility
import info.nightscout.shared.sharedPreferences.SP
import java.util.*
import java.util.concurrent.atomic.AtomicBoolean
@@ -29,6 +30,7 @@ abstract class DialogFragmentWithDate : DaggerDialogFragment() {
@Inject lateinit var dateUtil: DateUtil
fun interface OnValueChangedListener {
+
fun onValueChanged(value: Long)
}
@@ -44,11 +46,6 @@ abstract class DialogFragmentWithDate : DaggerDialogFragment() {
//one shot guards
private var okClicked: AtomicBoolean = AtomicBoolean(false)
- companion object {
-
- private var seconds: Int = (Math.random() * 59.0).toInt()
- }
-
override fun onStart() {
super.onStart()
dialog?.window?.setLayout(
@@ -78,69 +75,44 @@ abstract class DialogFragmentWithDate : DaggerDialogFragment() {
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- eventDateView = view.findViewById(R.id.eventdate) as TextView?
- eventTimeView = view.findViewById(R.id.eventtime) as TextView?
-
eventTimeOriginal = savedInstanceState?.getLong("eventTimeOriginal") ?: dateUtil.nowWithoutMilliseconds()
eventTime = savedInstanceState?.getLong("eventTime") ?: eventTimeOriginal
+ eventDateView = view.findViewById(R.id.eventdate) as TextView?
eventDateView?.text = dateUtil.dateString(eventTime)
- eventTimeView?.text = dateUtil.timeString(eventTime)
+ eventDateView?.setOnClickListener {
+ val selection = dateUtil.timeStampToUtcDateMilis(eventTime)
+ MaterialDatePicker.Builder.datePicker()
+ .setSelection(selection)
+ .build()
+ .apply {
+ addOnPositiveButtonClickListener { selection ->
+ eventTime = dateUtil.mergeUtcDateToTimestamp(eventTime, selection)
+ eventDateView?.text = dateUtil.dateString(eventTime)
+ callValueChangedListener()
- // create an OnDateSetListener
- val dateSetListener =
- DatePickerDialog.OnDateSetListener { _, year, monthOfYear, dayOfMonth ->
- val cal = Calendar.getInstance()
- cal.timeInMillis = eventTime
- cal.set(Calendar.YEAR, year)
- cal.set(Calendar.MONTH, monthOfYear)
- cal.set(Calendar.DAY_OF_MONTH, dayOfMonth)
- eventTime = cal.timeInMillis
- eventDateView?.text = dateUtil.dateString(eventTime)
+ }
+ }
+ .show(parentFragmentManager, "event_time_date_picker")
+ }
+
+ eventTimeView = view.findViewById(R.id.eventtime) as TextView?
+ eventTimeView?.text = dateUtil.timeString(eventTime)
+ eventTimeView?.setOnClickListener {
+ val clockFormat = if (DateFormat.is24HourFormat(context)) TimeFormat.CLOCK_24H else TimeFormat.CLOCK_12H
+ val cal = Calendar.getInstance().apply { timeInMillis = eventTime }
+ val timePicker = MaterialTimePicker.Builder()
+ .setTimeFormat(clockFormat)
+ .setHour(cal.get(Calendar.HOUR_OF_DAY))
+ .setMinute(cal.get(Calendar.MINUTE))
+ .build()
+ timePicker.addOnPositiveButtonClickListener {
+ // Randomize seconds to prevent creating record of the same time, if user choose time manually
+ eventTime = dateUtil.mergeHourMinuteToTimestamp(eventTime, timePicker.hour, timePicker.minute, true)
+ eventTimeView?.text = dateUtil.timeString(eventTime)
callValueChangedListener()
}
-
- eventDateView?.setOnClickListener {
- context?.let {
- val cal = Calendar.getInstance()
- cal.timeInMillis = eventTime
- DatePickerDialog(
- it,
- dateSetListener,
- cal.get(Calendar.YEAR),
- cal.get(Calendar.MONTH),
- cal.get(Calendar.DAY_OF_MONTH)
- ).show()
- }
- }
-
- // create an OnTimeSetListener
- val timeSetListener = TimePickerDialog.OnTimeSetListener { _, hour, minute ->
- val cal = Calendar.getInstance()
- cal.timeInMillis = eventTime
- cal.set(Calendar.HOUR_OF_DAY, hour)
- cal.set(Calendar.MINUTE, minute)
- cal.set(
- Calendar.SECOND,
- seconds++
- ) // randomize seconds to prevent creating record of the same time, if user choose time manually
- eventTime = cal.timeInMillis
- eventTimeView?.text = dateUtil.timeString(eventTime)
- callValueChangedListener()
- }
-
- eventTimeView?.setOnClickListener {
- context?.let {
- val cal = Calendar.getInstance()
- cal.timeInMillis = eventTime
- TimePickerDialog(
- it,
- timeSetListener,
- cal.get(Calendar.HOUR_OF_DAY),
- cal.get(Calendar.MINUTE),
- DateFormat.is24HourFormat(context)
- ).show()
- }
+ timePicker.show(parentFragmentManager, "event_time_time_picker")
}
(view.findViewById(R.id.notes_layout) as View?)?.visibility =
@@ -189,4 +161,4 @@ abstract class DialogFragmentWithDate : DaggerDialogFragment() {
}
abstract fun submit(): Boolean
-}
\ No newline at end of file
+}
diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/Concurrency.kt b/core/src/main/java/info/nightscout/androidaps/extensions/Concurrency.kt
index e0ecdf7f37..e1da1919a5 100644
--- a/core/src/main/java/info/nightscout/androidaps/extensions/Concurrency.kt
+++ b/core/src/main/java/info/nightscout/androidaps/extensions/Concurrency.kt
@@ -1,6 +1,5 @@
package info.nightscout.androidaps.extensions
-
@Suppress("PLATFORM_CLASS_MAPPED_TO_KOTLIN", "NOTHING_TO_INLINE")
inline fun Any.wait() = (this as Object).wait()
diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/EffectiveProfileSwitchExtension.kt b/core/src/main/java/info/nightscout/androidaps/extensions/EffectiveProfileSwitchExtension.kt
index 009f143aca..1384908c4d 100644
--- a/core/src/main/java/info/nightscout/androidaps/extensions/EffectiveProfileSwitchExtension.kt
+++ b/core/src/main/java/info/nightscout/androidaps/extensions/EffectiveProfileSwitchExtension.kt
@@ -49,7 +49,6 @@ fun effectiveProfileSwitchFromJson(jsonObject: JSONObject, dateUtil: DateUtil):
val pureProfile = pureProfileFromJson(JSONObject(profileJson), dateUtil) ?: return null
val profileSealed = ProfileSealed.Pure(pureProfile)
-
return EffectiveProfileSwitch(
timestamp = timestamp,
basalBlocks = profileSealed.basalBlocks,
@@ -77,4 +76,4 @@ fun EffectiveProfileSwitch.GlucoseUnit.Companion.fromConstant(units: GlucoseUnit
if (units == GlucoseUnit.MGDL) EffectiveProfileSwitch.GlucoseUnit.MGDL
else EffectiveProfileSwitch.GlucoseUnit.MMOL
-fun JSONObject.isEffectiveProfileSwitch() = has("originalProfileName")
\ No newline at end of file
+fun JSONObject.isEffectiveProfileSwitch() = has("originalProfileName")
diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/JSONObjectExt.kt b/core/src/main/java/info/nightscout/androidaps/extensions/JSONObjectExt.kt
index 31ad6b567c..f4c9d40271 100644
--- a/core/src/main/java/info/nightscout/androidaps/extensions/JSONObjectExt.kt
+++ b/core/src/main/java/info/nightscout/androidaps/extensions/JSONObjectExt.kt
@@ -44,5 +44,3 @@ fun JSONObject.storeBoolean(@StringRes key: Int, sp: SP, rh: ResourceHelper): JS
if (has(rh.gs(key))) sp.putString(key, getBoolean(rh.gs(key)).toString())
return this
}
-
-
diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/OfflineEventExtension.kt b/core/src/main/java/info/nightscout/androidaps/extensions/OfflineEventExtension.kt
index 152a3fcb1d..f55acc3675 100644
--- a/core/src/main/java/info/nightscout/androidaps/extensions/OfflineEventExtension.kt
+++ b/core/src/main/java/info/nightscout/androidaps/extensions/OfflineEventExtension.kt
@@ -49,7 +49,6 @@ fun offlineEventFromJson(jsonObject: JSONObject): OfflineEvent? {
val reason = OfflineEvent.Reason.fromString(JsonHelper.safeGetString(jsonObject, "reason", OfflineEvent.Reason.OTHER.name))
-
return OfflineEvent(
timestamp = timestamp,
duration = durationInMilliseconds ?: T.mins(duration).msecs(),
@@ -62,5 +61,3 @@ fun offlineEventFromJson(jsonObject: JSONObject): OfflineEvent? {
it.interfaceIDs.pumpSerial = pumpSerial
}
}
-
-
diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/ProfileSwitchExtension.kt b/core/src/main/java/info/nightscout/androidaps/extensions/ProfileSwitchExtension.kt
index c612748869..c620493c58 100644
--- a/core/src/main/java/info/nightscout/androidaps/extensions/ProfileSwitchExtension.kt
+++ b/core/src/main/java/info/nightscout/androidaps/extensions/ProfileSwitchExtension.kt
@@ -84,7 +84,6 @@ fun profileSwitchFromJson(jsonObject: JSONObject, dateUtil: DateUtil, activePlug
} else pureProfileFromJson(JSONObject(profileJson), dateUtil) ?: return null
val profileSealed = ProfileSealed.Pure(pureProfile)
-
return ProfileSwitch(
timestamp = timestamp,
basalBlocks = profileSealed.basalBlocks,
@@ -155,5 +154,3 @@ fun ProfileSwitch.getCustomizedName(): String {
fun ProfileSwitch.GlucoseUnit.Companion.fromConstant(units: GlucoseUnit): ProfileSwitch.GlucoseUnit =
if (units == GlucoseUnit.MGDL) ProfileSwitch.GlucoseUnit.MGDL
else ProfileSwitch.GlucoseUnit.MMOL
-
-
diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/TherapyEventExtension.kt b/core/src/main/java/info/nightscout/androidaps/extensions/TherapyEventExtension.kt
index c18ef9a31f..15cc907285 100644
--- a/core/src/main/java/info/nightscout/androidaps/extensions/TherapyEventExtension.kt
+++ b/core/src/main/java/info/nightscout/androidaps/extensions/TherapyEventExtension.kt
@@ -123,5 +123,3 @@ fun List.isTherapyEventEvent5minBack(time: Long): Boolean {
}
return false
}
-
-
diff --git a/core/src/main/java/info/nightscout/androidaps/extensions/UserEntryExt.kt b/core/src/main/java/info/nightscout/androidaps/extensions/UserEntryExt.kt
index f38e9f384d..2e5c75787f 100644
--- a/core/src/main/java/info/nightscout/androidaps/extensions/UserEntryExt.kt
+++ b/core/src/main/java/info/nightscout/androidaps/extensions/UserEntryExt.kt
@@ -12,8 +12,8 @@ fun ColorGroup.colorId(): Int {
ColorGroup.Loop -> R.color.loopClosed
ColorGroup.Careportal -> R.color.high
ColorGroup.Pump -> R.color.iob
- ColorGroup.Aaps -> R.color.defaulttext
- else -> R.color.defaulttext
+ ColorGroup.Aaps -> R.color.defaultText
+ else -> R.color.defaultText
}
}
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.kt b/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.kt
index 6b6f79f493..a4b072057b 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.kt
+++ b/core/src/main/java/info/nightscout/androidaps/utils/DateUtil.kt
@@ -386,12 +386,40 @@ class DateUtil @Inject constructor(private val context: Context) {
.firstOrNull() ?: ZoneId.of("UTC")
)
+ fun timeStampToUtcDateMilis(timestamp: Long): Long {
+ val current = Calendar.getInstance().apply { timeInMillis = timestamp }
+ return Calendar.getInstance().apply {
+ set(Calendar.YEAR, current.get(Calendar.YEAR))
+ set(Calendar.MONTH, current.get(Calendar.MONTH))
+ set(Calendar.DAY_OF_MONTH, current.get(Calendar.DAY_OF_MONTH))
+ }.timeInMillis
+ }
+
+ fun mergeUtcDateToTimestamp(timestamp: Long, dateUtcMilis: Long): Long {
+ val selected = Calendar.getInstance().apply { timeInMillis = dateUtcMilis }
+ return Calendar.getInstance().apply {
+ timeInMillis = timestamp
+ set(Calendar.YEAR, selected.get(Calendar.YEAR))
+ set(Calendar.MONTH, selected.get(Calendar.MONTH))
+ set(Calendar.DAY_OF_MONTH, selected.get(Calendar.DAY_OF_MONTH))
+ }.timeInMillis
+ }
+
+ fun mergeHourMinuteToTimestamp(timestamp: Long, hour: Int, minute: Int, randomSecond: Boolean = false): Long {
+ return Calendar.getInstance().apply {
+ timeInMillis = timestamp
+ set(Calendar.HOUR_OF_DAY, hour)
+ set(Calendar.MINUTE, minute)
+ if (randomSecond) set(Calendar.SECOND, seconds++)
+ }.timeInMillis
+ }
+
companion object {
private val timeStrings = LongSparseArray()
-
+ private var seconds: Int = (Math.random() * 59.0).toInt()
// singletons to avoid repeated allocation
private var dfs: DecimalFormatSymbols? = null
private var df: DecimalFormat? = null
}
-}
\ No newline at end of file
+}
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/WarnColors.kt b/core/src/main/java/info/nightscout/androidaps/utils/WarnColors.kt
index 477b092343..bde450ec77 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/WarnColors.kt
+++ b/core/src/main/java/info/nightscout/androidaps/utils/WarnColors.kt
@@ -11,7 +11,6 @@ import javax.inject.Singleton
@Singleton
class WarnColors @Inject constructor(val rh: ResourceHelper) {
-
fun setColor(view: TextView?, value: Double, warnLevel: Double, urgentLevel: Double) =
view?.setTextColor( rh.gac( view.context ,when {
value >= urgentLevel -> R.attr.urgentColor
@@ -32,4 +31,4 @@ class WarnColors @Inject constructor(val rh: ResourceHelper) {
therapyEvent.isOlderThan(warnThreshold) -> R.attr.highColor
else -> R.attr.defaultTextColor
}))
-}
\ No newline at end of file
+}
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/OKDialog.kt b/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/OKDialog.kt
index 0de43096e0..53b25b4a67 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/OKDialog.kt
+++ b/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/OKDialog.kt
@@ -6,6 +6,7 @@ import android.content.DialogInterface
import android.os.SystemClock
import android.text.Spanned
import androidx.fragment.app.FragmentActivity
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
import info.nightscout.androidaps.core.R
import info.nightscout.androidaps.extensions.runOnUiThread
@@ -17,7 +18,7 @@ object OKDialog {
var notEmptyTitle = title
if (notEmptyTitle.isEmpty()) notEmptyTitle = context.getString(R.string.message)
- AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(context, R.style.DialogTheme)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(context, notEmptyTitle))
.setMessage(message)
.setPositiveButton(context.getString(R.string.ok)) { dialog: DialogInterface, _: Int ->
@@ -39,7 +40,7 @@ object OKDialog {
var notEmptyTitle = title
if (notEmptyTitle.isEmpty()) notEmptyTitle = activity.getString(R.string.message)
- AlertDialogHelper.Builder(activity, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(activity, R.style.DialogTheme)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(activity, notEmptyTitle))
.setMessage(message)
.setPositiveButton(activity.getString(R.string.ok)) { dialog: DialogInterface, _: Int ->
@@ -66,7 +67,7 @@ object OKDialog {
@SuppressLint("InflateParams")
fun showConfirmation(activity: FragmentActivity, title: String, message: Spanned, ok: Runnable?, cancel: Runnable? = null) {
var okClicked = false
- AlertDialogHelper.Builder(activity, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(activity, R.style.DialogTheme)
.setMessage(message)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(activity, title))
.setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _: Int ->
@@ -94,7 +95,7 @@ object OKDialog {
@SuppressLint("InflateParams")
fun showConfirmation(activity: FragmentActivity, title: String, message: String, ok: Runnable?, cancel: Runnable? = null) {
var okClicked = false
- AlertDialogHelper.Builder(activity, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(activity, R.style.DialogTheme)
.setMessage(message)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(activity, title))
.setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _: Int ->
@@ -126,7 +127,7 @@ object OKDialog {
@SuppressLint("InflateParams")
fun showConfirmation(context: Context, title: String, message: Spanned, ok: Runnable?, cancel: Runnable? = null) {
var okClicked = false
- AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(context, R.style.DialogTheme)
.setMessage(message)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title))
.setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _: Int ->
@@ -158,7 +159,7 @@ object OKDialog {
@SuppressLint("InflateParams")
fun showConfirmation(context: Context, title: String, message: String, ok: Runnable?, cancel: Runnable? = null) {
var okClicked = false
- AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(context, R.style.DialogTheme)
.setMessage(message)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title))
.setPositiveButton(android.R.string.ok) { dialog: DialogInterface, _: Int ->
@@ -186,7 +187,7 @@ object OKDialog {
@SuppressLint("InflateParams")
fun showConfirmation(context: Context, title: String, message: String, ok: DialogInterface.OnClickListener?, cancel: DialogInterface.OnClickListener? = null) {
var okClicked = false
- AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(context, R.style.DialogTheme)
.setMessage(message)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title))
.setPositiveButton(android.R.string.ok) { dialog: DialogInterface, which: Int ->
@@ -214,7 +215,7 @@ object OKDialog {
@SuppressLint("InflateParams")
fun showYesNoCancel(context: Context, title: String, message: String, yes: Runnable?, no: Runnable? = null) {
var okClicked = false
- AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ MaterialAlertDialogBuilder(context, R.style.DialogTheme)
.setMessage(message)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title))
.setPositiveButton(R.string.yes) { dialog: DialogInterface, _: Int ->
@@ -242,4 +243,4 @@ object OKDialog {
.setCanceledOnTouchOutside(false)
}
-}
\ No newline at end of file
+}
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/WarningDialog.kt b/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/WarningDialog.kt
index 38f3314667..1c72451ee3 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/WarningDialog.kt
+++ b/core/src/main/java/info/nightscout/androidaps/utils/alertDialogs/WarningDialog.kt
@@ -5,6 +5,7 @@ import android.content.Context
import android.content.DialogInterface
import android.os.SystemClock
import androidx.annotation.StringRes
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
import info.nightscout.androidaps.core.R
import info.nightscout.androidaps.extensions.runOnUiThread
@@ -15,7 +16,7 @@ object WarningDialog {
@SuppressLint("InflateParams")
fun showWarning(context: Context, title: String, message: String, @StringRes positiveButton: Int = -1, ok: (() -> Unit)? = null, cancel: (() -> Unit)? = null) {
var okClicked = false
- val builder = AlertDialogHelper.Builder(context, R.style.AppThemeWarningDialog)
+ val builder = MaterialAlertDialogBuilder(context, R.style.AppThemeWarningDialog)
.setMessage(message)
.setCustomTitle(AlertDialogHelper.buildCustomTitle(context, title, R.drawable.ic_header_warning, R.style.AppThemeWarningDialog))
.setNegativeButton(R.string.dismiss) { dialog: DialogInterface, _: Int ->
@@ -52,4 +53,4 @@ object WarningDialog {
dialog.setCanceledOnTouchOutside(true)
}
-}
\ No newline at end of file
+}
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/protection/PasswordCheck.kt b/core/src/main/java/info/nightscout/androidaps/utils/protection/PasswordCheck.kt
index a395cdc111..9d03d04cbc 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/protection/PasswordCheck.kt
+++ b/core/src/main/java/info/nightscout/androidaps/utils/protection/PasswordCheck.kt
@@ -11,6 +11,7 @@ import android.view.inputmethod.InputMethodManager
import android.widget.EditText
import android.widget.TextView
import androidx.annotation.StringRes
+import com.google.android.material.dialog.MaterialAlertDialogBuilder
import info.nightscout.androidaps.core.R
import info.nightscout.androidaps.interfaces.ActivePlugin
import info.nightscout.androidaps.plugins.general.maintenance.PrefFileListProvider
@@ -44,7 +45,7 @@ class PasswordCheck @Inject constructor(
return
}
val promptsView = LayoutInflater.from(context).inflate(R.layout.passwordprompt, null)
- val alertDialogBuilder = AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ val alertDialogBuilder = MaterialAlertDialogBuilder(context, R.style.DialogTheme)
alertDialogBuilder.setView(promptsView)
val userInput = promptsView.findViewById(R.id.password_prompt_pass) as EditText
@@ -101,7 +102,7 @@ class PasswordCheck @Inject constructor(
@SuppressLint("InflateParams")
fun setPassword(context: Context, @StringRes labelId: Int, @StringRes preference: Int, ok: ((String) -> Unit)? = null, cancel: (() -> Unit)? = null, clear: (() -> Unit)? = null, pinInput: Boolean = false) {
val promptsView = LayoutInflater.from(context).inflate(R.layout.passwordprompt, null)
- val alertDialogBuilder = AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ val alertDialogBuilder = MaterialAlertDialogBuilder(context, R.style.DialogTheme)
alertDialogBuilder.setView(promptsView)
val userInput = promptsView.findViewById(R.id.password_prompt_pass) as EditText
@@ -165,7 +166,7 @@ class PasswordCheck @Inject constructor(
@StringRes passwordWarning: Int?, ok: ((String) -> Unit)?, cancel: (() -> Unit)? = null) {
val promptsView = LayoutInflater.from(context).inflate(R.layout.passwordprompt, null)
- val alertDialogBuilder = AlertDialogHelper.Builder(context, R.style.DialogTheme)
+ val alertDialogBuilder = MaterialAlertDialogBuilder(context, R.style.DialogTheme)
alertDialogBuilder.setView(promptsView)
passwordExplanation?.let { alertDialogBuilder.setMessage(it) }
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/ui/SingleClickButton.kt b/core/src/main/java/info/nightscout/androidaps/utils/ui/SingleClickButton.kt
index 2caae9b808..ef336c2a52 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/ui/SingleClickButton.kt
+++ b/core/src/main/java/info/nightscout/androidaps/utils/ui/SingleClickButton.kt
@@ -2,12 +2,11 @@ package info.nightscout.androidaps.utils.ui
import android.content.Context
import android.util.AttributeSet
-import androidx.appcompat.R
-import androidx.appcompat.widget.AppCompatButton
+import info.nightscout.androidaps.core.R
import info.nightscout.shared.logging.StacktraceLoggerWrapper
import org.slf4j.Logger
-class SingleClickButton @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = R.attr.buttonStyle) : AppCompatButton(context, attrs, defStyleAttr) {
+class SingleClickButton @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = R.style.Widget_MaterialComponents_Button) : com.google.android.material.button.MaterialButton(context, attrs, defStyleAttr) {
override fun performClick(): Boolean = guardClick { super.performClick() }
override fun callOnClick(): Boolean = guardClick { super.callOnClick() }
diff --git a/core/src/main/java/info/nightscout/androidaps/utils/userEntry/UserEntryPresentationHelper.kt b/core/src/main/java/info/nightscout/androidaps/utils/userEntry/UserEntryPresentationHelper.kt
index 88d7b75f47..9f2daa57b4 100644
--- a/core/src/main/java/info/nightscout/androidaps/utils/userEntry/UserEntryPresentationHelper.kt
+++ b/core/src/main/java/info/nightscout/androidaps/utils/userEntry/UserEntryPresentationHelper.kt
@@ -36,8 +36,8 @@ class UserEntryPresentationHelper @Inject constructor(
ColorGroup.Loop -> R.color.loopClosed
ColorGroup.Careportal -> R.color.high
ColorGroup.Pump -> R.color.loopDisconnected
- ColorGroup.Aaps -> R.color.defaulttext
- else -> R.color.defaulttext
+ ColorGroup.Aaps -> R.color.defaultText
+ else -> R.color.defaultText
}
fun iconId(source: Sources): Int = when (source) {
diff --git a/core/src/main/res/drawable/ic_cp_pump_canula.xml b/core/src/main/res/drawable/ic_cp_pump_canula.xml
index 7e8bce4d17..b37a3c6903 100644
--- a/core/src/main/res/drawable/ic_cp_pump_canula.xml
+++ b/core/src/main/res/drawable/ic_cp_pump_canula.xml
@@ -5,5 +5,5 @@
android:viewportHeight="24">
+ android:fillColor="?attr/pumpCannulaColor"/>
diff --git a/core/src/main/res/drawable/ic_cp_stats.xml b/core/src/main/res/drawable/ic_cp_stats.xml
index 81b3952eb4..a95eef3884 100644
--- a/core/src/main/res/drawable/ic_cp_stats.xml
+++ b/core/src/main/res/drawable/ic_cp_stats.xml
@@ -7,24 +7,24 @@
android:pathData="M5.719,19.125L5.719,11.828"
android:strokeWidth="2.2677"
android:fillColor="#00000000"
- android:strokeColor="#FEAF05"
+ android:strokeColor="?attr/statsColor"
android:strokeLineCap="round"/>
diff --git a/core/src/main/res/drawable/ic_temptarget_high.xml b/core/src/main/res/drawable/ic_temptarget_high.xml
index ae0e9799ca..8f0cbfc254 100644
--- a/core/src/main/res/drawable/ic_temptarget_high.xml
+++ b/core/src/main/res/drawable/ic_temptarget_high.xml
@@ -5,7 +5,7 @@
android:viewportHeight="24">
+ android:fillColor="?attr/tempTargetBgInRange"/>
diff --git a/core/src/main/res/layout/activity_tdd_stats.xml b/core/src/main/res/layout/activity_tdd_stats.xml
index b405ab8a5b..e73f296e22 100644
--- a/core/src/main/res/layout/activity_tdd_stats.xml
+++ b/core/src/main/res/layout/activity_tdd_stats.xml
@@ -146,7 +146,6 @@
-
-
\ No newline at end of file
+
diff --git a/core/src/main/res/layout/datetime.xml b/core/src/main/res/layout/datetime.xml
index f4e4d538da..507595174d 100644
--- a/core/src/main/res/layout/datetime.xml
+++ b/core/src/main/res/layout/datetime.xml
@@ -1,9 +1,10 @@
+ android:orientation="horizontal"
+ android:paddingTop="2dp">
@@ -24,10 +25,10 @@
android:layout_gravity="center"
android:layout_marginEnd="20dp"
android:background="@drawable/background_input_border"
- android:foreground="?attr/selectableItemBackgroundBorderless"
android:clickable="true"
+ android:foreground="?attr/selectableItemBackgroundBorderless"
android:padding="10dp"
- android:text="2017/05/05" />
+ tools:text="2017/05/05" />
+ tools:text="08:20pm" />
diff --git a/core/src/main/res/layout/dialog_alert_custom_title.xml b/core/src/main/res/layout/dialog_alert_custom_title.xml
index 624b970c12..0c0641954d 100644
--- a/core/src/main/res/layout/dialog_alert_custom_title.xml
+++ b/core/src/main/res/layout/dialog_alert_custom_title.xml
@@ -18,6 +18,7 @@
android:id="@+id/alertdialog_icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:importantForAccessibility="no"
app:tint="?dialogTitleIconTint" />
-
\ No newline at end of file
+
diff --git a/core/src/main/res/layout/dialog_bolusprogress.xml b/core/src/main/res/layout/dialog_bolusprogress.xml
index 1fbba9c730..b2fefbbecd 100644
--- a/core/src/main/res/layout/dialog_bolusprogress.xml
+++ b/core/src/main/res/layout/dialog_bolusprogress.xml
@@ -25,8 +25,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:layout_toEndOf="@id/header_icon"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge"
@@ -46,8 +46,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp"
tools:text="Delivering 1.9U"/>
diff --git a/core/src/main/res/layout/dialog_error.xml b/core/src/main/res/layout/dialog_error.xml
index d1a3c83577..23f9f6c08f 100644
--- a/core/src/main/res/layout/dialog_error.xml
+++ b/core/src/main/res/layout/dialog_error.xml
@@ -24,8 +24,8 @@
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:text="@string/error"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -44,8 +44,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
+ android:paddingStart="10dp"
+ android:paddingEnd="10dp"
android:textAppearance="@style/TextAppearance.AppCompat.Small" />
diff --git a/core/src/main/res/layout/dialog_profileviewer.xml b/core/src/main/res/layout/dialog_profileviewer.xml
index 63205636d9..791a5cdee3 100644
--- a/core/src/main/res/layout/dialog_profileviewer.xml
+++ b/core/src/main/res/layout/dialog_profileviewer.xml
@@ -33,8 +33,8 @@
android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:layout_gravity="center"
- android:layout_marginLeft="10dp"
- android:layout_marginRight="10dp"
+ android:layout_marginStart="10dp"
+ android:layout_marginEnd="10dp"
android:layout_toEndOf="@id/header_icon"
android:textAlignment="center"
android:textAppearance="?android:attr/textAppearanceLarge" />
@@ -110,9 +110,9 @@
@@ -155,9 +155,9 @@
@@ -200,9 +200,9 @@
@@ -251,9 +251,9 @@
@@ -302,9 +302,9 @@
@@ -388,9 +388,9 @@
diff --git a/core/src/main/res/layout/maintenance_import_list_item.xml b/core/src/main/res/layout/maintenance_import_list_item.xml
index 50859ad4c5..d7e8cd1f18 100644
--- a/core/src/main/res/layout/maintenance_import_list_item.xml
+++ b/core/src/main/res/layout/maintenance_import_list_item.xml
@@ -1,5 +1,6 @@
-
@@ -28,7 +27,8 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:baselineAligned="true"
- android:orientation="horizontal">
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
@@ -47,6 +48,7 @@
android:layout_weight="1"
android:ellipsize="none"
android:maxLines="2"
+ android:paddingStart="0dp"
android:paddingEnd="10dp"
android:scrollHorizontally="false"
android:text="File name here"
@@ -54,7 +56,6 @@
android:textColor="?attr/importListFileNameColor"
tools:ignore="HardcodedText" />
-
-
+ android:orientation="horizontal"
+ tools:ignore="UseCompoundDrawables">
@@ -111,17 +112,14 @@
android:textColor="?attr/importListAdditionalInfoColor"
tools:ignore="HardcodedText" />
-
-
-
diff --git a/core/src/main/res/layout/passwordprompt.xml b/core/src/main/res/layout/passwordprompt.xml
index ea4209edc3..05c300a702 100644
--- a/core/src/main/res/layout/passwordprompt.xml
+++ b/core/src/main/res/layout/passwordprompt.xml
@@ -21,9 +21,11 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/password_hint"
+ android:importantForAutofill="no"
android:inputType="textPassword">
+
-
\ No newline at end of file
+
diff --git a/core/src/main/res/layout/toast.xml b/core/src/main/res/layout/toast.xml
index 32175b4065..8b79189760 100644
--- a/core/src/main/res/layout/toast.xml
+++ b/core/src/main/res/layout/toast.xml
@@ -11,7 +11,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
- android:layout_marginLeft="6dp"
+ android:layout_marginStart="6dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
app:srcCompat="@drawable/ic_toast_check"
@@ -22,12 +22,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
- android:layout_marginLeft="6dp"
+ android:layout_marginStart="6dp"
android:layout_marginTop="4dp"
- android:layout_marginRight="18dp"
+ android:layout_marginEnd="18dp"
android:layout_marginBottom="4dp"
- android:text="Toast goes here..."
android:textColor="?attr/toastBaseTextColor"
android:textSize="18sp"
- tools:ignore="HardcodedText,RtlHardcoded" />
-
\ No newline at end of file
+ tools:ignore="RtlHardcoded"
+ tools:text="Toast goes here..." />
+
+
diff --git a/core/src/main/res/values-night/colors.xml b/core/src/main/res/values-night/colors.xml
index 56c54d9d6e..23f2ee9a9a 100644
--- a/core/src/main/res/values-night/colors.xml
+++ b/core/src/main/res/values-night/colors.xml
@@ -23,8 +23,8 @@
#1c171c
#FFFFFF
- #000000
- #B3FFFFFF
+ #000000
+ #B3FFFFFF
#262626
@@ -60,9 +60,9 @@
#FF000000
#C803A9F4
#FFFF5555
- #BBBBBB
+ #BBBBBB
-
+
@color/buttonBackground
@@ -70,7 +70,6 @@
#505050
#00ffff
-
#939393
#00C03E
@@ -79,7 +78,7 @@
#FF1313
- #00FF00
+ #00FF00
#FF0000
#FFFF00
#1e88e5
@@ -92,6 +91,7 @@
#E83258
#00FFFF
#00FFFF
+ #008585
#5a595b
#D000FF00
@@ -162,14 +162,14 @@
#FFFFFF
#d3f166
#00EEEE
- #FFFFFF00
- #FFFF00FF
+ #FFFFFF00
+ #FFFF00FF
#FFFF00
#FF0000
#7484E2
- #4000FF00
- #C83F51B5
- #757575
+ #4000FF00
+ #C83F51B5
+ #757575
#ff1a1a
#77dd77
#66FC0000
@@ -182,8 +182,6 @@
#ffffbb33
#ffff4444
- #779ECB
-
#f4d700
#67dfe8
#67dfe8
@@ -195,21 +193,25 @@
#FFDD7792
#ca77dd
+ #779ECB
#FF5722
+ #67e86a
+ #4CAF50
+ #FF9800
#de7550
#25912e
- #c8666666
- #7200FF00
- #72FF0000
- #72000000
+ #c8666666
+ #7200FF00
+ #72FF0000
+ #72000000
#000000
#FEAF05
#CF8BFE
- #67dfe8
+ #67dfe8
#67dfe8
#36FF00
#FEAF05
@@ -217,23 +219,24 @@
#FEAF05
#67DFE8
#6AE86D
+ #FEAF05
- #323232
- #424242
+ #323232
+ #424242
#3C3C3C
#666666
- #999999
+ #999999
#8c8c8c
#72000000
#c8666666
- #B2B2B2
- #4dB1B1B1
+ #B2B2B2
+ #4dB1B1B1
#33969696
#EBEBEA
- #000000
- #B3FFFFFF
+ #000000
+ #B3FFFFFF
#FFFF00
diff --git a/core/src/main/res/values-night/styles.xml b/core/src/main/res/values-night/styles.xml
index 33786a51d6..3cec089184 100644
--- a/core/src/main/res/values-night/styles.xml
+++ b/core/src/main/res/values-night/styles.xml
@@ -9,6 +9,8 @@
- @color/dialog_title_color
- @color/dialog_title_icon_tint
+ - @style/ThemeOverlay.MaterialComponents.TimePicker
+ - @style/ThemeOverlay.MaterialComponents.MaterialCalendar
- @color/aaps_theme_dark_secondary
- @color/primaryLightColorDefault
- @color/secondaryLightColorDefault
@@ -45,10 +47,10 @@
- @color/alarm
- @color/colorSetTempButton
-
- - @color/cardColorBackground
- @color/exercise
+
+ - @color/stats
- @color/low
@@ -72,7 +74,6 @@
- @color/pumpStatusBackground
- - ?attr/cardItemBackgroundColor
- @color/objectivesBackground
- @color/colorObjectivesDisabledText
@@ -90,34 +91,29 @@
- @color/ribbonCritical
- @color/ribbonTextDefault
- @color/ribbonTextWarning
-
- - @color/tabSelectedText
- - @color/tabText
- - @color/defaultbackground
+ - @color/defaultBackground
- @color/toastBase
-
- - @color/white_alpha_20
- @style/DialogTheme
- @style/DialogTheme
- @style/DialogTheme
- @color/sandGray
-
+
- 12dp
-
- - @color/graphgrid
- - @color/white_alpha_20
+
+ - @color/graphGrid
+ - @color/transparent
- @color/tempTargetBackground
- - @color/byodagray
- - @color/colorCalibrationButton
+ - @color/byodaGray
+ - @color/colorCalibrationButton
- @color/low
- @color/high
- - @color/inrange
+ - @color/inRange
- @color/helperProfile
- @color/examinedProfile
@@ -138,7 +134,7 @@
- @color/omni_yellow
- @color/omni_cyan
- @color/omni_green
- - @color/midgray
+ - @color/midGray
- @color/omnipod_wizard_finish_button
- @color/omni_yellow
@@ -171,6 +167,7 @@
- @color/carbs
- @color/tempTargetConfirmation
+ - @color/tempTargetConfirmation
- @color/loopSuspended
@@ -187,9 +184,12 @@
- @color/extendedBolus
- @color/extBolusStop
- - @color/actionBasal
+ - @color/actionBasal
- @color/actionBasal
- - @color/pumpCanula
+ - @color/actionBasal
+ - @color/actionBasal
+ - @color/actionBasal
+ - @color/pumpCannula
- @color/cgmInsert
- @color/pumpBattery
- @color/note
@@ -197,6 +197,7 @@
- @color/question
- @color/pumpHistory
- @color/userOption
+ - @color/sens
- @color/cob
- @color/uam
@@ -211,27 +212,33 @@
- @color/mdtp_line_dark
- @color/mdtp_line_dark
- - @color/inrangebackground
- - @color/devslopepos
- - @color/devslopeneg
- - @color/deviationgrey
- - @color/deviationblack
- - @color/deviationgreen
- - @color/deviationred
+ - @color/inRangeBackground
+ - @color/devSlopePos
+ - @color/devSlopeNeg
+ - @color/deviationGrey
+ - @color/deviationBlack
+ - @color/deviationGreen
+ - @color/deviationRed
- @color/prediction
- @color/iobPredAS
- @color/bgi
- @color/ratio
- @color/activity
- - @color/basebasal
+ - @color/baseBasal
+ - @color/white
- @color/black
- @color/black
- @color/plastic_grey
- - @color/textAppearancemediumDark
+ - @color/textAppearanceMediumDark
- @style/Aaps_ActionBarStyle
+
+ - @color/isAccomplished
+ - @color/sphere_plastic_grey
+ - @color/isCompleted
+ - @color/isNotCompleted
@@ -359,8 +366,6 @@
@@ -371,8 +378,6 @@