Loading api/system-current.txt +13 −0 Original line number Diff line number Diff line Loading @@ -530,6 +530,18 @@ package android.app { ctor public StatsManager.StatsUnavailableException(String, Throwable); } public class StatusBarManager { method public android.util.Pair<java.lang.Integer,java.lang.Integer> getDisableFlags(); method public void setDisabledForSetup(boolean); field public static final int DISABLE2_NONE = 0; // 0x0 field public static final int DISABLE_EXPAND = 65536; // 0x10000 field public static final int DISABLE_HOME = 2097152; // 0x200000 field public static final int DISABLE_NONE = 0; // 0x0 field public static final int DISABLE_NOTIFICATION_ALERTS = 262144; // 0x40000 field public static final int DISABLE_RECENT = 16777216; // 0x1000000 field public static final int DISABLE_SEARCH = 33554432; // 0x2000000 } public final class Vr2dDisplayProperties implements android.os.Parcelable { ctor public Vr2dDisplayProperties(int, int, int); method public int describeContents(); Loading Loading @@ -1277,6 +1289,7 @@ package android.content { field public static final String ROLLBACK_SERVICE = "rollback"; field public static final String SECURE_ELEMENT_SERVICE = "secure_element"; field public static final String STATS_MANAGER = "stats"; field public static final String STATUS_BAR_SERVICE = "statusbar"; field public static final String SYSTEM_UPDATE_SERVICE = "system_update"; field public static final String VR_SERVICE = "vrmanager"; field @Deprecated public static final String WIFI_RTT_SERVICE = "rttmanager"; Loading core/java/android/app/StatusBarManager.java +71 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app; import android.annotation.IntDef; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.UnsupportedAppUsage; import android.content.Context; Loading @@ -25,6 +26,7 @@ import android.os.Binder; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.util.Pair; import android.util.Slog; import android.view.View; Loading @@ -40,11 +42,12 @@ import java.lang.annotation.RetentionPolicy; public class StatusBarManager { /** @hide */ @UnsupportedAppUsage @SystemApi public static final int DISABLE_EXPAND = View.STATUS_BAR_DISABLE_EXPAND; /** @hide */ public static final int DISABLE_NOTIFICATION_ICONS = View.STATUS_BAR_DISABLE_NOTIFICATION_ICONS; /** @hide */ @SystemApi public static final int DISABLE_NOTIFICATION_ALERTS = View.STATUS_BAR_DISABLE_NOTIFICATION_ALERTS; Loading @@ -56,14 +59,17 @@ public class StatusBarManager { /** @hide */ public static final int DISABLE_SYSTEM_INFO = View.STATUS_BAR_DISABLE_SYSTEM_INFO; /** @hide */ @SystemApi public static final int DISABLE_HOME = View.STATUS_BAR_DISABLE_HOME; /** @hide */ @SystemApi public static final int DISABLE_RECENT = View.STATUS_BAR_DISABLE_RECENT; /** @hide */ public static final int DISABLE_BACK = View.STATUS_BAR_DISABLE_BACK; /** @hide */ public static final int DISABLE_CLOCK = View.STATUS_BAR_DISABLE_CLOCK; /** @hide */ @SystemApi public static final int DISABLE_SEARCH = View.STATUS_BAR_DISABLE_SEARCH; /** @hide */ Loading @@ -72,7 +78,7 @@ public class StatusBarManager { View.STATUS_BAR_DISABLE_HOME | View.STATUS_BAR_DISABLE_RECENT; /** @hide */ @UnsupportedAppUsage @SystemApi public static final int DISABLE_NONE = 0x00000000; /** @hide */ Loading Loading @@ -116,6 +122,7 @@ public class StatusBarManager { public static final int DISABLE2_ROTATE_SUGGESTIONS = 1 << 4; /** @hide */ @SystemApi public static final int DISABLE2_NONE = 0x00000000; /** @hide */ Loading @@ -135,6 +142,21 @@ public class StatusBarManager { @Retention(RetentionPolicy.SOURCE) public @interface Disable2Flags {} /** * Default disable flags for setup * * @hide */ public static final int DEFAULT_SETUP_DISABLE_FLAGS = DISABLE_NOTIFICATION_ALERTS | DISABLE_HOME | DISABLE_EXPAND | DISABLE_RECENT | DISABLE_CLOCK | DISABLE_SEARCH; /** * Default disable2 flags for setup * * @hide */ public static final int DEFAULT_SETUP_DISABLE2_FLAGS = DISABLE2_ROTATE_SUGGESTIONS; /** @hide */ public static final int NAVIGATION_HINT_BACK_ALT = 1 << 0; /** @hide */ Loading Loading @@ -340,6 +362,53 @@ public class StatusBarManager { } } /** * Enable or disable status bar elements (notifications, clock) which are inappropriate during * device setup. * * @param disabled whether to apply or remove the disabled flags * * @hide */ @SystemApi public void setDisabledForSetup(boolean disabled) { try { final int userId = Binder.getCallingUserHandle().getIdentifier(); final IStatusBarService svc = getService(); if (svc != null) { svc.disableForUser(disabled ? DEFAULT_SETUP_DISABLE_FLAGS : DISABLE_NONE, mToken, mContext.getPackageName(), userId); svc.disable2ForUser(disabled ? DEFAULT_SETUP_DISABLE2_FLAGS : DISABLE2_NONE, mToken, mContext.getPackageName(), userId); } } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } } /** * Get the currently applied StatusBar disable flags * * @return a pair of Integers in the form of (disable, disable2) * * @hide */ @SystemApi public Pair<Integer, Integer> getDisableFlags() { try { final int userId = Binder.getCallingUserHandle().getIdentifier(); final IStatusBarService svc = getService(); int[] flags = new int[] {0, 0}; if (svc != null) { flags = svc.getDisableFlags(mToken, userId); } return new Pair<Integer, Integer>(flags[0], flags[1]); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } } /** @hide */ public static String windowStateToString(int state) { if (state == WINDOW_STATE_HIDING) return "WINDOW_STATE_HIDING"; Loading core/java/android/content/Context.java +2 −1 Original line number Diff line number Diff line Loading @@ -3621,9 +3621,10 @@ public abstract class Context { * * @see #getSystemService(String) * @see android.app.StatusBarManager * * @hide */ @UnsupportedAppUsage @SystemApi public static final String STATUS_BAR_SERVICE = "statusbar"; /** Loading core/java/com/android/internal/statusbar/IStatusBarService.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ interface IStatusBarService void disableForUser(int what, IBinder token, String pkg, int userId); void disable2(int what, IBinder token, String pkg); void disable2ForUser(int what, IBinder token, String pkg, int userId); int[] getDisableFlags(IBinder token, int userId); void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription); void setIconVisibility(String slot, boolean visible); void removeIcon(String slot); Loading services/core/java/com/android/server/statusbar/StatusBarManagerService.java +50 −13 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.statusbar; import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS; import static android.view.Display.DEFAULT_DISPLAY; import android.annotation.Nullable; import android.app.ActivityThread; import android.app.Notification; import android.app.StatusBarManager; Loading @@ -42,10 +43,12 @@ import android.service.notification.NotificationStats; import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import com.android.internal.statusbar.IStatusBar; import com.android.internal.statusbar.IStatusBarService; import com.android.internal.statusbar.NotificationVisibility; Loading Loading @@ -669,7 +672,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D // TODO(b/117478341): make it aware of multi-display if needed. /** * Disable additional status bar features. Pass the bitwise-or of the DISABLE2_* flags. * To re-enable everything, pass {@link #DISABLE_NONE}. * To re-enable everything, pass {@link #DISABLE2_NONE}. * * Warning: Only pass DISABLE2_* flags into this function, do not use DISABLE_* flags. */ Loading Loading @@ -707,7 +710,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D final int net2 = gatherDisableActionsLocked(mCurrentUserId, 2); // TODO(b/113914868): investigation log for disappearing home button if (whichFlag == 1 && pkg.contains("systemui")) { if (whichFlag == 1 && pkg != null && pkg.contains("systemui")) { String disabledData = "{ "; for (int i = 0; i < mDisableRecords.size(); i++) { DisableRecord tok = mDisableRecords.get(i); Loading @@ -733,6 +736,30 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D } } /** * Get the currently applied disable flags, in the form of one Pair<Integer, Integer>. * * @return pair of disable flags in the form of (disabled1, disabled2), where (0, 0) indicates * no flags are set for this token. */ @Override public int[] getDisableFlags(IBinder token, int userId) { enforceStatusBar(); int disable1 = 0; int disable2 = 0; synchronized (mLock) { // Find a matching record if it exists DisableRecord record = findMatchingRecordLocked(token, userId).second; if (record != null) { disable1 = record.what1; disable2 = record.what2; } } return new int[] {disable1, disable2}; } @Override public void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription) { Loading Loading @@ -1305,7 +1332,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D @Override public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err, String[] args, ShellCallback callback, ResultReceiver resultReceiver) { (new StatusBarShellCommand(this)).exec( (new StatusBarShellCommand(this, mContext)).exec( this, in, out, err, args, callback, resultReceiver); } Loading @@ -1325,16 +1352,9 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D } // Find matching record, if any final int N = mDisableRecords.size(); DisableRecord record = null; int i; for (i = 0; i < N; i++) { DisableRecord r = mDisableRecords.get(i); if (r.token == token && r.userId == userId) { record = r; break; } } Pair<Integer, DisableRecord> match = findMatchingRecordLocked(token, userId); int i = match.first; DisableRecord record = match.second; // Remove record if binder is already dead if (!token.isBinderAlive()) { Loading @@ -1361,6 +1381,23 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D mDisableRecords.add(record); } @Nullable @GuardedBy("mLock") private Pair<Integer, DisableRecord> findMatchingRecordLocked(IBinder token, int userId) { final int numRecords = mDisableRecords.size(); DisableRecord record = null; int i; for (i = 0; i < numRecords; i++) { DisableRecord r = mDisableRecords.get(i); if (r.token == token && r.userId == userId) { record = r; break; } } return new Pair<Integer, DisableRecord>(i, record); } // lock on mDisableRecords int gatherDisableActionsLocked(int userId, int which) { final int N = mDisableRecords.size(); Loading Loading
api/system-current.txt +13 −0 Original line number Diff line number Diff line Loading @@ -530,6 +530,18 @@ package android.app { ctor public StatsManager.StatsUnavailableException(String, Throwable); } public class StatusBarManager { method public android.util.Pair<java.lang.Integer,java.lang.Integer> getDisableFlags(); method public void setDisabledForSetup(boolean); field public static final int DISABLE2_NONE = 0; // 0x0 field public static final int DISABLE_EXPAND = 65536; // 0x10000 field public static final int DISABLE_HOME = 2097152; // 0x200000 field public static final int DISABLE_NONE = 0; // 0x0 field public static final int DISABLE_NOTIFICATION_ALERTS = 262144; // 0x40000 field public static final int DISABLE_RECENT = 16777216; // 0x1000000 field public static final int DISABLE_SEARCH = 33554432; // 0x2000000 } public final class Vr2dDisplayProperties implements android.os.Parcelable { ctor public Vr2dDisplayProperties(int, int, int); method public int describeContents(); Loading Loading @@ -1277,6 +1289,7 @@ package android.content { field public static final String ROLLBACK_SERVICE = "rollback"; field public static final String SECURE_ELEMENT_SERVICE = "secure_element"; field public static final String STATS_MANAGER = "stats"; field public static final String STATUS_BAR_SERVICE = "statusbar"; field public static final String SYSTEM_UPDATE_SERVICE = "system_update"; field public static final String VR_SERVICE = "vrmanager"; field @Deprecated public static final String WIFI_RTT_SERVICE = "rttmanager"; Loading
core/java/android/app/StatusBarManager.java +71 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.app; import android.annotation.IntDef; import android.annotation.Nullable; import android.annotation.SystemApi; import android.annotation.SystemService; import android.annotation.UnsupportedAppUsage; import android.content.Context; Loading @@ -25,6 +26,7 @@ import android.os.Binder; import android.os.IBinder; import android.os.RemoteException; import android.os.ServiceManager; import android.util.Pair; import android.util.Slog; import android.view.View; Loading @@ -40,11 +42,12 @@ import java.lang.annotation.RetentionPolicy; public class StatusBarManager { /** @hide */ @UnsupportedAppUsage @SystemApi public static final int DISABLE_EXPAND = View.STATUS_BAR_DISABLE_EXPAND; /** @hide */ public static final int DISABLE_NOTIFICATION_ICONS = View.STATUS_BAR_DISABLE_NOTIFICATION_ICONS; /** @hide */ @SystemApi public static final int DISABLE_NOTIFICATION_ALERTS = View.STATUS_BAR_DISABLE_NOTIFICATION_ALERTS; Loading @@ -56,14 +59,17 @@ public class StatusBarManager { /** @hide */ public static final int DISABLE_SYSTEM_INFO = View.STATUS_BAR_DISABLE_SYSTEM_INFO; /** @hide */ @SystemApi public static final int DISABLE_HOME = View.STATUS_BAR_DISABLE_HOME; /** @hide */ @SystemApi public static final int DISABLE_RECENT = View.STATUS_BAR_DISABLE_RECENT; /** @hide */ public static final int DISABLE_BACK = View.STATUS_BAR_DISABLE_BACK; /** @hide */ public static final int DISABLE_CLOCK = View.STATUS_BAR_DISABLE_CLOCK; /** @hide */ @SystemApi public static final int DISABLE_SEARCH = View.STATUS_BAR_DISABLE_SEARCH; /** @hide */ Loading @@ -72,7 +78,7 @@ public class StatusBarManager { View.STATUS_BAR_DISABLE_HOME | View.STATUS_BAR_DISABLE_RECENT; /** @hide */ @UnsupportedAppUsage @SystemApi public static final int DISABLE_NONE = 0x00000000; /** @hide */ Loading Loading @@ -116,6 +122,7 @@ public class StatusBarManager { public static final int DISABLE2_ROTATE_SUGGESTIONS = 1 << 4; /** @hide */ @SystemApi public static final int DISABLE2_NONE = 0x00000000; /** @hide */ Loading @@ -135,6 +142,21 @@ public class StatusBarManager { @Retention(RetentionPolicy.SOURCE) public @interface Disable2Flags {} /** * Default disable flags for setup * * @hide */ public static final int DEFAULT_SETUP_DISABLE_FLAGS = DISABLE_NOTIFICATION_ALERTS | DISABLE_HOME | DISABLE_EXPAND | DISABLE_RECENT | DISABLE_CLOCK | DISABLE_SEARCH; /** * Default disable2 flags for setup * * @hide */ public static final int DEFAULT_SETUP_DISABLE2_FLAGS = DISABLE2_ROTATE_SUGGESTIONS; /** @hide */ public static final int NAVIGATION_HINT_BACK_ALT = 1 << 0; /** @hide */ Loading Loading @@ -340,6 +362,53 @@ public class StatusBarManager { } } /** * Enable or disable status bar elements (notifications, clock) which are inappropriate during * device setup. * * @param disabled whether to apply or remove the disabled flags * * @hide */ @SystemApi public void setDisabledForSetup(boolean disabled) { try { final int userId = Binder.getCallingUserHandle().getIdentifier(); final IStatusBarService svc = getService(); if (svc != null) { svc.disableForUser(disabled ? DEFAULT_SETUP_DISABLE_FLAGS : DISABLE_NONE, mToken, mContext.getPackageName(), userId); svc.disable2ForUser(disabled ? DEFAULT_SETUP_DISABLE2_FLAGS : DISABLE2_NONE, mToken, mContext.getPackageName(), userId); } } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } } /** * Get the currently applied StatusBar disable flags * * @return a pair of Integers in the form of (disable, disable2) * * @hide */ @SystemApi public Pair<Integer, Integer> getDisableFlags() { try { final int userId = Binder.getCallingUserHandle().getIdentifier(); final IStatusBarService svc = getService(); int[] flags = new int[] {0, 0}; if (svc != null) { flags = svc.getDisableFlags(mToken, userId); } return new Pair<Integer, Integer>(flags[0], flags[1]); } catch (RemoteException ex) { throw ex.rethrowFromSystemServer(); } } /** @hide */ public static String windowStateToString(int state) { if (state == WINDOW_STATE_HIDING) return "WINDOW_STATE_HIDING"; Loading
core/java/android/content/Context.java +2 −1 Original line number Diff line number Diff line Loading @@ -3621,9 +3621,10 @@ public abstract class Context { * * @see #getSystemService(String) * @see android.app.StatusBarManager * * @hide */ @UnsupportedAppUsage @SystemApi public static final String STATUS_BAR_SERVICE = "statusbar"; /** Loading
core/java/com/android/internal/statusbar/IStatusBarService.aidl +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ interface IStatusBarService void disableForUser(int what, IBinder token, String pkg, int userId); void disable2(int what, IBinder token, String pkg); void disable2ForUser(int what, IBinder token, String pkg, int userId); int[] getDisableFlags(IBinder token, int userId); void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription); void setIconVisibility(String slot, boolean visible); void removeIcon(String slot); Loading
services/core/java/com/android/server/statusbar/StatusBarManagerService.java +50 −13 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.server.statusbar; import static android.app.StatusBarManager.DISABLE2_GLOBAL_ACTIONS; import static android.view.Display.DEFAULT_DISPLAY; import android.annotation.Nullable; import android.app.ActivityThread; import android.app.Notification; import android.app.StatusBarManager; Loading @@ -42,10 +43,12 @@ import android.service.notification.NotificationStats; import android.text.TextUtils; import android.util.ArrayMap; import android.util.Log; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import com.android.internal.statusbar.IStatusBar; import com.android.internal.statusbar.IStatusBarService; import com.android.internal.statusbar.NotificationVisibility; Loading Loading @@ -669,7 +672,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D // TODO(b/117478341): make it aware of multi-display if needed. /** * Disable additional status bar features. Pass the bitwise-or of the DISABLE2_* flags. * To re-enable everything, pass {@link #DISABLE_NONE}. * To re-enable everything, pass {@link #DISABLE2_NONE}. * * Warning: Only pass DISABLE2_* flags into this function, do not use DISABLE_* flags. */ Loading Loading @@ -707,7 +710,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D final int net2 = gatherDisableActionsLocked(mCurrentUserId, 2); // TODO(b/113914868): investigation log for disappearing home button if (whichFlag == 1 && pkg.contains("systemui")) { if (whichFlag == 1 && pkg != null && pkg.contains("systemui")) { String disabledData = "{ "; for (int i = 0; i < mDisableRecords.size(); i++) { DisableRecord tok = mDisableRecords.get(i); Loading @@ -733,6 +736,30 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D } } /** * Get the currently applied disable flags, in the form of one Pair<Integer, Integer>. * * @return pair of disable flags in the form of (disabled1, disabled2), where (0, 0) indicates * no flags are set for this token. */ @Override public int[] getDisableFlags(IBinder token, int userId) { enforceStatusBar(); int disable1 = 0; int disable2 = 0; synchronized (mLock) { // Find a matching record if it exists DisableRecord record = findMatchingRecordLocked(token, userId).second; if (record != null) { disable1 = record.what1; disable2 = record.what2; } } return new int[] {disable1, disable2}; } @Override public void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription) { Loading Loading @@ -1305,7 +1332,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D @Override public void onShellCommand(FileDescriptor in, FileDescriptor out, FileDescriptor err, String[] args, ShellCallback callback, ResultReceiver resultReceiver) { (new StatusBarShellCommand(this)).exec( (new StatusBarShellCommand(this, mContext)).exec( this, in, out, err, args, callback, resultReceiver); } Loading @@ -1325,16 +1352,9 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D } // Find matching record, if any final int N = mDisableRecords.size(); DisableRecord record = null; int i; for (i = 0; i < N; i++) { DisableRecord r = mDisableRecords.get(i); if (r.token == token && r.userId == userId) { record = r; break; } } Pair<Integer, DisableRecord> match = findMatchingRecordLocked(token, userId); int i = match.first; DisableRecord record = match.second; // Remove record if binder is already dead if (!token.isBinderAlive()) { Loading @@ -1361,6 +1381,23 @@ public class StatusBarManagerService extends IStatusBarService.Stub implements D mDisableRecords.add(record); } @Nullable @GuardedBy("mLock") private Pair<Integer, DisableRecord> findMatchingRecordLocked(IBinder token, int userId) { final int numRecords = mDisableRecords.size(); DisableRecord record = null; int i; for (i = 0; i < numRecords; i++) { DisableRecord r = mDisableRecords.get(i); if (r.token == token && r.userId == userId) { record = r; break; } } return new Pair<Integer, DisableRecord>(i, record); } // lock on mDisableRecords int gatherDisableActionsLocked(int userId, int which) { final int N = mDisableRecords.size(); Loading