Place split selection placeholder view based on option selected
* Add first split app's choosen icon inside the view TODO: Update animation of where selected app goes. Bug: 181704764 Test: Tested tablet + phone, real and fake landscape Change-Id: Ia3c635b056f2ac3812a0df001bbbb38bde26f6af
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user