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

Commit d5500548 authored by Sunny Goyal's avatar Sunny Goyal
Browse files

Revert^2 "Moving taskbar lifecycle to TouchInteractionService"

430465a3
Bug: 187353581
Change-Id: I7b2280d16adfafd3e85ffc1d22e32d0c00d12b67
parent fd3ad5d7
Loading
Loading
Loading
Loading
+22 −2
Original line number Diff line number Diff line
@@ -22,10 +22,30 @@

    <com.android.launcher3.taskbar.TaskbarView
        android:id="@+id/taskbar_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:forceHasOverlappingRendering="false"
        android:layout_gravity="bottom" >

        <LinearLayout
            android:id="@+id/system_button_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:paddingLeft="@dimen/taskbar_nav_buttons_spacing"
            android:paddingRight="@dimen/taskbar_nav_buttons_spacing"
            android:forceHasOverlappingRendering="false"
            android:gravity="center" />

        <LinearLayout
            android:id="@+id/hotseat_icons_layout"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:forceHasOverlappingRendering="false"
            android:gravity="center" />

    </com.android.launcher3.taskbar.TaskbarView>

    <com.android.launcher3.taskbar.ImeBarView
        android:id="@+id/ime_bar_view"
        android:layout_width="wrap_content"
+0 −26
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2021 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<com.android.launcher3.taskbar.TaskbarView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/taskbar_view"
    android:layout_width="match_parent"
    android:layout_height="@dimen/taskbar_size"
    android:background="@android:color/transparent"
    android:layout_gravity="bottom"
    android:gravity="center"
    android:visibility="gone" />
+1 −0
Original line number Diff line number Diff line
@@ -149,4 +149,5 @@
    <!-- Note that this applies to both sides of all icons, so visible space is double this. -->
    <dimen name="taskbar_icon_spacing">8dp</dimen>
    <dimen name="taskbar_folder_margin">16dp</dimen>
    <dimen name="taskbar_nav_buttons_spacing">16dp</dimen>
