Loading packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +21 −16 Original line number Diff line number Diff line Loading @@ -159,6 +159,8 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @VisibleForTesting protected DisplayDecorationSupport mHwcScreenDecorationSupport; private Display.Mode mDisplayMode; @VisibleForTesting protected DisplayInfo mDisplayInfo = new DisplayInfo(); private CameraAvailabilityListener.CameraTransitionCallback mCameraTransitionCallback = new CameraAvailabilityListener.CameraTransitionCallback() { Loading Loading @@ -325,9 +327,10 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab private void startOnScreenDecorationsThread() { mWindowManager = mContext.getSystemService(WindowManager.class); mDisplayManager = mContext.getSystemService(DisplayManager.class); mRotation = mContext.getDisplay().getRotation(); mDisplayMode = mContext.getDisplay().getMode(); mDisplayUniqueId = mContext.getDisplay().getUniqueId(); mContext.getDisplay().getDisplayInfo(mDisplayInfo); mRotation = mDisplayInfo.rotation; mDisplayMode = mDisplayInfo.getMode(); mDisplayUniqueId = mDisplayInfo.uniqueId; mRoundedCornerResDelegate = new RoundedCornerResDelegate(mContext.getResources(), mDisplayUniqueId); mRoundedCornerResDelegate.setPhysicalPixelDisplaySizeRatio( Loading @@ -351,8 +354,9 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @Override public void onDisplayChanged(int displayId) { final int newRotation = mContext.getDisplay().getRotation(); final Display.Mode newDisplayMode = mContext.getDisplay().getMode(); mContext.getDisplay().getDisplayInfo(mDisplayInfo); final int newRotation = mDisplayInfo.rotation; final Display.Mode newDisplayMode = mDisplayInfo.getMode(); if ((mOverlays != null || mScreenDecorHwcWindow != null) && (mRotation != newRotation || displayModeChanged(mDisplayMode, newDisplayMode))) { Loading Loading @@ -398,7 +402,7 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab } } final String newUniqueId = mContext.getDisplay().getUniqueId(); final String newUniqueId = mDisplayInfo.uniqueId; if (!Objects.equals(newUniqueId, mDisplayUniqueId)) { mDisplayUniqueId = newUniqueId; final DisplayDecorationSupport newScreenDecorationSupport = Loading Loading @@ -923,11 +927,10 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @VisibleForTesting float getPhysicalPixelDisplaySizeRatio() { final Point stableDisplaySize = mDisplayManager.getStableDisplaySize(); final DisplayInfo displayInfo = new DisplayInfo(); mContext.getDisplay().getDisplayInfo(displayInfo); mContext.getDisplay().getDisplayInfo(mDisplayInfo); return DisplayUtils.getPhysicalPixelDisplaySizeRatio( stableDisplaySize.x, stableDisplaySize.y, displayInfo.getNaturalWidth(), displayInfo.getNaturalHeight()); stableDisplaySize.x, stableDisplaySize.y, mDisplayInfo.getNaturalWidth(), mDisplayInfo.getNaturalHeight()); } @Override Loading Loading @@ -1004,11 +1007,12 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab "must call on " + mHandler.getLooper().getThread() + ", but was " + Thread.currentThread()); int newRotation = mContext.getDisplay().getRotation(); mContext.getDisplay().getDisplayInfo(mDisplayInfo); final int newRotation = mDisplayInfo.rotation; if (mRotation != newRotation) { mDotViewController.setNewRotation(newRotation); } final Display.Mode newMod = mContext.getDisplay().getMode(); final Display.Mode newMod = mDisplayInfo.getMode(); if (!mPendingConfigChange && (newRotation != mRotation || displayModeChanged(mDisplayMode, newMod))) { Loading Loading @@ -1220,7 +1224,7 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @Override public void updateRotation(int rotation) { mRotation = rotation; updateCutout(); super.updateRotation(rotation); } @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) Loading Loading @@ -1431,9 +1435,10 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @Override public boolean onPreDraw() { final int displayRotation = mContext.getDisplay().getRotation(); final Display.Mode displayMode = mContext.getDisplay().getMode(); if (displayRotation != mRotation && displayModeChanged(mDisplayMode, displayMode) mContext.getDisplay().getDisplayInfo(mDisplayInfo); final int displayRotation = mDisplayInfo.rotation; final Display.Mode displayMode = mDisplayInfo.getMode(); if ((displayRotation != mRotation || displayModeChanged(mDisplayMode, displayMode)) && !mPendingConfigChange) { if (DEBUG) { if (displayRotation != mRotation) { Loading packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java +7 −5 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ import android.util.RotationUtils; import android.util.Size; import android.view.Display; import android.view.DisplayCutout; import android.view.DisplayInfo; import android.view.Surface; import android.view.View; import android.view.ViewGroup; Loading Loading @@ -136,6 +137,8 @@ public class ScreenDecorationsTest extends SysuiTestCase { private CornerDecorProvider mPrivacyDotBottomRightDecorProvider; @Mock private Display.Mode mDisplayMode; @Mock private DisplayInfo mDisplayInfo; private PrivacyDotViewController.ShowingListener mPrivacyDotShowingListener; @Before Loading @@ -159,7 +162,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { when(mContext.getDisplay()).thenReturn(mDisplay); // Not support hwc layer by default doReturn(null).when(mDisplay).getDisplayDecorationSupport(); doReturn(mDisplayMode).when(mDisplay).getMode(); doReturn(mDisplayMode).when(mDisplayInfo).getMode(); when(mMockTypedArray.length()).thenReturn(0); mPrivacyDotTopLeftDecorProvider = spy(new PrivacyDotCornerDecorProviderImpl( Loading Loading @@ -214,6 +217,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { mExecutor.runAllReady(); } }); mScreenDecorations.mDisplayInfo = mDisplayInfo; doReturn(1f).when(mScreenDecorations).getPhysicalPixelDisplaySizeRatio(); reset(mTunerService); Loading Loading @@ -977,7 +981,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { getTestsDrawable(com.android.systemui.tests.R.drawable.rounded4px) /* roundedBottomDrawable */, 0 /* roundedPadding */, false /* fillCutout */, true /* privacyDot */); doReturn(Surface.ROTATION_0).when(mDisplay).getRotation(); mDisplayInfo.rotation = Surface.ROTATION_0; mScreenDecorations.start(); Loading @@ -991,7 +995,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { getTestsDrawable(com.android.systemui.tests.R.drawable.rounded5px) /* roundedBottomDrawable */, 0 /* roundedPadding */, false /* fillCutout */, true /* privacyDot */); doReturn(Surface.ROTATION_270).when(mDisplay).getRotation(); mDisplayInfo.rotation = Surface.ROTATION_270; mScreenDecorations.onConfigurationChanged(null); Loading Loading @@ -1274,7 +1278,6 @@ public class ScreenDecorationsTest extends SysuiTestCase { final ScreenDecorHwcLayer hwcLayer = mScreenDecorations.mScreenDecorHwcLayer; spyOn(hwcLayer); doReturn(mDisplay).when(hwcLayer).getDisplay(); doReturn(mDisplayMode).when(mDisplay).getMode(); mScreenDecorations.mDisplayListener.onDisplayChanged(1); Loading @@ -1298,7 +1301,6 @@ public class ScreenDecorationsTest extends SysuiTestCase { mScreenDecorations.mCutoutViews[BOUNDS_POSITION_TOP]; spyOn(cutoutView); doReturn(mDisplay).when(cutoutView).getDisplay(); doReturn(mDisplayMode).when(mDisplay).getMode(); mScreenDecorations.mDisplayListener.onDisplayChanged(1); Loading Loading
packages/SystemUI/src/com/android/systemui/ScreenDecorations.java +21 −16 Original line number Diff line number Diff line Loading @@ -159,6 +159,8 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @VisibleForTesting protected DisplayDecorationSupport mHwcScreenDecorationSupport; private Display.Mode mDisplayMode; @VisibleForTesting protected DisplayInfo mDisplayInfo = new DisplayInfo(); private CameraAvailabilityListener.CameraTransitionCallback mCameraTransitionCallback = new CameraAvailabilityListener.CameraTransitionCallback() { Loading Loading @@ -325,9 +327,10 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab private void startOnScreenDecorationsThread() { mWindowManager = mContext.getSystemService(WindowManager.class); mDisplayManager = mContext.getSystemService(DisplayManager.class); mRotation = mContext.getDisplay().getRotation(); mDisplayMode = mContext.getDisplay().getMode(); mDisplayUniqueId = mContext.getDisplay().getUniqueId(); mContext.getDisplay().getDisplayInfo(mDisplayInfo); mRotation = mDisplayInfo.rotation; mDisplayMode = mDisplayInfo.getMode(); mDisplayUniqueId = mDisplayInfo.uniqueId; mRoundedCornerResDelegate = new RoundedCornerResDelegate(mContext.getResources(), mDisplayUniqueId); mRoundedCornerResDelegate.setPhysicalPixelDisplaySizeRatio( Loading @@ -351,8 +354,9 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @Override public void onDisplayChanged(int displayId) { final int newRotation = mContext.getDisplay().getRotation(); final Display.Mode newDisplayMode = mContext.getDisplay().getMode(); mContext.getDisplay().getDisplayInfo(mDisplayInfo); final int newRotation = mDisplayInfo.rotation; final Display.Mode newDisplayMode = mDisplayInfo.getMode(); if ((mOverlays != null || mScreenDecorHwcWindow != null) && (mRotation != newRotation || displayModeChanged(mDisplayMode, newDisplayMode))) { Loading Loading @@ -398,7 +402,7 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab } } final String newUniqueId = mContext.getDisplay().getUniqueId(); final String newUniqueId = mDisplayInfo.uniqueId; if (!Objects.equals(newUniqueId, mDisplayUniqueId)) { mDisplayUniqueId = newUniqueId; final DisplayDecorationSupport newScreenDecorationSupport = Loading Loading @@ -923,11 +927,10 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @VisibleForTesting float getPhysicalPixelDisplaySizeRatio() { final Point stableDisplaySize = mDisplayManager.getStableDisplaySize(); final DisplayInfo displayInfo = new DisplayInfo(); mContext.getDisplay().getDisplayInfo(displayInfo); mContext.getDisplay().getDisplayInfo(mDisplayInfo); return DisplayUtils.getPhysicalPixelDisplaySizeRatio( stableDisplaySize.x, stableDisplaySize.y, displayInfo.getNaturalWidth(), displayInfo.getNaturalHeight()); stableDisplaySize.x, stableDisplaySize.y, mDisplayInfo.getNaturalWidth(), mDisplayInfo.getNaturalHeight()); } @Override Loading Loading @@ -1004,11 +1007,12 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab "must call on " + mHandler.getLooper().getThread() + ", but was " + Thread.currentThread()); int newRotation = mContext.getDisplay().getRotation(); mContext.getDisplay().getDisplayInfo(mDisplayInfo); final int newRotation = mDisplayInfo.rotation; if (mRotation != newRotation) { mDotViewController.setNewRotation(newRotation); } final Display.Mode newMod = mContext.getDisplay().getMode(); final Display.Mode newMod = mDisplayInfo.getMode(); if (!mPendingConfigChange && (newRotation != mRotation || displayModeChanged(mDisplayMode, newMod))) { Loading Loading @@ -1220,7 +1224,7 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @Override public void updateRotation(int rotation) { mRotation = rotation; updateCutout(); super.updateRotation(rotation); } @VisibleForTesting(otherwise = VisibleForTesting.PROTECTED) Loading Loading @@ -1431,9 +1435,10 @@ public class ScreenDecorations extends CoreStartable implements Tunable , Dumpab @Override public boolean onPreDraw() { final int displayRotation = mContext.getDisplay().getRotation(); final Display.Mode displayMode = mContext.getDisplay().getMode(); if (displayRotation != mRotation && displayModeChanged(mDisplayMode, displayMode) mContext.getDisplay().getDisplayInfo(mDisplayInfo); final int displayRotation = mDisplayInfo.rotation; final Display.Mode displayMode = mDisplayInfo.getMode(); if ((displayRotation != mRotation || displayModeChanged(mDisplayMode, displayMode)) && !mPendingConfigChange) { if (DEBUG) { if (displayRotation != mRotation) { Loading
packages/SystemUI/tests/src/com/android/systemui/ScreenDecorationsTest.java +7 −5 Original line number Diff line number Diff line Loading @@ -63,6 +63,7 @@ import android.util.RotationUtils; import android.util.Size; import android.view.Display; import android.view.DisplayCutout; import android.view.DisplayInfo; import android.view.Surface; import android.view.View; import android.view.ViewGroup; Loading Loading @@ -136,6 +137,8 @@ public class ScreenDecorationsTest extends SysuiTestCase { private CornerDecorProvider mPrivacyDotBottomRightDecorProvider; @Mock private Display.Mode mDisplayMode; @Mock private DisplayInfo mDisplayInfo; private PrivacyDotViewController.ShowingListener mPrivacyDotShowingListener; @Before Loading @@ -159,7 +162,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { when(mContext.getDisplay()).thenReturn(mDisplay); // Not support hwc layer by default doReturn(null).when(mDisplay).getDisplayDecorationSupport(); doReturn(mDisplayMode).when(mDisplay).getMode(); doReturn(mDisplayMode).when(mDisplayInfo).getMode(); when(mMockTypedArray.length()).thenReturn(0); mPrivacyDotTopLeftDecorProvider = spy(new PrivacyDotCornerDecorProviderImpl( Loading Loading @@ -214,6 +217,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { mExecutor.runAllReady(); } }); mScreenDecorations.mDisplayInfo = mDisplayInfo; doReturn(1f).when(mScreenDecorations).getPhysicalPixelDisplaySizeRatio(); reset(mTunerService); Loading Loading @@ -977,7 +981,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { getTestsDrawable(com.android.systemui.tests.R.drawable.rounded4px) /* roundedBottomDrawable */, 0 /* roundedPadding */, false /* fillCutout */, true /* privacyDot */); doReturn(Surface.ROTATION_0).when(mDisplay).getRotation(); mDisplayInfo.rotation = Surface.ROTATION_0; mScreenDecorations.start(); Loading @@ -991,7 +995,7 @@ public class ScreenDecorationsTest extends SysuiTestCase { getTestsDrawable(com.android.systemui.tests.R.drawable.rounded5px) /* roundedBottomDrawable */, 0 /* roundedPadding */, false /* fillCutout */, true /* privacyDot */); doReturn(Surface.ROTATION_270).when(mDisplay).getRotation(); mDisplayInfo.rotation = Surface.ROTATION_270; mScreenDecorations.onConfigurationChanged(null); Loading Loading @@ -1274,7 +1278,6 @@ public class ScreenDecorationsTest extends SysuiTestCase { final ScreenDecorHwcLayer hwcLayer = mScreenDecorations.mScreenDecorHwcLayer; spyOn(hwcLayer); doReturn(mDisplay).when(hwcLayer).getDisplay(); doReturn(mDisplayMode).when(mDisplay).getMode(); mScreenDecorations.mDisplayListener.onDisplayChanged(1); Loading @@ -1298,7 +1301,6 @@ public class ScreenDecorationsTest extends SysuiTestCase { mScreenDecorations.mCutoutViews[BOUNDS_POSITION_TOP]; spyOn(cutoutView); doReturn(mDisplay).when(cutoutView).getDisplay(); doReturn(mDisplayMode).when(mDisplay).getMode(); mScreenDecorations.mDisplayListener.onDisplayChanged(1); Loading