fix ratio color in light theme and make graph colors changable by theme change
This commit is contained in:
parent
aa29030328
commit
751cc0bbe8
10 changed files with 101 additions and 47 deletions
|
@ -34,18 +34,18 @@ class OverviewMenus @Inject constructor(
|
||||||
private val loop: Loop,
|
private val loop: Loop,
|
||||||
private val config: Config
|
private val config: Config
|
||||||
) {
|
) {
|
||||||
enum class CharType(@StringRes val nameId: Int, @AttrRes val attrId: Int, val primary: Boolean, val secondary: Boolean, @StringRes val shortnameId: Int) {
|
enum class CharType(@StringRes val nameId: Int, @AttrRes val attrId: Int, @AttrRes val attrTextId: Int, val primary: Boolean, val secondary: Boolean, @StringRes val shortnameId: Int) {
|
||||||
PRE(R.string.overview_show_predictions, R.attr.predictionColor, primary = true, secondary = false, shortnameId = R.string.prediction_shortname),
|
PRE(R.string.overview_show_predictions, R.attr.predictionColor, R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.prediction_shortname),
|
||||||
TREAT(R.string.overview_show_treatments, R.attr.predictionColor, primary = true, secondary = false, shortnameId = R.string.treatments_shortname),
|
TREAT(R.string.overview_show_treatments, R.attr.predictionColor, R.attr.menuTextColor, primary = true, secondary = false, shortnameId = R.string.treatments_shortname),
|
||||||
BAS(R.string.overview_show_basals, R.attr.basal, primary = true, secondary = false,shortnameId = R.string.basal_shortname),
|
BAS(R.string.overview_show_basals, R.attr.basal, R.attr.menuTextColor, primary = true, secondary = false,shortnameId = R.string.basal_shortname),
|
||||||
ABS(R.string.overview_show_absinsulin, R.attr.iobColor, primary = false, secondary = true,shortnameId = R.string.abs_insulin_shortname),
|
ABS(R.string.overview_show_absinsulin, R.attr.iobColor, R.attr.menuTextColor, primary = false, secondary = true,shortnameId = R.string.abs_insulin_shortname),
|
||||||
IOB(R.string.overview_show_iob, R.attr.iobColor, primary = false, secondary = true,shortnameId = R.string.iob),
|
IOB(R.string.overview_show_iob, R.attr.iobColor, R.attr.menuTextColor, primary = false, secondary = true,shortnameId = R.string.iob),
|
||||||
COB(R.string.overview_show_cob, R.attr.cobColor, primary = false, secondary = true,shortnameId = R.string.cob),
|
COB(R.string.overview_show_cob, R.attr.cobColor, R.attr.menuTextColor, primary = false, secondary = true,shortnameId = R.string.cob),
|
||||||
DEV(R.string.overview_show_deviations, R.attr.bgiColor, primary = false, secondary = true,shortnameId = R.string.deviation_shortname),
|
DEV(R.string.overview_show_deviations, R.attr.bgiColor, R.attr.menuTextColor, primary = false, secondary = true,shortnameId = R.string.deviation_shortname),
|
||||||
BGI(R.string.overview_show_bgi, R.attr.bgiColor, primary = false, secondary = true,shortnameId = R.string.bgi_shortname),
|
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, primary = false, secondary = true,shortnameId = R.string.sensitivity_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, primary = true, secondary = false,shortnameId = R.string.activity_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, 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 {
|
companion object {
|
||||||
|
@ -122,8 +122,8 @@ class OverviewMenus @Inject constructor(
|
||||||
if (insert) {
|
if (insert) {
|
||||||
val item = popup.menu.add(Menu.NONE, m.ordinal + 100 * (g + 1), Menu.NONE, rh.gs(m.nameId))
|
val item = popup.menu.add(Menu.NONE, m.ordinal + 100 * (g + 1), Menu.NONE, rh.gs(m.nameId))
|
||||||
val title = item.title
|
val title = item.title
|
||||||
val s = SpannableString(title)
|
val s = SpannableString(" " + title + " ")
|
||||||
s.setSpan(ForegroundColorSpan(rh.gc(R.color.black)), 0, s.length, 0)
|
s.setSpan(ForegroundColorSpan(rh.gac(context, m.attrTextId)), 0, s.length, 0)
|
||||||
s.setSpan(BackgroundColorSpan(rh.gac(context, m.attrId)), 0, s.length, 0)
|
s.setSpan(BackgroundColorSpan(rh.gac(context, m.attrId)), 0, s.length, 0)
|
||||||
item.title = s
|
item.title = s
|
||||||
item.isCheckable = true
|
item.isCheckable = true
|
||||||
|
|
|
@ -3,6 +3,7 @@ package info.nightscout.androidaps.workflow
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.DashPathEffect
|
import android.graphics.DashPathEffect
|
||||||
import android.graphics.Paint
|
import android.graphics.Paint
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.work.Worker
|
import androidx.work.Worker
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import androidx.work.workDataOf
|
import androidx.work.workDataOf
|
||||||
|
@ -30,9 +31,10 @@ class PrepareBasalDataWorker(
|
||||||
@Inject lateinit var profileFunction: ProfileFunction
|
@Inject lateinit var profileFunction: ProfileFunction
|
||||||
@Inject lateinit var rh: ResourceHelper
|
@Inject lateinit var rh: ResourceHelper
|
||||||
@Inject lateinit var rxBus: RxBus
|
@Inject lateinit var rxBus: RxBus
|
||||||
|
var ctx: Context
|
||||||
init {
|
init {
|
||||||
(context.applicationContext as HasAndroidInjector).androidInjector().inject(this)
|
(context.applicationContext as HasAndroidInjector).androidInjector().inject(this)
|
||||||
|
ctx = rh.getThemedCtx(context)
|
||||||
}
|
}
|
||||||
|
|
||||||
class PrepareBasalData(
|
class PrepareBasalData(
|
||||||
|
@ -116,12 +118,12 @@ class PrepareBasalDataWorker(
|
||||||
// create series
|
// create series
|
||||||
data.overviewData.baseBasalGraphSeries = LineGraphSeries(Array(baseBasalArray.size) { i -> baseBasalArray[i] }).also {
|
data.overviewData.baseBasalGraphSeries = LineGraphSeries(Array(baseBasalArray.size) { i -> baseBasalArray[i] }).also {
|
||||||
it.isDrawBackground = true
|
it.isDrawBackground = true
|
||||||
it.backgroundColor = rh.gc(R.color.basebasal)
|
it.backgroundColor = rh.gac(ctx, R.attr.basebasalColor )
|
||||||
it.thickness = 0
|
it.thickness = 0
|
||||||
}
|
}
|
||||||
data.overviewData.tempBasalGraphSeries = LineGraphSeries(Array(tempBasalArray.size) { i -> tempBasalArray[i] }).also {
|
data.overviewData.tempBasalGraphSeries = LineGraphSeries(Array(tempBasalArray.size) { i -> tempBasalArray[i] }).also {
|
||||||
it.isDrawBackground = true
|
it.isDrawBackground = true
|
||||||
it.backgroundColor = rh.gc(R.color.tempbasal)
|
it.backgroundColor = rh.gac(ctx, R.attr.tempBasalColor )
|
||||||
it.thickness = 0
|
it.thickness = 0
|
||||||
}
|
}
|
||||||
data.overviewData.basalLineGraphSeries = LineGraphSeries(Array(basalLineArray.size) { i -> basalLineArray[i] }).also {
|
data.overviewData.basalLineGraphSeries = LineGraphSeries(Array(basalLineArray.size) { i -> basalLineArray[i] }).also {
|
||||||
|
@ -129,14 +131,14 @@ class PrepareBasalDataWorker(
|
||||||
paint.style = Paint.Style.STROKE
|
paint.style = Paint.Style.STROKE
|
||||||
paint.strokeWidth = rh.getDisplayMetrics().scaledDensity * 2
|
paint.strokeWidth = rh.getDisplayMetrics().scaledDensity * 2
|
||||||
paint.pathEffect = DashPathEffect(floatArrayOf(2f, 4f), 0f)
|
paint.pathEffect = DashPathEffect(floatArrayOf(2f, 4f), 0f)
|
||||||
paint.color = rh.gc(R.color.basal)
|
paint.color = rh.gac(ctx, R.attr.basal )
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
data.overviewData.absoluteBasalGraphSeries = LineGraphSeries(Array(absoluteBasalLineArray.size) { i -> absoluteBasalLineArray[i] }).also {
|
data.overviewData.absoluteBasalGraphSeries = LineGraphSeries(Array(absoluteBasalLineArray.size) { i -> absoluteBasalLineArray[i] }).also {
|
||||||
it.setCustomPaint(Paint().also { absolutePaint ->
|
it.setCustomPaint(Paint().also { absolutePaint ->
|
||||||
absolutePaint.style = Paint.Style.STROKE
|
absolutePaint.style = Paint.Style.STROKE
|
||||||
absolutePaint.strokeWidth = rh.getDisplayMetrics().scaledDensity * 2
|
absolutePaint.strokeWidth = rh.getDisplayMetrics().scaledDensity * 2
|
||||||
absolutePaint.color = rh.gc(R.color.basal)
|
absolutePaint.color =rh.gac(ctx, R.attr.basal )
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_BASAL_DATA, 100, null))
|
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_BASAL_DATA, 100, null))
|
||||||
|
|
|
@ -30,6 +30,7 @@ import info.nightscout.androidaps.receivers.DataWorker
|
||||||
import info.nightscout.androidaps.utils.DateUtil
|
import info.nightscout.androidaps.utils.DateUtil
|
||||||
import info.nightscout.androidaps.utils.DecimalFormatter
|
import info.nightscout.androidaps.utils.DecimalFormatter
|
||||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
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.AAPSLogger
|
||||||
import info.nightscout.shared.logging.LTag
|
import info.nightscout.shared.logging.LTag
|
||||||
import java.util.ArrayList
|
import java.util.ArrayList
|
||||||
|
@ -51,9 +52,10 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
@Inject lateinit var aapsLogger: AAPSLogger
|
@Inject lateinit var aapsLogger: AAPSLogger
|
||||||
@Inject lateinit var repository: AppRepository
|
@Inject lateinit var repository: AppRepository
|
||||||
@Inject lateinit var rxBus: RxBus
|
@Inject lateinit var rxBus: RxBus
|
||||||
|
var ctx: Context
|
||||||
init {
|
init {
|
||||||
(context.applicationContext as HasAndroidInjector).androidInjector().inject(this)
|
(context.applicationContext as HasAndroidInjector).androidInjector().inject(this)
|
||||||
|
ctx = rh.getThemedCtx(context)
|
||||||
}
|
}
|
||||||
|
|
||||||
class PrepareIobAutosensData(
|
class PrepareIobAutosensData(
|
||||||
|
@ -64,7 +66,6 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
override fun doWork(): Result {
|
override fun doWork(): Result {
|
||||||
val data = dataWorker.pickupObject(inputData.getLong(DataWorker.STORE_KEY, -1)) as PrepareIobAutosensData?
|
val data = dataWorker.pickupObject(inputData.getLong(DataWorker.STORE_KEY, -1)) as PrepareIobAutosensData?
|
||||||
?: return Result.failure(workDataOf("Error" to "missing input data"))
|
?: return Result.failure(workDataOf("Error" to "missing input data"))
|
||||||
|
|
||||||
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_IOB_AUTOSENS_DATA, 0, null))
|
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_IOB_AUTOSENS_DATA, 0, null))
|
||||||
val iobArray: MutableList<ScaledDataPoint> = ArrayList()
|
val iobArray: MutableList<ScaledDataPoint> = ArrayList()
|
||||||
val absIobArray: MutableList<ScaledDataPoint> = ArrayList()
|
val absIobArray: MutableList<ScaledDataPoint> = ArrayList()
|
||||||
|
@ -158,15 +159,15 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
|
|
||||||
// DEVIATIONS
|
// DEVIATIONS
|
||||||
if (autosensData != null) {
|
if (autosensData != null) {
|
||||||
var color = rh.gc(R.color.deviationblack) // "="
|
var color = rh.gac( ctx, R.attr.deviationblackColor) // "="
|
||||||
if (autosensData.type == "" || autosensData.type == "non-meal") {
|
if (autosensData.type == "" || autosensData.type == "non-meal") {
|
||||||
if (autosensData.pastSensitivity == "C") color = rh.gc(R.color.deviationgrey)
|
if (autosensData.pastSensitivity == "C") color = rh.gac( ctx, R.attr.deviationgreyColor)
|
||||||
if (autosensData.pastSensitivity == "+") color = rh.gc(R.color.deviationgreen)
|
if (autosensData.pastSensitivity == "+") color = rh.gac( ctx, R.attr.deviationgreenColor)
|
||||||
if (autosensData.pastSensitivity == "-") color = rh.gc(R.color.deviationred)
|
if (autosensData.pastSensitivity == "-") color = rh.gac( ctx, R.attr.deviationredColor)
|
||||||
} else if (autosensData.type == "uam") {
|
} else if (autosensData.type == "uam") {
|
||||||
color = rh.gc(R.color.uam)
|
color = rh.gac( ctx, R.attr.uamColor)
|
||||||
} else if (autosensData.type == "csf") {
|
} else if (autosensData.type == "csf") {
|
||||||
color = rh.gc(R.color.deviationgrey)
|
color = rh.gac( ctx, R.attr.deviationgreyColor)
|
||||||
}
|
}
|
||||||
devArray.add(OverviewPlugin.DeviationDataPoint(time.toDouble(), autosensData.deviation, color, data.overviewData.devScale))
|
devArray.add(OverviewPlugin.DeviationDataPoint(time.toDouble(), autosensData.deviation, color, data.overviewData.devScale))
|
||||||
data.overviewData.maxDevValueFound = maxOf(data.overviewData.maxDevValueFound, abs(autosensData.deviation), abs(bgi))
|
data.overviewData.maxDevValueFound = maxOf(data.overviewData.maxDevValueFound, abs(autosensData.deviation), abs(bgi))
|
||||||
|
@ -192,14 +193,14 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
// IOB
|
// IOB
|
||||||
data.overviewData.iobSeries = FixedLineGraphSeries(Array(iobArray.size) { i -> iobArray[i] }).also {
|
data.overviewData.iobSeries = FixedLineGraphSeries(Array(iobArray.size) { i -> iobArray[i] }).also {
|
||||||
it.isDrawBackground = true
|
it.isDrawBackground = true
|
||||||
it.backgroundColor = -0x7f000001 and rh.gc(R.color.iob) //50%
|
it.backgroundColor = -0x7f000001 and rh.gac( ctx, R.attr.iobColor) //50%
|
||||||
it.color = rh.gc(R.color.iob)
|
it.color = rh.gac( ctx, R.attr.iobColor)
|
||||||
it.thickness = 3
|
it.thickness = 3
|
||||||
}
|
}
|
||||||
data.overviewData.absIobSeries = FixedLineGraphSeries(Array(absIobArray.size) { i -> absIobArray[i] }).also {
|
data.overviewData.absIobSeries = FixedLineGraphSeries(Array(absIobArray.size) { i -> absIobArray[i] }).also {
|
||||||
it.isDrawBackground = true
|
it.isDrawBackground = true
|
||||||
it.backgroundColor = -0x7f000001 and rh.gc(R.color.iob) //50%
|
it.backgroundColor = -0x7f000001 and rh.gac( ctx, R.attr.iobColor) //50%
|
||||||
it.color = rh.gc(R.color.iob)
|
it.color = rh.gac( ctx, R.attr.iobColor)
|
||||||
it.thickness = 3
|
it.thickness = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,7 +211,7 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
val iobPrediction: MutableList<DataPointWithLabelInterface> = ArrayList()
|
val iobPrediction: MutableList<DataPointWithLabelInterface> = ArrayList()
|
||||||
val iobPredictionArray = data.iobCobCalculator.calculateIobArrayForSMB(lastAutosensResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, isTempTarget)
|
val iobPredictionArray = data.iobCobCalculator.calculateIobArrayForSMB(lastAutosensResult, SMBDefaults.exercise_mode, SMBDefaults.half_basal_exercise_target, isTempTarget)
|
||||||
for (i in iobPredictionArray) {
|
for (i in iobPredictionArray) {
|
||||||
iobPrediction.add(i.setColor(rh.gc(R.color.iobPredAS)))
|
iobPrediction.add(i.setColor(rh.gac( ctx, R.attr.iobPredASColor)))
|
||||||
data.overviewData.maxIobValueFound = max(data.overviewData.maxIobValueFound, abs(i.iob))
|
data.overviewData.maxIobValueFound = max(data.overviewData.maxIobValueFound, abs(i.iob))
|
||||||
}
|
}
|
||||||
data.overviewData.iobPredictions1Series = PointsWithLabelGraphSeries(Array(iobPrediction.size) { i -> iobPrediction[i] })
|
data.overviewData.iobPredictions1Series = PointsWithLabelGraphSeries(Array(iobPrediction.size) { i -> iobPrediction[i] })
|
||||||
|
@ -222,8 +223,8 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
// COB
|
// COB
|
||||||
data.overviewData.cobSeries = FixedLineGraphSeries(Array(cobArray.size) { i -> cobArray[i] }).also {
|
data.overviewData.cobSeries = FixedLineGraphSeries(Array(cobArray.size) { i -> cobArray[i] }).also {
|
||||||
it.isDrawBackground = true
|
it.isDrawBackground = true
|
||||||
it.backgroundColor = -0x7f000001 and rh.gc(R.color.cob) //50%
|
it.backgroundColor = -0x7f000001 and rh.gac( ctx, R.attr.cobColor) //50%
|
||||||
it.color = rh.gc(R.color.cob)
|
it.color = rh.gac( ctx, R.attr.cobColor)
|
||||||
it.thickness = 3
|
it.thickness = 3
|
||||||
}
|
}
|
||||||
data.overviewData.cobMinFailOverSeries = PointsWithLabelGraphSeries(Array(minFailOverActiveList.size) { i -> minFailOverActiveList[i] })
|
data.overviewData.cobMinFailOverSeries = PointsWithLabelGraphSeries(Array(minFailOverActiveList.size) { i -> minFailOverActiveList[i] })
|
||||||
|
@ -231,7 +232,7 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
// ACTIVITY
|
// ACTIVITY
|
||||||
data.overviewData.activitySeries = FixedLineGraphSeries(Array(actArrayHist.size) { i -> actArrayHist[i] }).also {
|
data.overviewData.activitySeries = FixedLineGraphSeries(Array(actArrayHist.size) { i -> actArrayHist[i] }).also {
|
||||||
it.isDrawBackground = false
|
it.isDrawBackground = false
|
||||||
it.color = rh.gc(R.color.activity)
|
it.color = rh.gac( ctx, R.attr.activityColor)
|
||||||
it.thickness = 3
|
it.thickness = 3
|
||||||
}
|
}
|
||||||
data.overviewData.activityPredictionSeries = FixedLineGraphSeries(Array(actArrayPrediction.size) { i -> actArrayPrediction[i] }).also {
|
data.overviewData.activityPredictionSeries = FixedLineGraphSeries(Array(actArrayPrediction.size) { i -> actArrayPrediction[i] }).also {
|
||||||
|
@ -239,14 +240,14 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
paint.style = Paint.Style.STROKE
|
paint.style = Paint.Style.STROKE
|
||||||
paint.strokeWidth = 3f
|
paint.strokeWidth = 3f
|
||||||
paint.pathEffect = DashPathEffect(floatArrayOf(4f, 4f), 0f)
|
paint.pathEffect = DashPathEffect(floatArrayOf(4f, 4f), 0f)
|
||||||
paint.color = rh.gc(R.color.activity)
|
paint.color = rh.gac( ctx, R.attr.activityColor)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// BGI
|
// BGI
|
||||||
data.overviewData.minusBgiSeries = FixedLineGraphSeries(Array(bgiArrayHist.size) { i -> bgiArrayHist[i] }).also {
|
data.overviewData.minusBgiSeries = FixedLineGraphSeries(Array(bgiArrayHist.size) { i -> bgiArrayHist[i] }).also {
|
||||||
it.isDrawBackground = false
|
it.isDrawBackground = false
|
||||||
it.color = rh.gc(R.color.bgi)
|
it.color = rh.gac( ctx, R.attr.bgiColor)
|
||||||
it.thickness = 3
|
it.thickness = 3
|
||||||
}
|
}
|
||||||
data.overviewData.minusBgiHistSeries = FixedLineGraphSeries(Array(bgiArrayPrediction.size) { i -> bgiArrayPrediction[i] }).also {
|
data.overviewData.minusBgiHistSeries = FixedLineGraphSeries(Array(bgiArrayPrediction.size) { i -> bgiArrayPrediction[i] }).also {
|
||||||
|
@ -254,7 +255,7 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
paint.style = Paint.Style.STROKE
|
paint.style = Paint.Style.STROKE
|
||||||
paint.strokeWidth = 3f
|
paint.strokeWidth = 3f
|
||||||
paint.pathEffect = DashPathEffect(floatArrayOf(4f, 4f), 0f)
|
paint.pathEffect = DashPathEffect(floatArrayOf(4f, 4f), 0f)
|
||||||
paint.color = rh.gc(R.color.bgi)
|
paint.color = rh.gac( ctx, R.attr.bgiColor)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,17 +266,17 @@ class PrepareIobAutosensGraphDataWorker(
|
||||||
|
|
||||||
// RATIO
|
// RATIO
|
||||||
data.overviewData.ratioSeries = LineGraphSeries(Array(ratioArray.size) { i -> ratioArray[i] }).also {
|
data.overviewData.ratioSeries = LineGraphSeries(Array(ratioArray.size) { i -> ratioArray[i] }).also {
|
||||||
it.color = rh.gc(R.color.ratio)
|
it.color = rh.gac( ctx, R.attr.ratioColor)
|
||||||
it.thickness = 3
|
it.thickness = 3
|
||||||
}
|
}
|
||||||
|
|
||||||
// DEV SLOPE
|
// DEV SLOPE
|
||||||
data.overviewData.dsMaxSeries = LineGraphSeries(Array(dsMaxArray.size) { i -> dsMaxArray[i] }).also {
|
data.overviewData.dsMaxSeries = LineGraphSeries(Array(dsMaxArray.size) { i -> dsMaxArray[i] }).also {
|
||||||
it.color = rh.gc(R.color.devslopepos)
|
it.color = rh.gac( ctx, R.attr.devslopeposColor)
|
||||||
it.thickness = 3
|
it.thickness = 3
|
||||||
}
|
}
|
||||||
data.overviewData.dsMinSeries = LineGraphSeries(Array(dsMinArray.size) { i -> dsMinArray[i] }).also {
|
data.overviewData.dsMinSeries = LineGraphSeries(Array(dsMinArray.size) { i -> dsMinArray[i] }).also {
|
||||||
it.color = rh.gc(R.color.devslopeneg)
|
it.color = rh.gac( ctx, R.attr.devslopenegColor)
|
||||||
it.thickness = 3
|
it.thickness = 3
|
||||||
}
|
}
|
||||||
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_IOB_AUTOSENS_DATA, 100, null))
|
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_IOB_AUTOSENS_DATA, 100, null))
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package info.nightscout.androidaps.workflow
|
package info.nightscout.androidaps.workflow
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
import androidx.work.Worker
|
import androidx.work.Worker
|
||||||
import androidx.work.WorkerParameters
|
import androidx.work.WorkerParameters
|
||||||
import androidx.work.workDataOf
|
import androidx.work.workDataOf
|
||||||
|
@ -33,9 +34,10 @@ class PrepareTemporaryTargetDataWorker(
|
||||||
@Inject lateinit var repository: AppRepository
|
@Inject lateinit var repository: AppRepository
|
||||||
@Inject lateinit var loop: Loop
|
@Inject lateinit var loop: Loop
|
||||||
@Inject lateinit var rxBus: RxBus
|
@Inject lateinit var rxBus: RxBus
|
||||||
|
var ctx: Context
|
||||||
init {
|
init {
|
||||||
(context.applicationContext as HasAndroidInjector).androidInjector().inject(this)
|
(context.applicationContext as HasAndroidInjector).androidInjector().inject(this)
|
||||||
|
ctx = rh.getThemedCtx(context)
|
||||||
}
|
}
|
||||||
|
|
||||||
class PrepareTemporaryTargetData(
|
class PrepareTemporaryTargetData(
|
||||||
|
@ -76,7 +78,7 @@ class PrepareTemporaryTargetDataWorker(
|
||||||
// create series
|
// create series
|
||||||
data.overviewData.temporaryTargetSeries = LineGraphSeries(Array(targetsSeriesArray.size) { i -> targetsSeriesArray[i] }).also {
|
data.overviewData.temporaryTargetSeries = LineGraphSeries(Array(targetsSeriesArray.size) { i -> targetsSeriesArray[i] }).also {
|
||||||
it.isDrawBackground = false
|
it.isDrawBackground = false
|
||||||
it.color = rh.gc(R.color.tempTargetBackground)
|
it.color = rh.gac(ctx, R.attr.tempTargetBackgroundColor )
|
||||||
it.thickness = 2
|
it.thickness = 2
|
||||||
}
|
}
|
||||||
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_TEMPORARY_TARGET_DATA, 100, null))
|
rxBus.send(EventIobCalculationProgress(CalculationWorkflow.ProgressData.PREPARE_TEMPORARY_TARGET_DATA, 100, null))
|
||||||
|
|
|
@ -33,4 +33,8 @@ interface ResourceHelper {
|
||||||
* Get Attribute Color based on theme style for specified context
|
* Get Attribute Color based on theme style for specified context
|
||||||
*/
|
*/
|
||||||
@ColorInt fun gac(context: Context?, @AttrRes attributeId: Int): Int
|
@ColorInt fun gac(context: Context?, @AttrRes attributeId: Int): Int
|
||||||
|
/**
|
||||||
|
* Get themed context -->> context dependend on light or darkmode
|
||||||
|
*/
|
||||||
|
fun getThemedCtx(context: Context): Context
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,11 +4,13 @@ import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.res.AssetFileDescriptor
|
import android.content.res.AssetFileDescriptor
|
||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
|
import android.content.res.Resources
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.graphics.BitmapFactory
|
import android.graphics.BitmapFactory
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.util.DisplayMetrics
|
import android.util.DisplayMetrics
|
||||||
import androidx.annotation.*
|
import androidx.annotation.*
|
||||||
|
import androidx.appcompat.app.AppCompatDelegate
|
||||||
import androidx.appcompat.view.ContextThemeWrapper
|
import androidx.appcompat.view.ContextThemeWrapper
|
||||||
import androidx.core.content.ContextCompat
|
import androidx.core.content.ContextCompat
|
||||||
import info.nightscout.androidaps.core.R
|
import info.nightscout.androidaps.core.R
|
||||||
|
@ -86,8 +88,21 @@ class ResourceHelperImplementation @Inject constructor(private val context: Cont
|
||||||
override fun shortTextMode(): Boolean = !gb(R.bool.isTablet)
|
override fun shortTextMode(): Boolean = !gb(R.bool.isTablet)
|
||||||
|
|
||||||
override fun gac(context: Context?, attributeId: Int): Int =
|
override fun gac(context: Context?, attributeId: Int): Int =
|
||||||
(context ?: ContextThemeWrapper(this.context, R.style.AppTheme)).getThemeColor(attributeId)
|
( ContextThemeWrapper( context ?: this.context, R.style.AppTheme)).getThemeColor(attributeId)
|
||||||
|
|
||||||
override fun gac(attributeId: Int): Int =
|
override fun gac(attributeId: Int): Int =
|
||||||
ContextThemeWrapper(this.context, R.style.AppTheme).getThemeColor(attributeId)
|
ContextThemeWrapper(this.context, R.style.AppTheme).getThemeColor(attributeId)
|
||||||
|
|
||||||
|
override fun getThemedCtx(context: Context): Context {
|
||||||
|
val res: Resources = context.resources
|
||||||
|
val configuration = Configuration(res.configuration)
|
||||||
|
val filter = res.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK.inv()
|
||||||
|
|
||||||
|
configuration.uiMode = when (AppCompatDelegate.getDefaultNightMode()) {
|
||||||
|
AppCompatDelegate.MODE_NIGHT_NO -> Configuration.UI_MODE_NIGHT_NO or filter
|
||||||
|
AppCompatDelegate.MODE_NIGHT_YES -> Configuration.UI_MODE_NIGHT_YES or filter
|
||||||
|
else -> res.configuration.uiMode
|
||||||
|
}
|
||||||
|
return context.createConfigurationContext(configuration)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -213,10 +213,20 @@
|
||||||
<!-- Graph specific colors -->
|
<!-- Graph specific colors -->
|
||||||
<item name="inrangeBackground">@color/inrangebackground</item>
|
<item name="inrangeBackground">@color/inrangebackground</item>
|
||||||
<item name="devslopeposColor">@color/devslopepos</item>
|
<item name="devslopeposColor">@color/devslopepos</item>
|
||||||
|
<item name="devslopenegColor">@color/devslopeneg</item>
|
||||||
|
<item name="deviationgreyColor">@color/deviationgrey</item>
|
||||||
|
<item name="deviationblackColor">@color/deviationblack</item>
|
||||||
|
<item name="deviationgreenColor">@color/deviationgreen</item>
|
||||||
|
<item name="deviationredColor">@color/deviationred</item>
|
||||||
<item name="predictionColor">@color/prediction</item>
|
<item name="predictionColor">@color/prediction</item>
|
||||||
|
<item name="iobPredASColor">@color/iobPredAS</item>
|
||||||
<item name="bgiColor">@color/bgi</item>
|
<item name="bgiColor">@color/bgi</item>
|
||||||
<item name="ratioColor">@color/ratio</item>
|
<item name="ratioColor">@color/ratio</item>
|
||||||
<item name="activityColor">@color/activity</item>
|
<item name="activityColor">@color/activity</item>
|
||||||
|
<item name="basebasalColor">@color/basebasal</item>
|
||||||
|
<!---Popupmenu TextColor -->
|
||||||
|
<item name="menuTextColor">@color/black</item>
|
||||||
|
<item name="menuTextColorInverse">@color/black</item>
|
||||||
<!-- CardView specific colors -->
|
<!-- CardView specific colors -->
|
||||||
<item name="strokeColor">@color/plastic_grey</item>
|
<item name="strokeColor">@color/plastic_grey</item>
|
||||||
<item name="textAppearancemediumColor">@color/textAppearancemediumDark</item>
|
<item name="textAppearancemediumColor">@color/textAppearancemediumDark</item>
|
||||||
|
|
|
@ -192,10 +192,20 @@
|
||||||
<attr name="inrangeBackground" format="reference|color" />
|
<attr name="inrangeBackground" format="reference|color" />
|
||||||
<attr name="graphGrid" format="reference|color" />
|
<attr name="graphGrid" format="reference|color" />
|
||||||
<attr name="devslopeposColor" format="reference|color" />
|
<attr name="devslopeposColor" format="reference|color" />
|
||||||
|
<attr name="devslopenegColor" format="reference|color" />
|
||||||
|
<attr name="deviationgreyColor" format="reference|color" />
|
||||||
|
<attr name="deviationblackColor" format="reference|color" />
|
||||||
|
<attr name="deviationgreenColor" format="reference|color" />
|
||||||
|
<attr name="deviationredColor" format="reference|color" />
|
||||||
<attr name="predictionColor" format="reference|color" />
|
<attr name="predictionColor" format="reference|color" />
|
||||||
|
<attr name="iobPredASColor" format="reference|color" />
|
||||||
<attr name="bgiColor" format="reference|color" />
|
<attr name="bgiColor" format="reference|color" />
|
||||||
<attr name="ratioColor" format="reference|color" />
|
<attr name="ratioColor" format="reference|color" />
|
||||||
<attr name="activityColor" format="reference|color" />
|
<attr name="activityColor" format="reference|color" />
|
||||||
|
<attr name="basebasalColor" format="reference|color" />
|
||||||
|
<!---Popupmenu TextColor -->
|
||||||
|
<attr name="menuTextColor" format="reference|color" />
|
||||||
|
<attr name="menuTextColorInverse" format="reference|color" />
|
||||||
<!-- CardView specific colors -->
|
<!-- CardView specific colors -->
|
||||||
<attr name="strokeColor" format="reference|color" />
|
<attr name="strokeColor" format="reference|color" />
|
||||||
<attr name="textAppearancemediumColor" format="reference|color" />
|
<attr name="textAppearancemediumColor" format="reference|color" />
|
||||||
|
|
|
@ -162,7 +162,7 @@
|
||||||
<color name="prediction">#ff00ff</color>
|
<color name="prediction">#ff00ff</color>
|
||||||
<color name="iobPred">#00d2d2</color>
|
<color name="iobPred">#00d2d2</color>
|
||||||
<color name="bolus">#1ea3e5</color>
|
<color name="bolus">#1ea3e5</color>
|
||||||
<color name="ratio">#FFFFFF</color>
|
<color name="ratio">#000000</color>
|
||||||
<color name="activity">#d3f166</color>
|
<color name="activity">#d3f166</color>
|
||||||
<color name="bgi">#00EEEE</color>
|
<color name="bgi">#00EEEE</color>
|
||||||
<color name="devslopepos">#FFFFFF00</color>
|
<color name="devslopepos">#FFFFFF00</color>
|
||||||
|
|
|
@ -112,7 +112,7 @@
|
||||||
<item name="android:dialogCornerRadius">12dp</item>
|
<item name="android:dialogCornerRadius">12dp</item>
|
||||||
<!---Overview and Historybrowser -->
|
<!---Overview and Historybrowser -->
|
||||||
<item name="graphgrid">@color/graphgrid</item>
|
<item name="graphgrid">@color/graphgrid</item>
|
||||||
<item name="viewPortbackgroundColor">@color/white_alpha_20</item>
|
<item name="viewPortbackgroundColor">@color/black_alpha_20</item>
|
||||||
<item name="tempTargetBackgroundColor">@color/tempTargetBackground</item>
|
<item name="tempTargetBackgroundColor">@color/tempTargetBackground</item>
|
||||||
<!---CGM source-->
|
<!---CGM source-->
|
||||||
<item name="cgmdexColor">@color/byodagray</item>
|
<item name="cgmdexColor">@color/byodagray</item>
|
||||||
|
@ -216,10 +216,20 @@
|
||||||
<!-- Graph specific colors -->
|
<!-- Graph specific colors -->
|
||||||
<item name="inrangeBackground">@color/inrangebackground</item>
|
<item name="inrangeBackground">@color/inrangebackground</item>
|
||||||
<item name="devslopeposColor">@color/devslopepos</item>
|
<item name="devslopeposColor">@color/devslopepos</item>
|
||||||
|
<item name="devslopenegColor">@color/devslopeneg</item>
|
||||||
|
<item name="deviationgreyColor">@color/deviationgrey</item>
|
||||||
|
<item name="deviationblackColor">@color/deviationblack</item>
|
||||||
|
<item name="deviationgreenColor">@color/deviationgreen</item>
|
||||||
|
<item name="deviationredColor">@color/deviationred</item>
|
||||||
<item name="predictionColor">@color/prediction</item>
|
<item name="predictionColor">@color/prediction</item>
|
||||||
|
<item name="iobPredASColor">@color/iobPredAS</item>
|
||||||
<item name="bgiColor">@color/bgi</item>
|
<item name="bgiColor">@color/bgi</item>
|
||||||
<item name="ratioColor">@color/lightSandGray</item>
|
<item name="ratioColor">@color/ratio</item>
|
||||||
<item name="activityColor">@color/activity</item>
|
<item name="activityColor">@color/activity</item>
|
||||||
|
<item name="basebasalColor">@color/basebasal</item>
|
||||||
|
<!---Popupmenu TextColor -->
|
||||||
|
<item name="menuTextColor">@color/black</item>
|
||||||
|
<item name="menuTextColorInverse">@color/white</item>
|
||||||
<!-- CardView specific colors -->
|
<!-- CardView specific colors -->
|
||||||
<item name="strokeColor">@color/plastic_grey</item>
|
<item name="strokeColor">@color/plastic_grey</item>
|
||||||
<item name="textAppearancemediumColor">@color/textAppearancemediumLight</item>
|
<item name="textAppearancemediumColor">@color/textAppearancemediumLight</item>
|
||||||
|
|
Loading…
Reference in a new issue