Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aaba60b2 authored by Joe Onorato's avatar Joe Onorato
Browse files

Notifications don't crash when you click them, and pass through events to...

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

Change-Id: Iae4a636d3c6d5c617440b11eb5b8bc77838ad584
parent e345fff2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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();
}
+12 −5
Original line number Diff line number Diff line
@@ -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();
        }
    };
+9 −1
Original line number Diff line number Diff line
@@ -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.
    // ================================================================================