diff --git a/plugins/source/src/main/kotlin/app/aaps/plugins/source/RandomBgPlugin.kt b/plugins/source/src/main/kotlin/app/aaps/plugins/source/RandomBgPlugin.kt index 211af3245c..526ab0a244 100644 --- a/plugins/source/src/main/kotlin/app/aaps/plugins/source/RandomBgPlugin.kt +++ b/plugins/source/src/main/kotlin/app/aaps/plugins/source/RandomBgPlugin.kt @@ -14,6 +14,7 @@ import app.aaps.core.interfaces.plugin.PluginDescription import app.aaps.core.interfaces.plugin.PluginType import app.aaps.core.interfaces.pump.VirtualPump import app.aaps.core.interfaces.resources.ResourceHelper +import app.aaps.core.interfaces.sharedPreferences.SP import app.aaps.core.interfaces.source.BgSource import app.aaps.core.interfaces.utils.T import app.aaps.core.utils.isRunningTest @@ -40,13 +41,14 @@ class RandomBgPlugin @Inject constructor( aapsLogger: AAPSLogger, private val repository: AppRepository, private val virtualPump: VirtualPump, + private val sp: SP, private val config: Config ) : PluginBase( PluginDescription() .mainType(PluginType.BGSOURCE) .fragmentClass(BGSourceFragment::class.java.name) .pluginIcon(R.drawable.ic_dice) - .preferencesId(R.xml.pref_bgsource) + .preferencesId(R.xml.pref_randombg) .pluginName(R.string.random_bg) .shortName(R.string.random_bg_short) .description(R.string.description_source_random_bg), @@ -56,10 +58,10 @@ class RandomBgPlugin @Inject constructor( private val handler = Handler(HandlerThread(this::class.simpleName + "Handler").also { it.start() }.looper) private lateinit var refreshLoop: Runnable private var wakeLock: PowerManager.WakeLock? = null + private var interval = 5L // minutes companion object { - const val interval = 5L // minutes const val min = 70 // mgdl const val max = 190 // mgdl const val period = 120.0 // minutes @@ -67,11 +69,16 @@ class RandomBgPlugin @Inject constructor( init { refreshLoop = Runnable { + updateInterval() handler.postDelayed(refreshLoop, T.mins(interval).msecs()) handleNewData() } } + private fun updateInterval() { + interval = sp.getInt("randombg_interval_min", 5).toLong() + } + private val disposable = CompositeDisposable() override fun advancedFilteringSupported(): Boolean = true @@ -79,11 +86,12 @@ class RandomBgPlugin @Inject constructor( @SuppressLint("WakelockTimeout") override fun onStart() { super.onStart() + updateInterval() val cal = GregorianCalendar() cal[Calendar.MILLISECOND] = 0 cal[Calendar.SECOND] = 0 - cal[Calendar.MINUTE] -= cal[Calendar.MINUTE] % 5 - handler.postAtTime(refreshLoop, SystemClock.uptimeMillis() + cal.timeInMillis + T.mins(5).msecs() + 1000 - System.currentTimeMillis()) + cal[Calendar.MINUTE] -= cal[Calendar.MINUTE] % interval.toInt() + handler.postAtTime(refreshLoop, SystemClock.uptimeMillis() + cal.timeInMillis + T.mins(interval).msecs() + 1000 - System.currentTimeMillis()) disposable.clear() wakeLock = (context.getSystemService(Context.POWER_SERVICE) as PowerManager).newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "AAPS:RandomBgPlugin") wakeLock?.acquire() @@ -108,7 +116,7 @@ class RandomBgPlugin @Inject constructor( cal[Calendar.MILLISECOND] = 0 cal[Calendar.SECOND] = 0 - cal[Calendar.MINUTE] -= cal[Calendar.MINUTE] % 5 + cal[Calendar.MINUTE] -= cal[Calendar.MINUTE] % interval.toInt() val glucoseValues = mutableListOf() glucoseValues += TransactionGlucoseValue( timestamp = cal.timeInMillis, diff --git a/plugins/source/src/main/res/xml/pref_randombg.xml b/plugins/source/src/main/res/xml/pref_randombg.xml new file mode 100644 index 0000000000..7264bc9be3 --- /dev/null +++ b/plugins/source/src/main/res/xml/pref_randombg.xml @@ -0,0 +1,23 @@ + + + + + + + + + +