summaryrefslogtreecommitdiffstats
path: root/packages/SystemUI/src
diff options
context:
space:
mode:
authorJoe Onorato <joeo@android.com>2010-09-26 13:05:15 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-09-26 13:05:15 -0700
commit30a31ef6e51abe8074e22508d88b96d24752ce0a (patch)
treef6e0c48122600f6529a4ffd70d29660702cc1db8 /packages/SystemUI/src
parentcc64c5dbfbf11f513f60a82ee590f62dfb9a1565 (diff)
parent55d2d7646bf13bb5406bf01fd1bb96e58588570c (diff)
downloadframeworks_base-30a31ef6e51abe8074e22508d88b96d24752ce0a.zip
frameworks_base-30a31ef6e51abe8074e22508d88b96d24752ce0a.tar.gz
frameworks_base-30a31ef6e51abe8074e22508d88b96d24752ce0a.tar.bz2
Merge "Notification updates."
Diffstat (limited to 'packages/SystemUI/src')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java60
1 files changed, 48 insertions, 12 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 ea61ad0..de939a4 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java
@@ -31,6 +31,7 @@ import android.os.Message;
import android.os.RemoteException;
import android.text.TextUtils;
import android.util.Slog;
+import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.Gravity;
import android.view.LayoutInflater;
@@ -73,7 +74,9 @@ public class TabletStatusBarService extends StatusBarService {
private NotificationData mNotns = new NotificationData();
TabletStatusBarView mStatusBarView;
+ View mNotificationTrigger;
NotificationIconArea mNotificationIconArea;
+ View mNotificationButtons;
View mSystemInfo;
View mNotificationPanel;
@@ -81,6 +84,7 @@ public class TabletStatusBarService extends StatusBarService {
ViewGroup mPile;
TextView mClearButton;
+ TextView mDoNotDisturbButton;
ImageView mBatteryMeter;
ImageView mSignalMeter;
@@ -99,6 +103,8 @@ public class TabletStatusBarService extends StatusBarService {
// for disabling the status bar
int mDisabled = 0;
+ boolean mNotificationsOn = true;
+
protected void addPanelWindows() {
final Resources res = getResources();
final int barHeight= res.getDimensionPixelSize(
@@ -109,7 +115,7 @@ public class TabletStatusBarService extends StatusBarService {
mNotificationPanel.setOnTouchListener(
new TouchOutsideListener(MSG_CLOSE_NOTIFICATION_PANEL));
- mStatusBarView.setIgnoreChildren(0, mNotificationIconArea, mNotificationPanel);
+ mStatusBarView.setIgnoreChildren(0, mNotificationTrigger, mNotificationPanel);
WindowManager.LayoutParams lp = new WindowManager.LayoutParams(
400, // ViewGroup.LayoutParams.WRAP_CONTENT,
@@ -177,9 +183,20 @@ public class TabletStatusBarService extends StatusBarService {
mCurtains.setOnClickListener(on);
mCurtains.setOnLongClickListener(on);
+ // the button to open the notification area
+ mNotificationTrigger = sb.findViewById(R.id.expand);
+
// the more notifications icon
mNotificationIconArea = (NotificationIconArea)sb.findViewById(R.id.notificationIcons);
+ // the clear and dnd buttons
+ mNotificationButtons = sb.findViewById(R.id.notificationButtons);
+ mClearButton = (TextView)mNotificationButtons.findViewById(R.id.clear_all_button);
+ mClearButton.setOnClickListener(mClearButtonListener);
+ mDoNotDisturbButton = (TextView)mNotificationButtons.findViewById(R.id.do_not_disturb);
+ mDoNotDisturbButton.setOnClickListener(mDoNotDisturbButtonListener);
+
+
// where the icons go
mIconLayout = (NotificationIconArea.IconLayout) sb.findViewById(R.id.icons);
@@ -199,9 +216,6 @@ public class TabletStatusBarService extends StatusBarService {
ScrollView scroller = (ScrollView)mPile.getParent();
scroller.setFillViewport(true);
- mClearButton = (TextView)mNotificationPanel.findViewById(R.id.clear_all_button);
- mClearButton.setOnClickListener(mClearButtonListener);
-
return sb;
}
@@ -214,12 +228,23 @@ 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;
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;
break;
case MSG_OPEN_SYSTEM_PANEL:
@@ -446,6 +471,10 @@ public class TabletStatusBarService extends StatusBarService {
}
private void tick(StatusBarNotification n) {
+ // Don't show the ticker when the windowshade is open.
+ if (mNotificationPanel.getVisibility() == View.VISIBLE) {
+ return;
+ }
// Show the ticker if one is requested. Also don't do this
// until status bar window is attached to the window manager,
// because... well, what's the point otherwise? And trying to
@@ -472,19 +501,15 @@ public class TabletStatusBarService extends StatusBarService {
public void setLightsOn(boolean on) {
if (on) {
- mCurtains.setAnimation(AnimationUtils.loadAnimation((Context)this,
- R.anim.lights_out_out));
+ mCurtains.setAnimation(loadAnim(R.anim.lights_out_out));
mCurtains.setVisibility(View.GONE);
- mBarContents.setAnimation(AnimationUtils.loadAnimation((Context)this,
- R.anim.status_bar_in));
+ mBarContents.setAnimation(loadAnim(R.anim.status_bar_in));
mBarContents.setVisibility(View.VISIBLE);
} else {
animateCollapse();
- mCurtains.setAnimation(AnimationUtils.loadAnimation((Context)this,
- R.anim.lights_out_in));
+ mCurtains.setAnimation(loadAnim(R.anim.lights_out_in));
mCurtains.setVisibility(View.VISIBLE);
- mBarContents.setAnimation(AnimationUtils.loadAnimation((Context)this,
- R.anim.status_bar_out));
+ mBarContents.setAnimation(loadAnim(R.anim.status_bar_out));
mBarContents.setVisibility(View.GONE);
}
}
@@ -539,6 +564,13 @@ public class TabletStatusBarService extends StatusBarService {
}
};
+ private View.OnClickListener mDoNotDisturbButtonListener = new View.OnClickListener() {
+ public void onClick(View v) {
+ mNotificationsOn = !mNotificationsOn;
+ animateCollapse();
+ }
+ };
+
private class NotificationClicker implements View.OnClickListener {
private PendingIntent mIntent;
private String mPkg;
@@ -662,6 +694,10 @@ 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;