Merge "Fix positioning of split instruction and share targets with taskbar in overview" into tm-qpr-dev am: e2791f0cf6

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20132885

Change-Id: I563d31986ece6169cfe6cfca8f815b611277ba6b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Alex Chau
2022-10-11 14:33:16 +00:00
committed by Automerger Merge Worker
4 changed files with 22 additions and 6 deletions

View File

@@ -31,6 +31,7 @@ import androidx.annotation.Nullable;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Insettable;
import com.android.launcher3.R;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.MultiValueAlpha;
import com.android.launcher3.util.MultiValueAlpha.AlphaProperty;
@@ -258,7 +259,9 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
// If in 3-button mode, shift action buttons to accommodate 3-button layout.
// (Special exception for landscape tablets, where there is enough room and we don't need to
// shift the action buttons.)
if (mDp.areNavButtonsInline && !largeScreenLandscape) {
if (mDp.areNavButtonsInline && !largeScreenLandscape
// If taskbar is in overview, overview action has dedicated space above nav buttons
&& !FeatureFlags.ENABLE_TASKBAR_IN_OVERVIEW.get()) {
// Add extra horizontal spacing
int additionalPadding = mDp.hotseatBarEndOffset;
if (isLayoutRtl()) {
@@ -288,7 +291,8 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
return 0;
}
if (!mDp.isGestureMode && mDp.isTaskbarPresent) {
if (!mDp.isGestureMode && mDp.isTaskbarPresent
&& !FeatureFlags.ENABLE_TASKBAR_IN_OVERVIEW.get()) {
return mDp.getOverviewActionsClaimedSpaceBelow();
}

View File

@@ -29,6 +29,7 @@ import androidx.appcompat.widget.AppCompatTextView;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.statemanager.StatefulActivity;
import com.android.launcher3.util.DisplayController;
@@ -114,7 +115,9 @@ public class SplitInstructionsView extends FrameLayout {
int getThreeButtonNavShift() {
DeviceProfile dp = mLauncher.getDeviceProfile();
if ((DisplayController.getNavigationMode(getContext()) == THREE_BUTTONS)
&& ((dp.isTwoPanels) || (dp.isTablet && !dp.isLandscape))) {
&& ((dp.isTwoPanels) || (dp.isTablet && !dp.isLandscape))
// If taskbar is in overview, overview action has dedicated space above nav buttons
&& !FeatureFlags.ENABLE_TASKBAR_IN_OVERVIEW.get()) {
int navButtonWidth = getResources().getDimensionPixelSize(
R.dimen.taskbar_nav_buttons_size);
int extraMargin = getResources().getDimensionPixelSize(

View File

@@ -1272,7 +1272,9 @@ public class DeviceProfile {
* Returns the number of pixels required below OverviewActions excluding insets.
*/
public int getOverviewActionsClaimedSpaceBelow() {
if (isTaskbarPresent && !isGestureMode) {
if (isTaskbarPresent && !isGestureMode
// If taskbar is in overview, overview action has dedicated space above nav buttons
&& !FeatureFlags.ENABLE_TASKBAR_IN_OVERVIEW.get()) {
// Align vertically to where nav buttons are.
return ((taskbarSize - overviewActionsHeight) / 2) + getTaskbarOffsetY();
}

View File

@@ -50,6 +50,7 @@ import android.widget.LinearLayout;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.SplitConfigurationOptions;
import com.android.launcher3.util.SplitConfigurationOptions.SplitBounds;
@@ -524,7 +525,9 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
out.setRotation(getDegreesRotated());
int distanceToEdge;
if ((DisplayController.getNavigationMode(out.getContext()) == THREE_BUTTONS)
&& (dp.isTwoPanels || dp.isTablet)) {
&& (dp.isTwoPanels || dp.isTablet)
// If taskbar is in overview, overview action has dedicated space above nav buttons
&& !FeatureFlags.ENABLE_TASKBAR_IN_OVERVIEW.get()) {
// If 3-button nav is active, align the splitInstructionsView with it.
distanceToEdge = dp.getTaskbarOffsetY()
+ ((dp.taskbarSize - splitInstructionsHeight) / 2);
@@ -561,8 +564,12 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
int insetCorrectionX = (dp.getInsets().right - dp.getInsets().left) / 2;
// Adjust for any insets on the bottom edge
int insetCorrectionY = dp.getInsets().bottom;
// Adjust for taskbar in overview
int taskbarCorrectionY =
dp.isTaskbarPresent && FeatureFlags.ENABLE_TASKBAR_IN_OVERVIEW.get()
? dp.taskbarSize : 0;
out.setTranslationX(insetCorrectionX + threeButtonNavShift);
out.setTranslationY(-distanceToEdge + insetCorrectionY);
out.setTranslationY(-distanceToEdge + insetCorrectionY - taskbarCorrectionY);
FrameLayout.LayoutParams lp = (FrameLayout.LayoutParams) out.getLayoutParams();
lp.gravity = CENTER_HORIZONTAL | BOTTOM;
out.setLayoutParams(lp);