diff options
author | Adam Powell <adamp@google.com> | 2015-05-18 16:07:42 -0700 |
---|---|---|
committer | Adam Powell <adamp@google.com> | 2015-05-18 16:07:42 -0700 |
commit | 01f280d376218c5a007fc29f70b876375ad24204 (patch) | |
tree | 542475aea062cf106b13cd52c0f57d812b7ee7a2 | |
parent | 98465f99bb9aa2da3905241a0ca95b708100560b (diff) | |
download | frameworks_base-01f280d376218c5a007fc29f70b876375ad24204.zip frameworks_base-01f280d376218c5a007fc29f70b876375ad24204.tar.gz frameworks_base-01f280d376218c5a007fc29f70b876375ad24204.tar.bz2 |
Migrate uses of config_windowIsRound to Configuration.isScreenRound
Move existing code that previously relied on config_windowIsRound to
use the new Configuration.isScreenRound() method. Also move the system
property override for emulators over to the initial setup of a Display
so that the configuration property is consistent with existing
expectations.
Remove config_windowIsRound from symbols.xml. The symbol now only
exists as a default value redirect for overlays already configured to
supply this value.
Change-Id: I24e6564030a6051c3ac7262868983b43e13eee65
8 files changed, 13 insertions, 31 deletions
diff --git a/core/java/android/service/wallpaper/WallpaperService.java b/core/java/android/service/wallpaper/WallpaperService.java index 016541f..b93a4a5 100644 --- a/core/java/android/service/wallpaper/WallpaperService.java +++ b/core/java/android/service/wallpaper/WallpaperService.java @@ -168,8 +168,6 @@ public abstract class WallpaperService extends Service { final Rect mFinalStableInsets = new Rect(); final Configuration mConfiguration = new Configuration(); - private boolean mWindowIsRound; - final WindowManager.LayoutParams mLayout = new WindowManager.LayoutParams(); IWindowSession mSession; @@ -640,7 +638,6 @@ public abstract class WallpaperService extends Service { // Retrieve watch round info TypedArray windowStyle = obtainStyledAttributes( com.android.internal.R.styleable.Window); - mWindowIsRound = ScreenShapeHelper.getWindowIsRound(getResources()); windowStyle.recycle(); // Add window @@ -776,7 +773,8 @@ public abstract class WallpaperService extends Service { mFinalStableInsets.set(mDispatchedStableInsets); mFinalSystemInsets.bottom = mIWallpaperEngine.mDisplayPadding.bottom; WindowInsets insets = new WindowInsets(mFinalSystemInsets, - null, mFinalStableInsets, mWindowIsRound); + null, mFinalStableInsets, + getResources().getConfiguration().isScreenRound()); onApplyWindowInsets(insets); } diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java index b7d902c..23f3b62 100644 --- a/core/java/android/view/ViewRootImpl.java +++ b/core/java/android/view/ViewRootImpl.java @@ -122,7 +122,6 @@ public final class ViewRootImpl implements ViewParent, private static final String PROPERTY_PROFILE_RENDERING = "viewroot.profile_rendering"; // properties used by emulator to determine display shape - public static final String PROPERTY_EMULATOR_CIRCULAR = "ro.emulator.circular"; public static final String PROPERTY_EMULATOR_WIN_OUTSET_BOTTOM_PX = "ro.emu.win_outset_bottom_px"; @@ -341,8 +340,6 @@ public final class ViewRootImpl implements ViewParent, /** Set to true once doDie() has been called. */ private boolean mRemoved; - private final boolean mWindowIsRound; - /** * Consistency verifier for debugging purposes. */ @@ -397,7 +394,6 @@ public final class ViewRootImpl implements ViewParent, mChoreographer = Choreographer.getInstance(); mDisplayManager = (DisplayManager)context.getSystemService(Context.DISPLAY_SERVICE); loadSystemProperties(); - mWindowIsRound = ScreenShapeHelper.getWindowIsRound(context.getResources()); } public static void addFirstDrawHandler(Runnable callback) { @@ -1271,7 +1267,8 @@ public final class ViewRootImpl implements ViewParent, stableInsets = mPendingStableInsets; } mLastWindowInsets = new WindowInsets(contentInsets, - null /* windowDecorInsets */, stableInsets, mWindowIsRound); + null /* windowDecorInsets */, stableInsets, + mContext.getResources().getConfiguration().isScreenRound()); } return mLastWindowInsets; } diff --git a/core/java/com/android/internal/util/ScreenShapeHelper.java b/core/java/com/android/internal/util/ScreenShapeHelper.java index 1bcc7a0..58ae853 100644 --- a/core/java/com/android/internal/util/ScreenShapeHelper.java +++ b/core/java/com/android/internal/util/ScreenShapeHelper.java @@ -33,16 +33,4 @@ public class ScreenShapeHelper { } return 0; } - - /** - * Get whether a device has has a round screen. - */ - public static boolean getWindowIsRound(Resources resources) { - if (IS_EMULATOR) { - return SystemProperties.getBoolean(ViewRootImpl.PROPERTY_EMULATOR_CIRCULAR, false); - } else { - return resources.getBoolean( - com.android.internal.R.bool.config_windowIsRound); - } - } } diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index a24d7f3..639d62b 100755 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -294,7 +294,6 @@ <java-symbol type="bool" name="config_wifi_batched_scan_supported" /> <java-symbol type="bool" name="config_enableMultiUserUI"/> <java-symbol type="bool" name="config_disableUsbPermissionDialogs"/> - <java-symbol type="bool" name="config_windowIsRound" /> <java-symbol type="bool" name="config_hasRecents" /> <java-symbol type="bool" name="config_windowShowCircularMask" /> <java-symbol type="bool" name="config_windowEnableCircularEmulatorDisplayOverlay" /> diff --git a/services/core/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java index e516573..517a825 100644 --- a/services/core/java/com/android/server/display/LocalDisplayAdapter.java +++ b/services/core/java/com/android/server/display/LocalDisplayAdapter.java @@ -17,6 +17,7 @@ package com.android.server.display; import android.content.res.Resources; +import android.os.Build; import com.android.server.LocalServices; import com.android.server.lights.Light; import com.android.server.lights.LightsManager; @@ -50,6 +51,8 @@ final class LocalDisplayAdapter extends DisplayAdapter { private static final String UNIQUE_ID_PREFIX = "local:"; + private static final String PROPERTY_EMULATOR_CIRCULAR = "ro.emulator.circular"; + private static final int[] BUILT_IN_DISPLAY_IDS_TO_SCAN = new int[] { SurfaceControl.BUILT_IN_DISPLAY_ID_MAIN, SurfaceControl.BUILT_IN_DISPLAY_ID_HDMI, @@ -273,8 +276,9 @@ final class LocalDisplayAdapter extends DisplayAdapter { com.android.internal.R.string.display_manager_built_in_display_name); mInfo.flags |= DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY | DisplayDeviceInfo.FLAG_ROTATES_WITH_CONTENT; - if (res.getBoolean( - com.android.internal.R.bool.config_mainBuiltInDisplayIsRound)) { + if (res.getBoolean(com.android.internal.R.bool.config_mainBuiltInDisplayIsRound) + || (Build.HARDWARE.contains("goldfish") + && SystemProperties.getBoolean(PROPERTY_EMULATOR_CIRCULAR, false))) { mInfo.flags |= DisplayDeviceInfo.FLAG_ROUND; } mInfo.type = Display.TYPE_BUILT_IN; diff --git a/services/core/java/com/android/server/policy/PhoneWindowManager.java b/services/core/java/com/android/server/policy/PhoneWindowManager.java index 185ef03..a4e9c68 100644 --- a/services/core/java/com/android/server/policy/PhoneWindowManager.java +++ b/services/core/java/com/android/server/policy/PhoneWindowManager.java @@ -1220,9 +1220,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { }; private boolean isRoundWindow() { - return mContext.getResources().getBoolean(com.android.internal.R.bool.config_windowIsRound) - || (Build.HARDWARE.contains("goldfish") - && SystemProperties.getBoolean(ViewRootImpl.PROPERTY_EMULATOR_CIRCULAR, false)); + return mContext.getResources().getConfiguration().isScreenRound(); } /** {@inheritDoc} */ diff --git a/services/core/java/com/android/server/wm/AccessibilityController.java b/services/core/java/com/android/server/wm/AccessibilityController.java index 91ce739..482ae24 100644 --- a/services/core/java/com/android/server/wm/AccessibilityController.java +++ b/services/core/java/com/android/server/wm/AccessibilityController.java @@ -432,8 +432,7 @@ final class AccessibilityController { mDrawBorderInset = (int) mBorderWidth / 2; mWindow = new ViewportWindow(mContext); - if (mContext.getResources().getBoolean( - com.android.internal.R.bool.config_windowIsRound)) { + if (mContext.getResources().getConfiguration().isScreenRound()) { mCircularPath = new Path(); mWindowManager.getDefaultDisplay().getRealSize(mTempPoint); final int centerXY = mTempPoint.x / 2; diff --git a/services/core/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java index e43861c..d94f5d9 100644 --- a/services/core/java/com/android/server/wm/WindowManagerService.java +++ b/services/core/java/com/android/server/wm/WindowManagerService.java @@ -5923,8 +5923,7 @@ public class WindowManagerService extends IWindowManager.Stub public void updateCircularDisplayMaskIfNeeded() { // we're fullscreen and not hosted in an ActivityView - if (mContext.getResources().getBoolean( - com.android.internal.R.bool.config_windowIsRound) + if (mContext.getResources().getConfiguration().isScreenRound() && mContext.getResources().getBoolean( com.android.internal.R.bool.config_windowShowCircularMask)) { // Device configuration calls for a circular display mask, but we only enable the mask |