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
This commit is contained in:
Daichi Hirono
2019-12-10 16:23:26 +09:00
parent d6ea460110
commit f7fef0fac8
2 changed files with 7 additions and 4 deletions

View File

@@ -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<StatusBar> mStatusBar;
private final BubbleController mBubbleController;
private final NotificationActivityStarter mNotificationActivityStarter;
public NotificationClicker(StatusBar statusBar,
public NotificationClicker(Optional<StatusBar> 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();

View File

@@ -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();