Listen for battery events

pull/207/head
M66B 2 years ago
parent a96171665a
commit 7f0bea899c

@ -35,6 +35,7 @@ import android.net.LinkProperties;
import android.net.Network; import android.net.Network;
import android.net.NetworkCapabilities; import android.net.NetworkCapabilities;
import android.net.NetworkRequest; import android.net.NetworkRequest;
import android.os.BatteryManager;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.OperationCanceledException; import android.os.OperationCanceledException;
@ -206,6 +207,8 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
registerReceiver(suspendChanged, suspend); registerReceiver(suspendChanged, suspend);
} }
registerReceiver(batteryChanged, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
DB db = DB.getInstance(this); DB db = DB.getInstance(this);
@ -866,6 +869,8 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.unregisterOnSharedPreferenceChangeListener(this); prefs.unregisterOnSharedPreferenceChangeListener(this);
unregisterReceiver(batteryChanged);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P)
unregisterReceiver(suspendChanged); unregisterReceiver(suspendChanged);
@ -2652,6 +2657,20 @@ public class ServiceSynchronize extends ServiceBase implements SharedPreferences
} }
}; };
private final BroadcastReceiver batteryChanged = new BroadcastReceiver() {
private Integer lastLevel = null;
@Override
public void onReceive(Context context, Intent intent) {
int level = intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
if (!Objects.equals(level, lastLevel)) {
lastLevel = level;
EntityLog.log(context, intent.getAction() + " " +
TextUtils.join(", ", Log.getExtras(intent.getExtras())));
}
}
};
private void updateNetworkState(final Network network, final String reason) { private void updateNetworkState(final Network network, final String reason) {
getMainHandler().post(new Runnable() { getMainHandler().post(new Runnable() {
@Override @Override

Loading…
Cancel
Save