From 967212cb542e6eeb308678367b53381bff984c31 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Sat, 13 Apr 2013 21:10:58 -0700 Subject: Implement stack splitting and task movement. Split stacks and move tasks between them. Layout the windows according to the new stack split. After layout content rectangles are known split the available area between all stack boxes. Then use those values for future layout. Provide stack contents to ActivityManager. Change-Id: I9746e6185445633810d506be514d0b7b540a7f99 --- .../internal/policy/impl/PhoneWindowManager.java | 26 +++++++++++++--------- 1 file changed, 15 insertions(+), 11 deletions(-) (limited to 'policy') diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 249ec4c..c089815 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -87,7 +87,6 @@ import android.view.WindowManager; import android.view.WindowManagerGlobal; import android.view.WindowManagerPolicy; import android.view.accessibility.AccessibilityEvent; -import android.view.accessibility.AccessibilityManager; import android.view.animation.Animation; import android.view.animation.AnimationUtils; @@ -202,13 +201,13 @@ public class PhoneWindowManager implements WindowManagerPolicy { // Vibrator pattern for haptic feedback of virtual key press. long[] mVirtualKeyVibePattern; - + // Vibrator pattern for a short vibration. long[] mKeyboardTapVibePattern; // Vibrator pattern for haptic feedback during boot when safe mode is disabled. long[] mSafeModeDisabledVibePattern; - + // Vibrator pattern for haptic feedback during boot when safe mode is enabled. long[] mSafeModeEnabledVibePattern; @@ -275,7 +274,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { boolean mOrientationSensorEnabled = false; int mCurrentAppOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED; boolean mHasSoftInput = false; - + int mPointerLocationMode = 0; // guarded by mLock // The last window we were told about in focusChanged. @@ -372,7 +371,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { static final Rect mTmpContentFrame = new Rect(); static final Rect mTmpVisibleFrame = new Rect(); static final Rect mTmpNavigationFrame = new Rect(); - + WindowState mTopFullscreenOpaqueWindowState; boolean mTopIsFullscreen; boolean mForceStatusBar; @@ -530,12 +529,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { updateRotation(false); } } - + class MyOrientationListener extends WindowOrientationListener { MyOrientationListener(Context context, Handler handler) { super(context, handler); } - + @Override public void onProposedRotationChanged(int rotation) { if (localLOGV) Log.v(TAG, "onProposedRotationChanged, rotation=" + rotation); @@ -1264,6 +1263,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { != PackageManager.PERMISSION_GRANTED; } + @Override public void adjustWindowParamsLw(WindowManager.LayoutParams attrs) { switch (attrs.type) { case TYPE_SYSTEM_OVERLAY: @@ -1292,11 +1292,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { } } - private boolean isBuiltInKeyboardVisible() { - return mHaveBuiltInKeyboard && !isHidden(mLidKeyboardAccessibility); - } - /** {@inheritDoc} */ + @Override public void adjustConfigurationLw(Configuration config, int keyboardPresence, int navigationPresence) { mHaveBuiltInKeyboard = (keyboardPresence & PRESENCE_INTERNAL) != 0; @@ -1321,6 +1318,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } /** {@inheritDoc} */ + @Override public int windowTypeToLayerLw(int type) { if (type >= FIRST_APPLICATION_WINDOW && type <= LAST_APPLICATION_WINDOW) { return 2; @@ -2746,6 +2744,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { } /** {@inheritDoc} */ + @Override public int getSystemDecorRectLw(Rect systemRect) { systemRect.left = mSystemLeft; systemRect.top = mSystemTop; @@ -2756,6 +2755,11 @@ public class PhoneWindowManager implements WindowManagerPolicy { return 0; } + @Override + public void getContentRectLw(Rect r) { + r.set(mContentLeft, mContentTop, mContentRight, mContentBottom); + } + void setAttachedWindowFrames(WindowState win, int fl, int adjust, WindowState attached, boolean insetDecors, Rect pf, Rect df, Rect of, Rect cf, Rect vf) { if (win.getSurfaceLayer() > mDockLayer && attached.getSurfaceLayer() < mDockLayer) { -- cgit v1.1