Loading packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java +31 −33 Original line number Original line Diff line number Diff line Loading @@ -15,8 +15,6 @@ */ */ package com.android.keyguard; package com.android.keyguard; import static android.view.Display.DEFAULT_DISPLAY; import android.app.Presentation; import android.app.Presentation; import android.content.Context; import android.content.Context; import android.graphics.Color; import android.graphics.Color; Loading @@ -37,9 +35,11 @@ import android.view.WindowManager; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.keyguard.dagger.KeyguardStatusViewComponent; import com.android.keyguard.dagger.KeyguardStatusViewComponent; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.UiBackground; import com.android.systemui.dagger.qualifiers.UiBackground; import com.android.systemui.navigationbar.NavigationBarController; import com.android.systemui.navigationbar.NavigationBarController; import com.android.systemui.navigationbar.NavigationBarView; import com.android.systemui.navigationbar.NavigationBarView; import com.android.systemui.settings.DisplayTracker; import java.util.concurrent.Executor; import java.util.concurrent.Executor; Loading @@ -53,6 +53,7 @@ public class KeyguardDisplayManager { private MediaRouter mMediaRouter = null; private MediaRouter mMediaRouter = null; private final DisplayManager mDisplayService; private final DisplayManager mDisplayService; private final DisplayTracker mDisplayTracker; private final Lazy<NavigationBarController> mNavigationBarControllerLazy; private final Lazy<NavigationBarController> mNavigationBarControllerLazy; private final KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory; private final KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory; private final Context mContext; private final Context mContext; Loading @@ -62,9 +63,8 @@ public class KeyguardDisplayManager { private final SparseArray<Presentation> mPresentations = new SparseArray<>(); private final SparseArray<Presentation> mPresentations = new SparseArray<>(); private final DisplayManager.DisplayListener mDisplayListener = private final DisplayTracker.Callback mDisplayCallback = new DisplayManager.DisplayListener() { new DisplayTracker.Callback() { @Override @Override public void onDisplayAdded(int displayId) { public void onDisplayAdded(int displayId) { Trace.beginSection( Trace.beginSection( Loading @@ -77,11 +77,6 @@ public class KeyguardDisplayManager { Trace.endSection(); Trace.endSection(); } } @Override public void onDisplayChanged(int displayId) { } @Override @Override public void onDisplayRemoved(int displayId) { public void onDisplayRemoved(int displayId) { Trace.beginSection( Trace.beginSection( Loading @@ -95,13 +90,16 @@ public class KeyguardDisplayManager { public KeyguardDisplayManager(Context context, public KeyguardDisplayManager(Context context, Lazy<NavigationBarController> navigationBarControllerLazy, Lazy<NavigationBarController> navigationBarControllerLazy, KeyguardStatusViewComponent.Factory keyguardStatusViewComponentFactory, KeyguardStatusViewComponent.Factory keyguardStatusViewComponentFactory, DisplayTracker displayTracker, @Main Executor mainExecutor, @UiBackground Executor uiBgExecutor) { @UiBackground Executor uiBgExecutor) { mContext = context; mContext = context; mNavigationBarControllerLazy = navigationBarControllerLazy; mNavigationBarControllerLazy = navigationBarControllerLazy; mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory; mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory; uiBgExecutor.execute(() -> mMediaRouter = mContext.getSystemService(MediaRouter.class)); uiBgExecutor.execute(() -> mMediaRouter = mContext.getSystemService(MediaRouter.class)); mDisplayService = mContext.getSystemService(DisplayManager.class); mDisplayService = mContext.getSystemService(DisplayManager.class); mDisplayService.registerDisplayListener(mDisplayListener, null /* handler */); mDisplayTracker = displayTracker; mDisplayTracker.addDisplayChangeCallback(mDisplayCallback, mainExecutor); } } private boolean isKeyguardShowable(Display display) { private boolean isKeyguardShowable(Display display) { Loading @@ -109,7 +107,7 @@ public class KeyguardDisplayManager { if (DEBUG) Log.i(TAG, "Cannot show Keyguard on null display"); if (DEBUG) Log.i(TAG, "Cannot show Keyguard on null display"); return false; return false; } } if (display.getDisplayId() == DEFAULT_DISPLAY) { if (display.getDisplayId() == mDisplayTracker.getDefaultDisplayId()) { if (DEBUG) Log.i(TAG, "Do not show KeyguardPresentation on the default display"); if (DEBUG) Log.i(TAG, "Do not show KeyguardPresentation on the default display"); return false; return false; } } Loading Loading @@ -224,7 +222,7 @@ public class KeyguardDisplayManager { protected boolean updateDisplays(boolean showing) { protected boolean updateDisplays(boolean showing) { boolean changed = false; boolean changed = false; if (showing) { if (showing) { final Display[] displays = mDisplayService.getDisplays(); final Display[] displays = mDisplayTracker.getAllDisplays(); for (Display display : displays) { for (Display display : displays) { int displayId = display.getDisplayId(); int displayId = display.getDisplayId(); updateNavigationBarVisibility(displayId, false /* navBarVisible */); updateNavigationBarVisibility(displayId, false /* navBarVisible */); Loading @@ -247,7 +245,7 @@ public class KeyguardDisplayManager { // term solution in R. // term solution in R. private void updateNavigationBarVisibility(int displayId, boolean navBarVisible) { private void updateNavigationBarVisibility(int displayId, boolean navBarVisible) { // Leave this task to {@link StatusBarKeyguardViewManager} // Leave this task to {@link StatusBarKeyguardViewManager} if (displayId == DEFAULT_DISPLAY) return; if (displayId == mDisplayTracker.getDefaultDisplayId()) return; NavigationBarView navBarView = mNavigationBarControllerLazy.get() NavigationBarView navBarView = mNavigationBarControllerLazy.get() .getNavigationBarView(displayId); .getNavigationBarView(displayId); Loading packages/SystemUI/src/com/android/keyguard/KeyguardSliceViewController.java +7 −4 Original line number Original line Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.keyguard; package com.android.keyguard; import static android.app.slice.Slice.HINT_LIST_ITEM; import static android.app.slice.Slice.HINT_LIST_ITEM; import static android.view.Display.DEFAULT_DISPLAY; import android.app.PendingIntent; import android.app.PendingIntent; import android.net.Uri; import android.net.Uri; Loading @@ -43,6 +42,7 @@ import com.android.systemui.Dumpable; import com.android.systemui.dump.DumpManager; import com.android.systemui.dump.DumpManager; import com.android.systemui.keyguard.KeyguardSliceProvider; import com.android.systemui.keyguard.KeyguardSliceProvider; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService; import com.android.systemui.util.ViewController; import com.android.systemui.util.ViewController; Loading @@ -64,6 +64,7 @@ public class KeyguardSliceViewController extends ViewController<KeyguardSliceVie private final ConfigurationController mConfigurationController; private final ConfigurationController mConfigurationController; private final TunerService mTunerService; private final TunerService mTunerService; private final DumpManager mDumpManager; private final DumpManager mDumpManager; private final DisplayTracker mDisplayTracker; private int mDisplayId; private int mDisplayId; private LiveData<Slice> mLiveData; private LiveData<Slice> mLiveData; private Uri mKeyguardSliceUri; private Uri mKeyguardSliceUri; Loading Loading @@ -108,12 +109,14 @@ public class KeyguardSliceViewController extends ViewController<KeyguardSliceVie ActivityStarter activityStarter, ActivityStarter activityStarter, ConfigurationController configurationController, ConfigurationController configurationController, TunerService tunerService, TunerService tunerService, DumpManager dumpManager) { DumpManager dumpManager, DisplayTracker displayTracker) { super(keyguardSliceView); super(keyguardSliceView); mActivityStarter = activityStarter; mActivityStarter = activityStarter; mConfigurationController = configurationController; mConfigurationController = configurationController; mTunerService = tunerService; mTunerService = tunerService; mDumpManager = dumpManager; mDumpManager = dumpManager; mDisplayTracker = displayTracker; } } @Override @Override Loading @@ -124,7 +127,7 @@ public class KeyguardSliceViewController extends ViewController<KeyguardSliceVie } } mTunerService.addTunable(mTunable, Settings.Secure.KEYGUARD_SLICE_URI); mTunerService.addTunable(mTunable, Settings.Secure.KEYGUARD_SLICE_URI); // Make sure we always have the most current slice // Make sure we always have the most current slice if (mDisplayId == DEFAULT_DISPLAY && mLiveData != null) { if (mDisplayId == mDisplayTracker.getDefaultDisplayId() && mLiveData != null) { mLiveData.observeForever(mObserver); mLiveData.observeForever(mObserver); } } mConfigurationController.addCallback(mConfigurationListener); mConfigurationController.addCallback(mConfigurationListener); Loading @@ -137,7 +140,7 @@ public class KeyguardSliceViewController extends ViewController<KeyguardSliceVie @Override @Override protected void onViewDetached() { protected void onViewDetached() { // TODO(b/117344873) Remove below work around after this issue be fixed. // TODO(b/117344873) Remove below work around after this issue be fixed. if (mDisplayId == DEFAULT_DISPLAY) { if (mDisplayId == mDisplayTracker.getDefaultDisplayId()) { mLiveData.removeObserver(mObserver); mLiveData.removeObserver(mObserver); } } mTunerService.removeTunable(mTunable); mTunerService.removeTunable(mTunable); Loading packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +8 −17 Original line number Original line Diff line number Diff line Loading @@ -36,10 +36,10 @@ import android.graphics.Path; import android.graphics.PixelFormat; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.hardware.display.DisplayManager; import android.hardware.graphics.common.AlphaInterpretation; import android.hardware.graphics.common.AlphaInterpretation; import android.hardware.graphics.common.DisplayDecorationSupport; import android.hardware.graphics.common.DisplayDecorationSupport; import android.os.Handler; import android.os.Handler; import android.os.HandlerExecutor; import android.os.SystemProperties; import android.os.SystemProperties; import android.os.Trace; import android.os.Trace; import android.provider.Settings.Secure; import android.provider.Settings.Secure; Loading Loading @@ -76,6 +76,7 @@ import com.android.systemui.decor.PrivacyDotDecorProviderFactory; import com.android.systemui.decor.RoundedCornerDecorProviderFactory; import com.android.systemui.decor.RoundedCornerDecorProviderFactory; import com.android.systemui.decor.RoundedCornerResDelegate; import com.android.systemui.decor.RoundedCornerResDelegate; import com.android.systemui.qs.SettingObserver; import com.android.systemui.qs.SettingObserver; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.events.PrivacyDotViewController; import com.android.systemui.statusbar.events.PrivacyDotViewController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService; Loading Loading @@ -120,7 +121,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { R.id.display_cutout_bottom R.id.display_cutout_bottom }; }; private DisplayManager mDisplayManager; private DisplayTracker mDisplayTracker; @VisibleForTesting @VisibleForTesting protected boolean mIsRegistered; protected boolean mIsRegistered; private final Context mContext; private final Context mContext; Loading @@ -128,7 +129,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { private final TunerService mTunerService; private final TunerService mTunerService; private final SecureSettings mSecureSettings; private final SecureSettings mSecureSettings; @VisibleForTesting @VisibleForTesting DisplayManager.DisplayListener mDisplayListener; DisplayTracker.Callback mDisplayListener; private CameraAvailabilityListener mCameraListener; private CameraAvailabilityListener mCameraListener; private final UserTracker mUserTracker; private final UserTracker mUserTracker; private final PrivacyDotViewController mDotViewController; private final PrivacyDotViewController mDotViewController; Loading Loading @@ -302,6 +303,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { SecureSettings secureSettings, SecureSettings secureSettings, TunerService tunerService, TunerService tunerService, UserTracker userTracker, UserTracker userTracker, DisplayTracker displayTracker, PrivacyDotViewController dotViewController, PrivacyDotViewController dotViewController, ThreadFactory threadFactory, ThreadFactory threadFactory, PrivacyDotDecorProviderFactory dotFactory, PrivacyDotDecorProviderFactory dotFactory, Loading @@ -311,6 +313,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { mSecureSettings = secureSettings; mSecureSettings = secureSettings; mTunerService = tunerService; mTunerService = tunerService; mUserTracker = userTracker; mUserTracker = userTracker; mDisplayTracker = displayTracker; mDotViewController = dotViewController; mDotViewController = dotViewController; mThreadFactory = threadFactory; mThreadFactory = threadFactory; mDotFactory = dotFactory; mDotFactory = dotFactory; Loading Loading @@ -376,7 +379,6 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { private void startOnScreenDecorationsThread() { private void startOnScreenDecorationsThread() { Trace.beginSection("ScreenDecorations#startOnScreenDecorationsThread"); Trace.beginSection("ScreenDecorations#startOnScreenDecorationsThread"); mWindowManager = mContext.getSystemService(WindowManager.class); mWindowManager = mContext.getSystemService(WindowManager.class); mDisplayManager = mContext.getSystemService(DisplayManager.class); mContext.getDisplay().getDisplayInfo(mDisplayInfo); mContext.getDisplay().getDisplayInfo(mDisplayInfo); mRotation = mDisplayInfo.rotation; mRotation = mDisplayInfo.rotation; mDisplayMode = mDisplayInfo.getMode(); mDisplayMode = mDisplayInfo.getMode(); Loading @@ -393,17 +395,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { setupDecorations(); setupDecorations(); setupCameraListener(); setupCameraListener(); mDisplayListener = new DisplayManager.DisplayListener() { mDisplayListener = new DisplayTracker.Callback() { @Override public void onDisplayAdded(int displayId) { // do nothing } @Override public void onDisplayRemoved(int displayId) { // do nothing } @Override @Override public void onDisplayChanged(int displayId) { public void onDisplayChanged(int displayId) { mContext.getDisplay().getDisplayInfo(mDisplayInfo); mContext.getDisplay().getDisplayInfo(mDisplayInfo); Loading Loading @@ -474,8 +466,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { } } } } }; }; mDisplayTracker.addDisplayChangeCallback(mDisplayListener, new HandlerExecutor(mHandler)); mDisplayManager.registerDisplayListener(mDisplayListener, mHandler); updateConfiguration(); updateConfiguration(); Trace.endSection(); Trace.endSection(); } } Loading packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -36,7 +36,6 @@ import android.os.PowerManager; import android.os.RemoteException; import android.os.RemoteException; import android.os.SystemClock; import android.os.SystemClock; import android.util.Log; import android.util.Log; import android.view.Display; import android.view.IWindowManager; import android.view.IWindowManager; import android.view.InputDevice; import android.view.InputDevice; import android.view.KeyCharacterMap; import android.view.KeyCharacterMap; Loading @@ -50,6 +49,7 @@ import com.android.internal.util.ScreenshotHelper; import com.android.systemui.CoreStartable; import com.android.systemui.CoreStartable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.recents.Recents; import com.android.systemui.recents.Recents; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.ShadeController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue; Loading Loading @@ -180,6 +180,7 @@ public class SystemActions implements CoreStartable { private final Context mContext; private final Context mContext; private final UserTracker mUserTracker; private final UserTracker mUserTracker; private final Optional<Recents> mRecentsOptional; private final Optional<Recents> mRecentsOptional; private final DisplayTracker mDisplayTracker; private Locale mLocale; private Locale mLocale; private final AccessibilityManager mA11yManager; private final AccessibilityManager mA11yManager; private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy; private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy; Loading @@ -194,11 +195,13 @@ public class SystemActions implements CoreStartable { NotificationShadeWindowController notificationShadeController, NotificationShadeWindowController notificationShadeController, ShadeController shadeController, ShadeController shadeController, Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy, Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy, Optional<Recents> recentsOptional) { Optional<Recents> recentsOptional, DisplayTracker displayTracker) { mContext = context; mContext = context; mUserTracker = userTracker; mUserTracker = userTracker; mShadeController = shadeController; mShadeController = shadeController; mRecentsOptional = recentsOptional; mRecentsOptional = recentsOptional; mDisplayTracker = displayTracker; mReceiver = new SystemActionsBroadcastReceiver(); mReceiver = new SystemActionsBroadcastReceiver(); mLocale = mContext.getResources().getConfiguration().getLocales().get(0); mLocale = mContext.getResources().getConfiguration().getLocales().get(0); mA11yManager = (AccessibilityManager) mContext.getSystemService( mA11yManager = (AccessibilityManager) mContext.getSystemService( Loading Loading @@ -523,7 +526,7 @@ public class SystemActions implements CoreStartable { private void handleAccessibilityButton() { private void handleAccessibilityButton() { AccessibilityManager.getInstance(mContext).notifyAccessibilityButtonClicked( AccessibilityManager.getInstance(mContext).notifyAccessibilityButtonClicked( Display.DEFAULT_DISPLAY); mDisplayTracker.getDefaultDisplayId()); } } private void handleAccessibilityButtonChooser() { private void handleAccessibilityButtonChooser() { Loading packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.model.SysUiState; import com.android.systemui.model.SysUiState; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.settings.SecureSettings; Loading @@ -64,6 +65,7 @@ public class WindowMagnification implements CoreStartable, WindowMagnifierCallba private final AccessibilityManager mAccessibilityManager; private final AccessibilityManager mAccessibilityManager; private final CommandQueue mCommandQueue; private final CommandQueue mCommandQueue; private final OverviewProxyService mOverviewProxyService; private final OverviewProxyService mOverviewProxyService; private final DisplayTracker mDisplayTracker; private WindowMagnificationConnectionImpl mWindowMagnificationConnectionImpl; private WindowMagnificationConnectionImpl mWindowMagnificationConnectionImpl; private SysUiState mSysUiState; private SysUiState mSysUiState; Loading Loading @@ -115,7 +117,7 @@ public class WindowMagnification implements CoreStartable, WindowMagnifierCallba public WindowMagnification(Context context, @Main Handler mainHandler, public WindowMagnification(Context context, @Main Handler mainHandler, CommandQueue commandQueue, ModeSwitchesController modeSwitchesController, CommandQueue commandQueue, ModeSwitchesController modeSwitchesController, SysUiState sysUiState, OverviewProxyService overviewProxyService, SysUiState sysUiState, OverviewProxyService overviewProxyService, SecureSettings secureSettings) { SecureSettings secureSettings, DisplayTracker displayTracker) { mContext = context; mContext = context; mHandler = mainHandler; mHandler = mainHandler; mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); Loading @@ -123,6 +125,7 @@ public class WindowMagnification implements CoreStartable, WindowMagnifierCallba mModeSwitchesController = modeSwitchesController; mModeSwitchesController = modeSwitchesController; mSysUiState = sysUiState; mSysUiState = sysUiState; mOverviewProxyService = overviewProxyService; mOverviewProxyService = overviewProxyService; mDisplayTracker = displayTracker; mMagnificationControllerSupplier = new ControllerSupplier(context, mMagnificationControllerSupplier = new ControllerSupplier(context, mHandler, this, context.getSystemService(DisplayManager.class), sysUiState, mHandler, this, context.getSystemService(DisplayManager.class), sysUiState, secureSettings); secureSettings); Loading @@ -144,14 +147,14 @@ public class WindowMagnification implements CoreStartable, WindowMagnifierCallba private void updateSysUiStateFlag() { private void updateSysUiStateFlag() { //TODO(b/187510533): support multi-display once SysuiState supports it. //TODO(b/187510533): support multi-display once SysuiState supports it. final WindowMagnificationController controller = final WindowMagnificationController controller = mMagnificationControllerSupplier.valueAt(Display.DEFAULT_DISPLAY); mMagnificationControllerSupplier.valueAt(mDisplayTracker.getDefaultDisplayId()); if (controller != null) { if (controller != null) { controller.updateSysUIStateFlag(); controller.updateSysUIStateFlag(); } else { } else { // The instance is initialized when there is an IPC request. Considering // The instance is initialized when there is an IPC request. Considering // self-crash cases, we need to reset the flag in such situation. // self-crash cases, we need to reset the flag in such situation. mSysUiState.setFlag(SYSUI_STATE_MAGNIFICATION_OVERLAP, false) mSysUiState.setFlag(SYSUI_STATE_MAGNIFICATION_OVERLAP, false) .commitUpdate(Display.DEFAULT_DISPLAY); .commitUpdate(mDisplayTracker.getDefaultDisplayId()); } } } } Loading Loading
packages/SystemUI/src/com/android/keyguard/KeyguardDisplayManager.java +31 −33 Original line number Original line Diff line number Diff line Loading @@ -15,8 +15,6 @@ */ */ package com.android.keyguard; package com.android.keyguard; import static android.view.Display.DEFAULT_DISPLAY; import android.app.Presentation; import android.app.Presentation; import android.content.Context; import android.content.Context; import android.graphics.Color; import android.graphics.Color; Loading @@ -37,9 +35,11 @@ import android.view.WindowManager; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; import com.android.keyguard.dagger.KeyguardStatusViewComponent; import com.android.keyguard.dagger.KeyguardStatusViewComponent; import com.android.systemui.R; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.UiBackground; import com.android.systemui.dagger.qualifiers.UiBackground; import com.android.systemui.navigationbar.NavigationBarController; import com.android.systemui.navigationbar.NavigationBarController; import com.android.systemui.navigationbar.NavigationBarView; import com.android.systemui.navigationbar.NavigationBarView; import com.android.systemui.settings.DisplayTracker; import java.util.concurrent.Executor; import java.util.concurrent.Executor; Loading @@ -53,6 +53,7 @@ public class KeyguardDisplayManager { private MediaRouter mMediaRouter = null; private MediaRouter mMediaRouter = null; private final DisplayManager mDisplayService; private final DisplayManager mDisplayService; private final DisplayTracker mDisplayTracker; private final Lazy<NavigationBarController> mNavigationBarControllerLazy; private final Lazy<NavigationBarController> mNavigationBarControllerLazy; private final KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory; private final KeyguardStatusViewComponent.Factory mKeyguardStatusViewComponentFactory; private final Context mContext; private final Context mContext; Loading @@ -62,9 +63,8 @@ public class KeyguardDisplayManager { private final SparseArray<Presentation> mPresentations = new SparseArray<>(); private final SparseArray<Presentation> mPresentations = new SparseArray<>(); private final DisplayManager.DisplayListener mDisplayListener = private final DisplayTracker.Callback mDisplayCallback = new DisplayManager.DisplayListener() { new DisplayTracker.Callback() { @Override @Override public void onDisplayAdded(int displayId) { public void onDisplayAdded(int displayId) { Trace.beginSection( Trace.beginSection( Loading @@ -77,11 +77,6 @@ public class KeyguardDisplayManager { Trace.endSection(); Trace.endSection(); } } @Override public void onDisplayChanged(int displayId) { } @Override @Override public void onDisplayRemoved(int displayId) { public void onDisplayRemoved(int displayId) { Trace.beginSection( Trace.beginSection( Loading @@ -95,13 +90,16 @@ public class KeyguardDisplayManager { public KeyguardDisplayManager(Context context, public KeyguardDisplayManager(Context context, Lazy<NavigationBarController> navigationBarControllerLazy, Lazy<NavigationBarController> navigationBarControllerLazy, KeyguardStatusViewComponent.Factory keyguardStatusViewComponentFactory, KeyguardStatusViewComponent.Factory keyguardStatusViewComponentFactory, DisplayTracker displayTracker, @Main Executor mainExecutor, @UiBackground Executor uiBgExecutor) { @UiBackground Executor uiBgExecutor) { mContext = context; mContext = context; mNavigationBarControllerLazy = navigationBarControllerLazy; mNavigationBarControllerLazy = navigationBarControllerLazy; mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory; mKeyguardStatusViewComponentFactory = keyguardStatusViewComponentFactory; uiBgExecutor.execute(() -> mMediaRouter = mContext.getSystemService(MediaRouter.class)); uiBgExecutor.execute(() -> mMediaRouter = mContext.getSystemService(MediaRouter.class)); mDisplayService = mContext.getSystemService(DisplayManager.class); mDisplayService = mContext.getSystemService(DisplayManager.class); mDisplayService.registerDisplayListener(mDisplayListener, null /* handler */); mDisplayTracker = displayTracker; mDisplayTracker.addDisplayChangeCallback(mDisplayCallback, mainExecutor); } } private boolean isKeyguardShowable(Display display) { private boolean isKeyguardShowable(Display display) { Loading @@ -109,7 +107,7 @@ public class KeyguardDisplayManager { if (DEBUG) Log.i(TAG, "Cannot show Keyguard on null display"); if (DEBUG) Log.i(TAG, "Cannot show Keyguard on null display"); return false; return false; } } if (display.getDisplayId() == DEFAULT_DISPLAY) { if (display.getDisplayId() == mDisplayTracker.getDefaultDisplayId()) { if (DEBUG) Log.i(TAG, "Do not show KeyguardPresentation on the default display"); if (DEBUG) Log.i(TAG, "Do not show KeyguardPresentation on the default display"); return false; return false; } } Loading Loading @@ -224,7 +222,7 @@ public class KeyguardDisplayManager { protected boolean updateDisplays(boolean showing) { protected boolean updateDisplays(boolean showing) { boolean changed = false; boolean changed = false; if (showing) { if (showing) { final Display[] displays = mDisplayService.getDisplays(); final Display[] displays = mDisplayTracker.getAllDisplays(); for (Display display : displays) { for (Display display : displays) { int displayId = display.getDisplayId(); int displayId = display.getDisplayId(); updateNavigationBarVisibility(displayId, false /* navBarVisible */); updateNavigationBarVisibility(displayId, false /* navBarVisible */); Loading @@ -247,7 +245,7 @@ public class KeyguardDisplayManager { // term solution in R. // term solution in R. private void updateNavigationBarVisibility(int displayId, boolean navBarVisible) { private void updateNavigationBarVisibility(int displayId, boolean navBarVisible) { // Leave this task to {@link StatusBarKeyguardViewManager} // Leave this task to {@link StatusBarKeyguardViewManager} if (displayId == DEFAULT_DISPLAY) return; if (displayId == mDisplayTracker.getDefaultDisplayId()) return; NavigationBarView navBarView = mNavigationBarControllerLazy.get() NavigationBarView navBarView = mNavigationBarControllerLazy.get() .getNavigationBarView(displayId); .getNavigationBarView(displayId); Loading
packages/SystemUI/src/com/android/keyguard/KeyguardSliceViewController.java +7 −4 Original line number Original line Diff line number Diff line Loading @@ -17,7 +17,6 @@ package com.android.keyguard; package com.android.keyguard; import static android.app.slice.Slice.HINT_LIST_ITEM; import static android.app.slice.Slice.HINT_LIST_ITEM; import static android.view.Display.DEFAULT_DISPLAY; import android.app.PendingIntent; import android.app.PendingIntent; import android.net.Uri; import android.net.Uri; Loading @@ -43,6 +42,7 @@ import com.android.systemui.Dumpable; import com.android.systemui.dump.DumpManager; import com.android.systemui.dump.DumpManager; import com.android.systemui.keyguard.KeyguardSliceProvider; import com.android.systemui.keyguard.KeyguardSliceProvider; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.statusbar.policy.ConfigurationController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService; import com.android.systemui.util.ViewController; import com.android.systemui.util.ViewController; Loading @@ -64,6 +64,7 @@ public class KeyguardSliceViewController extends ViewController<KeyguardSliceVie private final ConfigurationController mConfigurationController; private final ConfigurationController mConfigurationController; private final TunerService mTunerService; private final TunerService mTunerService; private final DumpManager mDumpManager; private final DumpManager mDumpManager; private final DisplayTracker mDisplayTracker; private int mDisplayId; private int mDisplayId; private LiveData<Slice> mLiveData; private LiveData<Slice> mLiveData; private Uri mKeyguardSliceUri; private Uri mKeyguardSliceUri; Loading Loading @@ -108,12 +109,14 @@ public class KeyguardSliceViewController extends ViewController<KeyguardSliceVie ActivityStarter activityStarter, ActivityStarter activityStarter, ConfigurationController configurationController, ConfigurationController configurationController, TunerService tunerService, TunerService tunerService, DumpManager dumpManager) { DumpManager dumpManager, DisplayTracker displayTracker) { super(keyguardSliceView); super(keyguardSliceView); mActivityStarter = activityStarter; mActivityStarter = activityStarter; mConfigurationController = configurationController; mConfigurationController = configurationController; mTunerService = tunerService; mTunerService = tunerService; mDumpManager = dumpManager; mDumpManager = dumpManager; mDisplayTracker = displayTracker; } } @Override @Override Loading @@ -124,7 +127,7 @@ public class KeyguardSliceViewController extends ViewController<KeyguardSliceVie } } mTunerService.addTunable(mTunable, Settings.Secure.KEYGUARD_SLICE_URI); mTunerService.addTunable(mTunable, Settings.Secure.KEYGUARD_SLICE_URI); // Make sure we always have the most current slice // Make sure we always have the most current slice if (mDisplayId == DEFAULT_DISPLAY && mLiveData != null) { if (mDisplayId == mDisplayTracker.getDefaultDisplayId() && mLiveData != null) { mLiveData.observeForever(mObserver); mLiveData.observeForever(mObserver); } } mConfigurationController.addCallback(mConfigurationListener); mConfigurationController.addCallback(mConfigurationListener); Loading @@ -137,7 +140,7 @@ public class KeyguardSliceViewController extends ViewController<KeyguardSliceVie @Override @Override protected void onViewDetached() { protected void onViewDetached() { // TODO(b/117344873) Remove below work around after this issue be fixed. // TODO(b/117344873) Remove below work around after this issue be fixed. if (mDisplayId == DEFAULT_DISPLAY) { if (mDisplayId == mDisplayTracker.getDefaultDisplayId()) { mLiveData.removeObserver(mObserver); mLiveData.removeObserver(mObserver); } } mTunerService.removeTunable(mTunable); mTunerService.removeTunable(mTunable); Loading
packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +8 −17 Original line number Original line Diff line number Diff line Loading @@ -36,10 +36,10 @@ import android.graphics.Path; import android.graphics.PixelFormat; import android.graphics.PixelFormat; import android.graphics.Rect; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable; import android.hardware.display.DisplayManager; import android.hardware.graphics.common.AlphaInterpretation; import android.hardware.graphics.common.AlphaInterpretation; import android.hardware.graphics.common.DisplayDecorationSupport; import android.hardware.graphics.common.DisplayDecorationSupport; import android.os.Handler; import android.os.Handler; import android.os.HandlerExecutor; import android.os.SystemProperties; import android.os.SystemProperties; import android.os.Trace; import android.os.Trace; import android.provider.Settings.Secure; import android.provider.Settings.Secure; Loading Loading @@ -76,6 +76,7 @@ import com.android.systemui.decor.PrivacyDotDecorProviderFactory; import com.android.systemui.decor.RoundedCornerDecorProviderFactory; import com.android.systemui.decor.RoundedCornerDecorProviderFactory; import com.android.systemui.decor.RoundedCornerResDelegate; import com.android.systemui.decor.RoundedCornerResDelegate; import com.android.systemui.qs.SettingObserver; import com.android.systemui.qs.SettingObserver; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.statusbar.events.PrivacyDotViewController; import com.android.systemui.statusbar.events.PrivacyDotViewController; import com.android.systemui.tuner.TunerService; import com.android.systemui.tuner.TunerService; Loading Loading @@ -120,7 +121,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { R.id.display_cutout_bottom R.id.display_cutout_bottom }; }; private DisplayManager mDisplayManager; private DisplayTracker mDisplayTracker; @VisibleForTesting @VisibleForTesting protected boolean mIsRegistered; protected boolean mIsRegistered; private final Context mContext; private final Context mContext; Loading @@ -128,7 +129,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { private final TunerService mTunerService; private final TunerService mTunerService; private final SecureSettings mSecureSettings; private final SecureSettings mSecureSettings; @VisibleForTesting @VisibleForTesting DisplayManager.DisplayListener mDisplayListener; DisplayTracker.Callback mDisplayListener; private CameraAvailabilityListener mCameraListener; private CameraAvailabilityListener mCameraListener; private final UserTracker mUserTracker; private final UserTracker mUserTracker; private final PrivacyDotViewController mDotViewController; private final PrivacyDotViewController mDotViewController; Loading Loading @@ -302,6 +303,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { SecureSettings secureSettings, SecureSettings secureSettings, TunerService tunerService, TunerService tunerService, UserTracker userTracker, UserTracker userTracker, DisplayTracker displayTracker, PrivacyDotViewController dotViewController, PrivacyDotViewController dotViewController, ThreadFactory threadFactory, ThreadFactory threadFactory, PrivacyDotDecorProviderFactory dotFactory, PrivacyDotDecorProviderFactory dotFactory, Loading @@ -311,6 +313,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { mSecureSettings = secureSettings; mSecureSettings = secureSettings; mTunerService = tunerService; mTunerService = tunerService; mUserTracker = userTracker; mUserTracker = userTracker; mDisplayTracker = displayTracker; mDotViewController = dotViewController; mDotViewController = dotViewController; mThreadFactory = threadFactory; mThreadFactory = threadFactory; mDotFactory = dotFactory; mDotFactory = dotFactory; Loading Loading @@ -376,7 +379,6 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { private void startOnScreenDecorationsThread() { private void startOnScreenDecorationsThread() { Trace.beginSection("ScreenDecorations#startOnScreenDecorationsThread"); Trace.beginSection("ScreenDecorations#startOnScreenDecorationsThread"); mWindowManager = mContext.getSystemService(WindowManager.class); mWindowManager = mContext.getSystemService(WindowManager.class); mDisplayManager = mContext.getSystemService(DisplayManager.class); mContext.getDisplay().getDisplayInfo(mDisplayInfo); mContext.getDisplay().getDisplayInfo(mDisplayInfo); mRotation = mDisplayInfo.rotation; mRotation = mDisplayInfo.rotation; mDisplayMode = mDisplayInfo.getMode(); mDisplayMode = mDisplayInfo.getMode(); Loading @@ -393,17 +395,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { setupDecorations(); setupDecorations(); setupCameraListener(); setupCameraListener(); mDisplayListener = new DisplayManager.DisplayListener() { mDisplayListener = new DisplayTracker.Callback() { @Override public void onDisplayAdded(int displayId) { // do nothing } @Override public void onDisplayRemoved(int displayId) { // do nothing } @Override @Override public void onDisplayChanged(int displayId) { public void onDisplayChanged(int displayId) { mContext.getDisplay().getDisplayInfo(mDisplayInfo); mContext.getDisplay().getDisplayInfo(mDisplayInfo); Loading Loading @@ -474,8 +466,7 @@ public class ScreenDecorations implements CoreStartable, Tunable , Dumpable { } } } } }; }; mDisplayTracker.addDisplayChangeCallback(mDisplayListener, new HandlerExecutor(mHandler)); mDisplayManager.registerDisplayListener(mDisplayListener, mHandler); updateConfiguration(); updateConfiguration(); Trace.endSection(); Trace.endSection(); } } Loading
packages/SystemUI/src/com/android/systemui/accessibility/SystemActions.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -36,7 +36,6 @@ import android.os.PowerManager; import android.os.RemoteException; import android.os.RemoteException; import android.os.SystemClock; import android.os.SystemClock; import android.util.Log; import android.util.Log; import android.view.Display; import android.view.IWindowManager; import android.view.IWindowManager; import android.view.InputDevice; import android.view.InputDevice; import android.view.KeyCharacterMap; import android.view.KeyCharacterMap; Loading @@ -50,6 +49,7 @@ import com.android.internal.util.ScreenshotHelper; import com.android.systemui.CoreStartable; import com.android.systemui.CoreStartable; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.recents.Recents; import com.android.systemui.recents.Recents; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.settings.UserTracker; import com.android.systemui.shade.ShadeController; import com.android.systemui.shade.ShadeController; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue; Loading Loading @@ -180,6 +180,7 @@ public class SystemActions implements CoreStartable { private final Context mContext; private final Context mContext; private final UserTracker mUserTracker; private final UserTracker mUserTracker; private final Optional<Recents> mRecentsOptional; private final Optional<Recents> mRecentsOptional; private final DisplayTracker mDisplayTracker; private Locale mLocale; private Locale mLocale; private final AccessibilityManager mA11yManager; private final AccessibilityManager mA11yManager; private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy; private final Lazy<Optional<CentralSurfaces>> mCentralSurfacesOptionalLazy; Loading @@ -194,11 +195,13 @@ public class SystemActions implements CoreStartable { NotificationShadeWindowController notificationShadeController, NotificationShadeWindowController notificationShadeController, ShadeController shadeController, ShadeController shadeController, Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy, Lazy<Optional<CentralSurfaces>> centralSurfacesOptionalLazy, Optional<Recents> recentsOptional) { Optional<Recents> recentsOptional, DisplayTracker displayTracker) { mContext = context; mContext = context; mUserTracker = userTracker; mUserTracker = userTracker; mShadeController = shadeController; mShadeController = shadeController; mRecentsOptional = recentsOptional; mRecentsOptional = recentsOptional; mDisplayTracker = displayTracker; mReceiver = new SystemActionsBroadcastReceiver(); mReceiver = new SystemActionsBroadcastReceiver(); mLocale = mContext.getResources().getConfiguration().getLocales().get(0); mLocale = mContext.getResources().getConfiguration().getLocales().get(0); mA11yManager = (AccessibilityManager) mContext.getSystemService( mA11yManager = (AccessibilityManager) mContext.getSystemService( Loading Loading @@ -523,7 +526,7 @@ public class SystemActions implements CoreStartable { private void handleAccessibilityButton() { private void handleAccessibilityButton() { AccessibilityManager.getInstance(mContext).notifyAccessibilityButtonClicked( AccessibilityManager.getInstance(mContext).notifyAccessibilityButtonClicked( Display.DEFAULT_DISPLAY); mDisplayTracker.getDefaultDisplayId()); } } private void handleAccessibilityButtonChooser() { private void handleAccessibilityButtonChooser() { Loading
packages/SystemUI/src/com/android/systemui/accessibility/WindowMagnification.java +6 −3 Original line number Original line Diff line number Diff line Loading @@ -40,6 +40,7 @@ import com.android.systemui.dagger.SysUISingleton; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.model.SysUiState; import com.android.systemui.model.SysUiState; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.recents.OverviewProxyService; import com.android.systemui.settings.DisplayTracker; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.statusbar.CommandQueue; import com.android.systemui.util.settings.SecureSettings; import com.android.systemui.util.settings.SecureSettings; Loading @@ -64,6 +65,7 @@ public class WindowMagnification implements CoreStartable, WindowMagnifierCallba private final AccessibilityManager mAccessibilityManager; private final AccessibilityManager mAccessibilityManager; private final CommandQueue mCommandQueue; private final CommandQueue mCommandQueue; private final OverviewProxyService mOverviewProxyService; private final OverviewProxyService mOverviewProxyService; private final DisplayTracker mDisplayTracker; private WindowMagnificationConnectionImpl mWindowMagnificationConnectionImpl; private WindowMagnificationConnectionImpl mWindowMagnificationConnectionImpl; private SysUiState mSysUiState; private SysUiState mSysUiState; Loading Loading @@ -115,7 +117,7 @@ public class WindowMagnification implements CoreStartable, WindowMagnifierCallba public WindowMagnification(Context context, @Main Handler mainHandler, public WindowMagnification(Context context, @Main Handler mainHandler, CommandQueue commandQueue, ModeSwitchesController modeSwitchesController, CommandQueue commandQueue, ModeSwitchesController modeSwitchesController, SysUiState sysUiState, OverviewProxyService overviewProxyService, SysUiState sysUiState, OverviewProxyService overviewProxyService, SecureSettings secureSettings) { SecureSettings secureSettings, DisplayTracker displayTracker) { mContext = context; mContext = context; mHandler = mainHandler; mHandler = mainHandler; mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); mAccessibilityManager = mContext.getSystemService(AccessibilityManager.class); Loading @@ -123,6 +125,7 @@ public class WindowMagnification implements CoreStartable, WindowMagnifierCallba mModeSwitchesController = modeSwitchesController; mModeSwitchesController = modeSwitchesController; mSysUiState = sysUiState; mSysUiState = sysUiState; mOverviewProxyService = overviewProxyService; mOverviewProxyService = overviewProxyService; mDisplayTracker = displayTracker; mMagnificationControllerSupplier = new ControllerSupplier(context, mMagnificationControllerSupplier = new ControllerSupplier(context, mHandler, this, context.getSystemService(DisplayManager.class), sysUiState, mHandler, this, context.getSystemService(DisplayManager.class), sysUiState, secureSettings); secureSettings); Loading @@ -144,14 +147,14 @@ public class WindowMagnification implements CoreStartable, WindowMagnifierCallba private void updateSysUiStateFlag() { private void updateSysUiStateFlag() { //TODO(b/187510533): support multi-display once SysuiState supports it. //TODO(b/187510533): support multi-display once SysuiState supports it. final WindowMagnificationController controller = final WindowMagnificationController controller = mMagnificationControllerSupplier.valueAt(Display.DEFAULT_DISPLAY); mMagnificationControllerSupplier.valueAt(mDisplayTracker.getDefaultDisplayId()); if (controller != null) { if (controller != null) { controller.updateSysUIStateFlag(); controller.updateSysUIStateFlag(); } else { } else { // The instance is initialized when there is an IPC request. Considering // The instance is initialized when there is an IPC request. Considering // self-crash cases, we need to reset the flag in such situation. // self-crash cases, we need to reset the flag in such situation. mSysUiState.setFlag(SYSUI_STATE_MAGNIFICATION_OVERLAP, false) mSysUiState.setFlag(SYSUI_STATE_MAGNIFICATION_OVERLAP, false) .commitUpdate(Display.DEFAULT_DISPLAY); .commitUpdate(mDisplayTracker.getDefaultDisplayId()); } } } } Loading