From 45ee959c52862276e06a76af557e7cbeb05f027a Mon Sep 17 00:00:00 2001 From: Navid Date: Sat, 8 Jun 2024 07:19:41 -0400 Subject: [PATCH 1/9] Remove the stop sensor option for G7 completely --- .../main/java/com/eveningoutpost/dexdrip/NavDrawerBuilder.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/NavDrawerBuilder.java b/app/src/main/java/com/eveningoutpost/dexdrip/NavDrawerBuilder.java index f8fcca76d7..daf241c321 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/NavDrawerBuilder.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/NavDrawerBuilder.java @@ -18,7 +18,6 @@ import com.eveningoutpost.dexdrip.utilitymodels.CollectionServiceStarter; import com.eveningoutpost.dexdrip.utilitymodels.Experience; import com.eveningoutpost.dexdrip.stats.StatsActivity; -import com.eveningoutpost.dexdrip.utilitymodels.Pref; import com.eveningoutpost.dexdrip.utils.DexCollectionType; import com.eveningoutpost.dexdrip.utils.Preferences; @@ -103,7 +102,7 @@ public NavDrawerBuilder(final Context context) { } } } - if (!getBestCollectorHardwareName().equals("G7") || Pref.getBooleanDefaultFalse("engineering_mode")) { // If we are using G7, offer the stop sensor option in engineering mode only + if (!getBestCollectorHardwareName().equals("G7")) { // If we are using G7, there will be no stop sensor option in the menu. this.nav_drawer_options.add(context.getString(R.string.stop_sensor)); this.nav_drawer_intents.add(new Intent(context, StopSensor.class)); } From 0e5ba7f54e4fd79f9a3c07b5c574497dcf1beef7 Mon Sep 17 00:00:00 2001 From: Navid Date: Wed, 12 Jun 2024 10:13:34 -0400 Subject: [PATCH 2/9] Data table crash --- .../com/eveningoutpost/dexdrip/tables/BgReadingTable.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/tables/BgReadingTable.java b/app/src/main/java/com/eveningoutpost/dexdrip/tables/BgReadingTable.java index a3ffaa759d..9c7b6f3917 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/tables/BgReadingTable.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/tables/BgReadingTable.java @@ -62,10 +62,10 @@ public void onNavigationDrawerItemSelected(int position) { private void getData() { final List latest = BgReading.latest(5000); - parseDataForStats(latest); - ListAdapter adapter = new BgReadingAdapter(this, latest); - this.setListAdapter(adapter); try { + parseDataForStats(latest); + ListAdapter adapter = new BgReadingAdapter(this, latest); + this.setListAdapter(adapter); if (total > 0) { this.getActionBar().setSubtitle(String.format(Locale.getDefault(), "%d in 24h, bf:%d%% mis:%d", total, ((backfilled * 100) / total), missing)); } From 0ef8febc5d992228b6148887c13ab313f8a88b5f Mon Sep 17 00:00:00 2001 From: Navid Date: Wed, 12 Jun 2024 13:07:19 -0400 Subject: [PATCH 3/9] Retire old G5 settings --- .../utilitymodels/IdempotentMigrations.java | 2 ++ .../eveningoutpost/dexdrip/utils/Preferences.java | 2 ++ app/src/main/res/xml/pref_data_source.xml | 14 -------------- 3 files changed, 4 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utilitymodels/IdempotentMigrations.java b/app/src/main/java/com/eveningoutpost/dexdrip/utilitymodels/IdempotentMigrations.java index 9344057bce..a9803735e7 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utilitymodels/IdempotentMigrations.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utilitymodels/IdempotentMigrations.java @@ -149,6 +149,8 @@ private static void legacySettingsFix() { Pref.setBoolean("ob1_g5_fallback_to_xdrip", false); Pref.setBoolean("always_unbond_G5", false); Pref.setBoolean("always_get_new_keys", true); + Pref.setBoolean("run_ble_scan_constantly", false); + Pref.setBoolean("run_G5_ble_tasks_on_uithread", false); } private static void legacySettingsMoveLanguageFromNoToNb() { // Check if the user's language preference is set to "no" diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index afbb490e9a..d4b586f51f 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -2522,6 +2522,8 @@ private void removeLegacyPreferences() { // removePreferenceFromCategory("ob1_g5_fallback_to_xdrip", "ob1_options"); // removePreferenceFromCategory("always_unbond_G5", "ob1_options"); // removePreferenceFromCategory("always_get_new_keys", "ob1_options"); + // removePreferenceFromCategory("run_ble_scan_constantly", "ob1_options"); + // removePreferenceFromCategory("run_G5_ble_tasks_on_uithread", "ob1_options"); } private void removePreferenceFromCategory(final String preference, final String category) { diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index 585fbd58ee..7041f6692d 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -410,20 +410,6 @@ android:summary="@string/summary_dex_specified_slot" android:title="@string/title_dex_specified_slot" /> - - - - From 4c3839c3220f945ed629825bf17564c7d9d83c85 Mon Sep 17 00:00:00 2001 From: Navid Date: Wed, 12 Jun 2024 22:51:54 -0400 Subject: [PATCH 4/9] No sensor start time for G7 on classic status page --- app/src/main/res/layout/activity_system_status.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layout/activity_system_status.xml b/app/src/main/res/layout/activity_system_status.xml index 2be2365e34..1d12886b85 100644 --- a/app/src/main/res/layout/activity_system_status.xml +++ b/app/src/main/res/layout/activity_system_status.xml @@ -129,6 +129,7 @@ Date: Thu, 13 Jun 2024 07:56:49 -0400 Subject: [PATCH 5/9] Micro tech LinX companion app --- .../com/eveningoutpost/dexdrip/services/UiBasedCollector.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/services/UiBasedCollector.java b/app/src/main/java/com/eveningoutpost/dexdrip/services/UiBasedCollector.java index 01383d195a..3427239f87 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/services/UiBasedCollector.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/services/UiBasedCollector.java @@ -91,6 +91,7 @@ public class UiBasedCollector extends NotificationListenerService { coOptedPackages.add("com.medtronic.diabetes.simplera.eu"); coOptedPackages.add("com.senseonics.gen12androidapp"); coOptedPackages.add("com.senseonics.androidapp"); + coOptedPackages.add("com.microtech.aidexx.mgdl"); // Experiment coOptedPackagesAll.add("com.dexcom.dexcomone"); coOptedPackagesAll.add("com.dexcom.d1plus"); @@ -98,6 +99,7 @@ public class UiBasedCollector extends NotificationListenerService { coOptedPackagesAll.add("com.medtronic.diabetes.simplera.eu"); coOptedPackagesAll.add("com.senseonics.gen12androidapp"); coOptedPackagesAll.add("com.senseonics.androidapp"); + coOptedPackagesAll.add("com.microtech.aidexx.mgdl"); // Experiment companionAppIoBPackages.add("com.insulet.myblue.pdm"); From c340a39af9b60366567fa61e317ccaafb6b1fe44 Mon Sep 17 00:00:00 2001 From: Navid Date: Fri, 14 Jun 2024 17:34:51 -0400 Subject: [PATCH 6/9] US server setting in the Dex share follow menu --- .../java/com/eveningoutpost/dexdrip/utils/Preferences.java | 3 +++ app/src/main/res/xml/pref_data_source.xml | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java index afbb490e9a..78c1dec4bd 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/utils/Preferences.java @@ -1275,6 +1275,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { final Preference shFollowUser = findPreference("shfollow_user"); final Preference shFollowPass = findPreference("shfollow_pass"); + final Preference shFollowServerUS = findPreference("dex_share_us_acct"); if (collectionType == DexCollectionType.SHFollow) { final Preference.OnPreferenceChangeListener shFollowListener = new Preference.OnPreferenceChangeListener() { @@ -1289,6 +1290,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { try { shFollowUser.setOnPreferenceChangeListener(shFollowListener); shFollowPass.setOnPreferenceChangeListener(shFollowListener); + shFollowServerUS.setOnPreferenceChangeListener(shFollowListener); } catch (Exception e) { // } @@ -1297,6 +1299,7 @@ public boolean onPreferenceChange(Preference preference, Object newValue) { try { collectionCategory.removePreference(shFollowUser); collectionCategory.removePreference(shFollowPass); + collectionCategory.removePreference(shFollowServerUS); } catch (Exception e) { // } diff --git a/app/src/main/res/xml/pref_data_source.xml b/app/src/main/res/xml/pref_data_source.xml index 585fbd58ee..b49454aec2 100644 --- a/app/src/main/res/xml/pref_data_source.xml +++ b/app/src/main/res/xml/pref_data_source.xml @@ -232,6 +232,11 @@ android:singleLine="true" android:summary="Login password for Dex Share Following" android:title="Share Password" /> + Date: Sat, 15 Jun 2024 07:52:27 -0400 Subject: [PATCH 7/9] Battery optimization prompt clarification --- app/src/main/res/values/strings.xml | 2 +- app/src/main/res/xml/pref_advanced_settings.xml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 1d20c6dfc2..0c3743c9e7 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -621,7 +621,7 @@ Show a shortcut in the ☰ menu to toggle Speak Readings Speak Readings Shortcut On Android 6+ ensure battery optimization is switched off (recommended). - Don\'t keep asking about battery optimization (not recommended). + Will not keep asking about battery optimization when enabled (not recommended). Battery Optimization prompt Advanced Bluetooth Settings Bluetooth Settings diff --git a/app/src/main/res/xml/pref_advanced_settings.xml b/app/src/main/res/xml/pref_advanced_settings.xml index 60563ab746..292dcd968e 100644 --- a/app/src/main/res/xml/pref_advanced_settings.xml +++ b/app/src/main/res/xml/pref_advanced_settings.xml @@ -1494,8 +1494,7 @@ Date: Tue, 25 Jun 2024 15:42:21 -0400 Subject: [PATCH 8/9] Remove G5 from status page header (#3515) * Remove G5 from status page header * Subheading * Dex --------- Co-authored-by: Navid --- app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java index de93a3a4cc..a985fe6ac4 100644 --- a/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java +++ b/app/src/main/java/com/eveningoutpost/dexdrip/MegaStatus.java @@ -119,7 +119,7 @@ private void addAsection(String section, String title) { } private static final String G4_STATUS = "BT Device"; - public static final String G5_STATUS = "G5/G6/G7 Status"; + public static final String G5_STATUS = "Dex Status"; private static final String MEDTRUM_STATUS = "Medtrum Status"; private static final String IP_COLLECTOR = "IP Collector"; private static final String XDRIP_PLUS_SYNC = "Followers"; @@ -168,7 +168,7 @@ private void populateSectionList() { } if (dexCollectionType.equals(DexcomG5)) { if (Pref.getBooleanDefaultFalse(Ob1G5CollectionService.OB1G5_PREFS)) { - addAsection(G5_STATUS, "OB1 G5/G6/G7 Collector and Transmitter Status"); + addAsection(G5_STATUS, "G6/Dex1/G7/1+ Collector/Transmitter Status"); } else { addAsection(G5_STATUS, "G5 Collector and Transmitter Status"); } From 5345dd555f3173db7eb8f6b46bb9171aa64eb378 Mon Sep 17 00:00:00 2001 From: Mathias Walter Date: Tue, 25 Jun 2024 21:43:24 +0200 Subject: [PATCH 9/9] migrate Espresso test to Android X (#3520) * migrate Espresso test to Android X * androidx.test:core ist not needed * add ProGuard rule to ignore kxml2 warnings --- app/build.gradle | 5 ++- app/proguard-rules.pro | 5 +++ .../dexdrip/HomeEspressoTest.java | 35 ++++++++++--------- 3 files changed, 27 insertions(+), 18 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 99f75893c2..c28da624bb 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -369,9 +369,12 @@ dependencies { androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0', { exclude group: 'com.android.support', module: 'support-annotations' } - androidTestImplementation 'androidx.test.ext:junit:1.1.1', { + androidTestImplementation 'androidx.test.ext:junit:1.1.5', { exclude group: 'com.android.support', module: 'support-annotations' } + androidTestImplementation 'androidx.test:rules:1.2.0' + androidTestImplementation 'androidx.test.uiautomator:uiautomator:2.2.0' + androidTestImplementation 'androidx.test.espresso:espresso-contrib:3.1.0' androidTestImplementation 'androidx.test.espresso:espresso-idling-resource:3.1.0' // add this for intent mocking support //androidTestImplementation 'com.android.support.test.espresso:espresso-intents:3.0.1' diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 58b0e325fe..f447b1aa5c 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -74,6 +74,11 @@ # to depend on it. -dontwarn kotlinx.serialization.Serializable +# The lib net.sf.kxml:kxml2:2.3.0 is referenced in same required libraries used for +# Android testing. R8 is showing missing classes warnings which can be safely ignored. +-dontwarn org.kxml2.io.KXmlParser +-dontwarn org.kxml2.io.KXmlSerializer + -dontwarn java.util.concurrent.** -keep class rx.schedulers.Schedulers { diff --git a/app/src/androidTest/java/com/eveningoutpost/dexdrip/HomeEspressoTest.java b/app/src/androidTest/java/com/eveningoutpost/dexdrip/HomeEspressoTest.java index 0456ea66e0..3159bfe434 100644 --- a/app/src/androidTest/java/com/eveningoutpost/dexdrip/HomeEspressoTest.java +++ b/app/src/androidTest/java/com/eveningoutpost/dexdrip/HomeEspressoTest.java @@ -5,15 +5,28 @@ */ +import static androidx.test.espresso.Espresso.onView; +import static androidx.test.espresso.action.ViewActions.click; +import static androidx.test.espresso.assertion.ViewAssertions.matches; +import static androidx.test.espresso.matcher.RootMatchers.isDialog; +import static androidx.test.espresso.matcher.ViewMatchers.isDisplayed; +import static androidx.test.espresso.matcher.ViewMatchers.withId; +import static androidx.test.espresso.matcher.ViewMatchers.withText; +import static com.schibsted.spain.barista.BaristaClickActions.click; +import static com.schibsted.spain.barista.BaristaScrollActions.scrollTo; +import static com.schibsted.spain.barista.custom.NestedEnabledScrollToAction.scrollTo; +import static org.hamcrest.core.AllOf.allOf; + import android.app.Activity; import android.content.Context; -import android.support.test.InstrumentationRegistry; -import android.support.test.annotation.UiThreadTest; -import android.support.test.espresso.ViewInteraction; -import android.support.test.rule.ActivityTestRule; -import android.support.test.runner.AndroidJUnit4; import android.view.WindowManager; +import androidx.test.InstrumentationRegistry; +import androidx.test.annotation.UiThreadTest; +import androidx.test.espresso.ViewInteraction; +import androidx.test.rule.ActivityTestRule; +import androidx.test.runner.AndroidJUnit4; + import com.schibsted.spain.barista.flakyespresso.AllowFlaky; import org.junit.After; @@ -26,18 +39,6 @@ import java.io.File; -import static android.support.test.espresso.Espresso.onView; -import static android.support.test.espresso.action.ViewActions.click; -import static android.support.test.espresso.assertion.ViewAssertions.matches; -import static android.support.test.espresso.matcher.RootMatchers.isDialog; -import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; -import static android.support.test.espresso.matcher.ViewMatchers.withId; -import static android.support.test.espresso.matcher.ViewMatchers.withText; -import static com.schibsted.spain.barista.BaristaClickActions.click; -import static com.schibsted.spain.barista.BaristaScrollActions.scrollTo; -import static com.schibsted.spain.barista.custom.NestedEnabledScrollToAction.scrollTo; -import static org.hamcrest.core.AllOf.allOf; - @RunWith(AndroidJUnit4.class) @FixMethodOrder(MethodSorters.NAME_ASCENDING) public class HomeEspressoTest {