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 { 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"); } 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)); } 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"); 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)); } 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..75a5f88c19 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) { // } @@ -2522,6 +2525,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/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 @@ 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 @@ + - - - -