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

Commit 7994a882 authored by Fabian Kozynski's avatar Fabian Kozynski Committed by Automerger Merge Worker
Browse files

Merge "Unbind TileService onNullBinding" into udc-dev am: 0f2905dd am: d3e95243

parents 1f62598d d3e95243
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -280,6 +280,11 @@ public class TileLifecycleManager extends BroadcastReceiver implements
        handlePendingMessages();
        handlePendingMessages();
    }
    }


    @Override
    public void onNullBinding(ComponentName name) {
        executeSetBindService(false);
    }

    @Override
    @Override
    public void onServiceDisconnected(ComponentName name) {
    public void onServiceDisconnected(ComponentName name) {
        if (DEBUG) Log.d(TAG, "onServiceDisconnected " + name);
        if (DEBUG) Log.d(TAG, "onServiceDisconnected " + name);
+24 −0
Original line number Original line Diff line number Diff line
@@ -373,6 +373,30 @@ public class TileLifecycleManagerTest extends SysuiTestCase {
        verify(falseContext).bindServiceAsUser(any(), any(), eq(flags), any());
        verify(falseContext).bindServiceAsUser(any(), any(), eq(flags), any());
    }
    }


    @Test
    public void testNullBindingCallsUnbind() {
        Context mockContext = mock(Context.class);
        // Binding has to succeed
        when(mockContext.bindServiceAsUser(any(), any(), anyInt(), any())).thenReturn(true);
        TileLifecycleManager manager = new TileLifecycleManager(mHandler, mockContext,
                mock(IQSService.class),
                mMockPackageManagerAdapter,
                mMockBroadcastDispatcher,
                mTileServiceIntent,
                mUser,
                mExecutor);

        manager.executeSetBindService(true);
        mExecutor.runAllReady();

        ArgumentCaptor<ServiceConnection> captor = ArgumentCaptor.forClass(ServiceConnection.class);
        verify(mockContext).bindServiceAsUser(any(), captor.capture(), anyInt(), any());

        captor.getValue().onNullBinding(mTileServiceComponentName);
        mExecutor.runAllReady();
        verify(mockContext).unbindService(captor.getValue());
    }

    private void mockChangeEnabled(long changeId, boolean enabled) {
    private void mockChangeEnabled(long changeId, boolean enabled) {
        doReturn(enabled).when(() -> CompatChanges.isChangeEnabled(eq(changeId), anyString(),
        doReturn(enabled).when(() -> CompatChanges.isChangeEnabled(eq(changeId), anyString(),
                any(UserHandle.class)));
                any(UserHandle.class)));