diff options
author | Daniel Sandler <dsandler@google.com> | 2010-02-04 15:41:20 -0800 |
---|---|---|
committer | Daniel Sandler <dsandler@google.com> | 2010-02-04 15:55:00 -0800 |
commit | 91e1d0cddaaec5e077ca689744463901f9d5d580 (patch) | |
tree | f759d1bd29d9cb616911015817dcc50b543d0ceb | |
parent | 1ec608d13abe5b744df97a6394a6324c5540c79d (diff) | |
download | frameworks_base-91e1d0cddaaec5e077ca689744463901f9d5d580.zip frameworks_base-91e1d0cddaaec5e077ca689744463901f9d5d580.tar.gz frameworks_base-91e1d0cddaaec5e077ca689744463901f9d5d580.tar.bz2 |
Add support in StatusBarManager for disabling ticker text.
The new flag, DISABLE_NOTIFICATION_TICKER, will be used by
the car dock app (in conjunction with DISABLE_EXPAND) to
minimize distractions to the driver.
It may also be used by the secure lockscreen to avoid
leaking personal information when the screen is on but the
device is locked (e.g. when the desk dock app is running).
Change-Id: Ibc8efde7da7501767163ae0a75f7c369b824e2a2
3 files changed, 26 insertions, 5 deletions
diff --git a/core/java/android/app/StatusBarManager.java b/core/java/android/app/StatusBarManager.java index 51d7393..72ec616 100644 --- a/core/java/android/app/StatusBarManager.java +++ b/core/java/android/app/StatusBarManager.java @@ -31,12 +31,12 @@ import android.os.ServiceManager; public class StatusBarManager { /** * Flag for {@link #disable} to make the status bar not expandable. Unless you also - * set {@link #DISABLE_NOTIFICATIONS}, new notifications will continue to show. + * set {@link #DISABLE_NOTIFICATION_ICONS}, new notifications will continue to show. */ public static final int DISABLE_EXPAND = 0x00000001; /** - * Flag for {@link #disable} to hide notification icons and ticker text. + * Flag for {@link #disable} to hide notification icons and scrolling ticker text. */ public static final int DISABLE_NOTIFICATION_ICONS = 0x00000002; @@ -47,6 +47,12 @@ public class StatusBarManager { public static final int DISABLE_NOTIFICATION_ALERTS = 0x00000004; /** + * Flag for {@link #disable} to hide only the scrolling ticker. Note that + * {@link #DISABLE_NOTIFICATION_ICONS} implies {@link #DISABLE_NOTIFICATION_TICKER}. + */ + public static final int DISABLE_NOTIFICATION_TICKER = 0x00000008; + + /** * Re-enable all of the status bar features that you've disabled. */ public static final int DISABLE_NONE = 0x00000000; diff --git a/services/java/com/android/server/status/StatusBarService.java b/services/java/com/android/server/status/StatusBarService.java index ab29575..55041fb 100644 --- a/services/java/com/android/server/status/StatusBarService.java +++ b/services/java/com/android/server/status/StatusBarService.java @@ -687,7 +687,8 @@ public class StatusBarService extends IStatusBar.Stub && (oldData == null || oldData.tickerText == null || !CharSequences.equals(oldData.tickerText, n.tickerText))) { - if ((mDisabled & StatusBarManager.DISABLE_NOTIFICATION_ICONS) == 0) { + if (0 == (mDisabled & + (StatusBarManager.DISABLE_NOTIFICATION_ICONS | StatusBarManager.DISABLE_NOTIFICATION_TICKER))) { mTicker.addEntry(n, StatusBarIcon.getIcon(mContext, data), n.tickerText); } } @@ -1698,6 +1699,10 @@ public class StatusBarService extends IStatusBar.Stub setNotificationIconVisibility(true, com.android.internal.R.anim.fade_in); } } + } else if ((diff & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) { + if (mTicking && (net & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) { + mTicker.halt(); + } } } diff --git a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java index 275e5cb..06506fb 100644 --- a/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java +++ b/tests/StatusBar/src/com/android/statusbartest/StatusBarTest.java @@ -62,6 +62,11 @@ public class StatusBarTest extends TestActivity mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_ALERTS); } }, + new Test("Disable Ticker") { + public void run() { + mStatusBarManager.disable(StatusBarManager.DISABLE_NOTIFICATION_TICKER); + } + }, new Test("Disable Expand in 3 sec.") { public void run() { mHandler.postDelayed(new Runnable() { @@ -80,7 +85,7 @@ public class StatusBarTest extends TestActivity }, 3000); } }, - new Test("Disable Both in 3 sec.") { + new Test("Disable Expand + Notifications in 3 sec.") { public void run() { mHandler.postDelayed(new Runnable() { public void run() { @@ -90,7 +95,12 @@ public class StatusBarTest extends TestActivity }, 3000); } }, - new Test("Disable None in 3 sec.") { + new Test("Enable everything") { + public void run() { + mStatusBarManager.disable(0); + } + }, + new Test("Enable everything in 3 sec.") { public void run() { mHandler.postDelayed(new Runnable() { public void run() { |