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

Commit 8aa99c72 authored by Schneider Victor-tulias's avatar Schneider Victor-tulias
Browse files

Fix taskbar 3-button truncation on rotate

- Fixed truncation issue in overview and home on rotation
- Fixed 3 buttons translating incorrectly when switching to/from overview

Fixes: 205057824
Fixes: 215482458
Test: Manual
Change-Id: I0b89010a2b6ed03a34c3443fc6e1edc81f8d9f20
parent bc4452a5
Loading
Loading
Loading
Loading
+24 −13
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import com.android.launcher3.util.OnboardingPrefs;
import com.android.quickstep.AnimatedFloat;
import com.android.quickstep.RecentsAnimationCallbacks;

import java.io.PrintWriter;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Stream;
@@ -57,7 +58,12 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
    private final BaseQuickstepLauncher mLauncher;

    private final DeviceProfile.OnDeviceProfileChangeListener mOnDeviceProfileChangeListener =
            this::onStashedInAppChanged;
            dp -> {
                onStashedInAppChanged(dp);
                if (mControllers != null && mControllers.taskbarViewController != null) {
                    mControllers.taskbarViewController.onRotationChanged(dp);
                }
            };

    // Initialized in init.
    private AnimatedFloat mTaskbarOverrideBackgroundAlpha;
@@ -65,15 +71,6 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
    private final TaskbarLauncherStateController
            mTaskbarLauncherStateController = new TaskbarLauncherStateController();

    private final DeviceProfile.OnDeviceProfileChangeListener mProfileChangeListener =
            new DeviceProfile.OnDeviceProfileChangeListener() {
                @Override
                public void onDeviceProfileChanged(DeviceProfile dp) {
                    mControllers.taskbarViewController.onRotationChanged(
                            mLauncher.getDeviceProfile());
                }
            };

    public LauncherTaskbarUIController(BaseQuickstepLauncher launcher) {
        mLauncher = launcher;
    }
@@ -93,7 +90,10 @@ public class LauncherTaskbarUIController extends TaskbarUIController {

        onStashedInAppChanged(mLauncher.getDeviceProfile());
        mLauncher.addOnDeviceProfileChangeListener(mOnDeviceProfileChangeListener);
        mLauncher.addOnDeviceProfileChangeListener(mProfileChangeListener);
    }

    public boolean supportsVisualStashing() {
        return mControllers.taskbarStashController.supportsVisualStashing();
    }

    @Override
@@ -102,9 +102,8 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
        onLauncherResumedOrPaused(false);
        mTaskbarLauncherStateController.onDestroy();

        mLauncher.removeOnDeviceProfileChangeListener(mOnDeviceProfileChangeListener);
        mLauncher.setTaskbarUIController(null);
        mLauncher.removeOnDeviceProfileChangeListener(mProfileChangeListener);
        mLauncher.removeOnDeviceProfileChangeListener(mOnDeviceProfileChangeListener);
        updateTaskTransitionSpec(true);
    }

@@ -271,4 +270,16 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
        // gesture ends, start drawing taskbar's background again since launcher might stop drawing.
        forceHideBackground(inProgress);
    }

    @Override
    public void dumpLogs(String prefix, PrintWriter pw) {
        super.dumpLogs(prefix, pw);

        pw.println(String.format(
                "%s\tmTaskbarOverrideBackgroundAlpha=%.2f",
                prefix,
                mTaskbarOverrideBackgroundAlpha.value));

        mTaskbarLauncherStateController.dumpLogs(prefix + "\t", pw);
    }
}
+3 −0
Original line number Diff line number Diff line
@@ -192,9 +192,12 @@ public class TaskbarControllers {
            return;
        }

        pw.println(String.format(
                "%s\tmAreAllControllersInitialized=%b", prefix, mAreAllControllersInitialized));
        for (LoggableTaskbarController controller : mControllersToLog) {
            controller.dumpLogs(prefix + "\t", pw);
        }
        uiController.dumpLogs(prefix + "\t", pw);
        rotationButtonController.dumpLogs(prefix + "\t", pw);
    }

