am aaba60b2: Notifications don\'t crash when you click them, and pass through events to NotificationManagerService
This commit is contained in:
@@ -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();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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.
|
||||||
// ================================================================================
|
// ================================================================================
|
||||||
|
|||||||
Reference in New Issue
Block a user