StatusLinePlugin -> kt, dagger

This commit is contained in:
Milos Kozak 2019-12-28 15:00:16 +01:00
parent 3c58559a75
commit 377b5a9991
8 changed files with 154 additions and 253 deletions

View file

@ -60,7 +60,7 @@ import info.nightscout.androidaps.plugins.general.overview.OverviewPlugin;
import info.nightscout.androidaps.plugins.general.persistentNotification.PersistentNotificationPlugin; import info.nightscout.androidaps.plugins.general.persistentNotification.PersistentNotificationPlugin;
import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin; import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin;
import info.nightscout.androidaps.plugins.general.wear.WearPlugin; import info.nightscout.androidaps.plugins.general.wear.WearPlugin;
import info.nightscout.androidaps.plugins.general.xdripStatusline.StatuslinePlugin; import info.nightscout.androidaps.plugins.general.xdripStatusline.StatusLinePlugin;
import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin; import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin;
import info.nightscout.androidaps.plugins.insulin.InsulinOrefRapidActingPlugin; import info.nightscout.androidaps.plugins.insulin.InsulinOrefRapidActingPlugin;
import info.nightscout.androidaps.plugins.insulin.InsulinOrefUltraRapidActingPlugin; import info.nightscout.androidaps.plugins.insulin.InsulinOrefUltraRapidActingPlugin;
@ -126,9 +126,7 @@ public class MainApp extends DaggerApplication {
@Inject @Inject
AAPSLogger aapsLogger; AAPSLogger aapsLogger;
@Inject @Inject ConfigBuilderPlugin configBuilderPlugin;
ConfigBuilderPlugin configBuilderPlugin;
@Inject InsulinOrefFreePeakPlugin insulinOrefFreePeakPlugin; @Inject InsulinOrefFreePeakPlugin insulinOrefFreePeakPlugin;
@Inject InsulinOrefRapidActingPlugin insulinOrefRapidActingPlugin; @Inject InsulinOrefRapidActingPlugin insulinOrefRapidActingPlugin;
@Inject InsulinOrefUltraRapidActingPlugin insulinOrefUltraRapidActingPlugin; @Inject InsulinOrefUltraRapidActingPlugin insulinOrefUltraRapidActingPlugin;
@ -137,6 +135,7 @@ public class MainApp extends DaggerApplication {
@Inject OpenAPSMAPlugin openAPSMAPlugin; @Inject OpenAPSMAPlugin openAPSMAPlugin;
@Inject OpenAPSAMAPlugin openAPSAMAPlugin; @Inject OpenAPSAMAPlugin openAPSAMAPlugin;
@Inject OpenAPSSMBPlugin openAPSSMBPlugin; @Inject OpenAPSSMBPlugin openAPSSMBPlugin;
@Inject StatusLinePlugin statusLinePlugin;
@Override @Override
public void onCreate() { public void onCreate() {
@ -235,7 +234,7 @@ public class MainApp extends DaggerApplication {
pluginsList.add(FoodPlugin.getPlugin()); pluginsList.add(FoodPlugin.getPlugin());
pluginsList.add(WearPlugin.initPlugin(this)); pluginsList.add(WearPlugin.initPlugin(this));
pluginsList.add(StatuslinePlugin.initPlugin(this)); pluginsList.add(statusLinePlugin);
pluginsList.add(PersistentNotificationPlugin.getPlugin()); pluginsList.add(PersistentNotificationPlugin.getPlugin());
pluginsList.add(NSClientPlugin.getPlugin()); pluginsList.add(NSClientPlugin.getPlugin());
// if (engineeringMode) pluginsList.add(TidepoolPlugin.INSTANCE); // if (engineeringMode) pluginsList.add(TidepoolPlugin.INSTANCE);

View file

@ -25,7 +25,7 @@ import info.nightscout.androidaps.plugins.general.nsclient.NSClientPlugin;
import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin; import info.nightscout.androidaps.plugins.general.smsCommunicator.SmsCommunicatorPlugin;
import info.nightscout.androidaps.plugins.general.tidepool.TidepoolPlugin; import info.nightscout.androidaps.plugins.general.tidepool.TidepoolPlugin;
import info.nightscout.androidaps.plugins.general.wear.WearPlugin; import info.nightscout.androidaps.plugins.general.wear.WearPlugin;
import info.nightscout.androidaps.plugins.general.xdripStatusline.StatuslinePlugin; import info.nightscout.androidaps.plugins.general.xdripStatusline.StatusLinePlugin;
import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin; import info.nightscout.androidaps.plugins.insulin.InsulinOrefFreePeakPlugin;
import info.nightscout.androidaps.plugins.pump.combo.ComboPlugin; import info.nightscout.androidaps.plugins.pump.combo.ComboPlugin;
import info.nightscout.androidaps.plugins.pump.danaR.DanaRPlugin; import info.nightscout.androidaps.plugins.pump.danaR.DanaRPlugin;
@ -52,21 +52,18 @@ public class MyPreferenceFragment extends PreferenceFragment implements HasAndro
@Inject @Inject
OpenAPSAMAPlugin openAPSAMAPlugin; OpenAPSAMAPlugin openAPSAMAPlugin;
@Inject @Inject
OpenAPSMAPlugin openAPSMAPlugin; OpenAPSMAPlugin openAPSMAPlugin;
@Inject @Inject
OpenAPSSMBPlugin openAPSSMBPlugin; OpenAPSSMBPlugin openAPSSMBPlugin;
@Inject @Inject
InsulinOrefFreePeakPlugin insulinOrefFreePeakPlugin; InsulinOrefFreePeakPlugin insulinOrefFreePeakPlugin;
@Inject @Inject
SafetyPlugin safetyPlugin; SafetyPlugin safetyPlugin;
@Inject @Inject
SmsCommunicatorPlugin smsCommunicatorPlugin; SmsCommunicatorPlugin smsCommunicatorPlugin;
@Inject
StatusLinePlugin statusLinePlugin;
@Override @Override
public void setArguments(Bundle args) { public void setArguments(Bundle args) {
@ -130,13 +127,6 @@ public class MyPreferenceFragment extends PreferenceFragment implements HasAndro
addPreferencesFromResourceIfEnabled(LocalInsightPlugin.getPlugin(), PluginType.PUMP); addPreferencesFromResourceIfEnabled(LocalInsightPlugin.getPlugin(), PluginType.PUMP);
addPreferencesFromResourceIfEnabled(ComboPlugin.getPlugin(), PluginType.PUMP); addPreferencesFromResourceIfEnabled(ComboPlugin.getPlugin(), PluginType.PUMP);
addPreferencesFromResourceIfEnabled(MedtronicPumpPlugin.getPlugin(), PluginType.PUMP); addPreferencesFromResourceIfEnabled(MedtronicPumpPlugin.getPlugin(), PluginType.PUMP);
if (DanaRPlugin.getPlugin().isEnabled(PluginType.PROFILE)
|| DanaRKoreanPlugin.getPlugin().isEnabled(PluginType.PROFILE)
|| DanaRv2Plugin.getPlugin().isEnabled(PluginType.PROFILE)
|| DanaRSPlugin.getPlugin().isEnabled(PluginType.PROFILE)) {
addPreferencesFromResource(R.xml.pref_danarprofile);
}
} }
if (!Config.NSCLIENT) { if (!Config.NSCLIENT) {
@ -154,7 +144,7 @@ public class MyPreferenceFragment extends PreferenceFragment implements HasAndro
addPreferencesFromResource(R.xml.pref_datachoices); addPreferencesFromResource(R.xml.pref_datachoices);
addPreferencesFromResourceIfEnabled(WearPlugin.getPlugin(), PluginType.GENERAL); addPreferencesFromResourceIfEnabled(WearPlugin.getPlugin(), PluginType.GENERAL);
addPreferencesFromResourceIfEnabled(StatuslinePlugin.getPlugin(), PluginType.GENERAL); addPreferencesFromResourceIfEnabled(statusLinePlugin, PluginType.GENERAL);
} }
PreferencesActivity.initSummary(getPreferenceScreen()); PreferencesActivity.initSummary(getPreferenceScreen());

View file

@ -93,7 +93,7 @@ class SmsCommunicatorPlugin @Inject constructor(
super.onStart() super.onStart()
disposable.add(toObservable(EventPreferenceChange::class.java) disposable.add(toObservable(EventPreferenceChange::class.java)
.observeOn(Schedulers.io()) .observeOn(Schedulers.io())
.subscribe({ event: EventPreferenceChange? -> processSettings(event) }) { throwable: Throwable? -> FabricPrivacy.logException(throwable) } .subscribe({ event: EventPreferenceChange? -> processSettings(event) }) { FabricPrivacy.logException(it) }
) )
} }

View file

@ -0,0 +1,141 @@
package info.nightscout.androidaps.plugins.general.xdripStatusline
import android.content.Intent
import android.os.Bundle
import info.nightscout.androidaps.MainApp
import info.nightscout.androidaps.R
import info.nightscout.androidaps.data.Profile
import info.nightscout.androidaps.events.*
import info.nightscout.androidaps.interfaces.PluginBase
import info.nightscout.androidaps.interfaces.PluginDescription
import info.nightscout.androidaps.interfaces.PluginType
import info.nightscout.androidaps.interfaces.TreatmentsInterface
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin
import info.nightscout.androidaps.plugins.bus.RxBus.toObservable
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunction
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin
import info.nightscout.androidaps.utils.DecimalFormatter
import info.nightscout.androidaps.utils.FabricPrivacy
import info.nightscout.androidaps.utils.resources.ResourceHelper
import info.nightscout.androidaps.utils.sharedPreferences.SP
import io.reactivex.disposables.CompositeDisposable
import io.reactivex.schedulers.Schedulers
import javax.inject.Inject
import javax.inject.Singleton
@Singleton
class StatusLinePlugin @Inject constructor(
private val sp: SP,
private val profileFunction: ProfileFunction,
private val resourceHelper: ResourceHelper,
private val configBuilderPlugin: ConfigBuilderPlugin,
private val mainApp: MainApp) : PluginBase(
PluginDescription()
.mainType(PluginType.GENERAL)
.pluginName(R.string.xdripstatus)
.shortName(R.string.xdripstatus_shortname)
.neverVisible(true)
.preferencesId(R.xml.pref_xdripstatus)
.description(R.string.description_xdrip_status_line)) {
private val disposable = CompositeDisposable()
private var lastLoopStatus = false
companion object {
//broadcast related constants
@Suppress("SpellCheckingInspection")
private const val EXTRA_STATUSLINE = "com.eveningoutpost.dexdrip.Extras.Statusline"
@Suppress("SpellCheckingInspection")
private const val ACTION_NEW_EXTERNAL_STATUSLINE = "com.eveningoutpost.dexdrip.ExternalStatusline"
@Suppress("SpellCheckingInspection", "unused")
private const val RECEIVER_PERMISSION = "com.eveningoutpost.dexdrip.permissions.RECEIVE_EXTERNAL_STATUSLINE"
}
override fun onStart() {
super.onStart()
disposable.add(toObservable(EventRefreshOverview::class.java)
.observeOn(Schedulers.io())
.subscribe({ if (lastLoopStatus != LoopPlugin.getPlugin().isEnabled(PluginType.LOOP)) sendStatus() }) { FabricPrivacy.logException(it) })
disposable.add(toObservable(EventExtendedBolusChange::class.java)
.observeOn(Schedulers.io())
.subscribe({ sendStatus() }) { FabricPrivacy.logException(it) })
disposable.add(toObservable(EventTempBasalChange::class.java)
.observeOn(Schedulers.io())
.subscribe({ sendStatus() }) { FabricPrivacy.logException(it) })
disposable.add(toObservable(EventTreatmentChange::class.java)
.observeOn(Schedulers.io())
.subscribe({ sendStatus() }) { FabricPrivacy.logException(it) })
disposable.add(toObservable(EventConfigBuilderChange::class.java)
.observeOn(Schedulers.io())
.subscribe({ sendStatus() }) { FabricPrivacy.logException(it) })
disposable.add(toObservable(EventAutosensCalculationFinished::class.java)
.observeOn(Schedulers.io())
.subscribe({ sendStatus() }) { FabricPrivacy.logException(it) })
disposable.add(toObservable(EventPreferenceChange::class.java)
.observeOn(Schedulers.io())
.subscribe({ sendStatus() }) { FabricPrivacy.logException(it) })
disposable.add(toObservable(EventAppInitialized::class.java)
.observeOn(Schedulers.io())
.subscribe({ sendStatus() }) { FabricPrivacy.logException(it) })
}
override fun onStop() {
super.onStop()
disposable.clear()
sendStatus()
}
private fun sendStatus() {
var status = "" // sent once on disable
val profile = profileFunction.getProfile()
if (isEnabled(PluginType.GENERAL) && profile != null) {
status = buildStatusString(profile)
}
//sendData
val bundle = Bundle()
bundle.putString(EXTRA_STATUSLINE, status)
val intent = Intent(ACTION_NEW_EXTERNAL_STATUSLINE)
intent.putExtras(bundle)
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES)
mainApp.sendBroadcast(intent, null)
}
private fun buildStatusString(profile: Profile): String {
var status = ""
if (configBuilderPlugin.activePump == null) return ""
val loopPlugin = LoopPlugin.getPlugin()
if (!loopPlugin.isEnabled(PluginType.LOOP)) {
status += resourceHelper.gs(R.string.disabledloop) + "\n"
lastLoopStatus = false
} else if (loopPlugin.isEnabled(PluginType.LOOP)) {
lastLoopStatus = true
}
//Temp basal
val treatmentsInterface: TreatmentsInterface = TreatmentsPlugin.getPlugin()
val activeTemp = treatmentsInterface.getTempBasalFromHistory(System.currentTimeMillis())
if (activeTemp != null) {
status += activeTemp.toStringShort() + " "
}
//IOB
treatmentsInterface.updateTotalIOBTreatments()
val bolusIob = treatmentsInterface.lastCalculationTreatments.round()
treatmentsInterface.updateTotalIOBTempBasals()
val basalIob = treatmentsInterface.lastCalculationTempBasals.round()
status += DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U"
if (sp.getBoolean(R.string.key_xdripstatus_detailediob, true)) {
status += ("("
+ DecimalFormatter.to2Decimal(bolusIob.iob) + "|"
+ DecimalFormatter.to2Decimal(basalIob.basaliob) + ")")
}
if (!sp.getBoolean(R.string.key_xdripstatus_showbgi, false)) {
return status
}
val bgi = -(bolusIob.activity + basalIob.activity) * 5 * Profile.fromMgdlToUnits(profile.isfMgdl, profileFunction.getUnits())
status += " " + (if (bgi >= 0) "+" else "") + DecimalFormatter.to2Decimal(bgi)
status += " " + IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "StatusLinePlugin").generateCOBString()
return status
}
}

View file

@ -1,216 +0,0 @@
package info.nightscout.androidaps.plugins.general.xdripStatusline;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import androidx.annotation.NonNull;
import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.IobTotal;
import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.db.TemporaryBasal;
import info.nightscout.androidaps.events.EventAppInitialized;
import info.nightscout.androidaps.events.EventConfigBuilderChange;
import info.nightscout.androidaps.events.EventExtendedBolusChange;
import info.nightscout.androidaps.events.EventPreferenceChange;
import info.nightscout.androidaps.events.EventRefreshOverview;
import info.nightscout.androidaps.events.EventTempBasalChange;
import info.nightscout.androidaps.events.EventTreatmentChange;
import info.nightscout.androidaps.interfaces.PluginBase;
import info.nightscout.androidaps.interfaces.PluginDescription;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.TreatmentsInterface;
import info.nightscout.androidaps.plugins.aps.loop.LoopPlugin;
import info.nightscout.androidaps.plugins.bus.RxBus;
import info.nightscout.androidaps.plugins.configBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.configBuilder.ProfileFunctions;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.IobCobCalculatorPlugin;
import info.nightscout.androidaps.plugins.iob.iobCobCalculator.events.EventAutosensCalculationFinished;
import info.nightscout.androidaps.plugins.treatments.TreatmentsPlugin;
import info.nightscout.androidaps.utils.DecimalFormatter;
import info.nightscout.androidaps.utils.FabricPrivacy;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.schedulers.Schedulers;
/**
* Created by adrian on 17/11/16.
*/
public class StatuslinePlugin extends PluginBase {
private CompositeDisposable disposable = new CompositeDisposable();
private static StatuslinePlugin statuslinePlugin;
public static StatuslinePlugin getPlugin() {
return statuslinePlugin;
}
//broadcast related constants
private static final String EXTRA_STATUSLINE = "com.eveningoutpost.dexdrip.Extras.Statusline";
private static final String ACTION_NEW_EXTERNAL_STATUSLINE = "com.eveningoutpost.dexdrip.ExternalStatusline";
private static final String RECEIVER_PERMISSION = "com.eveningoutpost.dexdrip.permissions.RECEIVE_EXTERNAL_STATUSLINE";
private boolean lastLoopStatus;
private final Context ctx;
private SharedPreferences mPrefs;
public static StatuslinePlugin initPlugin(Context ctx) {
if (statuslinePlugin == null) {
statuslinePlugin = new StatuslinePlugin(ctx);
}
return statuslinePlugin;
}
public StatuslinePlugin(Context ctx) {
super(new PluginDescription()
.mainType(PluginType.GENERAL)
.pluginName(R.string.xdripstatus)
.shortName(R.string.xdripstatus_shortname)
.neverVisible(true)
.preferencesId(R.xml.pref_xdripstatus)
.description(R.string.description_xdrip_status_line)
);
this.ctx = ctx;
this.mPrefs = PreferenceManager.getDefaultSharedPreferences(ctx);
}
@Override
protected void onStart() {
super.onStart();
disposable.add(RxBus.INSTANCE
.toObservable(EventRefreshOverview.class)
.observeOn(Schedulers.io())
.subscribe(event -> {
if ((lastLoopStatus != LoopPlugin.getPlugin().isEnabled(PluginType.LOOP)))
sendStatus();
},
FabricPrivacy::logException
));
disposable.add(RxBus.INSTANCE
.toObservable(EventExtendedBolusChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> sendStatus(),
FabricPrivacy::logException
));
disposable.add(RxBus.INSTANCE
.toObservable(EventTempBasalChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> sendStatus(),
FabricPrivacy::logException
));
disposable.add(RxBus.INSTANCE
.toObservable(EventTreatmentChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> sendStatus(),
FabricPrivacy::logException
));
disposable.add(RxBus.INSTANCE
.toObservable(EventConfigBuilderChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> sendStatus(),
FabricPrivacy::logException
));
disposable.add(RxBus.INSTANCE
.toObservable(EventAutosensCalculationFinished.class)
.observeOn(Schedulers.io())
.subscribe(event -> sendStatus(),
FabricPrivacy::logException
));
disposable.add(RxBus.INSTANCE
.toObservable(EventPreferenceChange.class)
.observeOn(Schedulers.io())
.subscribe(event -> sendStatus(),
FabricPrivacy::logException
));
disposable.add(RxBus.INSTANCE
.toObservable(EventAppInitialized.class)
.observeOn(Schedulers.io())
.subscribe(event -> sendStatus(),
FabricPrivacy::logException
));
}
@Override
protected void onStop() {
super.onStop();
disposable.clear();
sendStatus();
}
private void sendStatus() {
String status = ""; // sent once on disable
Profile profile = ProfileFunctions.getInstance().getProfile();
if (isEnabled(PluginType.GENERAL) && profile != null) {
status = buildStatusString(profile);
}
//sendData
final Bundle bundle = new Bundle();
bundle.putString(EXTRA_STATUSLINE, status);
Intent intent = new Intent(ACTION_NEW_EXTERNAL_STATUSLINE);
intent.putExtras(bundle);
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
ctx.sendBroadcast(intent, null);
}
@NonNull
private String buildStatusString(Profile profile) {
String status = "";
if (ConfigBuilderPlugin.getPlugin().getActivePump() == null)
return "";
LoopPlugin loopPlugin = LoopPlugin.getPlugin();
if (!loopPlugin.isEnabled(PluginType.LOOP)) {
status += MainApp.gs(R.string.disabledloop) + "\n";
lastLoopStatus = false;
} else if (loopPlugin.isEnabled(PluginType.LOOP)) {
lastLoopStatus = true;
}
//Temp basal
TreatmentsInterface treatmentsInterface = TreatmentsPlugin.getPlugin();
TemporaryBasal activeTemp = treatmentsInterface.getTempBasalFromHistory(System.currentTimeMillis());
if (activeTemp != null) {
status += activeTemp.toStringShort() + " ";
}
//IOB
treatmentsInterface.updateTotalIOBTreatments();
IobTotal bolusIob = treatmentsInterface.getLastCalculationTreatments().round();
treatmentsInterface.updateTotalIOBTempBasals();
IobTotal basalIob = treatmentsInterface.getLastCalculationTempBasals().round();
status += DecimalFormatter.to2Decimal(bolusIob.iob + basalIob.basaliob) + "U";
if (mPrefs.getBoolean("xdripstatus_detailediob", true)) {
status += "("
+ DecimalFormatter.to2Decimal(bolusIob.iob) + "|"
+ DecimalFormatter.to2Decimal(basalIob.basaliob) + ")";
}
if (!mPrefs.getBoolean("xdripstatus_showbgi", false)) {
return status;
}
double bgi = -(bolusIob.activity + basalIob.activity) * 5 * Profile.fromMgdlToUnits(profile.getIsfMgdl(), ProfileFunctions.getSystemUnits());
status += " " + ((bgi >= 0) ? "+" : "") + DecimalFormatter.to2Decimal(bgi);
status += " " + IobCobCalculatorPlugin.getPlugin().getCobInfo(false, "StatuslinePlugin").generateCOBString();
return status;
}
}

View file

@ -1687,5 +1687,7 @@
<string name="alreadyset">Already set</string> <string name="alreadyset">Already set</string>
<string name="message">Message</string> <string name="message">Message</string>
<string name="clearqueueconfirm">Clear queue? All data in queue will be lost!</string> <string name="clearqueueconfirm">Clear queue? All data in queue will be lost!</string>
<string name="key_xdripstatus_detailediob" translatable="false">xdripstatus_detailediob</string>
<string name="key_xdripstatus_showbgi" translatable="false">xdripstatus_showbgi</string>
</resources> </resources>

View file

@ -1,15 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
android:key="DanaRProfile"
android:title="@string/danarprofile">
<EditTextPreference
android:defaultValue="3"
android:key="@string/key_danarprofile_dia"
android:numeric="decimal"
android:dialogMessage="@string/danarprofile_dia_summary"
android:title="@string/danarprofile_dia" />
</PreferenceCategory>
</PreferenceScreen>

View file

@ -6,12 +6,12 @@
<SwitchPreference <SwitchPreference
android:defaultValue="true" android:defaultValue="true"
android:key="xdripstatus_detailediob" android:key="@string/key_xdripstatus_detailediob"
android:title="@string/wear_detailedIOB_title" android:title="@string/wear_detailedIOB_title"
android:summary="@string/wear_detailedIOB_summary"/> android:summary="@string/wear_detailedIOB_summary"/>
<SwitchPreference <SwitchPreference
android:defaultValue="false" android:defaultValue="false"
android:key="xdripstatus_showbgi" android:key="@string/key_xdripstatus_showbgi"
android:title="@string/wear_showbgi_title" android:title="@string/wear_showbgi_title"
android:summary="@string/wear_showbgi_summary"/> android:summary="@string/wear_showbgi_summary"/>
</PreferenceCategory> </PreferenceCategory>