summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src/com/android/systemui
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2010-09-26 18:04:44 -0700
committerJoe Onorato <joeo@android.com>2010-09-26 19:07:51 -0700
commit091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bf (patch)
tree5f3140665244098cd07ebefd650c002045a1b72f /packages/SystemUI/src/com/android/systemui
parent098e0edbe6afd57eecef7c033035894db5b65b99 (diff)
downloadframeworks_base-091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bf.zip
frameworks_base-091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bf.tar.gz
frameworks_base-091e1b8a86d34d2d51d2a5f7ae3cd903925fa5bf.tar.bz2
Implement disable() on the status bar.
This includes adding the new DISABLE_NAVIGATION flag. Bug: 3000770 Change-Id: I6d1c3586198e13e06b5d26e8b23a9495dc4ba02e
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java158
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java13
2 files changed, 87 insertions, 84 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java
index 49337fd..ffa1690 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java
@@ -78,6 +78,7 @@ public class TabletStatusBarService extends StatusBarService {
NotificationIconArea mNotificationIconArea;
View mNotificationButtons;
View mSystemInfo;
+ View mNavigationArea;
NotificationPanel mNotificationPanel;
SystemPanel mSystemPanel;
@@ -98,7 +99,6 @@ public class TabletStatusBarService extends StatusBarService {
TabletTicker mTicker;
View mTickerView;
boolean mTicking;
- boolean mExpandedVisible;
// for disabling the status bar
int mDisabled = 0;
@@ -203,6 +203,9 @@ public class TabletStatusBarService extends StatusBarService {
mSignalMeter = (ImageView) sb.findViewById(R.id.signal);
mSignalIcon = (ImageView) sb.findViewById(R.id.signal_icon);
+ // The navigation buttons
+ mNavigationArea = sb.findViewById(R.id.navigationArea);
+
// Add the windows
addPanelWindows();
@@ -224,24 +227,26 @@ public class TabletStatusBarService extends StatusBarService {
switch (m.what) {
case MSG_OPEN_NOTIFICATION_PANEL:
if (DEBUG) Slog.d(TAG, "opening notifications panel");
- mDoNotDisturbButton.setText(mNotificationsOn
- ? R.string.status_bar_do_not_disturb_button
- : R.string.status_bar_please_disturb_button);
- mNotificationPanel.setVisibility(View.VISIBLE);
- mNotificationIconArea.setAnimation(loadAnim(R.anim.notification_icons_out));
- mNotificationIconArea.setVisibility(View.GONE);
- mNotificationButtons.setAnimation(loadAnim(R.anim.notification_icons_in));
- mNotificationButtons.setVisibility(View.VISIBLE);
- mExpandedVisible = true;
+ if (mNotificationPanel.getVisibility() == View.GONE) {
+ mDoNotDisturbButton.setText(mNotificationsOn
+ ? R.string.status_bar_do_not_disturb_button
+ : R.string.status_bar_please_disturb_button);
+ mNotificationPanel.setVisibility(View.VISIBLE);
+ setViewVisibility(mNotificationIconArea, View.GONE,
+ R.anim.notification_icons_out);
+ setViewVisibility(mNotificationButtons, View.VISIBLE,
+ R.anim.notification_buttons_in);
+ }
break;
case MSG_CLOSE_NOTIFICATION_PANEL:
if (DEBUG) Slog.d(TAG, "closing notifications panel");
- mNotificationPanel.setVisibility(View.GONE);
- mNotificationIconArea.setAnimation(loadAnim(R.anim.notification_icons_in));
- mNotificationIconArea.setVisibility(View.VISIBLE);
- mNotificationButtons.setAnimation(loadAnim(R.anim.notification_buttons_out));
- mNotificationButtons.setVisibility(View.GONE);
- mExpandedVisible = false;
+ if (mNotificationPanel.getVisibility() == View.VISIBLE) {
+ mNotificationPanel.setVisibility(View.GONE);
+ setViewVisibility(mNotificationIconArea, View.VISIBLE,
+ R.anim.notification_icons_in);
+ setViewVisibility(mNotificationButtons, View.GONE,
+ R.anim.notification_buttons_out);
+ }
break;
case MSG_OPEN_SYSTEM_PANEL:
if (DEBUG) Slog.d(TAG, "opening system panel");
@@ -390,11 +395,14 @@ public class TabletStatusBarService extends StatusBarService {
}
public void disable(int state) {
- /*
- final int old = mDisabled;
- final int diff = state ^ old;
+ int old = mDisabled;
+ int diff = state ^ old;
+ Slog.d(TAG, "disable... old=0x" + Integer.toHexString(old)
+ + " diff=0x" + Integer.toHexString(diff)
+ + " state=0x" + Integer.toHexString(state));
mDisabled = state;
+ // act accordingly
if ((diff & StatusBarManager.DISABLE_EXPAND) != 0) {
if ((state & StatusBarManager.DISABLE_EXPAND) != 0) {
Slog.d(TAG, "DISABLE_EXPAND: yes");
@@ -404,60 +412,41 @@ public class TabletStatusBarService extends StatusBarService {
if ((diff & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) {
if ((state & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) {
Slog.d(TAG, "DISABLE_NOTIFICATION_ICONS: yes");
- if (mTicking) {
- mTicker.halt();
- } else {
- mNotificationIconArea.setVisibility(View.INVISIBLE);
- }
+ setViewVisibility(mNotificationTrigger, View.GONE,
+ R.anim.notification_icons_out);
+ setViewVisibility(mNotificationIconArea, View.GONE,
+ R.anim.notification_icons_out);
+ mTicker.halt();
} else {
Slog.d(TAG, "DISABLE_NOTIFICATION_ICONS: no");
- if (!mExpandedVisible) {
- mNotificationIconArea.setVisibility(View.VISIBLE);
- }
+ setViewVisibility(mNotificationTrigger, View.VISIBLE,
+ R.anim.notification_icons_in);
+ setViewVisibility(mNotificationIconArea, View.VISIBLE,
+ R.anim.notification_icons_in);
}
} else if ((diff & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) {
- if (mTicking && (state & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) {
- Slog.d(TAG, "DISABLE_NOTIFICATION_TICKER: yes");
+ if ((state & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) {
mTicker.halt();
}
}
- */
- }
-
- void performDisableActions(int net) {
- /*
- int old = mDisabled;
- int diff = net ^ old;
- mDisabled = net;
-
- // act accordingly
- if ((diff & StatusBarManager.DISABLE_EXPAND) != 0) {
- if ((net & StatusBarManager.DISABLE_EXPAND) != 0) {
- Slog.d(TAG, "DISABLE_EXPAND: yes");
- animateCollapse();
+ if ((diff & StatusBarManager.DISABLE_SYSTEM_INFO) != 0) {
+ if ((state & StatusBarManager.DISABLE_SYSTEM_INFO) != 0) {
+ Slog.d(TAG, "DISABLE_SYSTEM_INFO: yes");
+ setViewVisibility(mSystemInfo, View.GONE, R.anim.navigation_out);
+ } else {
+ Slog.d(TAG, "DISABLE_SYSTEM_INFO: no");
+ setViewVisibility(mSystemInfo, View.VISIBLE, R.anim.navigation_in);
}
}
- if ((diff & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) {
- if ((net & StatusBarManager.DISABLE_NOTIFICATION_ICONS) != 0) {
- Slog.d(TAG, "DISABLE_NOTIFICATION_ICONS: yes");
- if (mTicking) {
- mNotificationIconArea.setVisibility(View.INVISIBLE);
- mTicker.halt();
- } else {
- mNotificationIconArea.setVisibility(View.INVISIBLE);
- }
+ if ((diff & StatusBarManager.DISABLE_NAVIGATION) != 0) {
+ if ((state & StatusBarManager.DISABLE_NAVIGATION) != 0) {
+ Slog.d(TAG, "DISABLE_NAVIGATION: yes");
+ setViewVisibility(mNavigationArea, View.GONE, R.anim.navigation_out);
} else {
- Slog.d(TAG, "DISABLE_NOTIFICATION_ICONS: no");
- if (!mExpandedVisible) {
- mNotificationIconArea.setVisibility(View.VISIBLE);
- }
- }
- } else if ((diff & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) {
- if (mTicking && (net & StatusBarManager.DISABLE_NOTIFICATION_TICKER) != 0) {
- mTicker.halt();
+ Slog.d(TAG, "DISABLE_NAVIGATION: no");
+ setViewVisibility(mNavigationArea, View.VISIBLE, R.anim.navigation_in);
}
}
- */
}
private boolean hasTicker(Notification n) {
@@ -497,35 +486,35 @@ public class TabletStatusBarService extends StatusBarService {
public void setLightsOn(boolean on) {
if (on) {
- mCurtains.setAnimation(loadAnim(R.anim.lights_out_out));
- mCurtains.setVisibility(View.GONE);
- mBarContents.setAnimation(loadAnim(R.anim.status_bar_in));
- mBarContents.setVisibility(View.VISIBLE);
+ setViewVisibility(mCurtains, View.GONE, R.anim.lights_out_out);
+ setViewVisibility(mBarContents, View.VISIBLE, R.anim.status_bar_in);
} else {
animateCollapse();
- mCurtains.setAnimation(loadAnim(R.anim.lights_out_in));
- mCurtains.setVisibility(View.VISIBLE);
- mBarContents.setAnimation(loadAnim(R.anim.status_bar_out));
- mBarContents.setVisibility(View.GONE);
+ setViewVisibility(mCurtains, View.VISIBLE, R.anim.lights_out_in);
+ setViewVisibility(mBarContents, View.GONE, R.anim.status_bar_out);
}
}
public void notificationIconsClicked(View v) {
if (DEBUG) Slog.d(TAG, "clicked notification icons");
- int msg = (mNotificationPanel.getVisibility() == View.GONE)
- ? MSG_OPEN_NOTIFICATION_PANEL
- : MSG_CLOSE_NOTIFICATION_PANEL;
- mHandler.removeMessages(msg);
- mHandler.sendEmptyMessage(msg);
+ if ((mDisabled & StatusBarManager.DISABLE_EXPAND) == 0) {
+ int msg = (mNotificationPanel.getVisibility() == View.GONE)
+ ? MSG_OPEN_NOTIFICATION_PANEL
+ : MSG_CLOSE_NOTIFICATION_PANEL;
+ mHandler.removeMessages(msg);
+ mHandler.sendEmptyMessage(msg);
+ }
}
public void systemInfoClicked(View v) {
if (DEBUG) Slog.d(TAG, "clicked system info");
- int msg = (mSystemPanel.getVisibility() == View.GONE)
- ? MSG_OPEN_SYSTEM_PANEL
- : MSG_CLOSE_SYSTEM_PANEL;
- mHandler.removeMessages(msg);
- mHandler.sendEmptyMessage(msg);
+ if ((mDisabled & StatusBarManager.DISABLE_EXPAND) == 0) {
+ int msg = (mSystemPanel.getVisibility() == View.GONE)
+ ? MSG_OPEN_SYSTEM_PANEL
+ : MSG_CLOSE_SYSTEM_PANEL;
+ mHandler.removeMessages(msg);
+ mHandler.sendEmptyMessage(msg);
+ }
}
public void recentButtonClicked(View v) {
@@ -690,10 +679,6 @@ public class TabletStatusBarService extends StatusBarService {
}
}
- Animation loadAnim(int id) {
- return AnimationUtils.loadAnimation((Context)this, id);
- }
-
private boolean inflateViews(NotificationData.Entry entry, ViewGroup parent) {
StatusBarNotification sbn = entry.notification;
RemoteViews remoteViews = sbn.notification.contentView;
@@ -802,6 +787,13 @@ public class TabletStatusBarService extends StatusBarService {
return false;
}
}
+
+ private void setViewVisibility(View v, int vis, int anim) {
+ if (v.getVisibility() != vis) {
+ v.setAnimation(AnimationUtils.loadAnimation((Context)this, anim));
+ v.setVisibility(vis);
+ }
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java
index 7ac7919..3c3139f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletTicker.java
@@ -59,7 +59,6 @@ public class TabletTicker extends Handler {
// TODO: Make this a configuration value.
// 3 is enough to let us see most cases, but not get so far behind that it's annoying.
- int mQueuePos = 0;
mQueue = new StatusBarNotification[3];
}
@@ -80,6 +79,18 @@ public class TabletTicker extends Handler {
}
}
+ public void halt() {
+ removeMessages(MSG_ADVANCE);
+ if (mCurrentView != null) {
+ final int N = mQueue.length;
+ for (int i=0; i<N; i++) {
+ mQueue[i] = null;
+ }
+ mQueuePos = 0;
+ sendEmptyMessage(MSG_ADVANCE);
+ }
+ }
+
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_ADVANCE: