Notifications don't crash when you click them, and pass through events to NotificationManagerService
Change-Id: Iae4a636d3c6d5c617440b11eb5b8bc77838ad584
This commit is contained in:
@@ -33,4 +33,6 @@ interface IStatusBarService
|
||||
// ---- Methods below are for use by the status bar policy services ----
|
||||
void registerStatusBar(IStatusBar callbacks, out StatusBarIconList state);
|
||||
void visibilityChanged(boolean visible);
|
||||
void onNotificationClick(String pkg, String tag, int id);
|
||||
void onClearAllNotifications();
|
||||
}
|
||||
|
||||
@@ -103,7 +103,7 @@ public class PhoneStatusBarService extends StatusBarService {
|
||||
switch (event.getKeyCode()) {
|
||||
case KeyEvent.KEYCODE_BACK:
|
||||
if (!down) {
|
||||
//TODO PhoneStatusBarService.this.collapse();
|
||||
animateCollapse();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
@@ -119,7 +119,6 @@ public class PhoneStatusBarService extends StatusBarService {
|
||||
int mPixelFormat;
|
||||
H mHandler = new H();
|
||||
Object mQueueLock = new Object();
|
||||
NotificationCallbacks mNotificationCallbacks;
|
||||
|
||||
// icons
|
||||
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()));
|
||||
try {
|
||||
mIntent.send(PhoneStatusBarService.this, 0, overlay);
|
||||
mNotificationCallbacks.onNotificationClick(mPkg, mTag, mId);
|
||||
} catch (PendingIntent.CanceledException e) {
|
||||
// the stack trace isn't very helpful here. Just log the exception message.
|
||||
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() {
|
||||
public void onClick(View v) {
|
||||
mNotificationCallbacks.onClearAll();
|
||||
try {
|
||||
mBarService.onClearAllNotifications();
|
||||
} catch (RemoteException ex) {
|
||||
// system process is dead if we're here.
|
||||
}
|
||||
animateCollapse();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -255,7 +255,7 @@ public class StatusBarManagerService extends IStatusBarService.Stub
|
||||
mBar = bar;
|
||||
iconList.copyFrom(mIcons);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* The status bar service should call this when the user changes whether
|
||||
* the status bar is visible or not.
|
||||
@@ -264,6 +264,14 @@ public class StatusBarManagerService extends IStatusBarService.Stub
|
||||
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.
|
||||
// ================================================================================
|
||||
|
||||
Reference in New Issue
Block a user