summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/statusbar/StatusBarManagerService.java85
-rw-r--r--services/tests/servicestests/src/com/android/server/statusbar/StatusBarManagerServiceTest.java50
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]);