Loading packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java +16 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,22 @@ public class Divider extends SystemUI { onUndockingTask(); } } @Override public void onActivityForcedResizable(String packageName, int taskId, int reason) { mDividerController.onActivityForcedResizable(packageName, taskId, reason); } @Override public void onActivityDismissingDockedStack() { mDividerController.onActivityDismissingSplitScreen(); } @Override public void onActivityLaunchOnSecondaryDisplayFailed() { mDividerController.onActivityLaunchOnSecondaryDisplayFailed(); } } ); } Loading packages/SystemUI/src/com/android/systemui/stackdivider/DividerController.java +20 −16 Original line number Diff line number Diff line Loading @@ -50,8 +50,7 @@ import java.util.function.Consumer; /** * Controls the docked stack divider. */ public class DividerController implements DividerView.DividerCallbacks, DisplayController.OnDisplaysChangedListener { public class DividerController implements DisplayController.OnDisplaysChangedListener { static final boolean DEBUG = false; private static final String TAG = "Divider"; Loading Loading @@ -257,8 +256,8 @@ public class DividerController implements DividerView.DividerCallbacks, mView = (DividerView) LayoutInflater.from(dctx).inflate(R.layout.docked_stack_divider, null); DisplayLayout displayLayout = mDisplayController.getDisplayLayout(mContext.getDisplayId()); mView.injectDependencies(mWindowManager, mDividerState, this, mSplits, mSplitLayout, mImePositionProcessor, mWindowManagerProxy); mView.injectDependencies(mWindowManager, mDividerState, mForcedResizableController, mSplits, mSplitLayout, mImePositionProcessor, mWindowManagerProxy); mView.setVisibility(mVisible ? View.VISIBLE : View.INVISIBLE); mView.setMinimizedDockStack(mMinimized, mHomeStackResizable, null /* transaction */); final int size = dctx.getResources().getDimensionPixelSize( Loading Loading @@ -397,6 +396,21 @@ public class DividerController implements DividerView.DividerCallbacks, } } /** Called when there's an activity forced resizable. */ public void onActivityForcedResizable(String packageName, int taskId, int reason) { mForcedResizableController.activityForcedResizable(packageName, taskId, reason); } /** Called when there's an activity dismissing split screen. */ public void onActivityDismissingSplitScreen() { mForcedResizableController.activityDismissingSplitScreen(); } /** Called when there's an activity launch on secondary display failed. */ public void onActivityLaunchOnSecondaryDisplayFailed() { mForcedResizableController.activityLaunchOnSecondaryDisplayFailed(); } /** Called when there's a task undocking. */ public void onUndockingTask() { if (mView != null) { Loading Loading @@ -426,17 +440,7 @@ public class DividerController implements DividerView.DividerCallbacks, mForcedResizableController.onAppTransitionFinished(); } @Override public void onDraggingStart() { mForcedResizableController.onDraggingStart(); } @Override public void onDraggingEnd() { mForcedResizableController.onDraggingEnd(); } /** Dumps current status of Divider.*/ /** Dumps current status of Split Screen. */ public void dump(PrintWriter pw) { pw.print(" mVisible="); pw.println(mVisible); pw.print(" mMinimized="); pw.println(mMinimized); Loading packages/SystemUI/src/com/android/systemui/stackdivider/ForcedResizableInfoActivityController.java +15 −38 Original line number Diff line number Diff line Loading @@ -28,15 +28,13 @@ import android.util.ArraySet; import android.widget.Toast; import com.android.systemui.R; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.TaskStackChangeListener; import java.util.function.Consumer; /** * Controller that decides when to show the {@link ForcedResizableInfoActivity}. */ public class ForcedResizableInfoActivityController { final class ForcedResizableInfoActivityController implements DividerView.DividerCallbacks { private static final String SELF_PACKAGE_NAME = "com.android.systemui"; Loading @@ -47,12 +45,7 @@ public class ForcedResizableInfoActivityController { private final ArraySet<String> mPackagesShownInSession = new ArraySet<>(); private boolean mDividerDragging; private final Runnable mTimeoutRunnable = new Runnable() { @Override public void run() { showPending(); } }; private final Runnable mTimeoutRunnable = this::showPending; private final Consumer<Boolean> mDockedStackExistsListener = exists -> { if (!exists) { Loading @@ -78,44 +71,28 @@ public class ForcedResizableInfoActivityController { public ForcedResizableInfoActivityController(Context context, DividerController dividerController) { mContext = context; ActivityManagerWrapper.getInstance().registerTaskStackListener( new TaskStackChangeListener() { @Override public void onActivityForcedResizable(String packageName, int taskId, int reason) { activityForcedResizable(packageName, taskId, reason); dividerController.registerInSplitScreenListener(mDockedStackExistsListener); } @Override public void onActivityDismissingDockedStack() { activityDismissingDockedStack(); public void onDraggingStart() { mDividerDragging = true; mHandler.removeCallbacks(mTimeoutRunnable); } @Override public void onActivityLaunchOnSecondaryDisplayFailed() { activityLaunchOnSecondaryDisplayFailed(); } }); dividerController.registerInSplitScreenListener(mDockedStackExistsListener); public void onDraggingEnd() { mDividerDragging = false; showPending(); } public void onAppTransitionFinished() { void onAppTransitionFinished() { if (!mDividerDragging) { showPending(); } } void onDraggingStart() { mDividerDragging = true; mHandler.removeCallbacks(mTimeoutRunnable); } void onDraggingEnd() { mDividerDragging = false; showPending(); } private void activityForcedResizable(String packageName, int taskId, int reason) { void activityForcedResizable(String packageName, int taskId, int reason) { if (debounce(packageName)) { return; } Loading @@ -123,12 +100,12 @@ public class ForcedResizableInfoActivityController { postTimeout(); } private void activityDismissingDockedStack() { void activityDismissingSplitScreen() { Toast.makeText(mContext, R.string.dock_non_resizeble_failed_to_dock_text, Toast.LENGTH_SHORT).show(); } private void activityLaunchOnSecondaryDisplayFailed() { void activityLaunchOnSecondaryDisplayFailed() { Toast.makeText(mContext, R.string.activity_launch_on_secondary_display_failed_text, Toast.LENGTH_SHORT).show(); } Loading Loading
packages/SystemUI/src/com/android/systemui/stackdivider/Divider.java +16 −0 Original line number Diff line number Diff line Loading @@ -78,6 +78,22 @@ public class Divider extends SystemUI { onUndockingTask(); } } @Override public void onActivityForcedResizable(String packageName, int taskId, int reason) { mDividerController.onActivityForcedResizable(packageName, taskId, reason); } @Override public void onActivityDismissingDockedStack() { mDividerController.onActivityDismissingSplitScreen(); } @Override public void onActivityLaunchOnSecondaryDisplayFailed() { mDividerController.onActivityLaunchOnSecondaryDisplayFailed(); } } ); } Loading
packages/SystemUI/src/com/android/systemui/stackdivider/DividerController.java +20 −16 Original line number Diff line number Diff line Loading @@ -50,8 +50,7 @@ import java.util.function.Consumer; /** * Controls the docked stack divider. */ public class DividerController implements DividerView.DividerCallbacks, DisplayController.OnDisplaysChangedListener { public class DividerController implements DisplayController.OnDisplaysChangedListener { static final boolean DEBUG = false; private static final String TAG = "Divider"; Loading Loading @@ -257,8 +256,8 @@ public class DividerController implements DividerView.DividerCallbacks, mView = (DividerView) LayoutInflater.from(dctx).inflate(R.layout.docked_stack_divider, null); DisplayLayout displayLayout = mDisplayController.getDisplayLayout(mContext.getDisplayId()); mView.injectDependencies(mWindowManager, mDividerState, this, mSplits, mSplitLayout, mImePositionProcessor, mWindowManagerProxy); mView.injectDependencies(mWindowManager, mDividerState, mForcedResizableController, mSplits, mSplitLayout, mImePositionProcessor, mWindowManagerProxy); mView.setVisibility(mVisible ? View.VISIBLE : View.INVISIBLE); mView.setMinimizedDockStack(mMinimized, mHomeStackResizable, null /* transaction */); final int size = dctx.getResources().getDimensionPixelSize( Loading Loading @@ -397,6 +396,21 @@ public class DividerController implements DividerView.DividerCallbacks, } } /** Called when there's an activity forced resizable. */ public void onActivityForcedResizable(String packageName, int taskId, int reason) { mForcedResizableController.activityForcedResizable(packageName, taskId, reason); } /** Called when there's an activity dismissing split screen. */ public void onActivityDismissingSplitScreen() { mForcedResizableController.activityDismissingSplitScreen(); } /** Called when there's an activity launch on secondary display failed. */ public void onActivityLaunchOnSecondaryDisplayFailed() { mForcedResizableController.activityLaunchOnSecondaryDisplayFailed(); } /** Called when there's a task undocking. */ public void onUndockingTask() { if (mView != null) { Loading Loading @@ -426,17 +440,7 @@ public class DividerController implements DividerView.DividerCallbacks, mForcedResizableController.onAppTransitionFinished(); } @Override public void onDraggingStart() { mForcedResizableController.onDraggingStart(); } @Override public void onDraggingEnd() { mForcedResizableController.onDraggingEnd(); } /** Dumps current status of Divider.*/ /** Dumps current status of Split Screen. */ public void dump(PrintWriter pw) { pw.print(" mVisible="); pw.println(mVisible); pw.print(" mMinimized="); pw.println(mMinimized); Loading
packages/SystemUI/src/com/android/systemui/stackdivider/ForcedResizableInfoActivityController.java +15 −38 Original line number Diff line number Diff line Loading @@ -28,15 +28,13 @@ import android.util.ArraySet; import android.widget.Toast; import com.android.systemui.R; import com.android.systemui.shared.system.ActivityManagerWrapper; import com.android.systemui.shared.system.TaskStackChangeListener; import java.util.function.Consumer; /** * Controller that decides when to show the {@link ForcedResizableInfoActivity}. */ public class ForcedResizableInfoActivityController { final class ForcedResizableInfoActivityController implements DividerView.DividerCallbacks { private static final String SELF_PACKAGE_NAME = "com.android.systemui"; Loading @@ -47,12 +45,7 @@ public class ForcedResizableInfoActivityController { private final ArraySet<String> mPackagesShownInSession = new ArraySet<>(); private boolean mDividerDragging; private final Runnable mTimeoutRunnable = new Runnable() { @Override public void run() { showPending(); } }; private final Runnable mTimeoutRunnable = this::showPending; private final Consumer<Boolean> mDockedStackExistsListener = exists -> { if (!exists) { Loading @@ -78,44 +71,28 @@ public class ForcedResizableInfoActivityController { public ForcedResizableInfoActivityController(Context context, DividerController dividerController) { mContext = context; ActivityManagerWrapper.getInstance().registerTaskStackListener( new TaskStackChangeListener() { @Override public void onActivityForcedResizable(String packageName, int taskId, int reason) { activityForcedResizable(packageName, taskId, reason); dividerController.registerInSplitScreenListener(mDockedStackExistsListener); } @Override public void onActivityDismissingDockedStack() { activityDismissingDockedStack(); public void onDraggingStart() { mDividerDragging = true; mHandler.removeCallbacks(mTimeoutRunnable); } @Override public void onActivityLaunchOnSecondaryDisplayFailed() { activityLaunchOnSecondaryDisplayFailed(); } }); dividerController.registerInSplitScreenListener(mDockedStackExistsListener); public void onDraggingEnd() { mDividerDragging = false; showPending(); } public void onAppTransitionFinished() { void onAppTransitionFinished() { if (!mDividerDragging) { showPending(); } } void onDraggingStart() { mDividerDragging = true; mHandler.removeCallbacks(mTimeoutRunnable); } void onDraggingEnd() { mDividerDragging = false; showPending(); } private void activityForcedResizable(String packageName, int taskId, int reason) { void activityForcedResizable(String packageName, int taskId, int reason) { if (debounce(packageName)) { return; } Loading @@ -123,12 +100,12 @@ public class ForcedResizableInfoActivityController { postTimeout(); } private void activityDismissingDockedStack() { void activityDismissingSplitScreen() { Toast.makeText(mContext, R.string.dock_non_resizeble_failed_to_dock_text, Toast.LENGTH_SHORT).show(); } private void activityLaunchOnSecondaryDisplayFailed() { void activityLaunchOnSecondaryDisplayFailed() { Toast.makeText(mContext, R.string.activity_launch_on_secondary_display_failed_text, Toast.LENGTH_SHORT).show(); } Loading