From f7fef0fac8492e472636774d4f967ce1368b0417 Mon Sep 17 00:00:00 2001 From: Daichi Hirono Date: Tue, 10 Dec 2019 16:23:26 +0900 Subject: [PATCH] Make StatusBar optional in NotificationClicker. StatusBar is an optional component and some device may use notification related components only. The CL make StatusBar reference in NotificationClicker optional to allow use NotificationClicker without StatusBar. Bug: 143224715 Bug: 145962019 Test: Build and boot cheets target Change-Id: I90fa5291bc47e8b95d7fe3cced2656d8aa55ba58 --- .../statusbar/notification/NotificationClicker.java | 9 ++++++--- .../com/android/systemui/statusbar/phone/StatusBar.java | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java index 8ecf2b8421f09..c8b34f1f5b278 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/NotificationClicker.java @@ -26,6 +26,8 @@ import com.android.systemui.bubbles.BubbleController; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; import com.android.systemui.statusbar.phone.StatusBar; +import java.util.Optional; + /** * Click handler for generic clicks on notifications. Clicks on specific areas (expansion caret, * app ops icon, etc) are handled elsewhere. @@ -33,11 +35,11 @@ import com.android.systemui.statusbar.phone.StatusBar; public final class NotificationClicker implements View.OnClickListener { private static final String TAG = "NotificationClicker"; - private final StatusBar mStatusBar; + private final Optional mStatusBar; private final BubbleController mBubbleController; private final NotificationActivityStarter mNotificationActivityStarter; - public NotificationClicker(StatusBar statusBar, + public NotificationClicker(Optional statusBar, BubbleController bubbleController, NotificationActivityStarter notificationActivityStarter) { mStatusBar = statusBar; @@ -52,7 +54,8 @@ public final class NotificationClicker implements View.OnClickListener { return; } - mStatusBar.wakeUpIfDozing(SystemClock.uptimeMillis(), v, "NOTIFICATION_CLICK"); + mStatusBar.ifPresent(statusBar -> statusBar.wakeUpIfDozing( + SystemClock.uptimeMillis(), v, "NOTIFICATION_CLICK")); final ExpandableNotificationRow row = (ExpandableNotificationRow) v; final StatusBarNotification sbn = row.getEntry().getSbn(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java index 709143d7275af..e31ad9fd4262a 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBar.java @@ -1264,7 +1264,7 @@ public class StatusBar extends SystemUI implements DemoMode, mRemoteInputUriController.attach(mEntryManager); rowBinder.setNotificationClicker(new NotificationClicker( - this, mBubbleController, mNotificationActivityStarter)); + Optional.of(this), mBubbleController, mNotificationActivityStarter)); mGroupAlertTransferHelper.bind(mEntryManager, mGroupManager); mNotificationListController.bind();