diff options
author | Joe Onorato <joeo@android.com> | 2010-09-26 13:05:15 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-09-26 13:05:15 -0700 |
commit | 30a31ef6e51abe8074e22508d88b96d24752ce0a (patch) | |
tree | f6e0c48122600f6529a4ffd70d29660702cc1db8 /packages/SystemUI/src | |
parent | cc64c5dbfbf11f513f60a82ee590f62dfb9a1565 (diff) | |
parent | 55d2d7646bf13bb5406bf01fd1bb96e58588570c (diff) | |
download | frameworks_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.java | 60 |
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; |