Loading packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +4 −3 Original line number Diff line number Diff line Loading @@ -733,7 +733,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @VisibleForTesting boolean shouldDisplayBugReport(UserInfo currentUser) { return mGlobalSettings.getInt(Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0 && (currentUser == null || currentUser.isPrimary()); && (currentUser == null || currentUser.isAdmin()); } @Override Loading Loading @@ -1058,8 +1058,9 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @Override public boolean showBeforeProvisioning() { return Build.isDebuggable() && mGlobalSettings.getInt( Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0; return Build.isDebuggable() && mGlobalSettings.getIntForUser( Settings.Global.BUGREPORT_IN_POWER_MENU, 0, getCurrentUser().id) != 0 && getCurrentUser().isAdmin(); } } Loading packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java +27 −2 Original line number Diff line number Diff line Loading @@ -16,11 +16,12 @@ package com.android.systemui.globalactions; import static android.content.pm.UserInfo.FLAG_ADMIN; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; Loading @@ -32,11 +33,13 @@ import android.app.IActivityManager; import android.app.admin.DevicePolicyManager; import android.app.trust.TrustManager; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Color; import android.media.AudioManager; import android.os.Handler; import android.os.UserManager; import android.provider.Settings; import android.service.dreams.IDreamManager; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; Loading Loading @@ -552,10 +555,32 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { @Test public void testBugreportAction_whenDebugMode_shouldOfferBugreportButtonBeforeProvisioning() { doReturn(1).when(mGlobalSettings).getInt(anyString(), anyInt()); UserInfo currentUser = mockCurrentUser(FLAG_ADMIN); when(mGlobalActionsDialogLite.getCurrentUser()).thenReturn(currentUser); doReturn(1).when(mGlobalSettings) .getIntForUser(Settings.Global.BUGREPORT_IN_POWER_MENU, 0, currentUser.id); GlobalActionsDialogLite.BugReportAction bugReportAction = mGlobalActionsDialogLite.makeBugReportActionForTesting(); assertThat(bugReportAction.showBeforeProvisioning()).isTrue(); } @Test public void testBugreportAction_whenUserIsNotAdmin_noBugReportActionBeforeProvisioning() { UserInfo currentUser = mockCurrentUser(0); when(mGlobalActionsDialogLite.getCurrentUser()).thenReturn(currentUser); doReturn(1).when(mGlobalSettings) .getIntForUser(Settings.Global.BUGREPORT_IN_POWER_MENU, 0, currentUser.id); GlobalActionsDialogLite.BugReportAction bugReportAction = mGlobalActionsDialogLite.makeBugReportActionForTesting(); assertThat(bugReportAction.showBeforeProvisioning()).isFalse(); } private UserInfo mockCurrentUser(int flags) { return new UserInfo(10, "A User", flags); } } services/core/java/com/android/server/policy/LegacyGlobalActions.java +3 −3 Original line number Diff line number Diff line Loading @@ -283,7 +283,7 @@ class LegacyGlobalActions implements DialogInterface.OnDismissListener, DialogIn mItems.add(mAirplaneModeOn); } else if (GLOBAL_ACTION_KEY_BUGREPORT.equals(actionKey)) { if (Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0 && isCurrentUserOwner()) { Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0 && isCurrentUserAdmin()) { mItems.add(new BugReportAction()); } } else if (GLOBAL_ACTION_KEY_SILENT.equals(actionKey)) { Loading Loading @@ -535,9 +535,9 @@ class LegacyGlobalActions implements DialogInterface.OnDismissListener, DialogIn } } private boolean isCurrentUserOwner() { private boolean isCurrentUserAdmin() { UserInfo currentUser = getCurrentUser(); return currentUser == null || currentUser.isPrimary(); return currentUser == null || currentUser.isAdmin(); } private void addUsersToMenu(ArrayList<Action> items) { Loading Loading
packages/SystemUI/src/com/android/systemui/globalactions/GlobalActionsDialogLite.java +4 −3 Original line number Diff line number Diff line Loading @@ -733,7 +733,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @VisibleForTesting boolean shouldDisplayBugReport(UserInfo currentUser) { return mGlobalSettings.getInt(Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0 && (currentUser == null || currentUser.isPrimary()); && (currentUser == null || currentUser.isAdmin()); } @Override Loading Loading @@ -1058,8 +1058,9 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene @Override public boolean showBeforeProvisioning() { return Build.isDebuggable() && mGlobalSettings.getInt( Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0; return Build.isDebuggable() && mGlobalSettings.getIntForUser( Settings.Global.BUGREPORT_IN_POWER_MENU, 0, getCurrentUser().id) != 0 && getCurrentUser().isAdmin(); } } Loading
packages/SystemUI/tests/src/com/android/systemui/globalactions/GlobalActionsDialogLiteTest.java +27 −2 Original line number Diff line number Diff line Loading @@ -16,11 +16,12 @@ package com.android.systemui.globalactions; import static android.content.pm.UserInfo.FLAG_ADMIN; import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; Loading @@ -32,11 +33,13 @@ import android.app.IActivityManager; import android.app.admin.DevicePolicyManager; import android.app.trust.TrustManager; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.content.res.Resources; import android.graphics.Color; import android.media.AudioManager; import android.os.Handler; import android.os.UserManager; import android.provider.Settings; import android.service.dreams.IDreamManager; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; Loading Loading @@ -552,10 +555,32 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase { @Test public void testBugreportAction_whenDebugMode_shouldOfferBugreportButtonBeforeProvisioning() { doReturn(1).when(mGlobalSettings).getInt(anyString(), anyInt()); UserInfo currentUser = mockCurrentUser(FLAG_ADMIN); when(mGlobalActionsDialogLite.getCurrentUser()).thenReturn(currentUser); doReturn(1).when(mGlobalSettings) .getIntForUser(Settings.Global.BUGREPORT_IN_POWER_MENU, 0, currentUser.id); GlobalActionsDialogLite.BugReportAction bugReportAction = mGlobalActionsDialogLite.makeBugReportActionForTesting(); assertThat(bugReportAction.showBeforeProvisioning()).isTrue(); } @Test public void testBugreportAction_whenUserIsNotAdmin_noBugReportActionBeforeProvisioning() { UserInfo currentUser = mockCurrentUser(0); when(mGlobalActionsDialogLite.getCurrentUser()).thenReturn(currentUser); doReturn(1).when(mGlobalSettings) .getIntForUser(Settings.Global.BUGREPORT_IN_POWER_MENU, 0, currentUser.id); GlobalActionsDialogLite.BugReportAction bugReportAction = mGlobalActionsDialogLite.makeBugReportActionForTesting(); assertThat(bugReportAction.showBeforeProvisioning()).isFalse(); } private UserInfo mockCurrentUser(int flags) { return new UserInfo(10, "A User", flags); } }
services/core/java/com/android/server/policy/LegacyGlobalActions.java +3 −3 Original line number Diff line number Diff line Loading @@ -283,7 +283,7 @@ class LegacyGlobalActions implements DialogInterface.OnDismissListener, DialogIn mItems.add(mAirplaneModeOn); } else if (GLOBAL_ACTION_KEY_BUGREPORT.equals(actionKey)) { if (Settings.Global.getInt(mContext.getContentResolver(), Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0 && isCurrentUserOwner()) { Settings.Global.BUGREPORT_IN_POWER_MENU, 0) != 0 && isCurrentUserAdmin()) { mItems.add(new BugReportAction()); } } else if (GLOBAL_ACTION_KEY_SILENT.equals(actionKey)) { Loading Loading @@ -535,9 +535,9 @@ class LegacyGlobalActions implements DialogInterface.OnDismissListener, DialogIn } } private boolean isCurrentUserOwner() { private boolean isCurrentUserAdmin() { UserInfo currentUser = getCurrentUser(); return currentUser == null || currentUser.isPrimary(); return currentUser == null || currentUser.isAdmin(); } private void addUsersToMenu(ArrayList<Action> items) { Loading