Skip to content

Commit

Permalink
Add a reminder to disable battery optimizations for reliable syncing
Browse files Browse the repository at this point in the history
  • Loading branch information
c99koder committed Sep 9, 2024
1 parent 87d415d commit 6738582
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 6 deletions.
4 changes: 2 additions & 2 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ android {
applicationId "org.c99.healthconnect_librelinkup"
minSdk 28
targetSdk 34
versionCode 1
versionName "1.0"
versionCode 2
versionName "1.1"
}

buildTypes {
Expand Down
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
<uses-permission android:name="android.permission.health.WRITE_BLOOD_GLUCOSE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

<queries>
<package android:name="com.google.android.apps.healthdata" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,15 @@

package org.c99.healthconnect_librelinkup;

import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.PowerManager;
import android.provider.Settings;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
Expand Down Expand Up @@ -86,6 +91,16 @@ public void onClick(View view) {
}
});

findViewById(R.id.disableBatteryRestrictions).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent();
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
}
});

ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
Expand All @@ -102,6 +117,18 @@ public void onActivityResult(Set<String> o) {
)));
}

@Override
protected void onResume() {
super.onResume();

PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (powerManager.isIgnoringBatteryOptimizations(getPackageName())) {
findViewById(R.id.batteryRestrictions).setVisibility(View.GONE);
} else {
findViewById(R.id.batteryRestrictions).setVisibility(View.VISIBLE);
}
}

private class LoginTask extends AsyncTask<Void, Void, LibreLinkUp.LoginResult> {

@Override
Expand Down
21 changes: 19 additions & 2 deletions app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,29 @@
android:gravity="top|center_horizontal"
android:text="@string/status_login" />

<LinearLayout
android:id="@+id/batteryRestrictions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/battery_restricted"/>
<Button
android:id="@+id/disableBatteryRestrictions"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="6dp"
android:text="@string/disable_battery_restrictions" />
</LinearLayout>

<TextView
android:id="@+id/version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="0" />
android:gravity="center" />
</LinearLayout>

</LinearLayout>
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@
<string name="prompt_password">Password</string>
<string name="button_login">Login to LibreLinkUp</string>
<string name="status_login">Enter your email address and password above to login to LibreLinkUp</string>
<string name="battery_restricted">⚠️ This app is currently being restricted from running in the background. Tap the button bellow to enable unrestricted background usage.</string>
<string name="disable_battery_restrictions">Disable Battery Optimizations</string>
</resources>
4 changes: 2 additions & 2 deletions wearable/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ android {
applicationId "org.c99.healthconnect_librelinkup"
minSdk 30
targetSdk 34
versionCode 1
versionName "1.0"
versionCode 2
versionName "1.1"
vectorDrawables {
useSupportLibrary true
}
Expand Down

0 comments on commit 6738582

Please sign in to comment.