summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorDaniel Sandler <dsandler@android.com>2011-08-05 04:46:09 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-08-05 04:46:09 -0700
commitc803422bed63f24e987294dae974d81342fb5189 (patch)
treeaeb9aafe599e5c8f272b1c2ff034f28b737c5966 /packages
parent69ecb0a08a4c7d483bdd0c29db533579db404c9c (diff)
parent06a0d4b5c36b3353a89ec31e097bf0b54b5f2549 (diff)
downloadframeworks_base-c803422bed63f24e987294dae974d81342fb5189.zip
frameworks_base-c803422bed63f24e987294dae974d81342fb5189.tar.gz
frameworks_base-c803422bed63f24e987294dae974d81342fb5189.tar.bz2
Merge "Clear all notifications on tablet actually works now."
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/res/layout-sw600dp/status_bar.xml12
-rw-r--r--packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java29
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java32
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java5
5 files changed, 53 insertions, 37 deletions
diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar.xml b/packages/SystemUI/res/layout-sw600dp/status_bar.xml
index 55e57ab..a204f17 100644
--- a/packages/SystemUI/res/layout-sw600dp/status_bar.xml
+++ b/packages/SystemUI/res/layout-sw600dp/status_bar.xml
@@ -35,18 +35,6 @@
android:clipChildren="false"
>
- <ImageView android:id="@+id/clear_all_button"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"
- android:layout_alignParentRight="true"
- android:layout_marginTop="1dp"
- android:layout_marginRight="20dp"
- android:paddingLeft="15dp"
- android:paddingRight="15dp"
- android:src="@drawable/ic_notify_clear"
- android:visibility="invisible"
- />
-
<!-- notification icons & panel access -->
<include layout="@layout/status_bar_notification_area"
android:layout_width="wrap_content"
diff --git a/packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml b/packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml
index 9f11e08..1641c70 100644
--- a/packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml
+++ b/packages/SystemUI/res/layout-sw600dp/status_bar_notification_panel.xml
@@ -24,6 +24,18 @@
android:gravity="right"
>
+ <ImageView android:id="@+id/clear_all_button"
+ android:layout_width="wrap_content"
+ android:layout_height="@*android:dimen/status_bar_height"
+ android:layout_alignParentRight="true"
+ android:layout_alignParentBottom="true"
+ android:layout_marginRight="20dp"
+ android:paddingLeft="15dp"
+ android:paddingRight="15dp"
+ android:src="@drawable/ic_notify_clear"
+ android:visibility="invisible"
+ />
+
<RelativeLayout
android:id="@+id/content_parent"
android:layout_height="wrap_content"
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
index 74dbfef..d9cb4e8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/NotificationPanel.java
@@ -40,6 +40,7 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel,
final static int PANEL_FADE_DURATION = 150;
boolean mShowing;
+ boolean mHasClearableNotifications = false;
int mNotificationCount = 0;
NotificationPanelTitle mTitleArea;
View mSettingsButton;
@@ -50,6 +51,7 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel,
View mSettingsView;
ViewGroup mContentParent;
TabletStatusBar mBar;
+ View mClearButton;
// amount to slide mContentParent down by when mContentFrame is missing
float mContentFrameMissingTranslation;
@@ -84,14 +86,27 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel,
mNotificationScroller = findViewById(R.id.notification_scroller);
mContentFrame = (ViewGroup)findViewById(R.id.content_frame);
- mContentFrameMissingTranslation =
- mContentFrame.getBackground().getMinimumHeight() + 10;
+ mContentFrameMissingTranslation = 0; // not needed with current assets
+
+ // the "X" that appears in place of the clock when the panel is showing notifications
+ mClearButton = findViewById(R.id.clear_all_button);
+ mClearButton.setOnClickListener(mClearButtonListener);
mShowing = false;
setContentFrameVisible(mNotificationCount > 0, false);
}
+ private View.OnClickListener mClearButtonListener = new View.OnClickListener() {
+ public void onClick(View v) {
+ mBar.clearAll();
+ }
+ };
+
+ public View getClearButton() {
+ return mClearButton;
+ }
+
public void show(boolean show, boolean animate) {
if (show && !mShowing) {
setContentFrameVisible(mSettingsView != null || mNotificationCount > 0, false);
@@ -264,12 +279,16 @@ public class NotificationPanel extends RelativeLayout implements StatusBarPanel,
if (mBar != null) {
final boolean showX
= (isShowing()
- && mNotificationScroller.getVisibility() == View.VISIBLE
- && mNotificationCount > 0);
- mBar.getClearButton().setVisibility(showX ? View.VISIBLE : View.INVISIBLE);
+ && mHasClearableNotifications
+ && mNotificationScroller.getVisibility() == View.VISIBLE);
+ getClearButton().setVisibility(showX ? View.VISIBLE : View.INVISIBLE);
}
}
+ public void setClearable(boolean clearable) {
+ mHasClearableNotifications = clearable;
+ }
+
public void updatePanelModeButtons() {
final boolean settingsVisible = (mSettingsView != null);
mSettingsButton.setVisibility(!settingsVisible ? View.VISIBLE : View.INVISIBLE);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
index c7b6f20..ae19cb1 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBar.java
@@ -122,7 +122,6 @@ public class TabletStatusBar extends StatusBar implements
View mNotificationTrigger;
NotificationIconArea mNotificationIconArea;
ViewGroup mNavigationArea;
- View mClearButton;
boolean mNotificationDNDMode;
NotificationData.Entry mNotificationDNDDummyEntry;
@@ -453,10 +452,6 @@ public class TabletStatusBar extends StatusBar implements
// the more notifications icon
mNotificationIconArea = (NotificationIconArea)sb.findViewById(R.id.notificationIcons);
- // the "X" that appears in place of the clock when the panel is showing notifications
- mClearButton = sb.findViewById(R.id.clear_all_button);
- mClearButton.setOnClickListener(mClearButtonListener);
-
// where the icons go
mIconLayout = (NotificationIconArea.IconLayout) sb.findViewById(R.id.icons);
mIconLayout.setOnTouchListener(new NotificationIconTouchListener());
@@ -587,21 +582,6 @@ public class TabletStatusBar extends StatusBar implements
return sb;
}
- private View.OnClickListener mClearButtonListener = new View.OnClickListener() {
- public void onClick(View v) {
- try {
- mBarService.onClearAllNotifications();
- } catch (RemoteException ex) {
- // system process is dead if we're here.
- }
- animateCollapse();
- }
- };
-
- public View getClearButton() {
- return mClearButton;
- }
-
public int getStatusBarHeight() {
return mHeightReceiver.getHeight();
}
@@ -1204,6 +1184,9 @@ public class TabletStatusBar extends StatusBar implements
}
private void setAreThereNotifications() {
+ if (mNotificationPanel != null) {
+ mNotificationPanel.setClearable(mNotificationData.hasClearableItems());
+ }
}
/**
@@ -1779,6 +1762,15 @@ public class TabletStatusBar extends StatusBar implements
return true;
}
+ public void clearAll() {
+ try {
+ mBarService.onClearAllNotifications();
+ } catch (RemoteException ex) {
+ // system process is dead if we're here.
+ }
+ animateCollapse();
+ }
+
public void userActivity() {
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java
index dff1f6a..7d11251 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarView.java
@@ -94,6 +94,11 @@ public class TabletStatusBarView extends FrameLayout {
mHandler = h;
}
+ /**
+ * Let the status bar know that if you tap on ignore while panel is showing, don't do anything.
+ *
+ * Debounces taps on, say, a popup's trigger when the popup is already showing.
+ */
public void setIgnoreChildren(int index, View ignore, View panel) {
mIgnoreChildren[index] = ignore;
mPanels[index] = panel;