Merge "Revert "Unregister listeners and reset wake lock"" into qt-dev
This commit is contained in:
@@ -104,19 +104,15 @@ public class KeyguardSliceProvider extends SliceProvider implements
|
||||
private final AlarmManager.OnAlarmListener mUpdateNextAlarm = this::updateNextAlarm;
|
||||
private final HashSet<Integer> mMediaInvisibleStates;
|
||||
private final Object mMediaToken = new Object();
|
||||
@VisibleForTesting
|
||||
protected SettableWakeLock mMediaWakeLock;
|
||||
@VisibleForTesting
|
||||
protected ZenModeController mZenModeController;
|
||||
private SettableWakeLock mMediaWakeLock;
|
||||
private ZenModeController mZenModeController;
|
||||
private String mDatePattern;
|
||||
private DateFormat mDateFormat;
|
||||
private String mLastText;
|
||||
private boolean mRegistered;
|
||||
private String mNextAlarm;
|
||||
private NextAlarmController mNextAlarmController;
|
||||
@VisibleForTesting
|
||||
protected AlarmManager mAlarmManager;
|
||||
@VisibleForTesting
|
||||
protected ContentResolver mContentResolver;
|
||||
private AlarmManager.AlarmClockInfo mNextAlarmInfo;
|
||||
private PendingIntent mPendingIntent;
|
||||
@@ -301,44 +297,22 @@ public class KeyguardSliceProvider extends SliceProvider implements
|
||||
|
||||
@Override
|
||||
public boolean onCreateSliceProvider() {
|
||||
synchronized (this) {
|
||||
KeyguardSliceProvider oldInstance = KeyguardSliceProvider.sInstance;
|
||||
if (oldInstance != null) {
|
||||
oldInstance.onDestroy();
|
||||
}
|
||||
|
||||
mAlarmManager = getContext().getSystemService(AlarmManager.class);
|
||||
mContentResolver = getContext().getContentResolver();
|
||||
mNextAlarmController = new NextAlarmControllerImpl(getContext());
|
||||
mNextAlarmController.addCallback(this);
|
||||
mZenModeController = new ZenModeControllerImpl(getContext(), mHandler);
|
||||
mZenModeController.addCallback(this);
|
||||
mDatePattern = getContext().getString(R.string.system_ui_aod_date_pattern);
|
||||
mPendingIntent = PendingIntent.getActivity(getContext(), 0, new Intent(), 0);
|
||||
mMediaWakeLock = new SettableWakeLock(WakeLock.createPartial(getContext(), "media"),
|
||||
"media");
|
||||
KeyguardSliceProvider.sInstance = this;
|
||||
registerClockUpdate();
|
||||
updateClockLocked();
|
||||
}
|
||||
mAlarmManager = getContext().getSystemService(AlarmManager.class);
|
||||
mContentResolver = getContext().getContentResolver();
|
||||
mNextAlarmController = new NextAlarmControllerImpl(getContext());
|
||||
mNextAlarmController.addCallback(this);
|
||||
mZenModeController = new ZenModeControllerImpl(getContext(), mHandler);
|
||||
mZenModeController.addCallback(this);
|
||||
mDatePattern = getContext().getString(R.string.system_ui_aod_date_pattern);
|
||||
mPendingIntent = PendingIntent.getActivity(getContext(), 0, new Intent(), 0);
|
||||
mMediaWakeLock = new SettableWakeLock(WakeLock.createPartial(getContext(), "media"),
|
||||
"media");
|
||||
KeyguardSliceProvider.sInstance = this;
|
||||
registerClockUpdate();
|
||||
updateClockLocked();
|
||||
return true;
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
protected void onDestroy() {
|
||||
synchronized (this) {
|
||||
mNextAlarmController.removeCallback(this);
|
||||
mZenModeController.removeCallback(this);
|
||||
mMediaWakeLock.setAcquired(false);
|
||||
mAlarmManager.cancel(mUpdateNextAlarm);
|
||||
if (mRegistered) {
|
||||
mRegistered = false;
|
||||
getKeyguardUpdateMonitor().removeCallback(mKeyguardUpdateMonitorCallback);
|
||||
getContext().unregisterReceiver(mIntentReceiver);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onZenChanged(int zen) {
|
||||
notifyChange();
|
||||
@@ -376,8 +350,7 @@ public class KeyguardSliceProvider extends SliceProvider implements
|
||||
* Registers a broadcast receiver for clock updates, include date, time zone and manually
|
||||
* changing the date/time via the settings app.
|
||||
*/
|
||||
@VisibleForTesting
|
||||
protected void registerClockUpdate() {
|
||||
private void registerClockUpdate() {
|
||||
synchronized (this) {
|
||||
if (mRegistered) {
|
||||
return;
|
||||
|
||||
@@ -48,9 +48,6 @@ import com.android.keyguard.KeyguardUpdateMonitor;
|
||||
import com.android.systemui.SysuiTestCase;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.NotificationMediaManager;
|
||||
import com.android.systemui.statusbar.phone.KeyguardBypassController;
|
||||
import com.android.systemui.statusbar.policy.ZenModeController;
|
||||
import com.android.systemui.util.wakelock.SettableWakeLock;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
@@ -76,14 +73,6 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
|
||||
private NotificationMediaManager mNotificationMediaManager;
|
||||
@Mock
|
||||
private StatusBarStateController mStatusBarStateController;
|
||||
@Mock
|
||||
private KeyguardBypassController mKeyguardBypassController;
|
||||
@Mock
|
||||
private ZenModeController mZenModeController;
|
||||
@Mock
|
||||
private SettableWakeLock mMediaWakeLock;
|
||||
@Mock
|
||||
private KeyguardUpdateMonitor mKeyguardUpdateMonitor;
|
||||
private TestableKeyguardSliceProvider mProvider;
|
||||
private boolean mIsZenMode;
|
||||
|
||||
@@ -205,20 +194,6 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
|
||||
verify(mContentResolver, never()).notifyChange(eq(mProvider.getUri()), eq(null));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDestroy_noCrash() {
|
||||
mProvider.onDestroy();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onDestroy_unregisterListeners() {
|
||||
mProvider.registerClockUpdate();
|
||||
mProvider.onDestroy();
|
||||
verify(mMediaWakeLock).setAcquired(eq(false));
|
||||
verify(mAlarmManager).cancel(any(AlarmManager.OnAlarmListener.class));
|
||||
verify(mKeyguardUpdateMonitor).removeCallback(any());
|
||||
}
|
||||
|
||||
private class TestableKeyguardSliceProvider extends KeyguardSliceProvider {
|
||||
int mCleanDateFormatInvokations;
|
||||
private int mCounter;
|
||||
@@ -232,8 +207,6 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
|
||||
super.onCreateSliceProvider();
|
||||
mAlarmManager = KeyguardSliceProviderTest.this.mAlarmManager;
|
||||
mContentResolver = KeyguardSliceProviderTest.this.mContentResolver;
|
||||
mZenModeController = KeyguardSliceProviderTest.this.mZenModeController;
|
||||
mMediaWakeLock = KeyguardSliceProviderTest.this.mMediaWakeLock;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -250,7 +223,7 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
|
||||
|
||||
@Override
|
||||
public KeyguardUpdateMonitor getKeyguardUpdateMonitor() {
|
||||
return mKeyguardUpdateMonitor;
|
||||
return mock(KeyguardUpdateMonitor.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user