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

Commit 430465a3 authored by Kholoud Mohamed's avatar Kholoud Mohamed Committed by kholoud mohamed
Browse files

Revert "Moving taskbar lifecycle to TouchInteractionService"

This reverts commit e215fb73.

Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/tests/view?invocationId=I13700009003387451&testResultId=TR89423459137251402, bug https://buganizer.corp.google.com/issues/188755902

Bug: 188755902
Change-Id: I4650136975b60f311499ee6ff5b27ab9a32d23d6
parent bb6f6e5d
Loading
Loading
Loading
Loading
+2 −22
Original line number Original line Diff line number Diff line
@@ -22,30 +22,10 @@


    <com.android.launcher3.taskbar.TaskbarView
    <com.android.launcher3.taskbar.TaskbarView
        android:id="@+id/taskbar_view"
        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_width="wrap_content"
        android:layout_height="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"/>
        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
    <com.android.launcher3.taskbar.ImeBarView
        android:id="@+id/ime_bar_view"
        android:id="@+id/ime_bar_view"
        android:layout_width="wrap_content"
        android:layout_width="wrap_content"
+26 −0
Original line number Original line 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" />
+0 −1
Original line number Original line Diff line number Diff line
@@ -149,5 +149,4 @@
    <!-- Note that this applies to both sides of all icons, so visible space is double this. -->
    <!-- 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_icon_spacing">8dp</dimen>
    <dimen name="taskbar_folder_margin">16dp</dimen>
    <dimen name="taskbar_folder_margin">16dp</dimen>
    <dimen name="taskbar_nav_buttons_spacing">16dp</dimen>
</resources>
</resources>
+67 −23
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_HIDE_BACK_BUTTON;
import static com.android.launcher3.LauncherState.FLAG_HIDE_BACK_BUTTON;
import static com.android.launcher3.LauncherState.FLAG_HIDE_BACK_BUTTON;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.NORMAL;
import static com.android.launcher3.LauncherState.NO_OFFSET;
import static com.android.launcher3.LauncherState.NO_OFFSET;
import static com.android.launcher3.util.DisplayController.CHANGE_ACTIVE_SCREEN;
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
import static com.android.launcher3.util.Executors.UI_HELPER_EXECUTOR;
import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS;
import static com.android.quickstep.SysUINavigationMode.Mode.TWO_BUTTONS;
import static com.android.quickstep.util.NavigationModeFeatureFlag.LIVE_TILE;
import static com.android.quickstep.util.NavigationModeFeatureFlag.LIVE_TILE;
@@ -29,6 +30,7 @@ import android.animation.AnimatorSet;
import android.animation.ValueAnimator;
import android.animation.ValueAnimator;
import android.app.ActivityOptions;
import android.app.ActivityOptions;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.Intent;
import android.content.IntentSender;
import android.content.IntentSender;
import android.content.ServiceConnection;
import android.content.ServiceConnection;
@@ -49,11 +51,13 @@ import com.android.launcher3.proxy.StartActivityParams;
import com.android.launcher3.statehandlers.BackButtonAlphaHandler;
import com.android.launcher3.statehandlers.BackButtonAlphaHandler;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.statehandlers.DepthController;
import com.android.launcher3.statemanager.StateManager.StateHandler;
import com.android.launcher3.statemanager.StateManager.StateHandler;
import com.android.launcher3.taskbar.TaskbarActivityContext;
import com.android.launcher3.taskbar.TaskbarController;
import com.android.launcher3.taskbar.TaskbarController;
import com.android.launcher3.taskbar.TaskbarManager;
import com.android.launcher3.taskbar.TaskbarStateHandler;
import com.android.launcher3.taskbar.TaskbarStateHandler;
import com.android.launcher3.taskbar.TaskbarView;
import com.android.launcher3.uioverrides.RecentsViewStateController;
import com.android.launcher3.uioverrides.RecentsViewStateController;
import com.android.launcher3.util.ActivityOptionsWrapper;
import com.android.launcher3.util.ActivityOptionsWrapper;
import com.android.launcher3.util.DisplayController;
import com.android.launcher3.util.ObjectWrapper;
import com.android.launcher3.util.ObjectWrapper;
import com.android.launcher3.util.UiThreadHelper;
import com.android.launcher3.util.UiThreadHelper;
import com.android.quickstep.RecentsModel;
import com.android.quickstep.RecentsModel;
@@ -63,7 +67,6 @@ import com.android.quickstep.SysUINavigationMode.NavigationModeChangeListener;
import com.android.quickstep.SystemUiProxy;
import com.android.quickstep.SystemUiProxy;
import com.android.quickstep.TaskUtils;
import com.android.quickstep.TaskUtils;
import com.android.quickstep.TouchInteractionService;
import com.android.quickstep.TouchInteractionService;
import com.android.quickstep.TouchInteractionService.TISBinder;
import com.android.quickstep.util.RemoteAnimationProvider;
import com.android.quickstep.util.RemoteAnimationProvider;
import com.android.quickstep.util.RemoteFadeOutAnimationListener;
import com.android.quickstep.util.RemoteFadeOutAnimationListener;
import com.android.quickstep.util.SplitSelectStateController;
import com.android.quickstep.util.SplitSelectStateController;
@@ -85,6 +88,8 @@ public abstract class BaseQuickstepLauncher extends Launcher


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


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


    private OverviewActionsView mActionsView;
    private OverviewActionsView mActionsView;


    private @Nullable TaskbarManager mTaskbarManager;
    private @Nullable TaskbarController mTaskbarController;
    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);
    private final TaskbarStateHandler mTaskbarStateHandler = new TaskbarStateHandler(this);

    // Will be updated when dragging from taskbar.
    // Will be updated when dragging from taskbar.
    private @Nullable DragOptions mNextWorkspaceDragOptions = null;
    private @Nullable DragOptions mNextWorkspaceDragOptions = null;
    private SplitPlaceholderView mSplitPlaceholderView;
    private SplitPlaceholderView mSplitPlaceholderView;
