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