am aaba60b2: Notifications don\'t crash when you click them, and pass through events to NotificationManagerService

This commit is contained in:
Joe Onorato
2010-06-02 16:25:53 -07:00
committed by Android Git Automerger
3 changed files with 23 additions and 6 deletions

View File

@@ -33,4 +33,6 @@ interface IStatusBarService
// ---- Methods below are for use by the status bar policy services ---- // ---- Methods below are for use by the status bar policy services ----
void registerStatusBar(IStatusBar callbacks, out StatusBarIconList state); void registerStatusBar(IStatusBar callbacks, out StatusBarIconList state);
void visibilityChanged(boolean visible); void visibilityChanged(boolean visible);
void onNotificationClick(String pkg, String tag, int id);
void onClearAllNotifications();
} }

View File

@@ -103,7 +103,7 @@ public class PhoneStatusBarService extends StatusBarService {
switch (event.getKeyCode()) { switch (event.getKeyCode()) {
case KeyEvent.KEYCODE_BACK: case KeyEvent.KEYCODE_BACK:
if (!down) { if (!down) {
//TODO PhoneStatusBarService.this.collapse(); animateCollapse();
} }
return true; return true;
} }
@@ -119,7 +119,6 @@ public class PhoneStatusBarService extends StatusBarService {
int mPixelFormat; int mPixelFormat;
H mHandler = new H(); H mHandler = new H();
Object mQueueLock = new Object(); Object mQueueLock = new Object();
NotificationCallbacks mNotificationCallbacks;
// icons // icons
String[] mRightIconSlots; String[] mRightIconSlots;
@@ -925,12 +924,16 @@ public class PhoneStatusBarService extends StatusBarService {
new Rect(pos[0], pos[1], pos[0]+v.getWidth(), pos[1]+v.getHeight())); new Rect(pos[0], pos[1], pos[0]+v.getWidth(), pos[1]+v.getHeight()));
try { try {
mIntent.send(PhoneStatusBarService.this, 0, overlay); mIntent.send(PhoneStatusBarService.this, 0, overlay);
mNotificationCallbacks.onNotificationClick(mPkg, mTag, mId);
} catch (PendingIntent.CanceledException e) { } catch (PendingIntent.CanceledException e) {
// the stack trace isn't very helpful here. Just log the exception message. // the stack trace isn't very helpful here. Just log the exception message.
Slog.w(TAG, "Sending contentIntent failed: " + e); Slog.w(TAG, "Sending contentIntent failed: " + e);
} }
//collapse(); try {
mBarService.onNotificationClick(mPkg, mTag, mId);
} catch (RemoteException ex) {
// system process is dead if we're here.
}
animateCollapse();
} }
} }
@@ -1314,7 +1317,11 @@ public class PhoneStatusBarService extends StatusBarService {
private View.OnClickListener mClearButtonListener = new View.OnClickListener() { private View.OnClickListener mClearButtonListener = new View.OnClickListener() {
public void onClick(View v) { public void onClick(View v) {
mNotificationCallbacks.onClearAll(); try {
mBarService.onClearAllNotifications();
} catch (RemoteException ex) {
// system process is dead if we're here.
}
animateCollapse(); animateCollapse();
} }
}; };

View File

@@ -255,7 +255,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub
mBar = bar; mBar = bar;
iconList.copyFrom(mIcons); iconList.copyFrom(mIcons);
} }
/** /**
* The status bar service should call this when the user changes whether * The status bar service should call this when the user changes whether
* the status bar is visible or not. * the status bar is visible or not.
@@ -264,6 +264,14 @@ public class StatusBarManagerService extends IStatusBarService.Stub
Slog.d(TAG, "visibilityChanged visible=" + visible); Slog.d(TAG, "visibilityChanged visible=" + visible);
} }
public void onNotificationClick(String pkg, String tag, int id) {
mNotificationCallbacks.onNotificationClick(pkg, tag, id);
}
public void onClearAllNotifications() {
mNotificationCallbacks.onClearAll();
}
// ================================================================================ // ================================================================================
// Callbacks for NotificationManagerService. // Callbacks for NotificationManagerService.
// ================================================================================ // ================================================================================