+46 −0
Original line number Diff line number Diff line
@@ -42,7 +42,9 @@ import com.android.quickstep.views.RecentsView;
import com.android.systemui.animation.ViewRootSync;
import com.android.systemui.shared.recents.model.ThumbnailData;

import java.io.PrintWriter;
import java.util.HashMap;
import java.util.StringJoiner;
import java.util.function.Consumer;
import java.util.function.Supplier;

@@ -476,4 +478,48 @@ import java.util.function.Supplier;
            controller.applyState();
        }
    }

    private static String getStateString(int flags) {
        StringJoiner str = new StringJoiner("|");
        str.add((flags & FLAG_RESUMED) != 0 ? "FLAG_RESUMED" : "");
        str.add((flags & FLAG_RECENTS_ANIMATION_RUNNING) != 0
                ? "FLAG_RECENTS_ANIMATION_RUNNING" : "");
        str.add((flags & FLAG_TRANSITION_STATE_RUNNING) != 0
                ? "FLAG_TRANSITION_STATE_RUNNING" : "");
        return str.toString();
    }

    protected void dumpLogs(String prefix, PrintWriter pw) {
        pw.println(prefix + "TaskbarLauncherStateController:");

        pw.println(String.format(
                "%s\tmIconAlignmentForResumedState=%.2f",
                prefix,
                mIconAlignmentForResumedState.value));
        pw.println(String.format(
                "%s\tmIconAlignmentForGestureState=%.2f",
                prefix,
                mIconAlignmentForGestureState.value));
        pw.println(String.format(
                "%s\tmIconAlignmentForLauncherState=%.2f",
                prefix,
                mIconAlignmentForLauncherState.value));
        pw.println(String.format(
                "%s\tmTaskbarBackgroundAlpha=%.2f", prefix, mTaskbarBackgroundAlpha.value));
        pw.println(String.format(
                "%s\tmIconAlphaForHome=%.2f", prefix, mIconAlphaForHome.getValue()));
        pw.println(String.format("%s\tmPrevState=%s", prefix, getStateString(mPrevState)));
        pw.println(String.format("%s\tmState=%s", prefix, getStateString(mState)));
        pw.println(String.format("%s\tmLauncherState=%s", prefix, mLauncherState));
        pw.println(String.format(
                "%s\tmIsAnimatingToLauncherViaGesture=%b",
                prefix,
                mIsAnimatingToLauncherViaGesture));
        pw.println(String.format(
                "%s\tmIsAnimatingToLauncherViaResume=%b",
                prefix,
                mIsAnimatingToLauncherViaResume));
        pw.println(String.format(
                "%s\tmShouldDelayLauncherStateAnim=%b", prefix, mShouldDelayLauncherStateAnim));
    }
}
+1 −1
Original line number Diff line number Diff line
@@ -275,7 +275,7 @@ public class TaskbarStashController implements TaskbarControllers.LoggableTaskba
        return !mIsStashed && isInApp();
    }

    private boolean isInApp() {
    public boolean isInApp() {
        return hasAnyFlag(FLAGS_IN_APP);
    }

+9 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import androidx.annotation.CallSuper;
import com.android.launcher3.model.data.ItemInfo;
import com.android.launcher3.model.data.ItemInfoWithIcon;

import java.io.PrintWriter;
import java.util.stream.Stream;

/**
@@ -91,4 +92,12 @@ public class TaskbarUIController {
            stashController.applyState();
        }
    }

    @CallSuper
    protected void dumpLogs(String prefix, PrintWriter pw) {
        pw.println(String.format(
                "%sTaskbarUIController: using an instance of %s",
                prefix,
                getClass().getSimpleName()));
    }
}
Loading