diff options
| -rw-r--r-- | services/core/java/com/android/server/statusbar/StatusBarManagerService.java | 85 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java | 50 |
2 files changed, 28 insertions, 107 deletions
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java index e753f273eb9b..4301c93cbed1 100644 --- a/services/core/java/com/android/server/statusbar/StatusBarManagerService.java +++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java @@ -87,7 +87,6 @@ import android.service.quicksettings.TileService; import android.text.TextUtils; import android.util.ArrayMap; import android.util.IndentingPrintWriter; -import android.util.IntArray; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; @@ -125,7 +124,6 @@ import com.android.server.policy.GlobalActionsProvider; import com.android.server.power.ShutdownCheckPoints; import com.android.server.power.ShutdownThread; import com.android.server.wm.ActivityTaskManagerInternal; -import com.android.systemui.shared.Flags; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -343,19 +341,15 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D @Override public void onDisplayAdded(int displayId) { - if (Flags.statusBarConnectedDisplays()) { - synchronized (mLock) { - mDisplayUiState.put(displayId, new UiState()); - } + synchronized (mLock) { + mDisplayUiState.put(displayId, new UiState()); } } @Override public void onDisplayRemoved(int displayId) { - if (Flags.statusBarConnectedDisplays()) { - synchronized (mLock) { - mDisplayUiState.remove(displayId); - } + synchronized (mLock) { + mDisplayUiState.remove(displayId); } } @@ -1366,66 +1360,53 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D return mTracingEnabled; } + // TODO(b/117478341): make it aware of multi-display if needed. @Override public void disable(int what, IBinder token, String pkg) { disableForUser(what, token, pkg, mCurrentUserId); } - /** - * Disable additional status bar features for user for all displays. Pass the bitwise-or of the - * {@code #DISABLE_*} flags. To re-enable everything, pass {@code #DISABLE_NONE}. - * - * Warning: Only pass {@code #DISABLE_*} flags into this function, do not use - * {@code #DISABLE2_*} flags. - */ + // TODO(b/117478341): make it aware of multi-display if needed. @Override public void disableForUser(int what, IBinder token, String pkg, int userId) { enforceStatusBar(); enforceValidCallingUser(); synchronized (mLock) { - IntArray displayIds = new IntArray(); - for (int i = 0; i < mDisplayUiState.size(); i++) { - displayIds.add(mDisplayUiState.keyAt(i)); - } - disableLocked(displayIds, userId, what, token, pkg, 1); + disableLocked(DEFAULT_DISPLAY, userId, what, token, pkg, 1); } } + // TODO(b/117478341): make it aware of multi-display if needed. /** - * Disable additional status bar features. Pass the bitwise-or of the {@code #DISABLE2_*} flags. - * To re-enable everything, pass {@code #DISABLE2_NONE}. + * Disable additional status bar features. Pass the bitwise-or of the DISABLE2_* flags. + * To re-enable everything, pass {@link #DISABLE2_NONE}. * - * Warning: Only pass {@code #DISABLE2_*} flags into this function, do not use - * {@code #DISABLE_*} flags. + * Warning: Only pass DISABLE2_* flags into this function, do not use DISABLE_* flags. */ @Override public void disable2(int what, IBinder token, String pkg) { disable2ForUser(what, token, pkg, mCurrentUserId); } + // TODO(b/117478341): make it aware of multi-display if needed. /** - * Disable additional status bar features for a given user for all displays. Pass the bitwise-or - * of the {@code #DISABLE2_*} flags. To re-enable everything, pass {@code #DISABLE2_NONE}. + * Disable additional status bar features for a given user. Pass the bitwise-or of the + * DISABLE2_* flags. To re-enable everything, pass {@link #DISABLE_NONE}. * - * Warning: Only pass {@code #DISABLE2_*} flags into this function, do not use - * {@code #DISABLE_*} flags. + * Warning: Only pass DISABLE2_* flags into this function, do not use DISABLE_* flags. */ @Override public void disable2ForUser(int what, IBinder token, String pkg, int userId) { enforceStatusBar(); synchronized (mLock) { - IntArray displayIds = new IntArray(); - for (int i = 0; i < mDisplayUiState.size(); i++) { - displayIds.add(mDisplayUiState.keyAt(i)); - } - disableLocked(displayIds, userId, what, token, pkg, 2); + disableLocked(DEFAULT_DISPLAY, userId, what, token, pkg, 2); } } - private void disableLocked(IntArray displayIds, int userId, int what, IBinder token, - String pkg, int whichFlag) { + private void disableLocked(int displayId, int userId, int what, IBinder token, String pkg, + int whichFlag) { // It's important that the the callback and the call to mBar get done // in the same order when multiple threads are calling this function // so they are paired correctly. The messages on the handler will be @@ -1435,27 +1416,18 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D // Ensure state for the current user is applied, even if passed a non-current user. final int net1 = gatherDisableActionsLocked(mCurrentUserId, 1); final int net2 = gatherDisableActionsLocked(mCurrentUserId, 2); - boolean shouldCallNotificationOnSetDisabled = false; - IStatusBar bar = mBar; - for (int displayId : displayIds.toArray()) { - final UiState state = getUiState(displayId); - if (!state.disableEquals(net1, net2)) { - shouldCallNotificationOnSetDisabled = true; - state.setDisabled(net1, net2); - if (bar != null) { - try { - // TODO(b/388244660): Create IStatusBar#disableForAllDisplays to avoid - // multiple IPC calls. - bar.disable(displayId, net1, net2); - } catch (RemoteException ex) { - Slog.e(TAG, "Unable to disable Status bar.", ex); - } + final UiState state = getUiState(displayId); + if (!state.disableEquals(net1, net2)) { + state.setDisabled(net1, net2); + mHandler.post(() -> mNotificationDelegate.onSetDisabled(net1)); + IStatusBar bar = mBar; + if (bar != null) { + try { + bar.disable(displayId, net1, net2); + } catch (RemoteException ex) { } } } - if (shouldCallNotificationOnSetDisabled) { - mHandler.post(() -> mNotificationDelegate.onSetDisabled(net1)); - } } /** @@ -1610,8 +1582,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D if (SPEW) Slog.d(TAG, "setDisableFlags(0x" + Integer.toHexString(flags) + ")"); synchronized (mLock) { - disableLocked(IntArray.wrap(new int[]{displayId}), mCurrentUserId, flags, - mSysUiVisToken, cause, 1); + disableLocked(displayId, mCurrentUserId, flags, mSysUiVisToken, cause, 1); } } diff --git a/services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java b/services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java index 263ada8b36f6..148c96850d34 100644 --- a/services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java +++ b/services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java @@ -69,7 +69,6 @@ import android.os.Binder; import android.os.Looper; import android.os.RemoteException; import android.os.UserHandle; -import android.platform.test.annotations.EnableFlags; import android.service.quicksettings.TileService; import android.testing.TestableContext; @@ -80,7 +79,6 @@ import com.android.internal.statusbar.IStatusBar; import com.android.server.LocalServices; import com.android.server.policy.GlobalActionsProvider; import com.android.server.wm.ActivityTaskManagerInternal; -import com.android.systemui.shared.Flags; import libcore.junit.util.compat.CoreCompatChangeRule; @@ -107,7 +105,6 @@ public class StatusBarManagerServiceTest { TEST_SERVICE); private static final CharSequence APP_NAME = "AppName"; private static final CharSequence TILE_LABEL = "Tile label"; - private static final int SECONDARY_DISPLAY_ID = 2; @Rule public final TestableContext mContext = @@ -752,29 +749,6 @@ public class StatusBarManagerServiceTest { } @Test - @EnableFlags(Flags.FLAG_STATUS_BAR_CONNECTED_DISPLAYS) - public void testDisableForAllDisplays() throws Exception { - int user1Id = 0; - mockUidCheck(); - mockCurrentUserCheck(user1Id); - - mStatusBarManagerService.onDisplayAdded(SECONDARY_DISPLAY_ID); - - int expectedFlags = DISABLE_MASK & DISABLE_BACK; - String pkg = mContext.getPackageName(); - - // before disabling - assertEquals(DISABLE_NONE, - mStatusBarManagerService.getDisableFlags(mMockStatusBar, user1Id)[0]); - - // disable - mStatusBarManagerService.disable(expectedFlags, mMockStatusBar, pkg); - - verify(mMockStatusBar).disable(0, expectedFlags, 0); - verify(mMockStatusBar).disable(SECONDARY_DISPLAY_ID, expectedFlags, 0); - } - - @Test public void testSetHomeDisabled() throws Exception { int expectedFlags = DISABLE_MASK & DISABLE_HOME; String pkg = mContext.getPackageName(); @@ -877,29 +851,6 @@ public class StatusBarManagerServiceTest { } @Test - @EnableFlags(Flags.FLAG_STATUS_BAR_CONNECTED_DISPLAYS) - public void testDisable2ForAllDisplays() throws Exception { - int user1Id = 0; - mockUidCheck(); - mockCurrentUserCheck(user1Id); - - mStatusBarManagerService.onDisplayAdded(SECONDARY_DISPLAY_ID); - - int expectedFlags = DISABLE2_MASK & DISABLE2_NOTIFICATION_SHADE; - String pkg = mContext.getPackageName(); - - // before disabling - assertEquals(DISABLE_NONE, - mStatusBarManagerService.getDisableFlags(mMockStatusBar, user1Id)[0]); - - // disable - mStatusBarManagerService.disable2(expectedFlags, mMockStatusBar, pkg); - - verify(mMockStatusBar).disable(0, 0, expectedFlags); - verify(mMockStatusBar).disable(SECONDARY_DISPLAY_ID, 0, expectedFlags); - } - - @Test public void testSetQuickSettingsDisabled2() throws Exception { int expectedFlags = DISABLE2_MASK & DISABLE2_QUICK_SETTINGS; String pkg = mContext.getPackageName(); @@ -1141,7 +1092,6 @@ public class StatusBarManagerServiceTest { // disable mStatusBarManagerService.disableForUser(expectedUser1Flags, mMockStatusBar, pkg, user1Id); mStatusBarManagerService.disableForUser(expectedUser2Flags, mMockStatusBar, pkg, user2Id); - // check that right flag is disabled assertEquals(expectedUser1Flags, mStatusBarManagerService.getDisableFlags(mMockStatusBar, user1Id)[0]); |