</resources>
+23 −67
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import static com.android.launcher3.LauncherState.FLAG_HIDE_BACK_BUTTON;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.NO_OFFSET;
import static com.android.launcher3.model.data.ItemInfo.NO_MATCHING_ID;
import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN;
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS;
import static com.android.quickstep.util.NavigationModeFeatureFlag.LIVE_TILE;
@@ -31,7 +30,6 @@ import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.app.ActivityOptions;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.IntentSender;
import android.content.ServiceConnection;
@@ -52,13 +50,11 @@ import com.android.launcher3.proxy.StartActivityParams;
import com.android.launcher3.statehandlers.BackButtonAlphaHandler;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.statemanager.StateManager.StateHandler;
import com.android.launcher3.taskbar.TaskbarActivityContext;
import com.android.launcher3.taskbar.TaskbarController;
import com.android.launcher3.taskbar.TaskbarManager;
import com.android.launcher3.taskbar.TaskbarStateHandler;
import com.android.launcher3.taskbar.TaskbarView;
import com.android.launcher3.uioverrides.RecentsViewStateController;
import com.android.launcher3.util.ActivityOptionsWrapper;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.ObjectWrapper;
import com.android.launcher3.util.UiThreadHelper;
import com.android.quickstep.RecentsModel;
@@ -68,6 +64,7 @@ import com.android.quickstep.SysUINavigationMode.NavigationModeChangeListener;
import com.android.quickstep.SystemUiProxy;
import com.android.quickstep.TaskUtils;
import com.android.quickstep.TouchInteractionService;
import com.android.quickstep.TouchInteractionService.TISBinder;
import com.android.quickstep.util.RemoteAnimationProvider;
import com.android.quickstep.util.RemoteFadeOutAnimationListener;
import com.android.quickstep.util.SplitSelectStateController;
@@ -89,8 +86,6 @@ public abstract class BaseQuickstepLauncher extends Launcher

    private DepthController mDepthController = new DepthController(this);
    private QuickstepTransitionManager mAppTransitionManager;
    private ServiceConnection mTisBinderConnection;
    protected TouchInteractionService.TISBinder mTisBinder;

    /**
     * Reusable command for applying the back button alpha on the background thread.
@@ -101,8 +96,20 @@ public abstract class BaseQuickstepLauncher extends Launcher

    private OverviewActionsView mActionsView;

    private @Nullable TaskbarManager mTaskbarManager;
    private @Nullable TaskbarController mTaskbarController;
    private final ServiceConnection mTisBinderConnection = new ServiceConnection() {
        @Override
        public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
            mTaskbarManager = ((TISBinder) iBinder).getTaskbarManager();
            mTaskbarManager.setLauncher(BaseQuickstepLauncher.this);
        }

        @Override
        public void onServiceDisconnected(ComponentName componentName) { }
    };
    private final TaskbarStateHandler mTaskbarStateHandler = new TaskbarStateHandler(this);

    // Will be updated when dragging from taskbar.
    private @Nullable DragOptions mNextWorkspaceDragOptions = null;
    private SplitPlaceholderView mSplitPlaceholderView;
@@ -112,24 +119,6 @@ public abstract class BaseQuickstepLauncher extends Launcher
        super.onCreate(savedInstanceState);
        SysUINavigationMode.INSTANCE.get(this).addModeChangeListener(this);
        addMultiWindowModeChangedListener(mDepthController);
        setupTouchInteractionServiceBinder();
    }

    private void setupTouchInteractionServiceBinder() {
        Intent intent = new Intent(this, TouchInteractionService.class);
        mTisBinderConnection = new ServiceConnection() {
            @Override
            public void onServiceConnected(ComponentName componentName, IBinder binder) {
                mTisBinder = ((TouchInteractionService.TISBinder) binder);
                mTisBinder.setTaskbarOverviewProxyDelegate(mTaskbarController);
            }

            @Override
            public void onServiceDisconnected(ComponentName componentName) {
                mTisBinder = null;
            }
        };
        bindService(intent, mTisBinderConnection, 0);
    }

    @Override
@@ -137,15 +126,12 @@ public abstract class BaseQuickstepLauncher extends Launcher
        mAppTransitionManager.onActivityDestroyed();

        SysUINavigationMode.INSTANCE.get(this).removeModeChangeListener(this);
        if (mTaskbarController != null) {
            mTaskbarController.cleanup();
            mTaskbarController = null;
            if (mTisBinder != null) {
                mTisBinder.setTaskbarOverviewProxyDelegate(null);


        unbindService(mTisBinderConnection);
        if (mTaskbarManager != null) {
            mTaskbarManager.setLauncher(null);
        }
        }

        super.onDestroy();
    }

@@ -272,37 +258,12 @@ public abstract class BaseQuickstepLauncher extends Launcher
        mAppTransitionManager = new QuickstepTransitionManager(this);
        mAppTransitionManager.registerRemoteAnimations();

        addTaskbarIfNecessary();
        addOnDeviceProfileChangeListener(newDp -> addTaskbarIfNecessary());
    }
        bindService(new Intent(this, TouchInteractionService.class), mTisBinderConnection, 0);

    @Override
    public void onDisplayInfoChanged(Context context, DisplayController.Info info,
            int flags) {
        super.onDisplayInfoChanged(context, info, flags);
        if ((flags & CHANGE_ACTIVE_SCREEN) != 0) {
            addTaskbarIfNecessary();
        }
    }

    private void addTaskbarIfNecessary() {
        if (mTaskbarController != null) {
            mTaskbarController.cleanup();
            if (mTisBinder != null) {
                mTisBinder.setTaskbarOverviewProxyDelegate(null);
            }
            mTaskbarController = null;
        }
        if (mDeviceProfile.isTaskbarPresent) {
            TaskbarView taskbarViewOnHome = (TaskbarView) mHotseat.getTaskbarView();
            TaskbarActivityContext taskbarActivityContext = new TaskbarActivityContext(this);
            mTaskbarController = new TaskbarController(this,
                    taskbarActivityContext.getTaskbarContainerView(), taskbarViewOnHome);
            mTaskbarController.init();
            if (mTisBinder != null) {
                mTisBinder.setTaskbarOverviewProxyDelegate(mTaskbarController);
            }
        }
    public void setTaskbarController(TaskbarController taskbarController) {
        mTaskbarController = taskbarController;
    }

    public <T extends OverviewActionsView> T getActionsView() {
@@ -341,14 +302,9 @@ public abstract class BaseQuickstepLauncher extends Launcher
    }

    @Override
    public boolean isViewInTaskbar(View v) {
        return mTaskbarController != null && mTaskbarController.isViewInTaskbar(v);
    }

    public boolean supportsAdaptiveIconAnimation(View clickedView) {
        return mAppTransitionManager.hasControlRemoteAppTransitionPermission()
                && FeatureFlags.ADAPTIVE_ICON_WINDOW_ANIM.get()
                && !isViewInTaskbar(clickedView);
                && FeatureFlags.ADAPTIVE_ICON_WINDOW_ANIM.get();
    }

    @Override
+0 −3
Original line number Diff line number Diff line
@@ -1252,7 +1252,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener

            final boolean launchingFromWidget = mV instanceof LauncherAppWidgetHostView;
            final boolean launchingFromRecents = isLaunchingFromRecents(mV, appTargets);
            final boolean launchingFromTaskbar = mLauncher.isViewInTaskbar(mV);
            if (launchingFromWidget) {
                composeWidgetLaunchAnimator(anim, (LauncherAppWidgetHostView) mV, appTargets,
                        wallpaperTargets, nonAppTargets);
@@ -1263,8 +1262,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener
                        launcherClosing);
                addCujInstrumentation(
                        anim, InteractionJankMonitorWrapper.CUJ_APP_LAUNCH_FROM_RECENTS);
            } else if (launchingFromTaskbar) {
                // TODO
            } else {
                composeIconLaunchAnimator(anim, mV, appTargets, wallpaperTargets, nonAppTargets,
                        launcherClosing);
Loading