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

Commit 60cacdf3 authored by Alex Chau's avatar Alex Chau Committed by Nick Chameyev
Browse files

Notify System UI about taskbar state

We want to move the rotation suggestion button to the middle
of the taskbar when it is visible and not stashed.
To do this we need to update System UI about the current
state of the taskbar.

Test: manual
Fixes: 187410455
Change-Id: Id918e10a44631362f7c3a8a8bb624ee80bdd3c8b
parents ec448c10 ba61b98f
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ import com.android.quickstep.AnimatedFloat;
import com.android.quickstep.RecentsAnimationCallbacks;
import com.android.quickstep.RecentsAnimationCallbacks.RecentsAnimationListener;
import com.android.quickstep.RecentsAnimationController;
import com.android.quickstep.SystemUiProxy;
import com.android.systemui.shared.recents.model.ThumbnailData;


@@ -152,6 +153,8 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
            TaskbarStashController stashController = mControllers.taskbarStashController;
            stashController.animateToIsStashed(stashController.isStashedInApp(), duration);
        }
        SystemUiProxy.INSTANCE.get(mContext).notifyTaskbarStatus(!isResumed,
                mControllers.taskbarStashController.isStashedInApp());
    }

    /**
+12 −8
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@ import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.DisplayController.Info;
import com.android.quickstep.SysUINavigationMode;
import com.android.quickstep.SysUINavigationMode.Mode;
import com.android.quickstep.SystemUiProxy;
import com.android.quickstep.TouchInteractionService;

/**
@@ -127,16 +128,19 @@ public class TaskbarManager implements DisplayController.DisplayInfoChangeListen

    private void recreateTaskbar() {
        destroyExistingTaskbar();
        if (!FeatureFlags.ENABLE_TASKBAR.get()) {
            return;
        }
        if (!mUserUnlocked) {
            return;
        }
        DeviceProfile dp = LauncherAppState.getIDP(mContext).getDeviceProfile(mContext);
        if (!dp.isTaskbarPresent) {

        DeviceProfile dp =
                mUserUnlocked ? LauncherAppState.getIDP(mContext).getDeviceProfile(mContext) : null;

        boolean isTaskBarEnabled =
                FeatureFlags.ENABLE_TASKBAR.get() && dp != null && dp.isTaskbarPresent;

        if (!isTaskBarEnabled) {
            SystemUiProxy.INSTANCE.get(mContext)
                    .notifyTaskbarStatus(/* visible */ false, /* stashed */ false);
            return;
        }

        mTaskbarActivityContext = new TaskbarActivityContext(
                mContext, dp.copy(mContext), mNavButtonController);
        mTaskbarActivityContext.init();
+6 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.util.MultiValueAlpha.AlphaProperty;
import com.android.quickstep.AnimatedFloat;
import com.android.quickstep.SystemUiProxy;

/**
 * Coordinates between controllers such as TaskbarViewController and StashedHandleViewController to
@@ -104,6 +105,9 @@ public class TaskbarStashController {

        mIsStashedInApp = supportsStashing()
                && mPrefs.getBoolean(SHARED_PREFS_STASHED_KEY, DEFAULT_STASHED_PREF);

        SystemUiProxy.INSTANCE.get(mActivity)
                .notifyTaskbarStatus(/* visible */ true, /* stashed */ mIsStashedInApp);
    }

    /**
@@ -166,6 +170,8 @@ public class TaskbarStashController {
            mPrefs.edit().putBoolean(SHARED_PREFS_STASHED_KEY, mIsStashedInApp).apply();
            boolean isStashed = mIsStashedInApp;
            if (wasStashed != isStashed) {
                SystemUiProxy.INSTANCE.get(mActivity)
                        .notifyTaskbarStatus(/* visible */ true, /* stashed */ isStashed);
                createAnimToIsStashed(isStashed, TASKBAR_STASH_DURATION).start();
                return true;
            }
+12 −0
Original line number Diff line number Diff line
@@ -397,6 +397,18 @@ public class SystemUiProxy implements ISystemUiProxy,
        }
    }

    @Override
    public void notifyTaskbarStatus(boolean visible, boolean stashed) {
        if (mSystemUiProxy != null) {
            try {
                mSystemUiProxy.notifyTaskbarStatus(visible, stashed);
            } catch (RemoteException e) {
                Log.w(TAG, "Failed call notifyTaskbarStatus with arg: " +
                        visible + ", " + stashed, e);
            }
        }
    }

    @Override
    public void handleImageBundleAsScreenshot(Bundle screenImageBundle, Rect locationInScreen,
            Insets visibleInsets, Task.TaskKey task) {