Merge "Fix crash when pausing DndCondition." into pi-dev
diff --git a/src/com/android/settings/dashboard/conditional/DndCondition.java b/src/com/android/settings/dashboard/conditional/DndCondition.java
index cd5178a..673dccc 100644
--- a/src/com/android/settings/dashboard/conditional/DndCondition.java
+++ b/src/com/android/settings/dashboard/conditional/DndCondition.java
@@ -152,7 +152,9 @@
@Override
public void onPause() {
- mManager.getContext().unregisterReceiver(mReceiver);
- mRegistered = false;
+ if (mRegistered) {
+ mManager.getContext().unregisterReceiver(mReceiver);
+ mRegistered = false;
+ }
}
}
diff --git a/tests/robotests/src/com/android/settings/dashboard/conditional/DndConditionTest.java b/tests/robotests/src/com/android/settings/dashboard/conditional/DndConditionTest.java
index 8be7b6f..d68a675 100644
--- a/tests/robotests/src/com/android/settings/dashboard/conditional/DndConditionTest.java
+++ b/tests/robotests/src/com/android/settings/dashboard/conditional/DndConditionTest.java
@@ -18,6 +18,7 @@
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.never;
+import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -26,6 +27,7 @@
import android.content.Context;
import android.content.pm.PackageManager;
+import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import org.junit.Before;
@@ -47,6 +49,7 @@
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest();
when(mConditionManager.getContext()).thenReturn(mContext);
when(mContext.getPackageManager()).thenReturn(mPackageManager);
}
@@ -90,4 +93,15 @@
verify(mContext).unregisterReceiver(any(DndCondition.Receiver.class));
}
+
+ @Test
+ public void onPause_noReceiverRegistered_shouldNotUnregisterReceiver() {
+ DndCondition condition = new DndCondition(mConditionManager);
+ condition.onPause();
+ reset(mContext);
+
+ condition.onPause();
+
+ verify(mContext, never()).unregisterReceiver(any(DndCondition.Receiver.class));
+ }
}