Merge "Avoid crash when resetting defaults." into tm-dev
This commit is contained in:
@@ -76,6 +76,8 @@ class ChargingModifier extends Modifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final class ChargingTracker extends BroadcastReceiver {
|
private final class ChargingTracker extends BroadcastReceiver {
|
||||||
|
private boolean mIsSetup = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Track whether we're "charging", where charging means that we're ready to commit to
|
* Track whether we're "charging", where charging means that we're ready to commit to
|
||||||
* doing work.
|
* doing work.
|
||||||
@@ -83,6 +85,10 @@ class ChargingModifier extends Modifier {
|
|||||||
private volatile boolean mCharging;
|
private volatile boolean mCharging;
|
||||||
|
|
||||||
public void startTracking(@NonNull Context context) {
|
public void startTracking(@NonNull Context context) {
|
||||||
|
if (mIsSetup) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
final IntentFilter filter = new IntentFilter();
|
final IntentFilter filter = new IntentFilter();
|
||||||
filter.addAction(BatteryManager.ACTION_CHARGING);
|
filter.addAction(BatteryManager.ACTION_CHARGING);
|
||||||
filter.addAction(BatteryManager.ACTION_DISCHARGING);
|
filter.addAction(BatteryManager.ACTION_DISCHARGING);
|
||||||
@@ -91,10 +97,17 @@ class ChargingModifier extends Modifier {
|
|||||||
// Initialise tracker state.
|
// Initialise tracker state.
|
||||||
final BatteryManager batteryManager = context.getSystemService(BatteryManager.class);
|
final BatteryManager batteryManager = context.getSystemService(BatteryManager.class);
|
||||||
mCharging = batteryManager.isCharging();
|
mCharging = batteryManager.isCharging();
|
||||||
|
|
||||||
|
mIsSetup = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopTracking(@NonNull Context context) {
|
public void stopTracking(@NonNull Context context) {
|
||||||
|
if (!mIsSetup) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
context.unregisterReceiver(this);
|
context.unregisterReceiver(this);
|
||||||
|
mIsSetup = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -72,6 +72,7 @@ class DeviceIdleModifier extends Modifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private final class DeviceIdleTracker extends BroadcastReceiver {
|
private final class DeviceIdleTracker extends BroadcastReceiver {
|
||||||
|
private boolean mIsSetup = false;
|
||||||
|
|
||||||
private volatile boolean mDeviceIdle;
|
private volatile boolean mDeviceIdle;
|
||||||
private volatile boolean mDeviceLightIdle;
|
private volatile boolean mDeviceLightIdle;
|
||||||
@@ -80,6 +81,10 @@ class DeviceIdleModifier extends Modifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void startTracking(@NonNull Context context) {
|
void startTracking(@NonNull Context context) {
|
||||||
|
if (mIsSetup) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
IntentFilter filter = new IntentFilter();
|
IntentFilter filter = new IntentFilter();
|
||||||
filter.addAction(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED);
|
filter.addAction(PowerManager.ACTION_DEVICE_IDLE_MODE_CHANGED);
|
||||||
filter.addAction(PowerManager.ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED);
|
filter.addAction(PowerManager.ACTION_LIGHT_DEVICE_IDLE_MODE_CHANGED);
|
||||||
@@ -88,10 +93,17 @@ class DeviceIdleModifier extends Modifier {
|
|||||||
// Initialise tracker state.
|
// Initialise tracker state.
|
||||||
mDeviceIdle = mPowerManager.isDeviceIdleMode();
|
mDeviceIdle = mPowerManager.isDeviceIdleMode();
|
||||||
mDeviceLightIdle = mPowerManager.isLightDeviceIdleMode();
|
mDeviceLightIdle = mPowerManager.isLightDeviceIdleMode();
|
||||||
|
|
||||||
|
mIsSetup = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void stopTracking(@NonNull Context context) {
|
void stopTracking(@NonNull Context context) {
|
||||||
|
if (!mIsSetup) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
context.unregisterReceiver(this);
|
context.unregisterReceiver(this);
|
||||||
|
mIsSetup = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -72,6 +72,8 @@ class PowerSaveModeModifier extends Modifier {
|
|||||||
|
|
||||||
// TODO: migrate to relying on PowerSaveState and ServiceType.TARE
|
// TODO: migrate to relying on PowerSaveState and ServiceType.TARE
|
||||||
private final class PowerSaveModeTracker extends BroadcastReceiver {
|
private final class PowerSaveModeTracker extends BroadcastReceiver {
|
||||||
|
private boolean mIsSetup = false;
|
||||||
|
|
||||||
private final PowerManager mPowerManager;
|
private final PowerManager mPowerManager;
|
||||||
private volatile boolean mPowerSaveModeEnabled;
|
private volatile boolean mPowerSaveModeEnabled;
|
||||||
|
|
||||||
@@ -80,16 +82,27 @@ class PowerSaveModeModifier extends Modifier {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void startTracking(@NonNull Context context) {
|
public void startTracking(@NonNull Context context) {
|
||||||
|
if (mIsSetup) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
final IntentFilter filter = new IntentFilter();
|
final IntentFilter filter = new IntentFilter();
|
||||||
filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
|
filter.addAction(PowerManager.ACTION_POWER_SAVE_MODE_CHANGED);
|
||||||
context.registerReceiver(this, filter);
|
context.registerReceiver(this, filter);
|
||||||
|
|
||||||
// Initialise tracker state.
|
// Initialise tracker state.
|
||||||
mPowerSaveModeEnabled = mPowerManager.isPowerSaveMode();
|
mPowerSaveModeEnabled = mPowerManager.isPowerSaveMode();
|
||||||
|
|
||||||
|
mIsSetup = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopTracking(@NonNull Context context) {
|
public void stopTracking(@NonNull Context context) {
|
||||||
|
if (!mIsSetup) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
context.unregisterReceiver(this);
|
context.unregisterReceiver(this);
|
||||||
|
mIsSetup = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user