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

Commit 8cc05554 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove ContentResolver binder call from UI thread" into udc-qpr-dev

parents bddd53d7 ca92e805
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