summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Caitlin Shkuratov <caitlinshk@google.com> 2023-06-07 16:47:36 +0000
committer Caitlin Shkuratov <caitlinshk@google.com> 2023-06-20 21:11:29 +0000
commitc21fbef2f0bfdc653231ebef955ad63f77681adf (patch)
tree6565919c592a8a0e0b0c4c0927b2d32e425a4a6f
parent80bd64a2378c8ba3c0c243a037ef3a049232be65 (diff)
[Central Surfaces] Move NotifRemoteInputManager wake to PowerInteractor.
Bug: 277764509 Test: Receive notif with inline reply action while on AOD -> tap on reply action -> verify PowerInteractor#wakeUpIfDozing called and device wakes Test: atest NotificationRemoteInputManagerTest Change-Id: I6b48c3fafe50f0ac72a60c6bd7157eec0f490ae5 Change-Id: I7f5cd5548133c6a7ae32153d25f1a7922f6a0329
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java20
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java13
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java13
3 files changed, 18 insertions, 28 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
index 406db18c43dd..da84afef42c5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationRemoteInputManager.java
@@ -27,7 +27,6 @@ import android.content.pm.UserInfo;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.ServiceManager;
-import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserManager;
import android.service.notification.StatusBarNotification;
@@ -52,6 +51,7 @@ import com.android.systemui.Dumpable;
import com.android.systemui.R;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
+import com.android.systemui.power.domain.interactor.PowerInteractor;
import com.android.systemui.statusbar.dagger.CentralSurfacesDependenciesModule;
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
import com.android.systemui.statusbar.notification.RemoteInputControllerLogger;
@@ -60,19 +60,15 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry.
import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.policy.RemoteInputUriController;
import com.android.systemui.statusbar.policy.RemoteInputView;
import com.android.systemui.util.DumpUtilsKt;
import com.android.systemui.util.ListenerSet;
-import dagger.Lazy;
-
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
-import java.util.Optional;
import java.util.function.Consumer;
/**
@@ -95,10 +91,8 @@ public class NotificationRemoteInputManager implements Dumpable {
private final NotificationLockscreenUserManager mLockscreenUserManager;
private final SmartReplyController mSmartReplyController;
private final NotificationVisibilityProvider mVisibilityProvider;
+ private final PowerInteractor mPowerInteractor;
private final ActionClickLogger mLogger;
-
- private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy;
-
protected final Context mContext;
protected final NotifPipelineFlags mNotifPipelineFlags;
private final UserManager mUserManager;
@@ -122,10 +116,8 @@ public class NotificationRemoteInputManager implements Dumpable {
@Override
public boolean onInteraction(
View view, PendingIntent pendingIntent, RemoteViews.RemoteResponse response) {
- mCentralSurfacesOptionalLazy.get().ifPresent(
- centralSurfaces -> centralSurfaces.wakeUpIfDozing(
- SystemClock.uptimeMillis(), "NOTIFICATION_CLICK",
- PowerManager.WAKE_REASON_GESTURE));
+ mPowerInteractor.wakeUpIfDozing(
+ "NOTIFICATION_CLICK", PowerManager.WAKE_REASON_GESTURE);
final NotificationEntry entry = getNotificationForParent(view.getParent());
mLogger.logInitialClick(entry, pendingIntent);
@@ -259,7 +251,7 @@ public class NotificationRemoteInputManager implements Dumpable {
NotificationLockscreenUserManager lockscreenUserManager,
SmartReplyController smartReplyController,
NotificationVisibilityProvider visibilityProvider,
- Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+ PowerInteractor powerInteractor,
StatusBarStateController statusBarStateController,
RemoteInputUriController remoteInputUriController,
RemoteInputControllerLogger remoteInputControllerLogger,
@@ -271,7 +263,7 @@ public class NotificationRemoteInputManager implements Dumpable {
mLockscreenUserManager = lockscreenUserManager;
mSmartReplyController = smartReplyController;
mVisibilityProvider = visibilityProvider;
- mCentralSurfacesOptionalLazy = centralSurfacesOptionalLazy;
+ mPowerInteractor = powerInteractor;
mLogger = logger;
mBarService = IStatusBarService.Stub.asInterface(
ServiceManager.getService(Context.STATUS_BAR_SERVICE));
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
index 73eba0ee9675..075b41b91d97 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/dagger/CentralSurfacesDependenciesModule.java
@@ -28,6 +28,7 @@ import com.android.internal.statusbar.IStatusBarService;
import com.android.systemui.animation.ActivityLaunchAnimator;
import com.android.systemui.animation.AnimationFeatureFlags;
import com.android.systemui.animation.DialogLaunchAnimator;
+import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor;
import com.android.systemui.colorextraction.SysuiColorExtractor;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
@@ -35,10 +36,10 @@ import com.android.systemui.dump.DumpHandler;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.flags.Flags;
-import com.android.systemui.bouncer.domain.interactor.AlternateBouncerInteractor;
import com.android.systemui.media.controls.pipeline.MediaDataManager;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
+import com.android.systemui.power.domain.interactor.PowerInteractor;
import com.android.systemui.settings.DisplayTracker;
import com.android.systemui.shade.carrier.ShadeCarrierGroupController;
import com.android.systemui.statusbar.ActionClickLogger;
@@ -79,14 +80,14 @@ import com.android.systemui.tracing.ProtoTracer;
import com.android.systemui.util.concurrency.DelayableExecutor;
import com.android.systemui.util.time.SystemClock;
-import java.util.Optional;
-import java.util.concurrent.Executor;
-
import dagger.Binds;
import dagger.Lazy;
import dagger.Module;
import dagger.Provides;
+import java.util.Optional;
+import java.util.concurrent.Executor;
+
/**
* This module provides instances needed to construct {@link CentralSurfacesImpl}. These are moved to
* this separate from {@link CentralSurfacesModule} module so that components that wish to build
@@ -104,7 +105,7 @@ public interface CentralSurfacesDependenciesModule {
NotificationLockscreenUserManager lockscreenUserManager,
SmartReplyController smartReplyController,
NotificationVisibilityProvider visibilityProvider,
- Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+ PowerInteractor powerInteractor,
StatusBarStateController statusBarStateController,
RemoteInputUriController remoteInputUriController,
RemoteInputControllerLogger remoteInputControllerLogger,
@@ -117,7 +118,7 @@ public interface CentralSurfacesDependenciesModule {
lockscreenUserManager,
smartReplyController,
visibilityProvider,
- centralSurfacesOptionalLazy,
+ powerInteractor,
statusBarStateController,
remoteInputUriController,
remoteInputControllerLogger,
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
index ced07348c27a..305f48b147f8 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/NotificationRemoteInputManagerTest.java
@@ -33,25 +33,21 @@ import androidx.test.filters.SmallTest;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
+import com.android.systemui.power.domain.interactor.PowerInteractor;
import com.android.systemui.statusbar.notification.NotifPipelineFlags;
import com.android.systemui.statusbar.notification.RemoteInputControllerLogger;
import com.android.systemui.statusbar.notification.collection.NotificationEntry;
import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder;
import com.android.systemui.statusbar.notification.collection.render.NotificationVisibilityProvider;
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow;
-import com.android.systemui.statusbar.phone.CentralSurfaces;
import com.android.systemui.statusbar.policy.RemoteInputUriController;
-import dagger.Lazy;
-
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
-import java.util.Optional;
-
@SmallTest
@RunWith(AndroidTestingRunner.class)
@TestableLooper.RunWithLooper
@@ -69,6 +65,7 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
@Mock private RemoteInputUriController mRemoteInputUriController;
@Mock private NotificationClickNotifier mClickNotifier;
@Mock private NotificationLockscreenUserManager mLockscreenUserManager;
+ @Mock private PowerInteractor mPowerInteractor;
private TestableNotificationRemoteInputManager mRemoteInputManager;
private NotificationEntry mEntry;
@@ -82,7 +79,7 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
mLockscreenUserManager,
mSmartReplyController,
mVisibilityProvider,
- () -> Optional.of(mock(CentralSurfaces.class)),
+ mPowerInteractor,
mStateController,
mRemoteInputUriController,
mock(RemoteInputControllerLogger.class),
@@ -140,7 +137,7 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
NotificationLockscreenUserManager lockscreenUserManager,
SmartReplyController smartReplyController,
NotificationVisibilityProvider visibilityProvider,
- Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy,
+ PowerInteractor powerInteractor,
StatusBarStateController statusBarStateController,
RemoteInputUriController remoteInputUriController,
RemoteInputControllerLogger remoteInputControllerLogger,
@@ -153,7 +150,7 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
lockscreenUserManager,
smartReplyController,
visibilityProvider,
- centralSurfacesOptionalLazy,
+ powerInteractor,
statusBarStateController,
remoteInputUriController,
remoteInputControllerLogger,