Merge "Merge "Make StatusBar purely optional" into sc-v2-dev am: 248f0f42b8 am: 3a2e18b05f"
This commit is contained in:
committed by
Android (Google) Code Review
commit
9a16f2931c
@@ -39,113 +39,114 @@ import dagger.Lazy;
|
||||
@SysUISingleton
|
||||
public class ActivityStarterDelegate implements ActivityStarter {
|
||||
|
||||
private Optional<Lazy<StatusBar>> mActualStarter;
|
||||
private Lazy<Optional<StatusBar>> mActualStarterOptionalLazy;
|
||||
|
||||
@Inject
|
||||
public ActivityStarterDelegate(Optional<Lazy<StatusBar>> statusBar) {
|
||||
mActualStarter = statusBar;
|
||||
public ActivityStarterDelegate(Lazy<Optional<StatusBar>> statusBarOptionalLazy) {
|
||||
mActualStarterOptionalLazy = statusBarOptionalLazy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startPendingIntentDismissingKeyguard(PendingIntent intent) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startPendingIntentDismissingKeyguard(intent));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startPendingIntentDismissingKeyguard(intent));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startPendingIntentDismissingKeyguard(PendingIntent intent,
|
||||
Runnable intentSentUiThreadCallback) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startPendingIntentDismissingKeyguard(intent,
|
||||
intentSentUiThreadCallback));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startPendingIntentDismissingKeyguard(
|
||||
intent, intentSentUiThreadCallback));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startPendingIntentDismissingKeyguard(PendingIntent intent,
|
||||
Runnable intentSentUiThreadCallback, View associatedView) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startPendingIntentDismissingKeyguard(intent,
|
||||
intentSentUiThreadCallback, associatedView));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startPendingIntentDismissingKeyguard(
|
||||
intent, intentSentUiThreadCallback, associatedView));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startPendingIntentDismissingKeyguard(PendingIntent intent,
|
||||
Runnable intentSentUiThreadCallback,
|
||||
ActivityLaunchAnimator.Controller animationController) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startPendingIntentDismissingKeyguard(intent,
|
||||
intentSentUiThreadCallback, animationController));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startPendingIntentDismissingKeyguard(
|
||||
intent, intentSentUiThreadCallback, animationController));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade,
|
||||
int flags) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startActivity(intent, onlyProvisioned, dismissShade,
|
||||
flags));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startActivity(intent, onlyProvisioned, dismissShade, flags));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean dismissShade) {
|
||||
mActualStarter.ifPresent(starter -> starter.get().startActivity(intent, dismissShade));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startActivity(intent, dismissShade));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean dismissShade,
|
||||
@Nullable ActivityLaunchAnimator.Controller animationController) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startActivity(intent, dismissShade, animationController));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startActivity(intent, dismissShade, animationController));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean onlyProvisioned, boolean dismissShade) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startActivity(intent, onlyProvisioned, dismissShade));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startActivity(intent, onlyProvisioned, dismissShade));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startActivity(Intent intent, boolean dismissShade, Callback callback) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().startActivity(intent, dismissShade, callback));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.startActivity(intent, dismissShade, callback));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postStartActivityDismissingKeyguard(Intent intent, int delay) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().postStartActivityDismissingKeyguard(intent, delay));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.postStartActivityDismissingKeyguard(intent, delay));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postStartActivityDismissingKeyguard(Intent intent, int delay,
|
||||
@Nullable ActivityLaunchAnimator.Controller animationController) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().postStartActivityDismissingKeyguard(intent, delay,
|
||||
animationController));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.postStartActivityDismissingKeyguard(
|
||||
intent, delay, animationController));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postStartActivityDismissingKeyguard(PendingIntent intent) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().postStartActivityDismissingKeyguard(intent));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.postStartActivityDismissingKeyguard(intent));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postStartActivityDismissingKeyguard(PendingIntent intent,
|
||||
ActivityLaunchAnimator.Controller animationController) {
|
||||
mActualStarter.ifPresent(starter ->
|
||||
starter.get().postStartActivityDismissingKeyguard(intent, animationController));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.postStartActivityDismissingKeyguard(
|
||||
intent, animationController));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postQSRunnableDismissingKeyguard(Runnable runnable) {
|
||||
mActualStarter.ifPresent(
|
||||
starter -> starter.get().postQSRunnableDismissingKeyguard(runnable));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.postQSRunnableDismissingKeyguard(runnable));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dismissKeyguardThenExecute(OnDismissAction action, Runnable cancel,
|
||||
boolean afterKeyguardGone) {
|
||||
mActualStarter.ifPresent(starter -> starter.get().dismissKeyguardThenExecute(action, cancel,
|
||||
afterKeyguardGone));
|
||||
mActualStarterOptionalLazy.get().ifPresent(
|
||||
starter -> starter.dismissKeyguardThenExecute(action, cancel, afterKeyguardGone));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -100,7 +100,6 @@ import com.android.systemui.statusbar.phone.LockscreenGestureLogger;
|
||||
import com.android.systemui.statusbar.phone.ManagedProfileController;
|
||||
import com.android.systemui.statusbar.phone.NotificationGroupAlertTransferHelper;
|
||||
import com.android.systemui.statusbar.phone.ShadeController;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.statusbar.phone.StatusBarIconController;
|
||||
import com.android.systemui.statusbar.phone.StatusBarWindowController;
|
||||
import com.android.systemui.statusbar.policy.AccessibilityController;
|
||||
@@ -351,7 +350,6 @@ public class Dependency {
|
||||
@Inject Lazy<IWallpaperManager> mWallpaperManager;
|
||||
@Inject Lazy<CommandQueue> mCommandQueue;
|
||||
@Inject Lazy<Recents> mRecents;
|
||||
@Inject Lazy<StatusBar> mStatusBar;
|
||||
@Inject Lazy<RecordingController> mRecordingController;
|
||||
@Inject Lazy<ProtoTracer> mProtoTracer;
|
||||
@Inject Lazy<MediaOutputDialogFactory> mMediaOutputDialogFactory;
|
||||
@@ -556,7 +554,6 @@ public class Dependency {
|
||||
mProviders.put(IWallpaperManager.class, mWallpaperManager::get);
|
||||
mProviders.put(CommandQueue.class, mCommandQueue::get);
|
||||
mProviders.put(Recents.class, mRecents::get);
|
||||
mProviders.put(StatusBar.class, mStatusBar::get);
|
||||
mProviders.put(ProtoTracer.class, mProtoTracer::get);
|
||||
mProviders.put(DeviceConfigProxy.class, mDeviceConfigProxy::get);
|
||||
mProviders.put(TelephonyListenerManager.class, mTelephonyListenerManager::get);
|
||||
|
||||
@@ -59,6 +59,7 @@ import com.android.systemui.statusbar.phone.StatusBarWindowCallback;
|
||||
import com.android.systemui.util.Assert;
|
||||
|
||||
import java.util.Locale;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@@ -142,7 +143,7 @@ public class SystemActions extends SystemUI {
|
||||
private final Recents mRecents;
|
||||
private Locale mLocale;
|
||||
private final AccessibilityManager mA11yManager;
|
||||
private final Lazy<StatusBar> mStatusBar;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final NotificationShadeWindowController mNotificationShadeController;
|
||||
private final StatusBarWindowCallback mNotificationShadeCallback;
|
||||
private boolean mDismissNotificationShadeActionRegistered;
|
||||
@@ -150,7 +151,7 @@ public class SystemActions extends SystemUI {
|
||||
@Inject
|
||||
public SystemActions(Context context,
|
||||
NotificationShadeWindowController notificationShadeController,
|
||||
Lazy<StatusBar> statusBar,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
Recents recents) {
|
||||
super(context);
|
||||
mRecents = recents;
|
||||
@@ -163,7 +164,7 @@ public class SystemActions extends SystemUI {
|
||||
// NotificationShadeWindowController.registerCallback() only keeps weak references.
|
||||
mNotificationShadeCallback = (keyguardShowing, keyguardOccluded, bouncerShowing, mDozing) ->
|
||||
registerOrUnregisterDismissNotificationShadeAction();
|
||||
mStatusBar = statusBar;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -242,8 +243,9 @@ public class SystemActions extends SystemUI {
|
||||
|
||||
// Saving state in instance variable since this callback is called quite often to avoid
|
||||
// binder calls
|
||||
StatusBar statusBar = mStatusBar.get();
|
||||
if (statusBar.isPanelExpanded() && !statusBar.isKeyguardShowing()) {
|
||||
final Optional<StatusBar> statusBarOptional = mStatusBarOptionalLazy.get();
|
||||
if (statusBarOptional.map(StatusBar::isPanelExpanded).orElse(false)
|
||||
&& !statusBarOptional.get().isKeyguardShowing()) {
|
||||
if (!mDismissNotificationShadeActionRegistered) {
|
||||
mA11yManager.registerSystemAction(
|
||||
createRemoteAction(
|
||||
@@ -372,11 +374,12 @@ public class SystemActions extends SystemUI {
|
||||
}
|
||||
|
||||
private void handleNotifications() {
|
||||
mStatusBar.get().animateExpandNotificationsPanel();
|
||||
mStatusBarOptionalLazy.get().ifPresent(StatusBar::animateExpandNotificationsPanel);
|
||||
}
|
||||
|
||||
private void handleQuickSettings() {
|
||||
mStatusBar.get().animateExpandSettingsPanel(null);
|
||||
mStatusBarOptionalLazy.get().ifPresent(
|
||||
statusBar -> statusBar.animateExpandSettingsPanel(null));
|
||||
}
|
||||
|
||||
private void handlePowerDialog() {
|
||||
@@ -425,7 +428,9 @@ public class SystemActions extends SystemUI {
|
||||
}
|
||||
|
||||
private void handleAccessibilityDismissNotificationShade() {
|
||||
mStatusBar.get().animateCollapsePanels(CommandQueue.FLAG_EXCLUDE_NONE, false /* force */);
|
||||
mStatusBarOptionalLazy.get().ifPresent(
|
||||
statusBar -> statusBar.animateCollapsePanels(
|
||||
CommandQueue.FLAG_EXCLUDE_NONE, false /* force */));
|
||||
}
|
||||
|
||||
private class SystemActionsBroadcastReceiver extends BroadcastReceiver {
|
||||
|
||||
@@ -70,7 +70,7 @@ public final class PhoneStateMonitor {
|
||||
};
|
||||
|
||||
private final Context mContext;
|
||||
private final Optional<Lazy<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final StatusBarStateController mStatusBarStateController;
|
||||
|
||||
private boolean mLauncherShowing;
|
||||
@@ -78,7 +78,7 @@ public final class PhoneStateMonitor {
|
||||
|
||||
@Inject
|
||||
PhoneStateMonitor(Context context, BroadcastDispatcher broadcastDispatcher,
|
||||
Optional<Lazy<StatusBar>> statusBarOptionalLazy, BootCompleteCache bootCompleteCache) {
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy, BootCompleteCache bootCompleteCache) {
|
||||
mContext = context;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mStatusBarStateController = Dependency.get(StatusBarStateController.class);
|
||||
@@ -180,8 +180,7 @@ public final class PhoneStateMonitor {
|
||||
}
|
||||
|
||||
private boolean isBouncerShowing() {
|
||||
return mStatusBarOptionalLazy.map(
|
||||
statusBarLazy -> statusBarLazy.get().isBouncerShowing()).orElse(false);
|
||||
return mStatusBarOptionalLazy.get().map(StatusBar::isBouncerShowing).orElse(false);
|
||||
}
|
||||
|
||||
private boolean isKeyguardLocked() {
|
||||
|
||||
@@ -28,6 +28,7 @@ import com.android.systemui.util.ViewController;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Handles:
|
||||
@@ -42,7 +43,7 @@ import java.io.PrintWriter;
|
||||
abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
|
||||
extends ViewController<T> implements Dumpable {
|
||||
@NonNull final StatusBarStateController mStatusBarStateController;
|
||||
@NonNull final StatusBar mStatusBar;
|
||||
@NonNull final Optional<StatusBar> mStatusBarOptional;
|
||||
@NonNull final DumpManager mDumpManger;
|
||||
|
||||
boolean mNotificationShadeExpanded;
|
||||
@@ -50,11 +51,11 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
|
||||
protected UdfpsAnimationViewController(
|
||||
T view,
|
||||
@NonNull StatusBarStateController statusBarStateController,
|
||||
@NonNull StatusBar statusBar,
|
||||
@NonNull Optional<StatusBar> statusBarOptional,
|
||||
@NonNull DumpManager dumpManager) {
|
||||
super(view);
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mStatusBar = statusBar;
|
||||
mStatusBarOptional = statusBarOptional;
|
||||
mDumpManger = dumpManager;
|
||||
}
|
||||
|
||||
@@ -62,13 +63,17 @@ abstract class UdfpsAnimationViewController<T extends UdfpsAnimationView>
|
||||
|
||||
@Override
|
||||
protected void onViewAttached() {
|
||||
mStatusBar.addExpansionChangedListener(mStatusBarExpansionChangedListener);
|
||||
mStatusBarOptional.ifPresent(
|
||||
statusBar -> statusBar.addExpansionChangedListener(
|
||||
mStatusBarExpansionChangedListener));
|
||||
mDumpManger.registerDumpable(getDumpTag(), this);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onViewDetached() {
|
||||
mStatusBar.removeExpansionChangedListener(mStatusBarExpansionChangedListener);
|
||||
mStatusBarOptional.ifPresent(
|
||||
statusBar -> statusBar.removeExpansionChangedListener(
|
||||
mStatusBarExpansionChangedListener));
|
||||
mDumpManger.unregisterDumpable(getDumpTag());
|
||||
}
|
||||
|
||||
|
||||
@@ -22,6 +22,8 @@ import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Class that coordinates non-HBM animations for biometric prompt.
|
||||
*/
|
||||
@@ -29,9 +31,9 @@ class UdfpsBpViewController extends UdfpsAnimationViewController<UdfpsBpView> {
|
||||
protected UdfpsBpViewController(
|
||||
@NonNull UdfpsBpView view,
|
||||
@NonNull StatusBarStateController statusBarStateController,
|
||||
@NonNull StatusBar statusBar,
|
||||
@NonNull Optional<StatusBar> statusBarOptional,
|
||||
@NonNull DumpManager dumpManager) {
|
||||
super(view, statusBarStateController, statusBar, dumpManager);
|
||||
super(view, statusBarStateController, statusBarOptional, dumpManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -106,7 +106,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
@NonNull private final LayoutInflater mInflater;
|
||||
private final WindowManager mWindowManager;
|
||||
private final DelayableExecutor mFgExecutor;
|
||||
@NonNull private final StatusBar mStatusBar;
|
||||
@NonNull private final Optional<StatusBar> mStatusBarOptional;
|
||||
@NonNull private final StatusBarStateController mStatusBarStateController;
|
||||
@NonNull private final KeyguardStateController mKeyguardStateController;
|
||||
@NonNull private final StatusBarKeyguardViewManager mKeyguardViewManager;
|
||||
@@ -496,7 +496,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
@NonNull WindowManager windowManager,
|
||||
@NonNull StatusBarStateController statusBarStateController,
|
||||
@Main DelayableExecutor fgExecutor,
|
||||
@NonNull StatusBar statusBar,
|
||||
@NonNull Optional<StatusBar> statusBarOptional,
|
||||
@NonNull StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
||||
@NonNull DumpManager dumpManager,
|
||||
@NonNull KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||
@@ -521,7 +521,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
mFingerprintManager = checkNotNull(fingerprintManager);
|
||||
mWindowManager = windowManager;
|
||||
mFgExecutor = fgExecutor;
|
||||
mStatusBar = statusBar;
|
||||
mStatusBarOptional = statusBarOptional;
|
||||
mStatusBarStateController = statusBarStateController;
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
mKeyguardViewManager = statusBarKeyguardViewManager;
|
||||
@@ -739,7 +739,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
enrollView,
|
||||
mServerRequest.mEnrollHelper,
|
||||
mStatusBarStateController,
|
||||
mStatusBar,
|
||||
mStatusBarOptional,
|
||||
mDumpManager
|
||||
);
|
||||
case IUdfpsOverlayController.REASON_AUTH_FPM_KEYGUARD:
|
||||
@@ -749,7 +749,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
return new UdfpsKeyguardViewController(
|
||||
keyguardView,
|
||||
mStatusBarStateController,
|
||||
mStatusBar,
|
||||
mStatusBarOptional,
|
||||
mKeyguardViewManager,
|
||||
mKeyguardUpdateMonitor,
|
||||
mFgExecutor,
|
||||
@@ -765,7 +765,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
return new UdfpsBpViewController(
|
||||
bpView,
|
||||
mStatusBarStateController,
|
||||
mStatusBar,
|
||||
mStatusBarOptional,
|
||||
mDumpManager
|
||||
);
|
||||
case IUdfpsOverlayController.REASON_AUTH_FPM_OTHER:
|
||||
@@ -775,7 +775,7 @@ public class UdfpsController implements DozeReceiver {
|
||||
return new UdfpsFpmOtherViewController(
|
||||
authOtherView,
|
||||
mStatusBarStateController,
|
||||
mStatusBar,
|
||||
mStatusBarOptional,
|
||||
mDumpManager
|
||||
);
|
||||
default:
|
||||
|
||||
@@ -24,6 +24,8 @@ import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Class that coordinates non-HBM animations during enrollment.
|
||||
*/
|
||||
@@ -48,9 +50,9 @@ public class UdfpsEnrollViewController extends UdfpsAnimationViewController<Udfp
|
||||
@NonNull UdfpsEnrollView view,
|
||||
@NonNull UdfpsEnrollHelper enrollHelper,
|
||||
@NonNull StatusBarStateController statusBarStateController,
|
||||
@NonNull StatusBar statusBar,
|
||||
@NonNull Optional<StatusBar> statusBarOptional,
|
||||
@NonNull DumpManager dumpManager) {
|
||||
super(view, statusBarStateController, statusBar, dumpManager);
|
||||
super(view, statusBarStateController, statusBarOptional, dumpManager);
|
||||
mEnrollProgressBarRadius = getContext().getResources()
|
||||
.getInteger(R.integer.config_udfpsEnrollProgressBar);
|
||||
mEnrollHelper = enrollHelper;
|
||||
|
||||
@@ -22,6 +22,8 @@ import com.android.systemui.dump.DumpManager;
|
||||
import com.android.systemui.plugins.statusbar.StatusBarStateController;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Class that coordinates non-HBM animations for non keyguard, enrollment or biometric prompt
|
||||
* states.
|
||||
@@ -32,9 +34,9 @@ class UdfpsFpmOtherViewController extends UdfpsAnimationViewController<UdfpsFpmO
|
||||
protected UdfpsFpmOtherViewController(
|
||||
@NonNull UdfpsFpmOtherView view,
|
||||
@NonNull StatusBarStateController statusBarStateController,
|
||||
@NonNull StatusBar statusBar,
|
||||
@NonNull Optional<StatusBar> statusBarOptional,
|
||||
@NonNull DumpManager dumpManager) {
|
||||
super(view, statusBarStateController, statusBar, dumpManager);
|
||||
super(view, statusBarStateController, statusBarOptional, dumpManager);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -40,6 +40,7 @@ import com.android.systemui.util.concurrency.DelayableExecutor;
|
||||
|
||||
import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Optional;
|
||||
|
||||
|
||||
/**
|
||||
@@ -80,7 +81,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
|
||||
protected UdfpsKeyguardViewController(
|
||||
@NonNull UdfpsKeyguardView view,
|
||||
@NonNull StatusBarStateController statusBarStateController,
|
||||
@NonNull StatusBar statusBar,
|
||||
@NonNull Optional<StatusBar> statusBarOptional,
|
||||
@NonNull StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
||||
@NonNull KeyguardUpdateMonitor keyguardUpdateMonitor,
|
||||
@NonNull DelayableExecutor mainDelayableExecutor,
|
||||
@@ -88,7 +89,7 @@ public class UdfpsKeyguardViewController extends UdfpsAnimationViewController<Ud
|
||||
@NonNull KeyguardViewMediator keyguardViewMediator,
|
||||
@NonNull LockscreenShadeTransitionController transitionController,
|
||||
@NonNull UdfpsController udfpsController) {
|
||||
super(view, statusBarStateController, statusBar, dumpManager);
|
||||
super(view, statusBarStateController, statusBarOptional, dumpManager);
|
||||
mKeyguardViewManager = statusBarKeyguardViewManager;
|
||||
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
|
||||
mExecutor = mainDelayableExecutor;
|
||||
|
||||
@@ -227,7 +227,7 @@ public class DependencyProvider {
|
||||
Optional<Pip> pipOptional,
|
||||
Optional<LegacySplitScreen> splitScreenOptional,
|
||||
Optional<Recents> recentsOptional,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
ShadeController shadeController,
|
||||
NotificationRemoteInputManager notificationRemoteInputManager,
|
||||
NotificationShadeDepthController notificationShadeDepthController,
|
||||
@@ -256,7 +256,7 @@ public class DependencyProvider {
|
||||
pipOptional,
|
||||
splitScreenOptional,
|
||||
recentsOptional,
|
||||
statusBarLazy,
|
||||
statusBarOptionalLazy,
|
||||
shadeController,
|
||||
notificationRemoteInputManager,
|
||||
notificationShadeDepthController,
|
||||
|
||||
@@ -81,6 +81,7 @@ import com.android.systemui.util.leak.RotationUtils;
|
||||
import com.android.systemui.util.settings.GlobalSettings;
|
||||
import com.android.systemui.util.settings.SecureSettings;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -172,7 +173,7 @@ public class GlobalActionsDialog extends GlobalActionsDialogLite
|
||||
SysUiState sysUiState,
|
||||
@Main Handler handler,
|
||||
PackageManager packageManager,
|
||||
StatusBar statusBar) {
|
||||
Optional<StatusBar> statusBarOptional) {
|
||||
|
||||
super(context,
|
||||
windowManagerFuncs,
|
||||
@@ -203,7 +204,7 @@ public class GlobalActionsDialog extends GlobalActionsDialogLite
|
||||
sysUiState,
|
||||
handler,
|
||||
packageManager,
|
||||
statusBar);
|
||||
statusBarOptional);
|
||||
|
||||
mLockPatternUtils = lockPatternUtils;
|
||||
mKeyguardStateController = keyguardStateController;
|
||||
@@ -333,11 +334,11 @@ public class GlobalActionsDialog extends GlobalActionsDialogLite
|
||||
NotificationShadeWindowController notificationShadeWindowController,
|
||||
SysUiState sysuiState, Runnable onRotateCallback, boolean keyguardShowing,
|
||||
MyPowerOptionsAdapter powerAdapter, UiEventLogger uiEventLogger,
|
||||
StatusBar statusBar) {
|
||||
Optional<StatusBar> statusBarOptional) {
|
||||
super(context, com.android.systemui.R.style.Theme_SystemUI_Dialog_GlobalActions,
|
||||
adapter, overflowAdapter, sysuiColorExtractor, statusBarService,
|
||||
notificationShadeWindowController, sysuiState, onRotateCallback,
|
||||
keyguardShowing, powerAdapter, uiEventLogger, statusBar);
|
||||
keyguardShowing, powerAdapter, uiEventLogger, statusBarOptional);
|
||||
mWalletFactory = walletFactory;
|
||||
|
||||
// Update window attributes
|
||||
|
||||
@@ -131,6 +131,7 @@ import com.android.systemui.util.settings.SecureSettings;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -229,7 +230,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
private int mDialogPressDelay = DIALOG_PRESS_DELAY; // ms
|
||||
protected Handler mMainHandler;
|
||||
private int mSmallestScreenWidthDp;
|
||||
private final StatusBar mStatusBar;
|
||||
private final Optional<StatusBar> mStatusBarOptional;
|
||||
|
||||
@VisibleForTesting
|
||||
public enum GlobalActionsEvent implements UiEventLogger.UiEventEnum {
|
||||
@@ -336,7 +337,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
SysUiState sysUiState,
|
||||
@Main Handler handler,
|
||||
PackageManager packageManager,
|
||||
StatusBar statusBar) {
|
||||
Optional<StatusBar> statusBarOptional) {
|
||||
mContext = context;
|
||||
mWindowManagerFuncs = windowManagerFuncs;
|
||||
mAudioManager = audioManager;
|
||||
@@ -365,7 +366,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
mSysUiState = sysUiState;
|
||||
mMainHandler = handler;
|
||||
mSmallestScreenWidthDp = resources.getConfiguration().smallestScreenWidthDp;
|
||||
mStatusBar = statusBar;
|
||||
mStatusBarOptional = statusBarOptional;
|
||||
|
||||
// receive broadcasts
|
||||
IntentFilter filter = new IntentFilter();
|
||||
@@ -415,8 +416,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
return mUiEventLogger;
|
||||
}
|
||||
|
||||
protected StatusBar getStatusBar() {
|
||||
return mStatusBar;
|
||||
protected Optional<StatusBar> getStatusBar() {
|
||||
return mStatusBarOptional;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -650,7 +651,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
mAdapter, mOverflowAdapter, mSysuiColorExtractor,
|
||||
mStatusBarService, mNotificationShadeWindowController,
|
||||
mSysUiState, this::onRotate, mKeyguardShowing, mPowerAdapter, mUiEventLogger,
|
||||
mStatusBar);
|
||||
mStatusBarOptional);
|
||||
|
||||
dialog.setOnDismissListener(this);
|
||||
dialog.setOnShowListener(this);
|
||||
@@ -852,7 +853,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
mUiEventLogger.log(GlobalActionsEvent.GA_EMERGENCY_DIALER_PRESS);
|
||||
if (mTelecomManager != null) {
|
||||
// Close shade so user sees the activity
|
||||
mStatusBar.collapseShade();
|
||||
mStatusBarOptional.ifPresent(StatusBar::collapseShade);
|
||||
Intent intent = mTelecomManager.createLaunchEmergencyDialerIntent(
|
||||
null /* number */);
|
||||
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
@@ -984,7 +985,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
mIActivityManager.requestInteractiveBugReport();
|
||||
}
|
||||
// Close shade so user sees the activity
|
||||
mStatusBar.collapseShade();
|
||||
mStatusBarOptional.ifPresent(StatusBar::collapseShade);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
}
|
||||
@@ -1004,7 +1005,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
mUiEventLogger.log(GlobalActionsEvent.GA_BUGREPORT_LONG_PRESS);
|
||||
mIActivityManager.requestFullBugReport();
|
||||
// Close shade so user sees the activity
|
||||
mStatusBar.collapseShade();
|
||||
mStatusBarOptional.ifPresent(StatusBar::collapseShade);
|
||||
} catch (RemoteException e) {
|
||||
}
|
||||
return false;
|
||||
@@ -2122,7 +2123,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
protected final Runnable mOnRotateCallback;
|
||||
private UiEventLogger mUiEventLogger;
|
||||
private GestureDetector mGestureDetector;
|
||||
private StatusBar mStatusBar;
|
||||
private Optional<StatusBar> mStatusBarOptional;
|
||||
|
||||
protected ViewGroup mContainer;
|
||||
|
||||
@@ -2147,7 +2148,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX,
|
||||
float distanceY) {
|
||||
if (distanceY < 0 && distanceY > distanceX
|
||||
&& e1.getY() <= mStatusBar.getStatusBarHeight()) {
|
||||
&& e1.getY() <= mStatusBarOptional.map(
|
||||
StatusBar::getStatusBarHeight).orElse(0)) {
|
||||
// Downwards scroll from top
|
||||
openShadeAndDismiss();
|
||||
return true;
|
||||
@@ -2159,7 +2161,8 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
|
||||
float velocityY) {
|
||||
if (velocityY > 0 && Math.abs(velocityY) > Math.abs(velocityX)
|
||||
&& e1.getY() <= mStatusBar.getStatusBarHeight()) {
|
||||
&& e1.getY() <= mStatusBarOptional.map(
|
||||
StatusBar::getStatusBarHeight).orElse(0)) {
|
||||
// Downwards fling from top
|
||||
openShadeAndDismiss();
|
||||
return true;
|
||||
@@ -2174,7 +2177,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
NotificationShadeWindowController notificationShadeWindowController,
|
||||
SysUiState sysuiState, Runnable onRotateCallback, boolean keyguardShowing,
|
||||
MyPowerOptionsAdapter powerAdapter, UiEventLogger uiEventLogger,
|
||||
StatusBar statusBar) {
|
||||
Optional<StatusBar> statusBarOptional) {
|
||||
super(context, themeRes);
|
||||
mContext = context;
|
||||
mAdapter = adapter;
|
||||
@@ -2187,7 +2190,7 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
mOnRotateCallback = onRotateCallback;
|
||||
mKeyguardShowing = keyguardShowing;
|
||||
mUiEventLogger = uiEventLogger;
|
||||
mStatusBar = statusBar;
|
||||
mStatusBarOptional = statusBarOptional;
|
||||
|
||||
mGestureDetector = new GestureDetector(mContext, mGestureListener);
|
||||
|
||||
@@ -2218,12 +2221,14 @@ public class GlobalActionsDialogLite implements DialogInterface.OnDismissListene
|
||||
|
||||
private void openShadeAndDismiss() {
|
||||
mUiEventLogger.log(GlobalActionsEvent.GA_CLOSE_TAP_OUTSIDE);
|
||||
if (mStatusBar.isKeyguardShowing()) {
|
||||
if (mStatusBarOptional.map(StatusBar::isKeyguardShowing).orElse(false)) {
|
||||
// match existing lockscreen behavior to open QS when swiping from status bar
|
||||
mStatusBar.animateExpandSettingsPanel(null);
|
||||
mStatusBarOptional.ifPresent(
|
||||
statusBar -> statusBar.animateExpandSettingsPanel(null));
|
||||
} else {
|
||||
// otherwise, swiping down should expand notification shade
|
||||
mStatusBar.animateExpandNotificationsPanel();
|
||||
mStatusBarOptional.ifPresent(
|
||||
statusBar -> statusBar.animateExpandNotificationsPanel());
|
||||
}
|
||||
dismiss();
|
||||
}
|
||||
|
||||
@@ -187,7 +187,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
private final MetricsLogger mMetricsLogger;
|
||||
private final Lazy<AssistManager> mAssistManagerLazy;
|
||||
private final SysUiState mSysUiFlagsContainer;
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final ShadeController mShadeController;
|
||||
private final NotificationRemoteInputManager mNotificationRemoteInputManager;
|
||||
private final OverviewProxyService mOverviewProxyService;
|
||||
@@ -485,7 +485,8 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
CommandQueue commandQueue,
|
||||
Optional<Pip> pipOptional,
|
||||
Optional<LegacySplitScreen> splitScreenOptional,
|
||||
Optional<Recents> recentsOptional, Lazy<StatusBar> statusBarLazy,
|
||||
Optional<Recents> recentsOptional,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
ShadeController shadeController,
|
||||
NotificationRemoteInputManager notificationRemoteInputManager,
|
||||
NotificationShadeDepthController notificationShadeDepthController,
|
||||
@@ -503,7 +504,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
mMetricsLogger = metricsLogger;
|
||||
mAssistManagerLazy = assistManagerLazy;
|
||||
mSysUiFlagsContainer = sysUiFlagsContainer;
|
||||
mStatusBarLazy = statusBarLazy;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mShadeController = shadeController;
|
||||
mNotificationRemoteInputManager = notificationRemoteInputManager;
|
||||
mOverviewProxyService = overviewProxyService;
|
||||
@@ -610,7 +611,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
@Override
|
||||
public void onViewAttachedToWindow(View v) {
|
||||
final Display display = v.getDisplay();
|
||||
mNavigationBarView.setComponents(mStatusBarLazy.get().getPanelController());
|
||||
mNavigationBarView.setComponents(mStatusBarOptionalLazy.get().get().getPanelController());
|
||||
mNavigationBarView.setDisabledFlags(mDisabledFlags1);
|
||||
mNavigationBarView.setOnVerticalChangedListener(this::onVerticalChanged);
|
||||
mNavigationBarView.setOnTouchListener(this::onNavigationTouch);
|
||||
@@ -1161,13 +1162,14 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
// If an incoming call is ringing, HOME is totally disabled.
|
||||
// (The user is already on the InCallUI at this point,
|
||||
// and their ONLY options are to answer or reject the call.)
|
||||
final Optional<StatusBar> statusBarOptional = mStatusBarOptionalLazy.get();
|
||||
switch (event.getAction()) {
|
||||
case MotionEvent.ACTION_DOWN:
|
||||
mHomeBlockedThisTouch = false;
|
||||
TelecomManager telecomManager =
|
||||
mContext.getSystemService(TelecomManager.class);
|
||||
if (telecomManager != null && telecomManager.isRinging()) {
|
||||
if (mStatusBarLazy.get().isKeyguardShowing()) {
|
||||
if (statusBarOptional.map(StatusBar::isKeyguardShowing).orElse(false)) {
|
||||
Log.i(TAG, "Ignoring HOME; there's a ringing incoming call. " +
|
||||
"No heads up");
|
||||
mHomeBlockedThisTouch = true;
|
||||
@@ -1183,14 +1185,15 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
case MotionEvent.ACTION_UP:
|
||||
case MotionEvent.ACTION_CANCEL:
|
||||
mHandler.removeCallbacks(mOnVariableDurationHomeLongClick);
|
||||
mStatusBarLazy.get().awakenDreams();
|
||||
statusBarOptional.ifPresent(StatusBar::awakenDreams);
|
||||
break;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
private void onVerticalChanged(boolean isVertical) {
|
||||
mStatusBarLazy.get().setQsScrimEnabled(!isVertical);
|
||||
mStatusBarOptionalLazy.get().ifPresent(
|
||||
statusBar -> statusBar.setQsScrimEnabled(!isVertical));
|
||||
}
|
||||
|
||||
private boolean onNavigationTouch(View v, MotionEvent event) {
|
||||
@@ -1216,7 +1219,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
AssistManager.INVOCATION_TYPE_KEY,
|
||||
AssistManager.INVOCATION_TYPE_HOME_BUTTON_LONG_PRESS);
|
||||
mAssistManagerLazy.get().startAssist(args);
|
||||
mStatusBarLazy.get().awakenDreams();
|
||||
mStatusBarOptionalLazy.get().ifPresent(StatusBar::awakenDreams);
|
||||
mNavigationBarView.abortCurrentGesture();
|
||||
return true;
|
||||
}
|
||||
@@ -1242,7 +1245,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
LatencyTracker.getInstance(mContext).onActionStart(
|
||||
LatencyTracker.ACTION_TOGGLE_RECENTS);
|
||||
}
|
||||
mStatusBarLazy.get().awakenDreams();
|
||||
mStatusBarOptionalLazy.get().ifPresent(StatusBar::awakenDreams);
|
||||
mCommandQueue.toggleRecentApps();
|
||||
}
|
||||
|
||||
@@ -1347,8 +1350,11 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
return false;
|
||||
}
|
||||
|
||||
return mStatusBarLazy.get().toggleSplitScreenMode(MetricsEvent.ACTION_WINDOW_DOCK_LONGPRESS,
|
||||
MetricsEvent.ACTION_WINDOW_UNDOCK_LONGPRESS);
|
||||
return mStatusBarOptionalLazy.get().map(
|
||||
statusBar -> statusBar.toggleSplitScreenMode(
|
||||
MetricsEvent.ACTION_WINDOW_DOCK_LONGPRESS,
|
||||
MetricsEvent.ACTION_WINDOW_UNDOCK_LONGPRESS))
|
||||
.orElse(false);
|
||||
}
|
||||
|
||||
private void onAccessibilityClick(View v) {
|
||||
@@ -1474,7 +1480,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
private void checkBarModes() {
|
||||
// We only have status bar on default display now.
|
||||
if (mIsOnDefaultDisplay) {
|
||||
mStatusBarLazy.get().checkBarModes();
|
||||
mStatusBarOptionalLazy.get().ifPresent(StatusBar::checkBarModes);
|
||||
} else {
|
||||
checkNavBarModes();
|
||||
}
|
||||
@@ -1492,7 +1498,8 @@ public class NavigationBar implements View.OnAttachStateChangeListener,
|
||||
* Checks current navigation bar mode and make transitions.
|
||||
*/
|
||||
public void checkNavBarModes() {
|
||||
final boolean anim = mStatusBarLazy.get().isDeviceInteractive()
|
||||
final boolean anim =
|
||||
mStatusBarOptionalLazy.get().map(StatusBar::isDeviceInteractive).orElse(false)
|
||||
&& mNavigationBarWindowState != WINDOW_STATE_HIDDEN;
|
||||
mNavigationBarView.getBarTransitions().transitionTo(mNavigationBarMode, anim);
|
||||
}
|
||||
|
||||
@@ -104,7 +104,7 @@ public class NavigationBarController implements Callbacks,
|
||||
private final Optional<Pip> mPipOptional;
|
||||
private final Optional<LegacySplitScreen> mSplitScreenOptional;
|
||||
private final Optional<Recents> mRecentsOptional;
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final ShadeController mShadeController;
|
||||
private final NotificationRemoteInputManager mNotificationRemoteInputManager;
|
||||
private final SystemActions mSystemActions;
|
||||
@@ -146,7 +146,7 @@ public class NavigationBarController implements Callbacks,
|
||||
Optional<Pip> pipOptional,
|
||||
Optional<LegacySplitScreen> splitScreenOptional,
|
||||
Optional<Recents> recentsOptional,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
ShadeController shadeController,
|
||||
NotificationRemoteInputManager notificationRemoteInputManager,
|
||||
NotificationShadeDepthController notificationShadeDepthController,
|
||||
@@ -175,7 +175,7 @@ public class NavigationBarController implements Callbacks,
|
||||
mPipOptional = pipOptional;
|
||||
mSplitScreenOptional = splitScreenOptional;
|
||||
mRecentsOptional = recentsOptional;
|
||||
mStatusBarLazy = statusBarLazy;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mShadeController = shadeController;
|
||||
mNotificationRemoteInputManager = notificationRemoteInputManager;
|
||||
mNotificationShadeDepthController = notificationShadeDepthController;
|
||||
@@ -369,7 +369,7 @@ public class NavigationBarController implements Callbacks,
|
||||
mPipOptional,
|
||||
mSplitScreenOptional,
|
||||
mRecentsOptional,
|
||||
mStatusBarLazy,
|
||||
mStatusBarOptionalLazy,
|
||||
mShadeController,
|
||||
mNotificationRemoteInputManager,
|
||||
mNotificationShadeDepthController,
|
||||
|
||||
@@ -54,6 +54,7 @@ import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.time.Duration;
|
||||
import java.util.Arrays;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Future;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@@ -108,15 +109,15 @@ public class PowerUI extends SystemUI implements CommandQueue.Callbacks {
|
||||
private IThermalEventListener mUsbThermalEventListener;
|
||||
private final BroadcastDispatcher mBroadcastDispatcher;
|
||||
private final CommandQueue mCommandQueue;
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
|
||||
@Inject
|
||||
public PowerUI(Context context, BroadcastDispatcher broadcastDispatcher,
|
||||
CommandQueue commandQueue, Lazy<StatusBar> statusBarLazy) {
|
||||
CommandQueue commandQueue, Lazy<Optional<StatusBar>> statusBarOptionalLazy) {
|
||||
super(context);
|
||||
mBroadcastDispatcher = broadcastDispatcher;
|
||||
mCommandQueue = commandQueue;
|
||||
mStatusBarLazy = statusBarLazy;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
}
|
||||
|
||||
public void start() {
|
||||
@@ -710,7 +711,8 @@ public class PowerUI extends SystemUI implements CommandQueue.Callbacks {
|
||||
int status = temp.getStatus();
|
||||
|
||||
if (status >= Temperature.THROTTLING_EMERGENCY) {
|
||||
if (!mStatusBarLazy.get().isDeviceInVrMode()) {
|
||||
final Optional<StatusBar> statusBarOptional = mStatusBarOptionalLazy.get();
|
||||
if (!statusBarOptional.map(StatusBar::isDeviceInVrMode).orElse(false)) {
|
||||
mWarnings.showHighTemperatureWarning();
|
||||
Slog.d(TAG, "SkinThermalEventListener: notifyThrottling was called "
|
||||
+ ", current skin status = " + status
|
||||
|
||||
@@ -42,7 +42,7 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
|
||||
|
||||
private final static String TAG = "OverviewProxyRecentsImpl";
|
||||
@Nullable
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
|
||||
private Context mContext;
|
||||
private Handler mHandler;
|
||||
@@ -51,8 +51,8 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
|
||||
|
||||
@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
|
||||
@Inject
|
||||
public OverviewProxyRecentsImpl(Optional<Lazy<StatusBar>> statusBarLazy) {
|
||||
mStatusBarLazy = statusBarLazy.orElse(null);
|
||||
public OverviewProxyRecentsImpl(Lazy<Optional<StatusBar>> statusBarOptionalLazy) {
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -109,8 +109,9 @@ public class OverviewProxyRecentsImpl implements RecentsImplementation {
|
||||
}
|
||||
};
|
||||
// Preload only if device for current user is unlocked
|
||||
if (mStatusBarLazy != null && mStatusBarLazy.get().isKeyguardShowing()) {
|
||||
mStatusBarLazy.get().executeRunnableDismissingKeyguard(() -> {
|
||||
final Optional<StatusBar> statusBarOptional = mStatusBarOptionalLazy.get();
|
||||
if (statusBarOptional.map(StatusBar::isKeyguardShowing).orElse(false)) {
|
||||
statusBarOptional.get().executeRunnableDismissingKeyguard(() -> {
|
||||
// Flush trustmanager before checking device locked per user
|
||||
mTrustManager.reportKeyguardShowingChanged();
|
||||
mHandler.post(toggleRecents);
|
||||
|
||||
@@ -136,7 +136,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
|
||||
private final Context mContext;
|
||||
private final Optional<Pip> mPipOptional;
|
||||
private final Optional<Lazy<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final Optional<LegacySplitScreen> mLegacySplitScreenOptional;
|
||||
private final Optional<SplitScreen> mSplitScreenOptional;
|
||||
private SysUiState mSysUiState;
|
||||
@@ -174,8 +174,8 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
@Override
|
||||
public void startScreenPinning(int taskId) {
|
||||
verifyCallerAndClearCallingIdentityPostMain("startScreenPinning", () ->
|
||||
mStatusBarOptionalLazy.ifPresent(
|
||||
statusBarLazy -> statusBarLazy.get().showScreenPinningRequest(taskId,
|
||||
mStatusBarOptionalLazy.get().ifPresent(
|
||||
statusBar -> statusBar.showScreenPinningRequest(taskId,
|
||||
false /* allowCancel */)));
|
||||
}
|
||||
|
||||
@@ -195,8 +195,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
public void onStatusBarMotionEvent(MotionEvent event) {
|
||||
verifyCallerAndClearCallingIdentity("onStatusBarMotionEvent", () -> {
|
||||
// TODO move this logic to message queue
|
||||
mStatusBarOptionalLazy.ifPresent(statusBarLazy -> {
|
||||
StatusBar statusBar = statusBarLazy.get();
|
||||
mStatusBarOptionalLazy.get().ifPresent(statusBar -> {
|
||||
if (event.getActionMasked() == ACTION_DOWN) {
|
||||
statusBar.getPanelController().startExpandLatencyTracking();
|
||||
}
|
||||
@@ -527,7 +526,7 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
Optional<Pip> pipOptional,
|
||||
Optional<LegacySplitScreen> legacySplitScreenOptional,
|
||||
Optional<SplitScreen> splitScreenOptional,
|
||||
Optional<Lazy<StatusBar>> statusBarOptionalLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
Optional<OneHanded> oneHandedOptional,
|
||||
BroadcastDispatcher broadcastDispatcher,
|
||||
ShellTransitions shellTransitions,
|
||||
@@ -681,10 +680,9 @@ public class OverviewProxyService extends CurrentUserTracker implements
|
||||
public void cleanupAfterDeath() {
|
||||
if (mInputFocusTransferStarted) {
|
||||
mHandler.post(() -> {
|
||||
mStatusBarOptionalLazy.ifPresent(statusBarLazy -> {
|
||||
mStatusBarOptionalLazy.get().ifPresent(statusBar -> {
|
||||
mInputFocusTransferStarted = false;
|
||||
statusBarLazy.get().onInputFocusTransfer(false, true /* cancel */,
|
||||
0 /* velocity */);
|
||||
statusBar.onInputFocusTransfer(false, true /* cancel */, 0 /* velocity */);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
@@ -51,10 +51,10 @@ import android.widget.TextView;
|
||||
import com.android.systemui.Dependency;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.broadcast.BroadcastDispatcher;
|
||||
import com.android.systemui.shared.system.QuickStepContract;
|
||||
import com.android.systemui.shared.system.WindowManagerWrapper;
|
||||
import com.android.systemui.navigationbar.NavigationBarView;
|
||||
import com.android.systemui.navigationbar.NavigationModeController;
|
||||
import com.android.systemui.shared.system.QuickStepContract;
|
||||
import com.android.systemui.shared.system.WindowManagerWrapper;
|
||||
import com.android.systemui.statusbar.phone.StatusBar;
|
||||
import com.android.systemui.util.leak.RotationUtils;
|
||||
|
||||
@@ -69,7 +69,7 @@ public class ScreenPinningRequest implements View.OnClickListener,
|
||||
NavigationModeController.ModeChangedListener {
|
||||
|
||||
private final Context mContext;
|
||||
private final Optional<Lazy<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
|
||||
private final AccessibilityManager mAccessibilityService;
|
||||
private final WindowManager mWindowManager;
|
||||
@@ -82,7 +82,7 @@ public class ScreenPinningRequest implements View.OnClickListener,
|
||||
private int taskId;
|
||||
|
||||
@Inject
|
||||
public ScreenPinningRequest(Context context, Optional<Lazy<StatusBar>> statusBarOptionalLazy) {
|
||||
public ScreenPinningRequest(Context context, Lazy<Optional<StatusBar>> statusBarOptionalLazy) {
|
||||
mContext = context;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mAccessibilityService = (AccessibilityManager)
|
||||
@@ -266,8 +266,9 @@ public class ScreenPinningRequest implements View.OnClickListener,
|
||||
.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
NavigationBarView navigationBarView = mStatusBarOptionalLazy.map(
|
||||
statusBarLazy -> statusBarLazy.get().getNavigationBarView()).orElse(null);
|
||||
final Optional<StatusBar> statusBarOptional = mStatusBarOptionalLazy.get();
|
||||
NavigationBarView navigationBarView =
|
||||
statusBarOptional.map(StatusBar::getNavigationBarView).orElse(null);
|
||||
final boolean recentsVisible = navigationBarView != null
|
||||
&& navigationBarView.isRecentsButtonVisible();
|
||||
boolean touchExplorationEnabled = mAccessibilityService.isTouchExplorationEnabled();
|
||||
|
||||
@@ -84,6 +84,7 @@ import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
import dagger.Lazy;
|
||||
@@ -132,7 +133,7 @@ public class NotificationMediaManager implements Dumpable {
|
||||
private final Context mContext;
|
||||
private final MediaSessionManager mMediaSessionManager;
|
||||
private final ArrayList<MediaListener> mMediaListeners;
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final MediaArtworkProcessor mMediaArtworkProcessor;
|
||||
private final Set<AsyncTask<?, ?, ?>> mProcessArtworkTasks = new ArraySet<>();
|
||||
|
||||
@@ -177,7 +178,7 @@ public class NotificationMediaManager implements Dumpable {
|
||||
*/
|
||||
public NotificationMediaManager(
|
||||
Context context,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
Lazy<NotificationShadeWindowController> notificationShadeWindowController,
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
MediaArtworkProcessor mediaArtworkProcessor,
|
||||
@@ -197,7 +198,7 @@ public class NotificationMediaManager implements Dumpable {
|
||||
mMediaSessionManager = (MediaSessionManager) mContext.getSystemService(
|
||||
Context.MEDIA_SESSION_SERVICE);
|
||||
// TODO: use KeyguardStateController#isOccluded to remove this dependency
|
||||
mStatusBarLazy = statusBarLazy;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mNotificationShadeWindowController = notificationShadeWindowController;
|
||||
mEntryManager = notificationEntryManager;
|
||||
mMainExecutor = mainExecutor;
|
||||
@@ -694,7 +695,8 @@ public class NotificationMediaManager implements Dumpable {
|
||||
|
||||
NotificationShadeWindowController windowController =
|
||||
mNotificationShadeWindowController.get();
|
||||
boolean hideBecauseOccluded = mStatusBarLazy.get().isOccluded();
|
||||
boolean hideBecauseOccluded =
|
||||
mStatusBarOptionalLazy.get().map(StatusBar::isOccluded).orElse(false);
|
||||
|
||||
final boolean hasArtwork = artworkDrawable != null;
|
||||
mColorExtractor.setHasMediaArtwork(hasMediaArtwork);
|
||||
|
||||
@@ -45,6 +45,7 @@ import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.view.ViewParent;
|
||||
import android.widget.RemoteViews;
|
||||
import android.widget.RemoteViews.InteractionHandler;
|
||||
import android.widget.TextView;
|
||||
|
||||
import com.android.internal.annotations.VisibleForTesting;
|
||||
@@ -70,6 +71,7 @@ import java.io.PrintWriter;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@@ -118,7 +120,7 @@ public class NotificationRemoteInputManager implements Dumpable {
|
||||
private final Handler mMainHandler;
|
||||
private final ActionClickLogger mLogger;
|
||||
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
|
||||
protected final Context mContext;
|
||||
private final UserManager mUserManager;
|
||||
@@ -134,14 +136,14 @@ public class NotificationRemoteInputManager implements Dumpable {
|
||||
protected Callback mCallback;
|
||||
protected final ArrayList<NotificationLifetimeExtender> mLifetimeExtenders = new ArrayList<>();
|
||||
|
||||
private final RemoteViews.InteractionHandler
|
||||
mInteractionHandler = new RemoteViews.InteractionHandler() {
|
||||
private final InteractionHandler mInteractionHandler = new InteractionHandler() {
|
||||
|
||||
@Override
|
||||
public boolean onInteraction(
|
||||
View view, PendingIntent pendingIntent, RemoteViews.RemoteResponse response) {
|
||||
mStatusBarLazy.get().wakeUpIfDozing(SystemClock.uptimeMillis(), view,
|
||||
"NOTIFICATION_CLICK");
|
||||
mStatusBarOptionalLazy.get().ifPresent(
|
||||
statusBar -> statusBar.wakeUpIfDozing(
|
||||
SystemClock.uptimeMillis(), view, "NOTIFICATION_CLICK"));
|
||||
|
||||
final NotificationEntry entry = getNotificationForParent(view.getParent());
|
||||
mLogger.logInitialClick(entry, pendingIntent);
|
||||
@@ -280,7 +282,7 @@ public class NotificationRemoteInputManager implements Dumpable {
|
||||
NotificationLockscreenUserManager lockscreenUserManager,
|
||||
SmartReplyController smartReplyController,
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
StatusBarStateController statusBarStateController,
|
||||
@Main Handler mainHandler,
|
||||
RemoteInputUriController remoteInputUriController,
|
||||
@@ -290,7 +292,7 @@ public class NotificationRemoteInputManager implements Dumpable {
|
||||
mLockscreenUserManager = lockscreenUserManager;
|
||||
mSmartReplyController = smartReplyController;
|
||||
mEntryManager = notificationEntryManager;
|
||||
mStatusBarLazy = statusBarLazy;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mMainHandler = mainHandler;
|
||||
mLogger = logger;
|
||||
mBarService = IStatusBarService.Stub.asInterface(
|
||||
|
||||
@@ -92,7 +92,7 @@ public interface StatusBarDependenciesModule {
|
||||
NotificationLockscreenUserManager lockscreenUserManager,
|
||||
SmartReplyController smartReplyController,
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
StatusBarStateController statusBarStateController,
|
||||
Handler mainHandler,
|
||||
RemoteInputUriController remoteInputUriController,
|
||||
@@ -103,7 +103,7 @@ public interface StatusBarDependenciesModule {
|
||||
lockscreenUserManager,
|
||||
smartReplyController,
|
||||
notificationEntryManager,
|
||||
statusBarLazy,
|
||||
statusBarOptionalLazy,
|
||||
statusBarStateController,
|
||||
mainHandler,
|
||||
remoteInputUriController,
|
||||
@@ -116,7 +116,7 @@ public interface StatusBarDependenciesModule {
|
||||
@Provides
|
||||
static NotificationMediaManager provideNotificationMediaManager(
|
||||
Context context,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
Lazy<NotificationShadeWindowController> notificationShadeWindowController,
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
MediaArtworkProcessor mediaArtworkProcessor,
|
||||
@@ -129,7 +129,7 @@ public interface StatusBarDependenciesModule {
|
||||
MediaDataManager mediaDataManager) {
|
||||
return new NotificationMediaManager(
|
||||
context,
|
||||
statusBarLazy,
|
||||
statusBarOptionalLazy,
|
||||
notificationShadeWindowController,
|
||||
notificationEntryManager,
|
||||
mediaArtworkProcessor,
|
||||
|
||||
@@ -126,7 +126,7 @@ public interface NotificationsModule {
|
||||
@Provides
|
||||
static NotificationGutsManager provideNotificationGutsManager(
|
||||
Context context,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
@Main Handler mainHandler,
|
||||
@Background Handler bgHandler,
|
||||
AccessibilityManager accessibilityManager,
|
||||
@@ -145,7 +145,7 @@ public interface NotificationsModule {
|
||||
ShadeController shadeController) {
|
||||
return new NotificationGutsManager(
|
||||
context,
|
||||
statusBarLazy,
|
||||
statusBarOptionalLazy,
|
||||
mainHandler,
|
||||
bgHandler,
|
||||
accessibilityManager,
|
||||
|
||||
@@ -116,7 +116,7 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
@VisibleForTesting
|
||||
protected String mKeyToRemoveOnGutsClosed;
|
||||
|
||||
private final Lazy<StatusBar> mStatusBarLazy;
|
||||
private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final Handler mMainHandler;
|
||||
private final Handler mBgHandler;
|
||||
private final Optional<BubblesManager> mBubblesManagerOptional;
|
||||
@@ -135,7 +135,7 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
* Injected constructor. See {@link NotificationsModule}.
|
||||
*/
|
||||
public NotificationGutsManager(Context context,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
@Main Handler mainHandler,
|
||||
@Background Handler bgHandler,
|
||||
AccessibilityManager accessibilityManager,
|
||||
@@ -153,7 +153,7 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
OnUserInteractionCallback onUserInteractionCallback,
|
||||
ShadeController shadeController) {
|
||||
mContext = context;
|
||||
mStatusBarLazy = statusBarLazy;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mMainHandler = mainHandler;
|
||||
mBgHandler = bgHandler;
|
||||
mAccessibilityManager = accessibilityManager;
|
||||
@@ -564,13 +564,13 @@ public class NotificationGutsManager implements Dumpable, NotificationLifetimeEx
|
||||
Runnable r = () -> mMainHandler.post(
|
||||
() -> openGutsInternal(view, x, y, menuItem));
|
||||
|
||||
mStatusBarLazy.get().executeRunnableDismissingKeyguard(
|
||||
r,
|
||||
null /* cancelAction */,
|
||||
false /* dismissShade */,
|
||||
true /* afterKeyguardGone */,
|
||||
true /* deferred */);
|
||||
|
||||
mStatusBarOptionalLazy.get().ifPresent(
|
||||
statusBar -> statusBar.executeRunnableDismissingKeyguard(
|
||||
r,
|
||||
null /* cancelAction */,
|
||||
false /* dismissShade */,
|
||||
true /* afterKeyguardGone */,
|
||||
true /* deferred */));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -58,9 +58,12 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
import dagger.Lazy;
|
||||
|
||||
/**
|
||||
* Contains the collapsed status bar and handles hiding/showing based on disable flags
|
||||
* and keyguard state. Also manages lifecycle to make sure the views it contains are being
|
||||
@@ -86,7 +89,7 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
private View mCenteredIconArea;
|
||||
private int mDisabled1;
|
||||
private int mDisabled2;
|
||||
private StatusBar mStatusBarComponent;
|
||||
private Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private DarkIconManager mDarkIconManager;
|
||||
private View mOperatorNameFrame;
|
||||
private CommandQueue mCommandQueue;
|
||||
@@ -118,13 +121,15 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
SystemStatusAnimationScheduler animationScheduler,
|
||||
StatusBarLocationPublisher locationPublisher,
|
||||
NotificationIconAreaController notificationIconAreaController,
|
||||
FeatureFlags featureFlags
|
||||
FeatureFlags featureFlags,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy
|
||||
) {
|
||||
mOngoingCallController = ongoingCallController;
|
||||
mAnimationScheduler = animationScheduler;
|
||||
mLocationPublisher = locationPublisher;
|
||||
mNotificationIconAreaController = notificationIconAreaController;
|
||||
mFeatureFlags = featureFlags;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -133,7 +138,6 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
mKeyguardStateController = Dependency.get(KeyguardStateController.class);
|
||||
mNetworkController = Dependency.get(NetworkController.class);
|
||||
mStatusBarStateController = Dependency.get(StatusBarStateController.class);
|
||||
mStatusBarComponent = Dependency.get(StatusBar.class);
|
||||
mCommandQueue = Dependency.get(CommandQueue.class);
|
||||
}
|
||||
|
||||
@@ -269,7 +273,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
}
|
||||
|
||||
protected int adjustDisableFlags(int state) {
|
||||
boolean headsUpVisible = mStatusBarComponent.headsUpShouldBeVisible();
|
||||
boolean headsUpVisible = mStatusBarOptionalLazy.get()
|
||||
.map(StatusBar::headsUpShouldBeVisible).orElse(false);
|
||||
if (headsUpVisible) {
|
||||
state |= DISABLE_CLOCK;
|
||||
}
|
||||
@@ -297,7 +302,8 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
// The shelf will be hidden when dozing with a custom clock, we must show notification
|
||||
// icons in this occasion.
|
||||
if (mStatusBarStateController.isDozing()
|
||||
&& mStatusBarComponent.getPanelController().hasCustomClock()) {
|
||||
&& mStatusBarOptionalLazy.get().map(
|
||||
sb -> sb.getPanelController().hasCustomClock()).orElse(false)) {
|
||||
state |= DISABLE_CLOCK | DISABLE_SYSTEM_INFO;
|
||||
}
|
||||
|
||||
@@ -338,10 +344,13 @@ public class CollapsedStatusBarFragment extends Fragment implements CommandQueue
|
||||
}
|
||||
|
||||
private boolean shouldHideNotificationIcons() {
|
||||
if (!mStatusBar.isClosed() && mStatusBarComponent.hideStatusBarIconsWhenExpanded()) {
|
||||
final Optional<StatusBar> statusBarOptional = mStatusBarOptionalLazy.get();
|
||||
if (!mStatusBar.isClosed()
|
||||
&& statusBarOptional.map(
|
||||
StatusBar::hideStatusBarIconsWhenExpanded).orElse(false)) {
|
||||
return true;
|
||||
}
|
||||
if (mStatusBarComponent.hideStatusBarIconsForBouncer()) {
|
||||
if (statusBarOptional.map(StatusBar::hideStatusBarIconsForBouncer).orElse(false)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
||||
@@ -48,7 +48,7 @@ public class ShadeControllerImpl implements ShadeController {
|
||||
protected final NotificationShadeWindowController mNotificationShadeWindowController;
|
||||
private final StatusBarKeyguardViewManager mStatusBarKeyguardViewManager;
|
||||
private final int mDisplayId;
|
||||
protected final Lazy<StatusBar> mStatusBarLazy;
|
||||
protected final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
private final Lazy<AssistManager> mAssistManagerLazy;
|
||||
private final Optional<Bubbles> mBubblesOptional;
|
||||
|
||||
@@ -61,7 +61,7 @@ public class ShadeControllerImpl implements ShadeController {
|
||||
NotificationShadeWindowController notificationShadeWindowController,
|
||||
StatusBarKeyguardViewManager statusBarKeyguardViewManager,
|
||||
WindowManager windowManager,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
Lazy<AssistManager> assistManagerLazy,
|
||||
Optional<Bubbles> bubblesOptional
|
||||
) {
|
||||
@@ -71,7 +71,7 @@ public class ShadeControllerImpl implements ShadeController {
|
||||
mStatusBarKeyguardViewManager = statusBarKeyguardViewManager;
|
||||
mDisplayId = windowManager.getDefaultDisplay().getDisplayId();
|
||||
// TODO: Remove circular reference to StatusBar when possible.
|
||||
mStatusBarLazy = statusBarLazy;
|
||||
mStatusBarOptionalLazy = statusBarOptionalLazy;
|
||||
mAssistManagerLazy = assistManagerLazy;
|
||||
mBubblesOptional = bubblesOptional;
|
||||
}
|
||||
@@ -210,7 +210,7 @@ public class ShadeControllerImpl implements ShadeController {
|
||||
}
|
||||
|
||||
private StatusBar getStatusBar() {
|
||||
return mStatusBarLazy.get();
|
||||
return mStatusBarOptionalLazy.get().get();
|
||||
}
|
||||
|
||||
private NotificationPresenter getPresenter() {
|
||||
|
||||
@@ -1192,7 +1192,8 @@ public class StatusBar extends SystemUI implements DemoMode,
|
||||
mAnimationScheduler,
|
||||
mStatusBarLocationPublisher,
|
||||
mNotificationIconAreaController,
|
||||
mFeatureFlags),
|
||||
mFeatureFlags,
|
||||
() -> Optional.of(this)),
|
||||
CollapsedStatusBarFragment.TAG)
|
||||
.commit();
|
||||
|
||||
|
||||
@@ -191,7 +191,7 @@ public class UdfpsControllerTest extends SysuiTestCase {
|
||||
mWindowManager,
|
||||
mStatusBarStateController,
|
||||
mFgExecutor,
|
||||
mStatusBar,
|
||||
Optional.of(mStatusBar),
|
||||
mStatusBarKeyguardViewManager,
|
||||
mDumpManager,
|
||||
mKeyguardUpdateMonitor,
|
||||
|
||||
@@ -49,6 +49,7 @@ import org.mockito.Captor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@SmallTest
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
@@ -103,7 +104,7 @@ public class UdfpsKeyguardViewControllerTest extends SysuiTestCase {
|
||||
mController = new UdfpsKeyguardViewController(
|
||||
mView,
|
||||
mStatusBarStateController,
|
||||
mStatusBar,
|
||||
Optional.of(mStatusBar),
|
||||
mStatusBarKeyguardViewManager,
|
||||
mKeyguardUpdateMonitor,
|
||||
mExecutor,
|
||||
|
||||
@@ -74,6 +74,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executor;
|
||||
|
||||
@SmallTest
|
||||
@@ -154,7 +155,7 @@ public class GlobalActionsDialogLiteTest extends SysuiTestCase {
|
||||
mSysUiState,
|
||||
mHandler,
|
||||
mPackageManager,
|
||||
mStatusBar
|
||||
Optional.of(mStatusBar)
|
||||
);
|
||||
mGlobalActionsDialogLite.setZeroDialogPressDelayForTesting();
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.Executor;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@@ -169,7 +170,7 @@ public class GlobalActionsDialogTest extends SysuiTestCase {
|
||||
mSysUiState,
|
||||
mHandler,
|
||||
mPackageManager,
|
||||
mStatusBar
|
||||
Optional.of(mStatusBar)
|
||||
);
|
||||
mGlobalActionsDialog.setZeroDialogPressDelayForTesting();
|
||||
|
||||
|
||||
@@ -105,7 +105,7 @@ public class NavigationBarControllerTest extends SysuiTestCase {
|
||||
Optional.of(mock(Pip.class)),
|
||||
Optional.of(mock(LegacySplitScreen.class)),
|
||||
Optional.of(mock(Recents.class)),
|
||||
() -> mock(StatusBar.class),
|
||||
() -> Optional.of(mock(StatusBar.class)),
|
||||
mock(ShadeController.class),
|
||||
mock(NotificationRemoteInputManager.class),
|
||||
mock(NotificationShadeDepthController.class),
|
||||
|
||||
@@ -272,7 +272,7 @@ public class NavigationBarTest extends SysuiTestCase {
|
||||
Optional.of(mock(Pip.class)),
|
||||
Optional.of(mock(LegacySplitScreen.class)),
|
||||
Optional.of(mock(Recents.class)),
|
||||
() -> mock(StatusBar.class),
|
||||
() -> Optional.of(mock(StatusBar.class)),
|
||||
mock(ShadeController.class),
|
||||
mock(NotificationRemoteInputManager.class),
|
||||
mock(NotificationShadeDepthController.class),
|
||||
|
||||
@@ -58,6 +58,7 @@ import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import dagger.Lazy;
|
||||
@@ -89,7 +90,7 @@ public class PowerUITest extends SysuiTestCase {
|
||||
private IThermalEventListener mSkinThermalEventListener;
|
||||
@Mock private BroadcastDispatcher mBroadcastDispatcher;
|
||||
@Mock private CommandQueue mCommandQueue;
|
||||
@Mock private Lazy<StatusBar> mStatusBarLazy;
|
||||
@Mock private Lazy<Optional<StatusBar>> mStatusBarOptionalLazy;
|
||||
@Mock private StatusBar mStatusBar;
|
||||
|
||||
@Before
|
||||
@@ -98,7 +99,7 @@ public class PowerUITest extends SysuiTestCase {
|
||||
mMockWarnings = mDependency.injectMockDependency(WarningsUI.class);
|
||||
mEnhancedEstimates = mDependency.injectMockDependency(EnhancedEstimates.class);
|
||||
|
||||
when(mStatusBarLazy.get()).thenReturn(mStatusBar);
|
||||
when(mStatusBarOptionalLazy.get()).thenReturn(Optional.of(mStatusBar));
|
||||
|
||||
mContext.addMockSystemService(Context.POWER_SERVICE, mPowerManager);
|
||||
|
||||
@@ -688,7 +689,8 @@ public class PowerUITest extends SysuiTestCase {
|
||||
}
|
||||
|
||||
private void createPowerUi() {
|
||||
mPowerUI = new PowerUI(mContext, mBroadcastDispatcher, mCommandQueue, mStatusBarLazy);
|
||||
mPowerUI = new PowerUI(
|
||||
mContext, mBroadcastDispatcher, mCommandQueue, mStatusBarOptionalLazy);
|
||||
mPowerUI.mThermalService = mThermalServiceMock;
|
||||
}
|
||||
|
||||
|
||||
@@ -44,6 +44,8 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import dagger.Lazy;
|
||||
|
||||
@SmallTest
|
||||
@@ -80,7 +82,7 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
|
||||
|
||||
mRemoteInputManager = new TestableNotificationRemoteInputManager(mContext,
|
||||
mLockscreenUserManager, mSmartReplyController, mEntryManager,
|
||||
() -> mock(StatusBar.class),
|
||||
() -> Optional.of(mock(StatusBar.class)),
|
||||
mStateController,
|
||||
Handler.createAsync(Looper.myLooper()),
|
||||
mRemoteInputUriController,
|
||||
@@ -265,7 +267,7 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
|
||||
NotificationLockscreenUserManager lockscreenUserManager,
|
||||
SmartReplyController smartReplyController,
|
||||
NotificationEntryManager notificationEntryManager,
|
||||
Lazy<StatusBar> statusBarLazy,
|
||||
Lazy<Optional<StatusBar>> statusBarOptionalLazy,
|
||||
StatusBarStateController statusBarStateController,
|
||||
Handler mainHandler,
|
||||
RemoteInputUriController remoteInputUriController,
|
||||
@@ -276,7 +278,7 @@ public class NotificationRemoteInputManagerTest extends SysuiTestCase {
|
||||
lockscreenUserManager,
|
||||
smartReplyController,
|
||||
notificationEntryManager,
|
||||
statusBarLazy,
|
||||
statusBarOptionalLazy,
|
||||
statusBarStateController,
|
||||
mainHandler,
|
||||
remoteInputUriController,
|
||||
|
||||
@@ -51,6 +51,8 @@ import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.MockitoAnnotations;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
@TestableLooper.RunWithLooper
|
||||
@SmallTest
|
||||
@@ -90,7 +92,7 @@ public class SmartReplyControllerTest extends SysuiTestCase {
|
||||
|
||||
mRemoteInputManager = new NotificationRemoteInputManager(mContext,
|
||||
mock(NotificationLockscreenUserManager.class), mSmartReplyController,
|
||||
mNotificationEntryManager, () -> mock(StatusBar.class),
|
||||
mNotificationEntryManager, () -> Optional.of(mock(StatusBar.class)),
|
||||
mStatusBarStateController,
|
||||
Handler.createAsync(Looper.myLooper()),
|
||||
mRemoteInputUriController,
|
||||
|
||||
@@ -91,7 +91,6 @@ import org.junit.Ignore;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Answers;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.junit.MockitoJUnit;
|
||||
@@ -99,8 +98,6 @@ import org.mockito.junit.MockitoRule;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
import javax.inject.Provider;
|
||||
|
||||
/**
|
||||
* Tests for {@link NotificationGutsManager}.
|
||||
*/
|
||||
@@ -157,11 +154,12 @@ public class NotificationGutsManagerTest extends SysuiTestCase {
|
||||
when(mAccessibilityManager.isTouchExplorationEnabled()).thenReturn(false);
|
||||
|
||||
mGutsManager = new NotificationGutsManager(mContext,
|
||||
() -> mStatusBar, mHandler, mHandler, mAccessibilityManager, mHighPriorityProvider,
|
||||
mINotificationManager, mNotificationEntryManager, mPeopleSpaceWidgetManager,
|
||||
mLauncherApps, mShortcutManager, mChannelEditorDialogController, mContextTracker,
|
||||
mAssistantFeedbackController, Optional.of(mBubblesManager),
|
||||
new UiEventLoggerFake(), mOnUserInteractionCallback, mShadeController);
|
||||
() -> Optional.of(mStatusBar), mHandler, mHandler, mAccessibilityManager,
|
||||
mHighPriorityProvider, mINotificationManager, mNotificationEntryManager,
|
||||
mPeopleSpaceWidgetManager, mLauncherApps, mShortcutManager,
|
||||
mChannelEditorDialogController, mContextTracker, mAssistantFeedbackController,
|
||||
Optional.of(mBubblesManager), new UiEventLoggerFake(), mOnUserInteractionCallback,
|
||||
mShadeController);
|
||||
mGutsManager.setUpWithPresenter(mPresenter, mNotificationListContainer,
|
||||
mCheckSaveListener, mOnSettingsClickListener);
|
||||
mGutsManager.setNotificationActivityStarter(mNotificationActivityStarter);
|
||||
|
||||
@@ -47,11 +47,14 @@ import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mockito;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@RunWith(AndroidTestingRunner.class)
|
||||
@RunWithLooper(setAsMainLooper = true)
|
||||
@SmallTest
|
||||
public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
|
||||
private StatusBar mStatusBar;
|
||||
private NotificationIconAreaController mMockNotificationAreaController;
|
||||
private View mNotificationAreaInner;
|
||||
private StatusBarStateController mStatusBarStateController;
|
||||
@@ -65,12 +68,11 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
|
||||
@Before
|
||||
public void setup() {
|
||||
StatusBar statusBar = mock(StatusBar.class);
|
||||
mDependency.injectTestDependency(StatusBar.class, statusBar);
|
||||
mStatusBar = mock(StatusBar.class);
|
||||
mStatusBarStateController = mDependency
|
||||
.injectMockDependency(StatusBarStateController.class);
|
||||
injectLeakCheckedDependencies(ALL_SUPPORTED_CLASSES);
|
||||
when(statusBar.getPanelController()).thenReturn(
|
||||
when(mStatusBar.getPanelController()).thenReturn(
|
||||
mock(NotificationPanelViewController.class));
|
||||
}
|
||||
|
||||
@@ -231,7 +233,8 @@ public class CollapsedStatusBarFragmentTest extends SysuiBaseFragmentTest {
|
||||
mAnimationScheduler,
|
||||
mLocationPublisher,
|
||||
mMockNotificationAreaController,
|
||||
mock(FeatureFlags.class));
|
||||
mock(FeatureFlags.class),
|
||||
() -> Optional.of(mStatusBar));
|
||||
}
|
||||
|
||||
private void setUpNotificationIconAreaController() {
|
||||
|
||||
@@ -353,7 +353,7 @@ public class StatusBarTest extends SysuiTestCase {
|
||||
mShadeController = new ShadeControllerImpl(mCommandQueue,
|
||||
mStatusBarStateController, mNotificationShadeWindowController,
|
||||
mStatusBarKeyguardViewManager, mContext.getSystemService(WindowManager.class),
|
||||
() -> mStatusBar, () -> mAssistManager, Optional.of(mBubbles));
|
||||
() -> Optional.of(mStatusBar), () -> mAssistManager, Optional.of(mBubbles));
|
||||
|
||||
mStatusBar = new StatusBar(
|
||||
mContext,
|
||||
|
||||
Reference in New Issue
Block a user