summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractConnectivityPreferenceController.java15
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractUptimePreferenceController.java17
-rw-r--r--packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java5
3 files changed, 27 insertions, 10 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractConnectivityPreferenceController.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractConnectivityPreferenceController.java
index f4e050c76b19..c6552f77a2b2 100644
--- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractConnectivityPreferenceController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractConnectivityPreferenceController.java
@@ -43,18 +43,20 @@ public abstract class AbstractConnectivityPreferenceController
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (ArrayUtils.contains(getConnectivityIntents(), action)) {
- mHandler.sendEmptyMessage(EVENT_UPDATE_CONNECTIVITY);
+ getHandler().sendEmptyMessage(EVENT_UPDATE_CONNECTIVITY);
}
}
};
private static final int EVENT_UPDATE_CONNECTIVITY = 600;
- private final Handler mHandler = new ConnectivityEventHandler(this);
+ private Handler mHandler;
public AbstractConnectivityPreferenceController(Context context, Lifecycle lifecycle) {
super(context);
- lifecycle.addObserver(this);
+ if (lifecycle != null) {
+ lifecycle.addObserver(this);
+ }
}
@Override
@@ -78,6 +80,13 @@ public abstract class AbstractConnectivityPreferenceController
protected abstract void updateConnectivity();
+ private Handler getHandler() {
+ if (mHandler == null) {
+ mHandler = new ConnectivityEventHandler(this);
+ }
+ return mHandler;
+ }
+
private static class ConnectivityEventHandler extends Handler {
private WeakReference<AbstractConnectivityPreferenceController> mPreferenceController;
diff --git a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractUptimePreferenceController.java b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractUptimePreferenceController.java
index f675d3e5c0b3..ac61ade19222 100644
--- a/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractUptimePreferenceController.java
+++ b/packages/SettingsLib/src/com/android/settingslib/deviceinfo/AbstractUptimePreferenceController.java
@@ -44,21 +44,23 @@ public abstract class AbstractUptimePreferenceController extends AbstractPrefere
private static final int EVENT_UPDATE_STATS = 500;
private Preference mUptime;
- private final Handler mHandler = new MyHandler(this);
+ private Handler mHandler;
public AbstractUptimePreferenceController(Context context, Lifecycle lifecycle) {
super(context);
- lifecycle.addObserver(this);
+ if (lifecycle != null) {
+ lifecycle.addObserver(this);
+ }
}
@Override
public void onStart() {
- mHandler.sendEmptyMessage(EVENT_UPDATE_STATS);
+ getHandler().sendEmptyMessage(EVENT_UPDATE_STATS);
}
@Override
public void onStop() {
- mHandler.removeMessages(EVENT_UPDATE_STATS);
+ getHandler().removeMessages(EVENT_UPDATE_STATS);
}
@Override
@@ -78,6 +80,13 @@ public abstract class AbstractUptimePreferenceController extends AbstractPrefere
updateTimes();
}
+ private Handler getHandler() {
+ if (mHandler == null) {
+ mHandler = new MyHandler(this);
+ }
+ return mHandler;
+ }
+
private void updateTimes() {
mUptime.setSummary(DateUtils.formatDuration(SystemClock.elapsedRealtime()));
}
diff --git a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java
index 666a2a8ff413..f68533ba4081 100644
--- a/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java
+++ b/packages/SettingsLib/tests/robotests/src/com/android/settingslib/deviceinfo/UptimePreferenceControllerTest.java
@@ -31,14 +31,13 @@ import com.android.settingslib.SettingsLibRobolectricTestRunner;
import com.android.settingslib.TestConfig;
import com.android.settingslib.core.lifecycle.Lifecycle;
-import org.robolectric.shadows.ShadowLooper;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
+import org.robolectric.shadows.ShadowLooper;
@RunWith(SettingsLibRobolectricTestRunner.class)
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
@@ -73,7 +72,7 @@ public class UptimePreferenceControllerTest {
@Test
public void testUptimeTick() {
final AbstractUptimePreferenceController uptimePreferenceController =
- new ConcreteUptimePreferenceController(mContext, mLifecycle);
+ new ConcreteUptimePreferenceController(mContext, null /* lifecycle */);
uptimePreferenceController.displayPreference(mScreen);