diff options
Diffstat (limited to 'core/java')
-rw-r--r-- | core/java/android/app/StatusBarManager.java | 33 | ||||
-rw-r--r-- | core/java/com/android/internal/statusbar/IStatusBar.aidl | 2 | ||||
-rw-r--r-- | core/java/com/android/internal/statusbar/IStatusBarService.aidl | 2 |
3 files changed, 35 insertions, 2 deletions
diff --git a/core/java/android/app/StatusBarManager.java b/core/java/android/app/StatusBarManager.java index ce5306f..207519c 100644 --- a/core/java/android/app/StatusBarManager.java +++ b/core/java/android/app/StatusBarManager.java @@ -17,6 +17,7 @@ package android.app; +import android.annotation.IntDef; import android.content.Context; import android.os.Binder; import android.os.RemoteException; @@ -27,6 +28,9 @@ import android.view.View; import com.android.internal.statusbar.IStatusBarService; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + /** * Allows an app to control the status bar. * @@ -59,6 +63,15 @@ public class StatusBarManager { | DISABLE_SYSTEM_INFO | DISABLE_RECENT | DISABLE_HOME | DISABLE_BACK | DISABLE_CLOCK | DISABLE_SEARCH; + public static final int DISABLE2_NONE = 0x00000000; + + public static final int DISABLE2_MASK = 0x00000000; + + @IntDef(flag = true, + value = {DISABLE2_NONE, DISABLE2_MASK}) + @Retention(RetentionPolicy.SOURCE) + public @interface Disable2Flags {} + public static final int NAVIGATION_HINT_BACK_ALT = 1 << 0; public static final int NAVIGATION_HINT_IME_SHOWN = 1 << 1; @@ -103,7 +116,25 @@ public class StatusBarManager { throw new RuntimeException(ex); } } - + + /** + * Disable additional status bar features. Pass the bitwise-or of the DISABLE2_* flags. + * To re-enable everything, pass {@link #DISABLE_NONE}. + * + * Warning: Only pass DISABLE2_* flags into this function, do not use DISABLE_* flags. + */ + public void disable2(@Disable2Flags int what) { + try { + final IStatusBarService svc = getService(); + if (svc != null) { + svc.disable2(what, mToken, mContext.getPackageName()); + } + } catch (RemoteException ex) { + // system process is dead anyway. + throw new RuntimeException(ex); + } + } + /** * Expand the notifications panel. */ diff --git a/core/java/com/android/internal/statusbar/IStatusBar.aidl b/core/java/com/android/internal/statusbar/IStatusBar.aidl index 2b0d244..9f99f62 100644 --- a/core/java/com/android/internal/statusbar/IStatusBar.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBar.aidl @@ -24,7 +24,7 @@ oneway interface IStatusBar { void setIcon(int index, in StatusBarIcon icon); void removeIcon(int index); - void disable(int state); + void disable(int state1, int state2); void animateExpandNotificationsPanel(); void animateExpandSettingsPanel(); void animateCollapsePanels(); diff --git a/core/java/com/android/internal/statusbar/IStatusBarService.aidl b/core/java/com/android/internal/statusbar/IStatusBarService.aidl index 87e0603..663c838 100644 --- a/core/java/com/android/internal/statusbar/IStatusBarService.aidl +++ b/core/java/com/android/internal/statusbar/IStatusBarService.aidl @@ -28,6 +28,8 @@ interface IStatusBarService void collapsePanels(); void disable(int what, IBinder token, String pkg); 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); void setIcon(String slot, String iconPackage, int iconId, int iconLevel, String contentDescription); void setIconVisibility(String slot, boolean visible); void removeIcon(String slot); |