Loading core/java/android/view/WindowManagerImpl.java +10 −6 Original line number Diff line number Diff line Loading @@ -342,10 +342,12 @@ public class WindowManagerImpl implements WindowManager { return view; } if (view != null) { InputMethodManager imm = InputMethodManager.getInstance(view.getContext()); if (imm != null) { imm.windowDismissed(mViews[index].getWindowToken()); } } root.die(false); finishRemoveViewLocked(view, index); return view; Loading @@ -368,10 +370,12 @@ public class WindowManagerImpl implements WindowManager { removeItem(tmpParams, mParams, index); mParams = tmpParams; if (view != null) { view.assignParent(null); // func doesn't allow null... does it matter if we clear them? //view.setLayoutParams(null); } } public void closeAll(IBinder token, String who, String what) { synchronized (this) { Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/CompatModeButton.java +3 −2 Original line number Diff line number Diff line Loading @@ -54,8 +54,9 @@ public class CompatModeButton extends ImageView implements View.OnClickListener } public void refresh() { setVisibility( (mAM.getFrontActivityScreenCompatMode() == ActivityManager.COMPAT_MODE_NEVER) int mode = mAM.getFrontActivityScreenCompatMode(); setVisibility((mode == ActivityManager.COMPAT_MODE_NEVER || mode == ActivityManager.COMPAT_MODE_ALWAYS) ? View.GONE : View.VISIBLE ); Loading services/java/com/android/server/wm/WindowManagerService.java +33 −3 Original line number Diff line number Diff line Loading @@ -466,6 +466,7 @@ public class WindowManagerService extends IWindowManager.Stub Display mDisplay; final DisplayMetrics mDisplayMetrics = new DisplayMetrics(); final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics(); final DisplayMetrics mCompatDisplayMetrics = new DisplayMetrics(); H mH = new H(); Loading Loading @@ -5549,6 +5550,36 @@ public class WindowManagerService extends IWindowManager.Stub return sw; } private int reduceCompatConfigWidthSize(int curSize, int rotation, DisplayMetrics dm, int dw, int dh) { dm.unscaledWidthPixels = mPolicy.getNonDecorDisplayWidth(rotation, dw); dm.unscaledHeightPixels = mPolicy.getNonDecorDisplayHeight(rotation, dh); float scale = CompatibilityInfo.computeCompatibleScaling(dm, null); int size = (int)(((dm.unscaledWidthPixels / scale) / dm.density) + .5f); if (curSize == 0 || size < curSize) { curSize = size; } return curSize; } private int computeCompatSmallestWidth(boolean rotated, DisplayMetrics dm, int dw, int dh) { mTmpDisplayMetrics.setTo(dm); dm = mTmpDisplayMetrics; int unrotDw, unrotDh; if (rotated) { unrotDw = dh; unrotDh = dw; } else { unrotDw = dw; unrotDh = dh; } int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, dm, unrotDw, unrotDh); sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, dm, unrotDh, unrotDw); sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, dm, unrotDw, unrotDh); sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, dm, unrotDh, unrotDw); return sw; } boolean computeNewConfigurationLocked(Configuration config) { if (mDisplay == null) { return false; Loading Loading @@ -5613,8 +5644,7 @@ public class WindowManagerService extends IWindowManager.Stub config.compatScreenWidthDp = (int)(config.screenWidthDp / mCompatibleScreenScale); config.compatScreenHeightDp = (int)(config.screenHeightDp / mCompatibleScreenScale); config.compatSmallestScreenWidthDp = (int)(config.smallestScreenWidthDp / mCompatibleScreenScale); config.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, dm, dw, dh); // We need to determine the smallest width that will occur under normal // operation. To this, start with the base screen size and compute the Loading Loading @@ -8091,7 +8121,7 @@ public class WindowManagerService extends IWindowManager.Stub if (mDimAnimator == null) { mDimAnimator = new DimAnimator(mFxSession); } mDimAnimator.show(dw, dh); mDimAnimator.show(innerDw, innerDh); mDimAnimator.updateParameters(mContext.getResources(), w, currentTime); } Loading Loading
core/java/android/view/WindowManagerImpl.java +10 −6 Original line number Diff line number Diff line Loading @@ -342,10 +342,12 @@ public class WindowManagerImpl implements WindowManager { return view; } if (view != null) { InputMethodManager imm = InputMethodManager.getInstance(view.getContext()); if (imm != null) { imm.windowDismissed(mViews[index].getWindowToken()); } } root.die(false); finishRemoveViewLocked(view, index); return view; Loading @@ -368,10 +370,12 @@ public class WindowManagerImpl implements WindowManager { removeItem(tmpParams, mParams, index); mParams = tmpParams; if (view != null) { view.assignParent(null); // func doesn't allow null... does it matter if we clear them? //view.setLayoutParams(null); } } public void closeAll(IBinder token, String who, String what) { synchronized (this) { Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/CompatModeButton.java +3 −2 Original line number Diff line number Diff line Loading @@ -54,8 +54,9 @@ public class CompatModeButton extends ImageView implements View.OnClickListener } public void refresh() { setVisibility( (mAM.getFrontActivityScreenCompatMode() == ActivityManager.COMPAT_MODE_NEVER) int mode = mAM.getFrontActivityScreenCompatMode(); setVisibility((mode == ActivityManager.COMPAT_MODE_NEVER || mode == ActivityManager.COMPAT_MODE_ALWAYS) ? View.GONE : View.VISIBLE ); Loading
services/java/com/android/server/wm/WindowManagerService.java +33 −3 Original line number Diff line number Diff line Loading @@ -466,6 +466,7 @@ public class WindowManagerService extends IWindowManager.Stub Display mDisplay; final DisplayMetrics mDisplayMetrics = new DisplayMetrics(); final DisplayMetrics mTmpDisplayMetrics = new DisplayMetrics(); final DisplayMetrics mCompatDisplayMetrics = new DisplayMetrics(); H mH = new H(); Loading Loading @@ -5549,6 +5550,36 @@ public class WindowManagerService extends IWindowManager.Stub return sw; } private int reduceCompatConfigWidthSize(int curSize, int rotation, DisplayMetrics dm, int dw, int dh) { dm.unscaledWidthPixels = mPolicy.getNonDecorDisplayWidth(rotation, dw); dm.unscaledHeightPixels = mPolicy.getNonDecorDisplayHeight(rotation, dh); float scale = CompatibilityInfo.computeCompatibleScaling(dm, null); int size = (int)(((dm.unscaledWidthPixels / scale) / dm.density) + .5f); if (curSize == 0 || size < curSize) { curSize = size; } return curSize; } private int computeCompatSmallestWidth(boolean rotated, DisplayMetrics dm, int dw, int dh) { mTmpDisplayMetrics.setTo(dm); dm = mTmpDisplayMetrics; int unrotDw, unrotDh; if (rotated) { unrotDw = dh; unrotDh = dw; } else { unrotDw = dw; unrotDh = dh; } int sw = reduceCompatConfigWidthSize(0, Surface.ROTATION_0, dm, unrotDw, unrotDh); sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_90, dm, unrotDh, unrotDw); sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_180, dm, unrotDw, unrotDh); sw = reduceCompatConfigWidthSize(sw, Surface.ROTATION_270, dm, unrotDh, unrotDw); return sw; } boolean computeNewConfigurationLocked(Configuration config) { if (mDisplay == null) { return false; Loading Loading @@ -5613,8 +5644,7 @@ public class WindowManagerService extends IWindowManager.Stub config.compatScreenWidthDp = (int)(config.screenWidthDp / mCompatibleScreenScale); config.compatScreenHeightDp = (int)(config.screenHeightDp / mCompatibleScreenScale); config.compatSmallestScreenWidthDp = (int)(config.smallestScreenWidthDp / mCompatibleScreenScale); config.compatSmallestScreenWidthDp = computeCompatSmallestWidth(rotated, dm, dw, dh); // We need to determine the smallest width that will occur under normal // operation. To this, start with the base screen size and compute the Loading Loading @@ -8091,7 +8121,7 @@ public class WindowManagerService extends IWindowManager.Stub if (mDimAnimator == null) { mDimAnimator = new DimAnimator(mFxSession); } mDimAnimator.show(dw, dh); mDimAnimator.show(innerDw, innerDh); mDimAnimator.updateParameters(mContext.getResources(), w, currentTime); } Loading