Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 86afc595 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Only inset IME by 48dp instead of 60dp when taskbar is present" into...

Merge "Only inset IME by 48dp instead of 60dp when taskbar is present" into sc-v2-dev am: 56925018 am: 1b578f3b

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

Change-Id: Idc3d1364d374fb33e5845f249be80ba3408c9b0c
parents b67c9eff 1b578f3b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -216,6 +216,7 @@

    <!-- Taskbar -->
    <dimen name="taskbar_size">@*android:dimen/taskbar_frame_height</dimen>
    <dimen name="taskbar_ime_size">48dp</dimen>
    <dimen name="taskbar_icon_touch_size">48dp</dimen>
    <dimen name="taskbar_icon_drag_icon_size">54dp</dimen>
    <dimen name="taskbar_folder_margin">16dp</dimen>
+25 −8
Original line number Diff line number Diff line
@@ -106,6 +106,9 @@ public class NavbarButtonsViewController {

    private final AnimatedFloat mTaskbarNavButtonTranslationY = new AnimatedFloat(
            this::updateNavButtonTranslationY);
    private final AnimatedFloat mTaskbarNavButtonTranslationYForIme = new AnimatedFloat(
            this::updateNavButtonTranslationY);
    // Only applies to mTaskbarNavButtonTranslationY
    private final AnimatedFloat mNavButtonTranslationYMultiplier = new AnimatedFloat(
            this::updateNavButtonTranslationY);
    private final AnimatedFloat mTaskbarNavButtonDarkIntensity = new AnimatedFloat(
@@ -162,14 +165,26 @@ public class NavbarButtonsViewController {
                .getKeyguardBgTaskbar(),
                flags -> (flags & FLAG_KEYGUARD_VISIBLE) == 0, AnimatedFloat.VALUE, 1, 0));

        // Make sure to remove nav bar buttons translation when notification shade is expanded.
        mPropertyHolders.add(new StatePropertyHolder(mNavButtonTranslationYMultiplier,
                flags -> (flags & FLAG_NOTIFICATION_SHADE_EXPANDED) != 0, AnimatedFloat.VALUE,
                0, 1));

        // Force nav buttons (specifically back button) to be visible during setup wizard.
        boolean isInSetup = !mContext.isUserSetupComplete();
        if (isThreeButtonNav || isInSetup) {
        boolean alwaysShowButtons = isThreeButtonNav || isInSetup;

        // Make sure to remove nav bar buttons translation when notification shade is expanded or
        // IME is showing (add separate translation for IME).
        int flagsToRemoveTranslation = FLAG_NOTIFICATION_SHADE_EXPANDED | FLAG_IME_VISIBLE;
        mPropertyHolders.add(new StatePropertyHolder(mNavButtonTranslationYMultiplier,
                flags -> (flags & flagsToRemoveTranslation) != 0, AnimatedFloat.VALUE,
                0, 1));
        // Center nav buttons in new height for IME.
        float transForIme = (mContext.getDeviceProfile().taskbarSize
                - mContext.getTaskbarHeightForIme()) / 2f;
        // For gesture nav, nav buttons only show for IME anyway so keep them translated down.
        float defaultButtonTransY = alwaysShowButtons ? 0 : transForIme;
        mPropertyHolders.add(new StatePropertyHolder(mTaskbarNavButtonTranslationYForIme,
                flags -> (flags & FLAG_IME_VISIBLE) != 0, AnimatedFloat.VALUE, transForIme,
                defaultButtonTransY));

        if (alwaysShowButtons) {
            initButtons(mNavButtonContainer, mEndContextualContainer,
                    mControllers.navButtonController);

@@ -408,8 +423,10 @@ public class NavbarButtonsViewController {
    }

    private void updateNavButtonTranslationY() {
        mNavButtonsView.setTranslationY(mTaskbarNavButtonTranslationY.value
                * mNavButtonTranslationYMultiplier.value);
        float normalTranslationY = mTaskbarNavButtonTranslationY.value
                * mNavButtonTranslationYMultiplier.value;
        float otherTranslationY = mTaskbarNavButtonTranslationYForIme.value;
        mNavButtonsView.setTranslationY(normalTranslationY + otherTranslationY);
    }

    private void updateNavButtonDarkIntensity() {
+21 −5
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo.Config;
import android.content.pm.LauncherApps;
import android.content.res.Resources;
import android.graphics.Insets;
import android.graphics.PixelFormat;
import android.graphics.Rect;
@@ -100,6 +101,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ

    private final WindowManager mWindowManager;
    private final @Nullable RoundedCorner mLeftCorner, mRightCorner;
    private final int mTaskbarHeightForIme;
    private WindowManager.LayoutParams mWindowLayoutParams;
    private boolean mIsFullscreen;
    // The size we should return to when we call setTaskbarWindowFullscreen(false)
@@ -128,10 +130,13 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
        mIsUserSetupComplete = SettingsCache.INSTANCE.get(this).getValue(
                Settings.Secure.getUriFor(Settings.Secure.USER_SETUP_COMPLETE), 0);

        float taskbarIconSize = getResources().getDimension(R.dimen.taskbar_icon_size);
        mDeviceProfile.updateIconSize(1, getResources());
        final Resources resources = getResources();
        float taskbarIconSize = resources.getDimension(R.dimen.taskbar_icon_size);
        mDeviceProfile.updateIconSize(1, resources);
        float iconScale = taskbarIconSize / mDeviceProfile.iconSizePx;
        mDeviceProfile.updateIconSize(iconScale, getResources());
        mDeviceProfile.updateIconSize(iconScale, resources);

        mTaskbarHeightForIme = resources.getDimensionPixelSize(R.dimen.taskbar_ime_size);

        mLayoutInflater = LayoutInflater.from(this).cloneInContext(this);

@@ -205,7 +210,7 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
        // Adjust the frame by the rounded corners (ie. leaving just the bar as the inset) when
        // the IME is showing
        mWindowLayoutParams.providedInternalImeInsets = Insets.of(0,
                getDefaultTaskbarWindowHeight() - mDeviceProfile.taskbarSize, 0, 0);
                getDefaultTaskbarWindowHeight() - mTaskbarHeightForIme, 0, 0);

        // Initialize controllers after all are constructed.
        mControllers.init(sharedState);
@@ -447,7 +452,9 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
        if (mWindowLayoutParams.height == height || mIsDestroyed) {
            return;
        }
        if (height != MATCH_PARENT) {
        if (height == MATCH_PARENT) {
            height = mDeviceProfile.heightPx;
        } else {
            mLastRequestedNonFullscreenHeight = height;
            if (mIsFullscreen) {
                // We still need to be fullscreen, so defer any change to our height until we call
@@ -458,6 +465,8 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
            }
        }
        mWindowLayoutParams.height = height;
        mWindowLayoutParams.providedInternalImeInsets =
                Insets.of(0, height - mTaskbarHeightForIme, 0, 0);
        mWindowManager.updateViewLayout(mDragLayer, mWindowLayoutParams);
    }

@@ -468,6 +477,13 @@ public class TaskbarActivityContext extends ContextThemeWrapper implements Activ
        return mDeviceProfile.taskbarSize + Math.max(getLeftCornerRadius(), getRightCornerRadius());
    }

    /**
     * Returns the bottom insets taskbar provides to the IME when IME is visible.
     */
    public int getTaskbarHeightForIme() {
        return mTaskbarHeightForIme;
    }

    protected void onTaskbarIconClicked(View view) {
        Object tag = view.getTag();
        if (tag instanceof Task) {