summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java12
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java4
-rwxr-xr-xservices/java/com/android/server/NotificationManagerService.java4
-rw-r--r--tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java18
5 files changed, 37 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java b/packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java
index 1e89624..2f94af6 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/LatestItemView.java
@@ -23,12 +23,22 @@ import android.view.MotionEvent;
import android.widget.FrameLayout;
public class LatestItemView extends FrameLayout {
+ private boolean mDispatchTorches;
public LatestItemView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public boolean dispatchTouchEvent(MotionEvent ev) {
- return onTouchEvent(ev);
+ if (mDispatchTorches) {
+ return super.dispatchTouchEvent(ev);
+ } else {
+ return onTouchEvent(ev);
+ }
+ }
+
+ public void setOnClickListener(OnClickListener l) {
+ mDispatchTorches = l == null;
+ super.setOnClickListener(l);
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java b/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java
index 57ebd27..0a8d22b 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java
@@ -440,6 +440,8 @@ public class PhoneStatusBarService extends StatusBarService {
if (contentIntent != null) {
oldEntry.content.setOnClickListener(new Launcher(contentIntent,
notification.pkg, notification.tag, notification.id));
+ } else {
+ oldEntry.content.setOnClickListener(null);
}
// Update the icon.
final StatusBarIcon ic = new StatusBarIcon(notification.pkg,
@@ -516,6 +518,8 @@ public class PhoneStatusBarService extends StatusBarService {
if (contentIntent != null) {
content.setOnClickListener(new Launcher(contentIntent, notification.pkg,
notification.tag, notification.id));
+ } else {
+ oldEntry.content.setOnClickListener(null);
}
View expanded = null;
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 0e26f52..c4ab785 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/tablet/TabletStatusBarService.java
@@ -370,6 +370,8 @@ public class TabletStatusBarService extends StatusBarService {
if (contentIntent != null) {
oldEntry.content.setOnClickListener(new NotificationClicker(contentIntent,
notification.pkg, notification.tag, notification.id));
+ } else {
+ oldEntry.content.setOnClickListener(null);
}
// Update the icon.
final StatusBarIcon ic = new StatusBarIcon(notification.pkg,
@@ -760,6 +762,8 @@ public class TabletStatusBarService extends StatusBarService {
if (contentIntent != null) {
content.setOnClickListener(new NotificationClicker(contentIntent,
sbn.pkg, sbn.tag, sbn.id));
+ } else {
+ content.setOnClickListener(null);
}
View expanded = null;
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/java/com/android/server/NotificationManagerService.java
index 5afabbd..15eaa9e 100755
--- a/services/java/com/android/server/NotificationManagerService.java
+++ b/services/java/com/android/server/NotificationManagerService.java
@@ -741,10 +741,6 @@ public class NotificationManagerService extends INotificationManager.Stub
throw new IllegalArgumentException("contentView required: pkg=" + pkg
+ " id=" + id + " notification=" + notification);
}
- if (notification.contentIntent == null) {
- throw new IllegalArgumentException("contentIntent required: pkg=" + pkg
- + " id=" + id + " notification=" + notification);
- }
}
synchronized (mNotificationList) {
diff --git a/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java b/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java
index e30cf4a..9c267d6 100644
--- a/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java
+++ b/tests/StatusBar/src/com/android/statusbartest/NotificationTestList.java
@@ -86,6 +86,18 @@ public class NotificationTestList extends TestActivity
}
},
+ new Test("custom intent on text view") {
+ public void run() {
+ Notification n = new Notification(R.drawable.icon1, null,
+ mActivityCreateTime);
+ n.setLatestEventInfo(NotificationTestList.this, "Persistent #1",
+ "This is a notification!!!", null);
+ n.contentView.setOnClickPendingIntent(com.android.internal.R.id.text,
+ makeIntent2());
+ mNM.notify(1, n);
+ }
+ },
+
new Test("Ticker 1 line") {
public void run() {
Notification n = new Notification(R.drawable.icon1, "tick tick tick",
@@ -776,6 +788,12 @@ public class NotificationTestList extends TestActivity
return PendingIntent.getActivity(this, 0, intent, 0);
}
+ private PendingIntent makeIntent2() {
+ Intent intent = new Intent(this, StatusBarTest.class);
+ return PendingIntent.getActivity(this, 0, intent, 0);
+ }
+
+
class StateStress extends Test {
StateStress(String name, int pause, int iterations, Runnable[] tasks) {
super(name);