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

Commit 695f9936 authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Remove ContentResolver binder call from UI thread" into udc-qpr-dev am: 8cc05554

parents 37faecb0 8cc05554
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.KeyguardUpdateMonitorCallback;
import com.android.systemui.R;
import com.android.systemui.SystemUIAppComponentFactoryBase;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.settings.UserTracker;
import com.android.systemui.statusbar.NotificationMediaManager;
@@ -151,6 +152,9 @@ public class KeyguardSliceProvider extends SliceProvider implements
    private SystemUIAppComponentFactoryBase.ContextAvailableCallback mContextAvailableCallback;
    @Inject
    WakeLockLogger mWakeLockLogger;
    @Inject
    @Background
    Handler mBgHandler;

    /**
     * Receiver responsible for time ticking and updating the date format.
@@ -502,7 +506,7 @@ public class KeyguardSliceProvider extends SliceProvider implements
    }

    protected void notifyChange() {
        mContentResolver.notifyChange(mSliceUri, null /* observer */);
        mBgHandler.post(() -> mContentResolver.notifyChange(mSliceUri, null /* observer */));
    }

    @Override
+8 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.keyguard;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.clearInvocations;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.reset;
@@ -31,6 +32,7 @@ import android.content.ContentResolver;
import android.media.MediaMetadata;
import android.media.session.PlaybackState;
import android.net.Uri;
import android.os.Handler;
import android.provider.Settings;
import android.testing.AndroidTestingRunner;
import android.testing.TestableLooper;
@@ -166,6 +168,7 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {

    @Test
    public void updatesClock() {
        clearInvocations(mContentResolver);
        mProvider.mKeyguardUpdateMonitorCallback.onTimeChanged();
        TestableLooper.get(this).processAllMessages();
        verify(mContentResolver).notifyChange(eq(mProvider.getUri()), eq(null));
@@ -217,11 +220,13 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
        reset(mContentResolver);
        mProvider.onPrimaryMetadataOrStateChanged(mock(MediaMetadata.class),
                PlaybackState.STATE_PLAYING);
        TestableLooper.get(this).processAllMessages();
        verify(mContentResolver).notifyChange(eq(mProvider.getUri()), eq(null));

        // Hides after waking up
        reset(mContentResolver);
        mProvider.onDozingChanged(false);
        TestableLooper.get(this).processAllMessages();
        verify(mContentResolver).notifyChange(eq(mProvider.getUri()), eq(null));
    }

@@ -231,6 +236,7 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
        mProvider.onPrimaryMetadataOrStateChanged(mock(MediaMetadata.class),
                PlaybackState.STATE_PLAYING);
        reset(mContentResolver);
        TestableLooper.get(this).processAllMessages();
        // Show media when dozing
        mProvider.onDozingChanged(true);
        verify(mContentResolver).notifyChange(eq(mProvider.getUri()), eq(null));
@@ -272,6 +278,8 @@ public class KeyguardSliceProviderTest extends SysuiTestCase {
            mMediaManager = KeyguardSliceProviderTest.this.mNotificationMediaManager;
            mKeyguardUpdateMonitor = KeyguardSliceProviderTest.this.mKeyguardUpdateMonitor;
            mUserTracker = KeyguardSliceProviderTest.this.mUserTracker;
            mBgHandler =
                    new Handler(TestableLooper.get(KeyguardSliceProviderTest.this).getLooper());
        }

        @Override