Skip to content

Commit

Permalink
work on #111 disable battery opt to allow full background mode
Browse files Browse the repository at this point in the history
  • Loading branch information
n8fr8 committed Jan 17, 2018
1 parent c7d694b commit a8ef1cc
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/>

<application xmlns:tools="http://schemas.android.com/tools"
android:name="org.havenapp.main.HavenApp"
android:icon="@mipmap/ic_launcher"
Expand Down
1 change: 1 addition & 0 deletions src/main/java/org/havenapp/main/PreferenceManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,7 @@ public class PreferenceManager {

public static final String NOTIFICATION_TIME = "notification_time";

public static final String DISABLE_BATTERY_OPT = "config_battery_optimizations";

private Context context;

Expand Down
27 changes: 27 additions & 0 deletions src/main/java/org/havenapp/main/SettingsFragment.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,16 @@

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.os.PowerManager;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
Expand Down Expand Up @@ -138,6 +143,12 @@ public void onCreatePreferencesFix(Bundle bundle, String s) {
return true;
});

Preference prefDisableBatteryOpt = findPreference(PreferenceManager.DISABLE_BATTERY_OPT);
prefDisableBatteryOpt.setOnPreferenceClickListener(preference -> {
requestChangeBatteryOptimizations();
return true;
});

checkSignalUsername();
((EditTextPreference) findPreference(PreferenceManager.VERIFY_SIGNAL)).setText("");
askForPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE, 1);
Expand Down Expand Up @@ -431,4 +442,20 @@ public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int seco
int delaySeconds = second + minute * 60 + hourOfDay * 60 * 60;
preferences.setTimerDelay(delaySeconds);
}

private void requestChangeBatteryOptimizations ()
{
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
Intent intent = new Intent();
String packageName = getActivity().getPackageName();
PowerManager pm = (PowerManager) getActivity().getSystemService(Context.POWER_SERVICE);
if (pm.isIgnoringBatteryOptimizations(packageName))
intent.setAction(Settings.ACTION_IGNORE_BATTERY_OPTIMIZATION_SETTINGS);
else {
intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS);
intent.setData(Uri.parse("package:" + packageName));
}
getActivity().startActivity(intent);
}
}
}
2 changes: 2 additions & 0 deletions src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,8 @@
<string name="minutes">minutes(s)</string>
<string name="keep_watch">Keep Watch!</string>
<string name="camera_sensitivity_tip">Select camera and use the slider to adjust motion detection sensitivity</string>
<string name="disable_battery_opt_title">Disable Battery Optimizations</string>
<string name="disable_battery_opt_summary">Allow app to run when screen is off</string>


</resources>
6 changes: 6 additions & 0 deletions src/main/res/xml/settings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
android:key="config_delay_time"
android:title="@string/timer_delay_label" />


<Preference
android:key="config_battery_optimizations"
android:title="@string/disable_battery_opt_title"
android:summary="@string/disable_battery_opt_summary"/>

<PreferenceCategory android:title="@string/sensors">

<ListPreference
Expand Down

0 comments on commit a8ef1cc

Please sign in to comment.