Loading packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +6 −0 Original line number Diff line number Diff line Loading @@ -372,6 +372,12 @@ public class FrameworkServicesModule { return context.getSystemService(TelecomManager.class); } @Provides @Singleton static Optional<TelecomManager> provideOptionalTelecomManager(Context context) { return Optional.ofNullable(context.getSystemService(TelecomManager.class)); } @Provides @Singleton static TelephonyManager provideTelephonyManager(Context context) { Loading packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +149 −26 Original line number Diff line number Diff line Loading @@ -93,7 +93,6 @@ import android.util.Log; import android.view.Display; import android.view.Gravity; import android.view.HapticFeedbackConstants; import android.view.IWindowManager; import android.view.InsetsState.InternalInsetsType; import android.view.InsetsVisibilities; import android.view.KeyEvent; Loading @@ -118,20 +117,17 @@ import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.util.LatencyTracker; import com.android.internal.view.AppearanceRegion; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.SystemActions; import com.android.systemui.assist.AssistManager; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.buttons.ButtonDispatcher; import com.android.systemui.navigationbar.buttons.KeyButtonView; import com.android.systemui.navigationbar.buttons.RotationContextButton; import com.android.systemui.navigationbar.gestural.QuickswitchOrientedNavHandle; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; Loading @@ -151,8 +147,6 @@ import com.android.systemui.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.LightBarController; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.pip.Pip; Loading @@ -162,6 +156,8 @@ import java.util.Locale; import java.util.Optional; import java.util.function.Consumer; import javax.inject.Inject; import dagger.Lazy; /** Loading Loading @@ -243,7 +239,13 @@ public class NavigationBar implements View.OnAttachStateChangeListener, private boolean mTransientShown; private int mNavBarMode = NAV_BAR_MODE_3BUTTON; private LightBarController mLightBarController; private final LightBarController mMainLightBarController; private final LightBarController.Factory mLightBarControllerFactory; private AutoHideController mAutoHideController; private final AutoHideController mMainAutoHideController; private final AutoHideController.Factory mAutoHideControllerFactory; private final Optional<TelecomManager> mTelecomManagerOptional; private final InputMethodManager mInputMethodManager; @VisibleForTesting public int mDisplayId; Loading @@ -267,6 +269,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, private ViewTreeObserver.OnGlobalLayoutListener mOrientationHandleGlobalLayoutListener; private boolean mShowOrientedHandleForImmersiveMode; @com.android.internal.annotations.VisibleForTesting public enum NavBarActionEvent implements UiEventLogger.UiEventEnum { Loading Loading @@ -478,11 +481,10 @@ public class NavigationBar implements View.OnAttachStateChangeListener, } }; public NavigationBar(Context context, private NavigationBar(Context context, WindowManager windowManager, Lazy<AssistManager> assistManagerLazy, AccessibilityManager accessibilityManager, AccessibilityManagerWrapper accessibilityManagerWrapper, DeviceProvisionedController deviceProvisionedController, MetricsLogger metricsLogger, OverviewProxyService overviewProxyService, Loading @@ -504,7 +506,13 @@ public class NavigationBar implements View.OnAttachStateChangeListener, NavigationBarOverlayController navbarOverlayController, UiEventLogger uiEventLogger, NavigationBarA11yHelper navigationBarA11yHelper, UserTracker userTracker) { UserTracker userTracker, LightBarController mainLightBarController, LightBarController.Factory lightBarControllerFactory, AutoHideController mainAutoHideController, AutoHideController.Factory autoHideControllerFactory, Optional<TelecomManager> telecomManagerOptional, InputMethodManager inputMethodManager) { mContext = context; mWindowManager = windowManager; mAccessibilityManager = accessibilityManager; Loading @@ -531,6 +539,12 @@ public class NavigationBar implements View.OnAttachStateChangeListener, mNavigationBarA11yHelper = navigationBarA11yHelper; mUserTracker = userTracker; mNotificationShadeDepthController = notificationShadeDepthController; mMainLightBarController = mainLightBarController; mLightBarControllerFactory = lightBarControllerFactory; mMainAutoHideController = mainAutoHideController; mAutoHideControllerFactory = autoHideControllerFactory; mTelecomManagerOptional = telecomManagerOptional; mInputMethodManager = inputMethodManager; mNavBarMode = mNavigationModeController.addListener(this); } Loading @@ -548,7 +562,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, mNavigationBarView = barView.findViewById(R.id.navigation_bar_view); if (DEBUG) Log.v(TAG, "addNavigationBar: about to add " + barView); mContext.getSystemService(WindowManager.class).addView(mFrame, mWindowManager.addView(mFrame, getBarLayoutParams(mContext.getResources().getConfiguration().windowConfiguration .getRotation())); mDisplayId = mContext.getDisplayId(); Loading Loading @@ -606,8 +620,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, public void destroyView() { setAutoHideController(/* autoHideController */ null); mCommandQueue.removeCallback(this); mContext.getSystemService(WindowManager.class).removeViewImmediate( mNavigationBarView.getRootView()); mWindowManager.removeViewImmediate(mNavigationBarView.getRootView()); mNavigationModeController.removeListener(this); mNavigationBarA11yHelper.removeA11yEventListener(mAccessibilityListener); Loading Loading @@ -673,22 +686,16 @@ public class NavigationBar implements View.OnAttachStateChangeListener, // before notifications creation. We cannot directly use getLightBarController() // from NavigationBarFragment directly. LightBarController lightBarController = mIsOnDefaultDisplay ? Dependency.get(LightBarController.class) : new LightBarController(mContext, Dependency.get(DarkIconDispatcher.class), Dependency.get(BatteryController.class), Dependency.get(NavigationModeController.class), Dependency.get(DumpManager.class)); ? mMainLightBarController : mLightBarControllerFactory.create(mContext); setLightBarController(lightBarController); // TODO(b/118592525): to support multi-display, we start to add something which is // per-display, while others may be global. I think it's time to // add a new class maybe named DisplayDependency to solve // per-display Dependency problem. // Alternative: this is a good case for a Dagger subcomponent. Same with LightBarController. AutoHideController autoHideController = mIsOnDefaultDisplay ? Dependency.get(AutoHideController.class) : new AutoHideController(mContext, mHandler, Dependency.get(IWindowManager.class)); ? mMainAutoHideController : mAutoHideControllerFactory.create(mContext); setAutoHideController(autoHideController); restoreAppearanceAndTransientState(); } Loading Loading @@ -1183,9 +1190,8 @@ public class NavigationBar implements View.OnAttachStateChangeListener, switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mHomeBlockedThisTouch = false; TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class); if (telecomManager != null && telecomManager.isRinging()) { if (mTelecomManagerOptional.isPresent() && mTelecomManagerOptional.get().isRinging()) { if (statusBarOptional.map(StatusBar::isKeyguardShowing).orElse(false)) { Log.i(TAG, "Ignoring HOME; there's a ringing incoming call. " + "No heads up"); Loading Loading @@ -1267,7 +1273,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, } private void onImeSwitcherClick(View v) { mContext.getSystemService(InputMethodManager.class).showInputMethodPickerFromSystem( mInputMethodManager.showInputMethodPickerFromSystem( true /* showAuxiliarySubtypes */, mDisplayId); }; Loading Loading @@ -1702,4 +1708,121 @@ public class NavigationBar implements View.OnAttachStateChangeListener, int getNavigationIconHints() { return mNavigationIconHints; } /** * Injectable factory for construction a {@link NavigationBar}. */ public static class Factory { private final Lazy<AssistManager> mAssistManagerLazy; private final AccessibilityManager mAccessibilityManager; private final DeviceProvisionedController mDeviceProvisionedController; private final MetricsLogger mMetricsLogger; private final OverviewProxyService mOverviewProxyService; private final NavigationModeController mNavigationModeController; private final AccessibilityButtonModeObserver mAccessibilityButtonModeObserver; private final StatusBarStateController mStatusBarStateController; private final SysUiState mSysUiFlagsContainer; private final BroadcastDispatcher mBroadcastDispatcher; private final CommandQueue mCommandQueue; private final Optional<Pip> mPipOptional; private final Optional<LegacySplitScreen> mSplitScreenOptional; private final Optional<Recents> mRecentsOptional; private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy; private final ShadeController mShadeController; private final NotificationRemoteInputManager mNotificationRemoteInputManager; private final NotificationShadeDepthController mNotificationShadeDepthController; private final SystemActions mSystemActions; private final Handler mMainHandler; private final NavigationBarOverlayController mNavbarOverlayController; private final UiEventLogger mUiEventLogger; private final NavigationBarA11yHelper mNavigationBarA11yHelper; private final UserTracker mUserTracker; private final LightBarController mMainLightBarController; private final LightBarController.Factory mLightBarControllerFactory; private final AutoHideController mMainAutoHideController; private final AutoHideController.Factory mAutoHideControllerFactory; private final Optional<TelecomManager> mTelecomManagerOptional; private final InputMethodManager mInputMethodManager; @Inject public Factory( Lazy<AssistManager> assistManagerLazy, AccessibilityManager accessibilityManager, DeviceProvisionedController deviceProvisionedController, MetricsLogger metricsLogger, OverviewProxyService overviewProxyService, NavigationModeController navigationModeController, AccessibilityButtonModeObserver accessibilityButtonModeObserver, StatusBarStateController statusBarStateController, SysUiState sysUiFlagsContainer, BroadcastDispatcher broadcastDispatcher, CommandQueue commandQueue, Optional<Pip> pipOptional, Optional<LegacySplitScreen> splitScreenOptional, Optional<Recents> recentsOptional, Lazy<Optional<StatusBar>> statusBarOptionalLazy, ShadeController shadeController, NotificationRemoteInputManager notificationRemoteInputManager, NotificationShadeDepthController notificationShadeDepthController, SystemActions systemActions, @Main Handler mainHandler, NavigationBarOverlayController navbarOverlayController, UiEventLogger uiEventLogger, NavigationBarA11yHelper navigationBarA11yHelper, UserTracker userTracker, LightBarController mainLightBarController, LightBarController.Factory lightBarControllerFactory, AutoHideController mainAutoHideController, AutoHideController.Factory autoHideControllerFactory, Optional<TelecomManager> telecomManagerOptional, InputMethodManager inputMethodManager) { mAssistManagerLazy = assistManagerLazy; mAccessibilityManager = accessibilityManager; mDeviceProvisionedController = deviceProvisionedController; mMetricsLogger = metricsLogger; mOverviewProxyService = overviewProxyService; mNavigationModeController = navigationModeController; mAccessibilityButtonModeObserver = accessibilityButtonModeObserver; mStatusBarStateController = statusBarStateController; mSysUiFlagsContainer = sysUiFlagsContainer; mBroadcastDispatcher = broadcastDispatcher; mCommandQueue = commandQueue; mPipOptional = pipOptional; mSplitScreenOptional = splitScreenOptional; mRecentsOptional = recentsOptional; mStatusBarOptionalLazy = statusBarOptionalLazy; mShadeController = shadeController; mNotificationRemoteInputManager = notificationRemoteInputManager; mNotificationShadeDepthController = notificationShadeDepthController; mSystemActions = systemActions; mMainHandler = mainHandler; mNavbarOverlayController = navbarOverlayController; mUiEventLogger = uiEventLogger; mNavigationBarA11yHelper = navigationBarA11yHelper; mUserTracker = userTracker; mMainLightBarController = mainLightBarController; mLightBarControllerFactory = lightBarControllerFactory; mMainAutoHideController = mainAutoHideController; mAutoHideControllerFactory = autoHideControllerFactory; mTelecomManagerOptional = telecomManagerOptional; mInputMethodManager = inputMethodManager; } /** Construct a {@link NavigationBar} */ public NavigationBar create(Context context) { final WindowManager wm = context.getSystemService(WindowManager.class); return new NavigationBar(context, wm, mAssistManagerLazy, mAccessibilityManager, mDeviceProvisionedController, mMetricsLogger, mOverviewProxyService, mNavigationModeController, mAccessibilityButtonModeObserver, mStatusBarStateController, mSysUiFlagsContainer, mBroadcastDispatcher, mCommandQueue, mPipOptional, mSplitScreenOptional, mRecentsOptional, mStatusBarOptionalLazy, mShadeController, mNotificationRemoteInputManager, mNotificationShadeDepthController, mSystemActions, mMainHandler, mNavbarOverlayController, mUiEventLogger, mNavigationBarA11yHelper, mUserTracker, mMainLightBarController, mLightBarControllerFactory, mMainAutoHideController, mAutoHideControllerFactory, mTelecomManagerOptional, mInputMethodManager); } } } No newline at end of file packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java +6 −122 File changed.Preview size limit exceeded, changes collapsed. Show changes packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoHideController.java +19 −0 Original line number Diff line number Diff line Loading @@ -172,4 +172,23 @@ public class AutoHideController { return false; } /** * Injectable factory for creating a {@link AutoHideController}. */ public static class Factory { private final Handler mHandler; private final IWindowManager mIWindowManager; @Inject public Factory(@Main Handler handler, IWindowManager iWindowManager) { mHandler = handler; mIWindowManager = iWindowManager; } /** Create an {@link AutoHideController} */ public AutoHideController create(Context context) { return new AutoHideController(context, mHandler, mIWindowManager); } } } packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java +33 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.phone; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS; Loading Loading @@ -101,8 +102,10 @@ public class LightBarController implements BatteryController.BatteryStateChangeC mNavigationMode = mode; }); if (ctx.getDisplayId() == DEFAULT_DISPLAY) { dumpManager.registerDumpable(getClass().getSimpleName(), this); } } public void setNavigationBar(LightBarTransitionsController navigationBar) { mNavigationBarController = navigationBar; Loading Loading @@ -298,4 +301,33 @@ public class LightBarController implements BatteryController.BatteryStateChangeC pw.println(); } } /** * Injectable factory for creating a {@link LightBarController}. */ public static class Factory { private final DarkIconDispatcher mDarkIconDispatcher; private final BatteryController mBatteryController; private final NavigationModeController mNavModeController; private final DumpManager mDumpManager; @Inject public Factory( DarkIconDispatcher darkIconDispatcher, BatteryController batteryController, NavigationModeController navModeController, DumpManager dumpManager) { mDarkIconDispatcher = darkIconDispatcher; mBatteryController = batteryController; mNavModeController = navModeController; mDumpManager = dumpManager; } /** Create an {@link LightBarController} */ public LightBarController create(Context context) { return new LightBarController(context, mDarkIconDispatcher, mBatteryController, mNavModeController, mDumpManager); } } } Loading
packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +6 −0 Original line number Diff line number Diff line Loading @@ -372,6 +372,12 @@ public class FrameworkServicesModule { return context.getSystemService(TelecomManager.class); } @Provides @Singleton static Optional<TelecomManager> provideOptionalTelecomManager(Context context) { return Optional.ofNullable(context.getSystemService(TelecomManager.class)); } @Provides @Singleton static TelephonyManager provideTelephonyManager(Context context) { Loading
packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBar.java +149 −26 Original line number Diff line number Diff line Loading @@ -93,7 +93,6 @@ import android.util.Log; import android.view.Display; import android.view.Gravity; import android.view.HapticFeedbackConstants; import android.view.IWindowManager; import android.view.InsetsState.InternalInsetsType; import android.view.InsetsVisibilities; import android.view.KeyEvent; Loading @@ -118,20 +117,17 @@ import com.android.internal.logging.UiEventLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.util.LatencyTracker; import com.android.internal.view.AppearanceRegion; import com.android.systemui.Dependency; import com.android.systemui.R; import com.android.systemui.accessibility.AccessibilityButtonModeObserver; import com.android.systemui.accessibility.SystemActions; import com.android.systemui.assist.AssistManager; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dump.DumpManager; import com.android.systemui.model.SysUiState; import com.android.systemui.navigationbar.buttons.ButtonDispatcher; import com.android.systemui.navigationbar.buttons.KeyButtonView; import com.android.systemui.navigationbar.buttons.RotationContextButton; import com.android.systemui.navigationbar.gestural.QuickswitchOrientedNavHandle; import com.android.systemui.plugins.DarkIconDispatcher; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.Recents; Loading @@ -151,8 +147,6 @@ import com.android.systemui.statusbar.phone.BarTransitions; import com.android.systemui.statusbar.phone.LightBarController; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; import com.android.systemui.statusbar.policy.AccessibilityManagerWrapper; import com.android.systemui.statusbar.policy.BatteryController; import com.android.systemui.statusbar.policy.DeviceProvisionedController; import com.android.wm.shell.legacysplitscreen.LegacySplitScreen; import com.android.wm.shell.pip.Pip; Loading @@ -162,6 +156,8 @@ import java.util.Locale; import java.util.Optional; import java.util.function.Consumer; import javax.inject.Inject; import dagger.Lazy; /** Loading Loading @@ -243,7 +239,13 @@ public class NavigationBar implements View.OnAttachStateChangeListener, private boolean mTransientShown; private int mNavBarMode = NAV_BAR_MODE_3BUTTON; private LightBarController mLightBarController; private final LightBarController mMainLightBarController; private final LightBarController.Factory mLightBarControllerFactory; private AutoHideController mAutoHideController; private final AutoHideController mMainAutoHideController; private final AutoHideController.Factory mAutoHideControllerFactory; private final Optional<TelecomManager> mTelecomManagerOptional; private final InputMethodManager mInputMethodManager; @VisibleForTesting public int mDisplayId; Loading @@ -267,6 +269,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, private ViewTreeObserver.OnGlobalLayoutListener mOrientationHandleGlobalLayoutListener; private boolean mShowOrientedHandleForImmersiveMode; @com.android.internal.annotations.VisibleForTesting public enum NavBarActionEvent implements UiEventLogger.UiEventEnum { Loading Loading @@ -478,11 +481,10 @@ public class NavigationBar implements View.OnAttachStateChangeListener, } }; public NavigationBar(Context context, private NavigationBar(Context context, WindowManager windowManager, Lazy<AssistManager> assistManagerLazy, AccessibilityManager accessibilityManager, AccessibilityManagerWrapper accessibilityManagerWrapper, DeviceProvisionedController deviceProvisionedController, MetricsLogger metricsLogger, OverviewProxyService overviewProxyService, Loading @@ -504,7 +506,13 @@ public class NavigationBar implements View.OnAttachStateChangeListener, NavigationBarOverlayController navbarOverlayController, UiEventLogger uiEventLogger, NavigationBarA11yHelper navigationBarA11yHelper, UserTracker userTracker) { UserTracker userTracker, LightBarController mainLightBarController, LightBarController.Factory lightBarControllerFactory, AutoHideController mainAutoHideController, AutoHideController.Factory autoHideControllerFactory, Optional<TelecomManager> telecomManagerOptional, InputMethodManager inputMethodManager) { mContext = context; mWindowManager = windowManager; mAccessibilityManager = accessibilityManager; Loading @@ -531,6 +539,12 @@ public class NavigationBar implements View.OnAttachStateChangeListener, mNavigationBarA11yHelper = navigationBarA11yHelper; mUserTracker = userTracker; mNotificationShadeDepthController = notificationShadeDepthController; mMainLightBarController = mainLightBarController; mLightBarControllerFactory = lightBarControllerFactory; mMainAutoHideController = mainAutoHideController; mAutoHideControllerFactory = autoHideControllerFactory; mTelecomManagerOptional = telecomManagerOptional; mInputMethodManager = inputMethodManager; mNavBarMode = mNavigationModeController.addListener(this); } Loading @@ -548,7 +562,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, mNavigationBarView = barView.findViewById(R.id.navigation_bar_view); if (DEBUG) Log.v(TAG, "addNavigationBar: about to add " + barView); mContext.getSystemService(WindowManager.class).addView(mFrame, mWindowManager.addView(mFrame, getBarLayoutParams(mContext.getResources().getConfiguration().windowConfiguration .getRotation())); mDisplayId = mContext.getDisplayId(); Loading Loading @@ -606,8 +620,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, public void destroyView() { setAutoHideController(/* autoHideController */ null); mCommandQueue.removeCallback(this); mContext.getSystemService(WindowManager.class).removeViewImmediate( mNavigationBarView.getRootView()); mWindowManager.removeViewImmediate(mNavigationBarView.getRootView()); mNavigationModeController.removeListener(this); mNavigationBarA11yHelper.removeA11yEventListener(mAccessibilityListener); Loading Loading @@ -673,22 +686,16 @@ public class NavigationBar implements View.OnAttachStateChangeListener, // before notifications creation. We cannot directly use getLightBarController() // from NavigationBarFragment directly. LightBarController lightBarController = mIsOnDefaultDisplay ? Dependency.get(LightBarController.class) : new LightBarController(mContext, Dependency.get(DarkIconDispatcher.class), Dependency.get(BatteryController.class), Dependency.get(NavigationModeController.class), Dependency.get(DumpManager.class)); ? mMainLightBarController : mLightBarControllerFactory.create(mContext); setLightBarController(lightBarController); // TODO(b/118592525): to support multi-display, we start to add something which is // per-display, while others may be global. I think it's time to // add a new class maybe named DisplayDependency to solve // per-display Dependency problem. // Alternative: this is a good case for a Dagger subcomponent. Same with LightBarController. AutoHideController autoHideController = mIsOnDefaultDisplay ? Dependency.get(AutoHideController.class) : new AutoHideController(mContext, mHandler, Dependency.get(IWindowManager.class)); ? mMainAutoHideController : mAutoHideControllerFactory.create(mContext); setAutoHideController(autoHideController); restoreAppearanceAndTransientState(); } Loading Loading @@ -1183,9 +1190,8 @@ public class NavigationBar implements View.OnAttachStateChangeListener, switch (event.getAction()) { case MotionEvent.ACTION_DOWN: mHomeBlockedThisTouch = false; TelecomManager telecomManager = mContext.getSystemService(TelecomManager.class); if (telecomManager != null && telecomManager.isRinging()) { if (mTelecomManagerOptional.isPresent() && mTelecomManagerOptional.get().isRinging()) { if (statusBarOptional.map(StatusBar::isKeyguardShowing).orElse(false)) { Log.i(TAG, "Ignoring HOME; there's a ringing incoming call. " + "No heads up"); Loading Loading @@ -1267,7 +1273,7 @@ public class NavigationBar implements View.OnAttachStateChangeListener, } private void onImeSwitcherClick(View v) { mContext.getSystemService(InputMethodManager.class).showInputMethodPickerFromSystem( mInputMethodManager.showInputMethodPickerFromSystem( true /* showAuxiliarySubtypes */, mDisplayId); }; Loading Loading @@ -1702,4 +1708,121 @@ public class NavigationBar implements View.OnAttachStateChangeListener, int getNavigationIconHints() { return mNavigationIconHints; } /** * Injectable factory for construction a {@link NavigationBar}. */ public static class Factory { private final Lazy<AssistManager> mAssistManagerLazy; private final AccessibilityManager mAccessibilityManager; private final DeviceProvisionedController mDeviceProvisionedController; private final MetricsLogger mMetricsLogger; private final OverviewProxyService mOverviewProxyService; private final NavigationModeController mNavigationModeController; private final AccessibilityButtonModeObserver mAccessibilityButtonModeObserver; private final StatusBarStateController mStatusBarStateController; private final SysUiState mSysUiFlagsContainer; private final BroadcastDispatcher mBroadcastDispatcher; private final CommandQueue mCommandQueue; private final Optional<Pip> mPipOptional; private final Optional<LegacySplitScreen> mSplitScreenOptional; private final Optional<Recents> mRecentsOptional; private final Lazy<Optional<StatusBar>> mStatusBarOptionalLazy; private final ShadeController mShadeController; private final NotificationRemoteInputManager mNotificationRemoteInputManager; private final NotificationShadeDepthController mNotificationShadeDepthController; private final SystemActions mSystemActions; private final Handler mMainHandler; private final NavigationBarOverlayController mNavbarOverlayController; private final UiEventLogger mUiEventLogger; private final NavigationBarA11yHelper mNavigationBarA11yHelper; private final UserTracker mUserTracker; private final LightBarController mMainLightBarController; private final LightBarController.Factory mLightBarControllerFactory; private final AutoHideController mMainAutoHideController; private final AutoHideController.Factory mAutoHideControllerFactory; private final Optional<TelecomManager> mTelecomManagerOptional; private final InputMethodManager mInputMethodManager; @Inject public Factory( Lazy<AssistManager> assistManagerLazy, AccessibilityManager accessibilityManager, DeviceProvisionedController deviceProvisionedController, MetricsLogger metricsLogger, OverviewProxyService overviewProxyService, NavigationModeController navigationModeController, AccessibilityButtonModeObserver accessibilityButtonModeObserver, StatusBarStateController statusBarStateController, SysUiState sysUiFlagsContainer, BroadcastDispatcher broadcastDispatcher, CommandQueue commandQueue, Optional<Pip> pipOptional, Optional<LegacySplitScreen> splitScreenOptional, Optional<Recents> recentsOptional, Lazy<Optional<StatusBar>> statusBarOptionalLazy, ShadeController shadeController, NotificationRemoteInputManager notificationRemoteInputManager, NotificationShadeDepthController notificationShadeDepthController, SystemActions systemActions, @Main Handler mainHandler, NavigationBarOverlayController navbarOverlayController, UiEventLogger uiEventLogger, NavigationBarA11yHelper navigationBarA11yHelper, UserTracker userTracker, LightBarController mainLightBarController, LightBarController.Factory lightBarControllerFactory, AutoHideController mainAutoHideController, AutoHideController.Factory autoHideControllerFactory, Optional<TelecomManager> telecomManagerOptional, InputMethodManager inputMethodManager) { mAssistManagerLazy = assistManagerLazy; mAccessibilityManager = accessibilityManager; mDeviceProvisionedController = deviceProvisionedController; mMetricsLogger = metricsLogger; mOverviewProxyService = overviewProxyService; mNavigationModeController = navigationModeController; mAccessibilityButtonModeObserver = accessibilityButtonModeObserver; mStatusBarStateController = statusBarStateController; mSysUiFlagsContainer = sysUiFlagsContainer; mBroadcastDispatcher = broadcastDispatcher; mCommandQueue = commandQueue; mPipOptional = pipOptional; mSplitScreenOptional = splitScreenOptional; mRecentsOptional = recentsOptional; mStatusBarOptionalLazy = statusBarOptionalLazy; mShadeController = shadeController; mNotificationRemoteInputManager = notificationRemoteInputManager; mNotificationShadeDepthController = notificationShadeDepthController; mSystemActions = systemActions; mMainHandler = mainHandler; mNavbarOverlayController = navbarOverlayController; mUiEventLogger = uiEventLogger; mNavigationBarA11yHelper = navigationBarA11yHelper; mUserTracker = userTracker; mMainLightBarController = mainLightBarController; mLightBarControllerFactory = lightBarControllerFactory; mMainAutoHideController = mainAutoHideController; mAutoHideControllerFactory = autoHideControllerFactory; mTelecomManagerOptional = telecomManagerOptional; mInputMethodManager = inputMethodManager; } /** Construct a {@link NavigationBar} */ public NavigationBar create(Context context) { final WindowManager wm = context.getSystemService(WindowManager.class); return new NavigationBar(context, wm, mAssistManagerLazy, mAccessibilityManager, mDeviceProvisionedController, mMetricsLogger, mOverviewProxyService, mNavigationModeController, mAccessibilityButtonModeObserver, mStatusBarStateController, mSysUiFlagsContainer, mBroadcastDispatcher, mCommandQueue, mPipOptional, mSplitScreenOptional, mRecentsOptional, mStatusBarOptionalLazy, mShadeController, mNotificationRemoteInputManager, mNotificationShadeDepthController, mSystemActions, mMainHandler, mNavbarOverlayController, mUiEventLogger, mNavigationBarA11yHelper, mUserTracker, mMainLightBarController, mLightBarControllerFactory, mMainAutoHideController, mAutoHideControllerFactory, mTelecomManagerOptional, mInputMethodManager); } } } No newline at end of file
packages/SystemUI/src/com/android/systemui/navigationbar/NavigationBarController.java +6 −122 File changed.Preview size limit exceeded, changes collapsed. Show changes
packages/SystemUI/src/com/android/systemui/statusbar/phone/AutoHideController.java +19 −0 Original line number Diff line number Diff line Loading @@ -172,4 +172,23 @@ public class AutoHideController { return false; } /** * Injectable factory for creating a {@link AutoHideController}. */ public static class Factory { private final Handler mHandler; private final IWindowManager mIWindowManager; @Inject public Factory(@Main Handler handler, IWindowManager iWindowManager) { mHandler = handler; mIWindowManager = iWindowManager; } /** Create an {@link AutoHideController} */ public AutoHideController create(Context context) { return new AutoHideController(context, mHandler, mIWindowManager); } } }
packages/SystemUI/src/com/android/systemui/statusbar/phone/LightBarController.java +33 −1 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.phone; import static android.view.Display.DEFAULT_DISPLAY; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_NAVIGATION_BARS; import static android.view.WindowInsetsController.APPEARANCE_LIGHT_STATUS_BARS; Loading Loading @@ -101,8 +102,10 @@ public class LightBarController implements BatteryController.BatteryStateChangeC mNavigationMode = mode; }); if (ctx.getDisplayId() == DEFAULT_DISPLAY) { dumpManager.registerDumpable(getClass().getSimpleName(), this); } } public void setNavigationBar(LightBarTransitionsController navigationBar) { mNavigationBarController = navigationBar; Loading Loading @@ -298,4 +301,33 @@ public class LightBarController implements BatteryController.BatteryStateChangeC pw.println(); } } /** * Injectable factory for creating a {@link LightBarController}. */ public static class Factory { private final DarkIconDispatcher mDarkIconDispatcher; private final BatteryController mBatteryController; private final NavigationModeController mNavModeController; private final DumpManager mDumpManager; @Inject public Factory( DarkIconDispatcher darkIconDispatcher, BatteryController batteryController, NavigationModeController navModeController, DumpManager dumpManager) { mDarkIconDispatcher = darkIconDispatcher; mBatteryController = batteryController; mNavModeController = navModeController; mDumpManager = dumpManager; } /** Create an {@link LightBarController} */ public LightBarController create(Context context) { return new LightBarController(context, mDarkIconDispatcher, mBatteryController, mNavModeController, mDumpManager); } } }