diff --git a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java index a9d4b1f5e903b9a27d7b9142c07b80d72b7de23d..16cc8d6070d9beb0ca425becf0396b40e2d58dbf 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java +++ b/app/src/main/java/info/nightscout/android/medtronic/MainActivity.java @@ -26,6 +26,7 @@ import android.support.v4.content.LocalBroadcastManager; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.support.v7.app.NotificationCompat; +import android.support.v7.view.menu.ActionMenuItemView; import android.support.v7.widget.Toolbar; import android.text.Html; import android.text.format.DateUtils; @@ -605,6 +606,34 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc textViewTrend.setText(Html.fromHtml(renderTrendHtml(pumpStatusData.getCgmTrend()))); textViewIOB.setText(String.format(Locale.getDefault(), "%.2f", pumpStatusData.getActiveInsulin())); + ActionMenuItemView batIcon = ((ActionMenuItemView) findViewById(R.id.status_battery)); + + switch (pumpStatusData.getBatteryPercentage()) { + case 0: + batIcon.setTitle("0%"); + batIcon.setIcon(getResources().getDrawable(R.drawable.battery_0)); + break; + case 25: + batIcon.setTitle("25%"); + batIcon.setIcon(getResources().getDrawable(R.drawable.battery_25)); + break; + case 50: + batIcon.setTitle("50%"); + batIcon.setIcon(getResources().getDrawable(R.drawable.battery_50)); + break; + case 75: + batIcon.setTitle("75%"); + batIcon.setIcon(getResources().getDrawable(R.drawable.battery_75)); + break; + case 100: + batIcon.setTitle("100%"); + batIcon.setIcon(getResources().getDrawable(R.drawable.battery_100)); + break; + default: + batIcon.setTitle(getResources().getString(R.string.menu_name_status)); + batIcon.setIcon(getResources().getDrawable(R.drawable.battery_0)); + } + // TODO - waiting for MPAndroidCharts 3.0.0. This will fix: // Date support // Realm v1.0.0 support @@ -655,7 +684,17 @@ public class MainActivity extends AppCompatActivity implements OnSharedPreferenc } long nextPoll = pumpStatusData.getEventDate().getTime() + pumpStatusData.getPumpTimeOffset() - + MedtronicCnlIntentService.POLL_GRACE_PERIOD_MS + MedtronicCnlIntentService.POLL_PERIOD_MS; + + MedtronicCnlIntentService.POLL_GRACE_PERIOD_MS; + + if (pumpStatusData.getBatteryPercentage() > 25) { + // poll every 5 min + nextPoll += MedtronicCnlIntentService.POLL_PERIOD_MS; + } else { + // if pump battery seems to be empty reduce polling to save battery (every 15 min) + //TODO configurable??? + //TODO add message & document it + nextPoll += MedtronicCnlIntentService.LOW_BATTERY_POLL_PERIOD_MS; + } startCgmService(nextPoll); // Delete invalid or old records from Realm diff --git a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java index 68fa08f757e16e2083a868b8426effd57c59e4ce..1c72020c489f95ef9f5196f85bac3e7931283094 100644 --- a/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java +++ b/app/src/main/java/info/nightscout/android/medtronic/service/MedtronicCnlIntentService.java @@ -43,6 +43,7 @@ public class MedtronicCnlIntentService extends IntentService { public final static int USB_PID = 0x6210; public final static long USB_WARMUP_TIME_MS = 5000L; public final static long POLL_PERIOD_MS = 300000L; + public final static long LOW_BATTERY_POLL_PERIOD_MS = 900000L; // Number of additional seconds to wait after the next expected CGM poll, so that we don't interfere with CGM radio comms. public final static long POLL_GRACE_PERIOD_MS = 30000L; private static final String TAG = MedtronicCnlIntentService.class.getSimpleName(); diff --git a/app/src/main/res/drawable-hdpi/battery_0.png b/app/src/main/res/drawable-hdpi/battery_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c03f9fccec681482cdf9b477d4b02fba975ea4ca Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_0.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_100.png b/app/src/main/res/drawable-hdpi/battery_100.png new file mode 100644 index 0000000000000000000000000000000000000000..4696e4ca4ef01f97b10ca8400fa1055cbf749763 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_100.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_25.png b/app/src/main/res/drawable-hdpi/battery_25.png new file mode 100644 index 0000000000000000000000000000000000000000..29e58b8ef43d4f5d2961ff48a91f194fced4b15a Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_25.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_50.png b/app/src/main/res/drawable-hdpi/battery_50.png new file mode 100644 index 0000000000000000000000000000000000000000..fb1d2dbbedfb5839dbe6aea45570a8c5fa56c662 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_50.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_75.png b/app/src/main/res/drawable-hdpi/battery_75.png new file mode 100644 index 0000000000000000000000000000000000000000..baee371248786c07a01a03fd565bd8ac4368d4f5 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_75.png differ diff --git a/app/src/main/res/drawable-mdpi/battery_0.png b/app/src/main/res/drawable-mdpi/battery_0.png new file mode 100644 index 0000000000000000000000000000000000000000..8efcad3ec8062a2221c81af9a39033120aab1185 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_0.png differ diff --git a/app/src/main/res/drawable-mdpi/battery_100.png b/app/src/main/res/drawable-mdpi/battery_100.png new file mode 100644 index 0000000000000000000000000000000000000000..241b0982c7f2212253472bcf913be0c6a9c485c7 Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_100.png differ diff --git a/app/src/main/res/drawable-mdpi/battery_25.png b/app/src/main/res/drawable-mdpi/battery_25.png new file mode 100644 index 0000000000000000000000000000000000000000..0462de0f6996be5b26384051c02f6c53020d64fd Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_25.png differ diff --git a/app/src/main/res/drawable-mdpi/battery_50.png b/app/src/main/res/drawable-mdpi/battery_50.png new file mode 100644 index 0000000000000000000000000000000000000000..0ed9e8218ac467d4f836891dfb7e80a8ddb01ede Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_50.png differ diff --git a/app/src/main/res/drawable-mdpi/battery_75.png b/app/src/main/res/drawable-mdpi/battery_75.png new file mode 100644 index 0000000000000000000000000000000000000000..345e8c351a26adb4e3b057f0afe0061a9b80592f Binary files /dev/null and b/app/src/main/res/drawable-mdpi/battery_75.png differ diff --git a/app/src/main/res/drawable-xhdpi/battery_0.png b/app/src/main/res/drawable-xhdpi/battery_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c512402c0624482b93a1b1c5cae165664c4f3a7a Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_0.png differ diff --git a/app/src/main/res/drawable-xhdpi/battery_100.png b/app/src/main/res/drawable-xhdpi/battery_100.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e82cb76c7215cb4fa4e72468b18611ec2126bb Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_100.png differ diff --git a/app/src/main/res/drawable-xhdpi/battery_25.png b/app/src/main/res/drawable-xhdpi/battery_25.png new file mode 100644 index 0000000000000000000000000000000000000000..c10647838f93966506685d6f5fa14be1a26a36a8 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_25.png differ diff --git a/app/src/main/res/drawable-xhdpi/battery_50.png b/app/src/main/res/drawable-xhdpi/battery_50.png new file mode 100644 index 0000000000000000000000000000000000000000..b689f641c47fcee2cfd122f8e2c05398ec89e101 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_50.png differ diff --git a/app/src/main/res/drawable-xhdpi/battery_75.png b/app/src/main/res/drawable-xhdpi/battery_75.png new file mode 100644 index 0000000000000000000000000000000000000000..2f8843b1a0695d85c1da674137ee90b576cd3cc1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/battery_75.png differ diff --git a/app/src/main/res/menu/menu.xml b/app/src/main/res/menu/menu.xml index 3a4948d2788551963d7d0670e34f0e6c67aa5944..081fb6a44c72e3bf346d38669e5a31de5c89f9c5 100644 --- a/app/src/main/res/menu/menu.xml +++ b/app/src/main/res/menu/menu.xml @@ -1,6 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> + + <item + android:id="@+id/status_battery" + android:orderInCategory="99" + app:showAsAction="always" + android:title="@string/menu_name_battery_status"/> <item android:id="@+id/action_menu_status" android:icon="@drawable/ic_launcher" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bfa6c9df237c0f66af2c2e04aaa26bb6508d5841..548128d84781081ed0d7961587f84f4c51d63845 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -50,4 +50,5 @@ <string name="dummy_button">Dummy Button</string> <string name="dummy_content">DUMMY\nCONTENT</string> <string name="menu_name_status">Status</string> + <string name="menu_name_battery_status"></string> </resources>