Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a5be2897 authored by Chiayu Pei's avatar Chiayu Pei Committed by Android (Google) Code Review
Browse files

Merge "Revert "Unregister listeners and reset wake lock"" into qt-dev

parents e0c262b7 6a8c9357
Loading
Loading
Loading
Loading
+16 −43
Original line number Original line Diff line number Diff line
@@ -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,12 +297,6 @@ public class KeyguardSliceProvider extends SliceProvider implements


    @Override
    @Override
    public boolean onCreateSliceProvider() {
    public boolean onCreateSliceProvider() {
        synchronized (this) {
            KeyguardSliceProvider oldInstance = KeyguardSliceProvider.sInstance;
            if (oldInstance != null) {
                oldInstance.onDestroy();
            }

        mAlarmManager = getContext().getSystemService(AlarmManager.class);
        mAlarmManager = getContext().getSystemService(AlarmManager.class);
        mContentResolver = getContext().getContentResolver();
        mContentResolver = getContext().getContentResolver();
        mNextAlarmController = new NextAlarmControllerImpl(getContext());
        mNextAlarmController = new NextAlarmControllerImpl(getContext());
@@ -320,25 +310,9 @@ public class KeyguardSliceProvider extends SliceProvider implements
        KeyguardSliceProvider.sInstance = this;
        KeyguardSliceProvider.sInstance = this;
        registerClockUpdate();
        registerClockUpdate();
        updateClockLocked();
        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;
+1 −28
Original line number Original line Diff line number Diff line
@@ -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