Merge "Clear AppOpsController when it stops listening" into qt-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
a8723416cc
@@ -100,6 +100,13 @@ public class AppOpsControllerImpl implements AppOpsController,
|
||||
} else {
|
||||
mAppOps.stopWatchingActive(this);
|
||||
mAppOps.stopWatchingNoted(this);
|
||||
mBGHandler.removeCallbacksAndMessages(null); // null removes all
|
||||
synchronized (mActiveItems) {
|
||||
mActiveItems.clear();
|
||||
}
|
||||
synchronized (mNotedItems) {
|
||||
mNotedItems.clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,10 @@
|
||||
|
||||
package com.android.systemui.appops;
|
||||
|
||||
import static junit.framework.TestCase.assertFalse;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.ArgumentMatchers.anyBoolean;
|
||||
import static org.mockito.ArgumentMatchers.anyInt;
|
||||
@@ -189,4 +192,21 @@ public class AppOpsControllerTest extends SysuiTestCase {
|
||||
AppOpsManager.MODE_ALLOWED);
|
||||
verify(mMockHandler).scheduleRemoval(any(AppOpItem.class), anyLong());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void noItemsAfterStopListening() {
|
||||
mController.setBGHandler(mMockHandler);
|
||||
|
||||
mController.setListening(true);
|
||||
mController.onOpActiveChanged(AppOpsManager.OP_FINE_LOCATION, TEST_UID, TEST_PACKAGE_NAME,
|
||||
true);
|
||||
mController.onOpNoted(AppOpsManager.OP_FINE_LOCATION, TEST_UID, TEST_PACKAGE_NAME,
|
||||
AppOpsManager.MODE_ALLOWED);
|
||||
assertFalse(mController.getActiveAppOps().isEmpty());
|
||||
|
||||
mController.setListening(false);
|
||||
|
||||
verify(mMockHandler).removeCallbacksAndMessages(null);
|
||||
assertTrue(mController.getActiveAppOps().isEmpty());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user