ActivityMonitor injection
This commit is contained in:
parent
7706e51954
commit
1610470089
|
@ -124,8 +124,8 @@ public class MainApp extends DaggerApplication {
|
|||
public static boolean devBranch;
|
||||
public static boolean engineeringMode;
|
||||
|
||||
@Inject
|
||||
AAPSLogger aapsLogger;
|
||||
@Inject AAPSLogger aapsLogger;
|
||||
@Inject ActivityMonitor activityMonitor;
|
||||
|
||||
@Inject ActionsPlugin actionsPlugin;
|
||||
@Inject AutomationPlugin automationPlugin;
|
||||
|
@ -191,7 +191,7 @@ public class MainApp extends DaggerApplication {
|
|||
log.error("Error with Fabric init! " + e);
|
||||
}
|
||||
|
||||
registerActivityLifecycleCallbacks(ActivityMonitor.INSTANCE);
|
||||
registerActivityLifecycleCallbacks(activityMonitor);
|
||||
|
||||
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
|
||||
mFirebaseAnalytics.setAnalyticsCollectionEnabled(!Boolean.getBoolean("disableFirebase") && FabricPrivacy.fabricEnabled());
|
||||
|
@ -479,7 +479,7 @@ public class MainApp extends DaggerApplication {
|
|||
|
||||
if (timeDateOrTZChangeReceiver != null)
|
||||
unregisterReceiver(timeDateOrTZChangeReceiver);
|
||||
unregisterActivityLifecycleCallbacks(ActivityMonitor.INSTANCE);
|
||||
unregisterActivityLifecycleCallbacks(activityMonitor);
|
||||
KeepAliveReceiver.cancelAlarm(this);
|
||||
super.onTerminate();
|
||||
}
|
||||
|
|
|
@ -13,6 +13,7 @@ import javax.inject.Inject
|
|||
class StatsActivity : NoSplashAppCompatActivity() {
|
||||
@Inject lateinit var tddCalculator: TddCalculator
|
||||
@Inject lateinit var resourceHelper: ResourceHelper
|
||||
@Inject lateinit var activityMonitor: ActivityMonitor
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -20,12 +21,12 @@ class StatsActivity : NoSplashAppCompatActivity() {
|
|||
|
||||
stats_tdds.text = tddCalculator.stats()
|
||||
stats_tir.text = TirCalculator.stats()
|
||||
stats_activity.text = ActivityMonitor.stats()
|
||||
stats_activity.text = activityMonitor.stats()
|
||||
|
||||
ok.setOnClickListener { finish() }
|
||||
stats_reset.setOnClickListener {
|
||||
OKDialog.showConfirmation(this, resourceHelper.gs(R.string.doyouwantresetstats), Runnable {
|
||||
ActivityMonitor.reset()
|
||||
activityMonitor.reset()
|
||||
recreate()
|
||||
})
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ class SurveyActivity : NoSplashAppCompatActivity() {
|
|||
@Inject lateinit var configBuilderPlugin: ConfigBuilderPlugin
|
||||
@Inject lateinit var tddCalculator: TddCalculator
|
||||
@Inject lateinit var profileFunction: ProfileFunction
|
||||
@Inject lateinit var activityMonitor: ActivityMonitor
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -35,7 +36,7 @@ class SurveyActivity : NoSplashAppCompatActivity() {
|
|||
|
||||
survey_tdds.text = tddCalculator.stats()
|
||||
survey_tir.text = TirCalculator.stats()
|
||||
survey_activity.text = ActivityMonitor.stats()
|
||||
survey_activity.text = activityMonitor.stats()
|
||||
|
||||
survey_profile.setOnClickListener {
|
||||
val age = SafeParse.stringToDouble(survey_age.text.toString())
|
||||
|
|
|
@ -4,33 +4,41 @@ import android.app.Activity
|
|||
import android.app.Application
|
||||
import android.os.Bundle
|
||||
import android.text.Spanned
|
||||
import info.nightscout.androidaps.MainApp
|
||||
import info.nightscout.androidaps.R
|
||||
import info.nightscout.androidaps.logging.L
|
||||
import org.slf4j.LoggerFactory
|
||||
import info.nightscout.androidaps.logging.AAPSLogger
|
||||
import info.nightscout.androidaps.logging.LTag
|
||||
import info.nightscout.androidaps.utils.resources.ResourceHelper
|
||||
import info.nightscout.androidaps.utils.sharedPreferences.SP
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
class ActivityMonitor @Inject constructor(
|
||||
private var aapsLogger: AAPSLogger,
|
||||
private val resourceHelper: ResourceHelper,
|
||||
private var sp: SP
|
||||
) : Application.ActivityLifecycleCallbacks {
|
||||
|
||||
object ActivityMonitor : Application.ActivityLifecycleCallbacks {
|
||||
private val log = LoggerFactory.getLogger(L.CORE)
|
||||
override fun onActivityPaused(activity: Activity?) {
|
||||
val name = activity?.javaClass?.simpleName ?: return
|
||||
val resumed = SP.getLong("Monitor_" + name + "_" + "resumed", 0)
|
||||
val resumed = sp.getLong("Monitor_" + name + "_" + "resumed", 0)
|
||||
if (resumed == 0L) {
|
||||
log.debug("onActivityPaused: $name resumed == 0")
|
||||
aapsLogger.debug(LTag.UI, "onActivityPaused: $name resumed == 0")
|
||||
return
|
||||
}
|
||||
val elapsed = DateUtil.now() - resumed
|
||||
val total = SP.getLong("Monitor_" + name + "_total", 0)
|
||||
val total = sp.getLong("Monitor_" + name + "_total", 0)
|
||||
if (total == 0L) {
|
||||
SP.putLong("Monitor_" + name + "_start", DateUtil.now())
|
||||
sp.putLong("Monitor_" + name + "_start", DateUtil.now())
|
||||
}
|
||||
SP.putLong("Monitor_" + name + "_total", total + elapsed)
|
||||
log.debug("onActivityPaused: $name elapsed=$elapsed total=${total + elapsed}")
|
||||
sp.putLong("Monitor_" + name + "_total", total + elapsed)
|
||||
aapsLogger.debug(LTag.UI, "onActivityPaused: $name elapsed=$elapsed total=${total + elapsed}")
|
||||
}
|
||||
|
||||
override fun onActivityResumed(activity: Activity?) {
|
||||
val name = activity?.javaClass?.simpleName ?: return
|
||||
log.debug("onActivityResumed: $name")
|
||||
SP.putLong("Monitor_" + name + "_" + "resumed", DateUtil.now())
|
||||
aapsLogger.debug(LTag.UI, "onActivityResumed: $name")
|
||||
sp.putLong("Monitor_" + name + "_" + "resumed", DateUtil.now())
|
||||
}
|
||||
|
||||
override fun onActivityStarted(activity: Activity?) {
|
||||
|
@ -48,14 +56,14 @@ object ActivityMonitor : Application.ActivityLifecycleCallbacks {
|
|||
override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {
|
||||
}
|
||||
|
||||
fun toText(): String {
|
||||
val keys: Map<String, *> = SP.getAll()
|
||||
private fun toText(): String {
|
||||
val keys: Map<String, *> = sp.getAll()
|
||||
var result = ""
|
||||
for ((key, value) in keys)
|
||||
if (key.startsWith("Monitor") && key.endsWith("total")) {
|
||||
val activity = key.split("_")[1].replace("Activity", "")
|
||||
val duration = DateUtil.niceTimeScalar(value as Long)
|
||||
val start = SP.getLong(key.replace("total", "start"), 0)
|
||||
val start = sp.getLong(key.replace("total", "start"), 0)
|
||||
val days = T.msecs(DateUtil.now() - start).days()
|
||||
result += "<b><span style=\"color:yellow\">$activity:</span></b> <b>$duration</b> in <b>$days</b> days<br>"
|
||||
}
|
||||
|
@ -63,16 +71,16 @@ object ActivityMonitor : Application.ActivityLifecycleCallbacks {
|
|||
}
|
||||
|
||||
fun stats(): Spanned {
|
||||
return HtmlHelper.fromHtml("<br><b>" + MainApp.gs(R.string.activitymonitor) + ":</b><br>" + toText())
|
||||
return HtmlHelper.fromHtml("<br><b>" + resourceHelper.gs(R.string.activitymonitor) + ":</b><br>" + toText())
|
||||
}
|
||||
|
||||
fun reset() {
|
||||
val keys: Map<String, *> = SP.getAll()
|
||||
val keys: Map<String, *> = sp.getAll()
|
||||
for ((key, _) in keys)
|
||||
if (key.startsWith("Monitor") && key.endsWith("total")) {
|
||||
SP.remove(key)
|
||||
SP.remove(key.replace("total", "start"))
|
||||
SP.remove(key.replace("total", "resumed"))
|
||||
sp.remove(key)
|
||||
sp.remove(key.replace("total", "start"))
|
||||
sp.remove(key.replace("total", "resumed"))
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue