diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java | 3 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java | 11 |
2 files changed, 14 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java b/packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java index 9fd060255e9b..e0f73a63113a 100644 --- a/packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/appops/AppOpsControllerImpl.java @@ -229,6 +229,9 @@ public class AppOpsControllerImpl extends BroadcastReceiver implements AppOpsCon private void fetchCurrentActiveOps() { List<AppOpsManager.PackageOps> packageOps = mAppOps.getPackagesForOps(OPS); + if (packageOps == null) { + return; + } for (AppOpsManager.PackageOps op : packageOps) { for (AppOpsManager.OpEntry entry : op.getOps()) { for (Map.Entry<String, AppOpsManager.AttributedOpEntry> attributedOpEntry : diff --git a/packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java index 0b0410aa1670..0d464cfd71f7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/appops/AppOpsControllerTest.java @@ -180,6 +180,17 @@ public class AppOpsControllerTest extends SysuiTestCase { assertThat(mController.getActiveAppOps()).isEmpty(); } + /** Regression test for b/324329757 */ + @Test + public void startListening_fetchCurrentActive_nullPackageOps() { + when(mAppOpsManager.getPackagesForOps(AppOpsControllerImpl.OPS)).thenReturn(null); + + mController.setListening(true); + mBgExecutor.runAllReady(); + + assertThat(mController.getActiveAppOps()).isEmpty(); + } + /** Regression test for b/294104969. */ @Test public void startListening_fetchesCurrentActive_oneActive() { |