@@ -118,6 +111,24 @@ public abstract class BaseQuickstepLauncher extends Launcher
        super.onCreate(savedInstanceState);
        super.onCreate(savedInstanceState);
        SysUINavigationMode.INSTANCE.get(this).addModeChangeListener(this);
        SysUINavigationMode.INSTANCE.get(this).addModeChangeListener(this);
        addMultiWindowModeChangedListener(mDepthController);
        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
    @Override
@@ -125,12 +136,15 @@ public abstract class BaseQuickstepLauncher extends Launcher
        mAppTransitionManager.onActivityDestroyed();
        mAppTransitionManager.onActivityDestroyed();


        SysUINavigationMode.INSTANCE.get(this).removeModeChangeListener(this);
        SysUINavigationMode.INSTANCE.get(this).removeModeChangeListener(this);

        if (mTaskbarController != null) {

            mTaskbarController.cleanup();
            mTaskbarController = null;
            if (mTisBinder != null) {
                mTisBinder.setTaskbarOverviewProxyDelegate(null);
                unbindService(mTisBinderConnection);
                unbindService(mTisBinderConnection);
        if (mTaskbarManager != null) {
            mTaskbarManager.setLauncher(null);
            }
            }
        }

        super.onDestroy();
        super.onDestroy();
    }
    }


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


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


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


    public void setTaskbarController(TaskbarController taskbarController) {
    private void addTaskbarIfNecessary() {
        mTaskbarController = taskbarController;
        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 <T extends OverviewActionsView> T getActionsView() {
    public <T extends OverviewActionsView> T getActionsView() {
@@ -301,9 +340,14 @@ public abstract class BaseQuickstepLauncher extends Launcher
    }
    }


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

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


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


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