Loading quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java +1 −1 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ public final class RecentsViewStateController extends ANIM_OVERVIEW_ACTIONS_FADE, LINEAR)); float splitPlaceholderAlpha = state.areElementsVisible(mLauncher, SPLIT_PLACHOLDER_VIEW) ? 0.7f : 0; 0.85f : 0; propertySetter.setFloat(mRecentsView.getSplitPlaceholder(), ALPHA_FLOAT, splitPlaceholderAlpha, LINEAR); } Loading quickstep/src/com/android/quickstep/util/SplitSelectStateController.java +27 −0 Original line number Diff line number Diff line Loading @@ -16,16 +16,20 @@ package com.android.quickstep.util; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT; import android.animation.AnimatorSet; import android.app.ActivityOptions; import android.content.res.Resources; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.util.Pair; import android.view.Gravity; import android.view.SurfaceControl; import android.window.TransitionInfo; Loading @@ -33,7 +37,10 @@ import androidx.annotation.Nullable; import com.android.launcher3.BaseActivity; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.InsettableFrameLayout; import com.android.launcher3.LauncherAnimationRunner; import com.android.launcher3.R; import com.android.launcher3.WrappedAnimationRunnerImpl; import com.android.launcher3.WrappedLauncherAnimationRunner; import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption; Loading Loading @@ -115,6 +122,26 @@ public class SplitSelectStateController { resetState(); } /** * @return {@link InsettableFrameLayout.LayoutParams} to correctly position the * split placeholder view */ public InsettableFrameLayout.LayoutParams getLayoutParamsForActivePosition(Resources resources, DeviceProfile deviceProfile) { InsettableFrameLayout.LayoutParams params = new InsettableFrameLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT); boolean topLeftPosition = mInitialPosition.mStagePosition == STAGE_POSITION_TOP_OR_LEFT; if (deviceProfile.isLandscape) { params.width = (int) resources.getDimension(R.dimen.split_placeholder_size); params.gravity = topLeftPosition ? Gravity.START : Gravity.END; } else { params.height = (int) resources.getDimension(R.dimen.split_placeholder_size); params.gravity = Gravity.TOP; } return params; } @Nullable public SplitPositionOption getActiveSplitPositionOption() { return mInitialPosition; Loading quickstep/src/com/android/quickstep/views/RecentsView.java +7 −1 Original line number Diff line number Diff line Loading @@ -145,6 +145,7 @@ import com.android.quickstep.util.LayoutUtils; import com.android.quickstep.util.MultiValueUpdateListener; import com.android.quickstep.util.RecentsOrientedState; import com.android.quickstep.util.SplitScreenBounds; import com.android.quickstep.util.SplitSelectStateController; import com.android.quickstep.util.SurfaceTransactionApplier; import com.android.quickstep.util.TaskViewSimulator; import com.android.quickstep.util.TransformParams; Loading Loading @@ -2753,9 +2754,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T public void initiateSplitSelect(TaskView taskView, SplitPositionOption splitPositionOption) { mSplitHiddenTaskView = taskView; mSplitPlaceholderView.getSplitController().setInitialTaskSelect(taskView, SplitSelectStateController splitController = mSplitPlaceholderView.getSplitController(); splitController.setInitialTaskSelect(taskView, splitPositionOption); mSplitHiddenTaskViewIndex = indexOfChild(taskView); mSplitPlaceholderView.setLayoutParams( splitController.getLayoutParamsForActivePosition(getResources(), mActivity.getDeviceProfile())); mSplitPlaceholderView.setIcon(taskView.getIconView()); } public PendingAnimation createSplitSelectInitAnimation() { Loading quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java +15 −2 Original line number Diff line number Diff line Loading @@ -19,11 +19,12 @@ package com.android.quickstep.views; import android.content.Context; import android.util.AttributeSet; import android.util.FloatProperty; import android.view.View; import android.view.Gravity; import android.widget.FrameLayout; import com.android.quickstep.util.SplitSelectStateController; public class SplitPlaceholderView extends View { public class SplitPlaceholderView extends FrameLayout { public static final FloatProperty<SplitPlaceholderView> ALPHA_FLOAT = new FloatProperty<SplitPlaceholderView>("SplitViewAlpha") { Loading @@ -40,6 +41,7 @@ public class SplitPlaceholderView extends View { }; private SplitSelectStateController mSplitController; private IconView mIcon; public SplitPlaceholderView(Context context, AttributeSet attrs) { super(context, attrs); Loading @@ -52,4 +54,15 @@ public class SplitPlaceholderView extends View { public SplitSelectStateController getSplitController() { return mSplitController; } public void setIcon(IconView icon) { if (mIcon == null) { mIcon = new IconView(getContext()); addView(mIcon); } mIcon.setDrawable(icon.getDrawable()); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(icon.getLayoutParams()); params.gravity = Gravity.CENTER; mIcon.setLayoutParams(params); } } src/com/android/launcher3/touch/PortraitPagedViewHandler.java +18 −8 Original line number Diff line number Diff line Loading @@ -311,12 +311,21 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { @Override public List<SplitPositionOption> getSplitPositionOptions(DeviceProfile dp) { List<SplitPositionOption> options = new ArrayList<>(1); // Add both left and right options if we're in tablet mode // TODO: Add in correct icons if (dp.isSeascape()) { // or seascape // Add left/right options if (dp.isTablet && dp.isLandscape) { options.add(new SplitPositionOption( R.drawable.ic_split_screen, R.string.split_screen_position_right, STAGE_POSITION_BOTTOM_OR_RIGHT, STAGE_TYPE_MAIN)); options.add(new SplitPositionOption( R.drawable.ic_split_screen, R.string.split_screen_position_left, STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN)); } else { if (dp.isSeascape()) { // Add left/right options options.add(new SplitPositionOption( R.drawable.ic_split_screen, R.string.split_screen_position_right, STAGE_POSITION_BOTTOM_OR_RIGHT, STAGE_TYPE_MAIN)); } else if (dp.isLandscape) { options.add(new SplitPositionOption( R.drawable.ic_split_screen, R.string.split_screen_position_left, Loading @@ -327,6 +336,7 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { R.drawable.ic_split_screen, R.string.split_screen_position_top, STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN)); } } return options; } Loading Loading
quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java +1 −1 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ public final class RecentsViewStateController extends ANIM_OVERVIEW_ACTIONS_FADE, LINEAR)); float splitPlaceholderAlpha = state.areElementsVisible(mLauncher, SPLIT_PLACHOLDER_VIEW) ? 0.7f : 0; 0.85f : 0; propertySetter.setFloat(mRecentsView.getSplitPlaceholder(), ALPHA_FLOAT, splitPlaceholderAlpha, LINEAR); } Loading
quickstep/src/com/android/quickstep/util/SplitSelectStateController.java +27 −0 Original line number Diff line number Diff line Loading @@ -16,16 +16,20 @@ package com.android.quickstep.util; import static android.view.ViewGroup.LayoutParams.MATCH_PARENT; import static com.android.launcher3.util.Executors.MAIN_EXECUTOR; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT; import android.animation.AnimatorSet; import android.app.ActivityOptions; import android.content.res.Resources; import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.util.Pair; import android.view.Gravity; import android.view.SurfaceControl; import android.window.TransitionInfo; Loading @@ -33,7 +37,10 @@ import androidx.annotation.Nullable; import com.android.launcher3.BaseActivity; import com.android.launcher3.BaseQuickstepLauncher; import com.android.launcher3.DeviceProfile; import com.android.launcher3.InsettableFrameLayout; import com.android.launcher3.LauncherAnimationRunner; import com.android.launcher3.R; import com.android.launcher3.WrappedAnimationRunnerImpl; import com.android.launcher3.WrappedLauncherAnimationRunner; import com.android.launcher3.util.SplitConfigurationOptions.SplitPositionOption; Loading Loading @@ -115,6 +122,26 @@ public class SplitSelectStateController { resetState(); } /** * @return {@link InsettableFrameLayout.LayoutParams} to correctly position the * split placeholder view */ public InsettableFrameLayout.LayoutParams getLayoutParamsForActivePosition(Resources resources, DeviceProfile deviceProfile) { InsettableFrameLayout.LayoutParams params = new InsettableFrameLayout.LayoutParams(MATCH_PARENT, MATCH_PARENT); boolean topLeftPosition = mInitialPosition.mStagePosition == STAGE_POSITION_TOP_OR_LEFT; if (deviceProfile.isLandscape) { params.width = (int) resources.getDimension(R.dimen.split_placeholder_size); params.gravity = topLeftPosition ? Gravity.START : Gravity.END; } else { params.height = (int) resources.getDimension(R.dimen.split_placeholder_size); params.gravity = Gravity.TOP; } return params; } @Nullable public SplitPositionOption getActiveSplitPositionOption() { return mInitialPosition; Loading
quickstep/src/com/android/quickstep/views/RecentsView.java +7 −1 Original line number Diff line number Diff line Loading @@ -145,6 +145,7 @@ import com.android.quickstep.util.LayoutUtils; import com.android.quickstep.util.MultiValueUpdateListener; import com.android.quickstep.util.RecentsOrientedState; import com.android.quickstep.util.SplitScreenBounds; import com.android.quickstep.util.SplitSelectStateController; import com.android.quickstep.util.SurfaceTransactionApplier; import com.android.quickstep.util.TaskViewSimulator; import com.android.quickstep.util.TransformParams; Loading Loading @@ -2753,9 +2754,14 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T public void initiateSplitSelect(TaskView taskView, SplitPositionOption splitPositionOption) { mSplitHiddenTaskView = taskView; mSplitPlaceholderView.getSplitController().setInitialTaskSelect(taskView, SplitSelectStateController splitController = mSplitPlaceholderView.getSplitController(); splitController.setInitialTaskSelect(taskView, splitPositionOption); mSplitHiddenTaskViewIndex = indexOfChild(taskView); mSplitPlaceholderView.setLayoutParams( splitController.getLayoutParamsForActivePosition(getResources(), mActivity.getDeviceProfile())); mSplitPlaceholderView.setIcon(taskView.getIconView()); } public PendingAnimation createSplitSelectInitAnimation() { Loading
quickstep/src/com/android/quickstep/views/SplitPlaceholderView.java +15 −2 Original line number Diff line number Diff line Loading @@ -19,11 +19,12 @@ package com.android.quickstep.views; import android.content.Context; import android.util.AttributeSet; import android.util.FloatProperty; import android.view.View; import android.view.Gravity; import android.widget.FrameLayout; import com.android.quickstep.util.SplitSelectStateController; public class SplitPlaceholderView extends View { public class SplitPlaceholderView extends FrameLayout { public static final FloatProperty<SplitPlaceholderView> ALPHA_FLOAT = new FloatProperty<SplitPlaceholderView>("SplitViewAlpha") { Loading @@ -40,6 +41,7 @@ public class SplitPlaceholderView extends View { }; private SplitSelectStateController mSplitController; private IconView mIcon; public SplitPlaceholderView(Context context, AttributeSet attrs) { super(context, attrs); Loading @@ -52,4 +54,15 @@ public class SplitPlaceholderView extends View { public SplitSelectStateController getSplitController() { return mSplitController; } public void setIcon(IconView icon) { if (mIcon == null) { mIcon = new IconView(getContext()); addView(mIcon); } mIcon.setDrawable(icon.getDrawable()); FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(icon.getLayoutParams()); params.gravity = Gravity.CENTER; mIcon.setLayoutParams(params); } }
src/com/android/launcher3/touch/PortraitPagedViewHandler.java +18 −8 Original line number Diff line number Diff line Loading @@ -311,12 +311,21 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { @Override public List<SplitPositionOption> getSplitPositionOptions(DeviceProfile dp) { List<SplitPositionOption> options = new ArrayList<>(1); // Add both left and right options if we're in tablet mode // TODO: Add in correct icons if (dp.isSeascape()) { // or seascape // Add left/right options if (dp.isTablet && dp.isLandscape) { options.add(new SplitPositionOption( R.drawable.ic_split_screen, R.string.split_screen_position_right, STAGE_POSITION_BOTTOM_OR_RIGHT, STAGE_TYPE_MAIN)); options.add(new SplitPositionOption( R.drawable.ic_split_screen, R.string.split_screen_position_left, STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN)); } else { if (dp.isSeascape()) { // Add left/right options options.add(new SplitPositionOption( R.drawable.ic_split_screen, R.string.split_screen_position_right, STAGE_POSITION_BOTTOM_OR_RIGHT, STAGE_TYPE_MAIN)); } else if (dp.isLandscape) { options.add(new SplitPositionOption( R.drawable.ic_split_screen, R.string.split_screen_position_left, Loading @@ -327,6 +336,7 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { R.drawable.ic_split_screen, R.string.split_screen_position_top, STAGE_POSITION_TOP_OR_LEFT, STAGE_TYPE_MAIN)); } } return options; } Loading