Loading packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java +5 −0 Original line number Diff line number Diff line Loading @@ -401,6 +401,7 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks, return; } mMinimized = minimized; WindowManagerProxy.applyPrimaryFocusable(mSplits, !mMinimized); mView.setMinimizedDockStack(minimized, getAnimDuration(), mHomeStackResizable); updateTouchable(); }); Loading Loading @@ -504,6 +505,7 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks, final boolean wasMinimized = mMinimized; mMinimized = true; setHomeStackResizable(mSplits.mSecondary.isResizable()); WindowManagerProxy.applyPrimaryFocusable(mSplits, false /* focusable */); if (!inSplitMode()) { // Wasn't in split-mode yet, so enter now. if (DEBUG) { Loading @@ -521,6 +523,9 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks, } void ensureNormalSplit() { if (mMinimized) { WindowManagerProxy.applyPrimaryFocusable(mSplits, true /* focusable */); } if (!inSplitMode()) { // Wasn't in split-mode, so enter now. if (DEBUG) { Loading packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java +13 −0 Original line number Diff line number Diff line Loading @@ -292,10 +292,23 @@ public class WindowManagerProxy { for (int i = freeHomeAndRecents.size() - 1; i >= 0; --i) { wct.setBounds(freeHomeAndRecents.get(i).token, null); } // Reset focusable to true wct.setFocusable(tiles.mPrimary.token, true /* focusable */); ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct, null /* organizer */); } catch (RemoteException e) { Log.w(TAG, "Failed to remove stack: " + e); } } static void applyPrimaryFocusable(SplitScreenTaskOrganizer splits, boolean focusable) { try { WindowContainerTransaction wct = new WindowContainerTransaction(); wct.setFocusable(splits.mPrimary.token, focusable); ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct, null /* organizer */); } catch (RemoteException e) { Log.w(TAG, "Error setting focusability: " + e); } } } services/core/java/com/android/server/wm/ActivityStack.java +2 −2 Original line number Diff line number Diff line Loading @@ -1202,8 +1202,8 @@ class ActivityStack extends Task { @Override boolean isFocusable() { return super.isFocusable() && !(inSplitScreenPrimaryWindowingMode() && mRootWindowContainer.mIsDockMinimized); // Special check for tile which isn't really in the hierarchy return mTile != null ? mTile.isFocusable() : super.isFocusable(); } boolean isTopActivityFocusable() { Loading services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +0 −6 Original line number Diff line number Diff line Loading @@ -168,12 +168,6 @@ public abstract class ActivityTaskManagerInternal { */ public abstract List<IBinder> getTopVisibleActivities(); /** * Callback for window manager to let activity manager know that docked stack changes its * minimized state. */ public abstract void notifyDockedStackMinimizedChanged(boolean minimized); /** * Notify listeners that contents are drawn for the first time on a single task display. * Loading services/core/java/com/android/server/wm/ActivityTaskManagerService.java +0 −7 Original line number Diff line number Diff line Loading @@ -6135,13 +6135,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } @Override public void notifyDockedStackMinimizedChanged(boolean minimized) { synchronized (mGlobalLock) { mRootWindowContainer.setDockedStackMinimized(minimized); } } @Override public int startActivitiesAsPackage(String packageName, @Nullable String featureId, int userId, Intent[] intents, Bundle bOptions) { Loading Loading
packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java +5 −0 Original line number Diff line number Diff line Loading @@ -401,6 +401,7 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks, return; } mMinimized = minimized; WindowManagerProxy.applyPrimaryFocusable(mSplits, !mMinimized); mView.setMinimizedDockStack(minimized, getAnimDuration(), mHomeStackResizable); updateTouchable(); }); Loading Loading @@ -504,6 +505,7 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks, final boolean wasMinimized = mMinimized; mMinimized = true; setHomeStackResizable(mSplits.mSecondary.isResizable()); WindowManagerProxy.applyPrimaryFocusable(mSplits, false /* focusable */); if (!inSplitMode()) { // Wasn't in split-mode yet, so enter now. if (DEBUG) { Loading @@ -521,6 +523,9 @@ public class Divider extends SystemUI implements DividerView.DividerCallbacks, } void ensureNormalSplit() { if (mMinimized) { WindowManagerProxy.applyPrimaryFocusable(mSplits, true /* focusable */); } if (!inSplitMode()) { // Wasn't in split-mode, so enter now. if (DEBUG) { Loading
packages/SystemUI/src/com/android/systemui/stackdivider/WindowManagerProxy.java +13 −0 Original line number Diff line number Diff line Loading @@ -292,10 +292,23 @@ public class WindowManagerProxy { for (int i = freeHomeAndRecents.size() - 1; i >= 0; --i) { wct.setBounds(freeHomeAndRecents.get(i).token, null); } // Reset focusable to true wct.setFocusable(tiles.mPrimary.token, true /* focusable */); ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct, null /* organizer */); } catch (RemoteException e) { Log.w(TAG, "Failed to remove stack: " + e); } } static void applyPrimaryFocusable(SplitScreenTaskOrganizer splits, boolean focusable) { try { WindowContainerTransaction wct = new WindowContainerTransaction(); wct.setFocusable(splits.mPrimary.token, focusable); ActivityTaskManager.getTaskOrganizerController().applyContainerTransaction(wct, null /* organizer */); } catch (RemoteException e) { Log.w(TAG, "Error setting focusability: " + e); } } }
services/core/java/com/android/server/wm/ActivityStack.java +2 −2 Original line number Diff line number Diff line Loading @@ -1202,8 +1202,8 @@ class ActivityStack extends Task { @Override boolean isFocusable() { return super.isFocusable() && !(inSplitScreenPrimaryWindowingMode() && mRootWindowContainer.mIsDockMinimized); // Special check for tile which isn't really in the hierarchy return mTile != null ? mTile.isFocusable() : super.isFocusable(); } boolean isTopActivityFocusable() { Loading
services/core/java/com/android/server/wm/ActivityTaskManagerInternal.java +0 −6 Original line number Diff line number Diff line Loading @@ -168,12 +168,6 @@ public abstract class ActivityTaskManagerInternal { */ public abstract List<IBinder> getTopVisibleActivities(); /** * Callback for window manager to let activity manager know that docked stack changes its * minimized state. */ public abstract void notifyDockedStackMinimizedChanged(boolean minimized); /** * Notify listeners that contents are drawn for the first time on a single task display. * Loading
services/core/java/com/android/server/wm/ActivityTaskManagerService.java +0 −7 Original line number Diff line number Diff line Loading @@ -6135,13 +6135,6 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub { } } @Override public void notifyDockedStackMinimizedChanged(boolean minimized) { synchronized (mGlobalLock) { mRootWindowContainer.setDockedStackMinimized(minimized); } } @Override public int startActivitiesAsPackage(String packageName, @Nullable String featureId, int userId, Intent[] intents, Bundle bOptions) { Loading