Merge cherrypicks of ['googleplex-android-review.googlesource.com/23909000', 'googleplex-android-review.googlesource.com/23923806', 'googleplex-android-review.googlesource.com/23920481'] into udc-release.
Change-Id: I8ff9da2a0d21330d22a61bd9d4a566854f935d4a
This commit is contained in:
@@ -50,6 +50,7 @@ import com.android.quickstep.util.GroupTask;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
|
||||
import java.io.PrintWriter;
|
||||
import java.util.Arrays;
|
||||
|
||||
/**
|
||||
* A data source which integrates with a Launcher instance
|
||||
@@ -105,6 +106,10 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
|
||||
|
||||
// Restore the in-app display progress from before Taskbar was recreated.
|
||||
float[] prevProgresses = mControllers.getSharedState().inAppDisplayProgressMultiPropValues;
|
||||
// Make a copy of the previous progress to set since updating the multiprop will update
|
||||
// the property which also calls onInAppDisplayProgressChanged() which writes the current
|
||||
// values into the shared state
|
||||
prevProgresses = Arrays.copyOf(prevProgresses, prevProgresses.length);
|
||||
for (int i = 0; i < prevProgresses.length; i++) {
|
||||
mTaskbarInAppDisplayProgressMultiProp.get(i).setValue(prevProgresses[i]);
|
||||
}
|
||||
|
||||
@@ -923,6 +923,15 @@ public class NavbarButtonsViewController implements TaskbarControllers.LoggableT
|
||||
insetsInfo.setTouchableInsets(TOUCHABLE_INSETS_REGION);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called whenever a new ui controller is set, and should update anything that depends on the
|
||||
* ui controller.
|
||||
*/
|
||||
public void onUiControllerChanged() {
|
||||
updateNavButtonInAppDisplayProgressForSysui();
|
||||
updateNavButtonTranslationY();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dumpLogs(String prefix, PrintWriter pw) {
|
||||
pw.println(prefix + "NavbarButtonsViewController:");
|
||||
|
||||
@@ -591,9 +591,7 @@ public class TaskbarActivityContext extends BaseTaskbarContext {
|
||||
* Sets a new data-source for this taskbar instance
|
||||
*/
|
||||
public void setUIController(@NonNull TaskbarUIController uiController) {
|
||||
mControllers.uiController.onDestroy();
|
||||
mControllers.uiController = uiController;
|
||||
mControllers.uiController.init(mControllers);
|
||||
mControllers.setUiController(uiController);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -196,6 +196,19 @@ public class TaskbarControllers {
|
||||
mPostInitCallbacks.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the ui controller.
|
||||
*/
|
||||
public void setUiController(@NonNull TaskbarUIController newUiController) {
|
||||
uiController.onDestroy();
|
||||
uiController = newUiController;
|
||||
uiController.init(this);
|
||||
uiController.updateStateForSysuiFlags(mSharedState.sysuiStateFlags);
|
||||
|
||||
// Notify that the ui controller has changed
|
||||
navbarButtonsViewController.onUiControllerChanged();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public TaskbarSharedState getSharedState() {
|
||||
// This should only be null if called before init() and after destroy().
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package com.android.quickstep;
|
||||
|
||||
import static android.view.RemoteAnimationTarget.MODE_CLOSING;
|
||||
import static android.view.WindowManager.LayoutParams.TYPE_DOCK_DIVIDER;
|
||||
|
||||
import static com.android.launcher3.util.Executors.MAIN_EXECUTOR;
|
||||
@@ -37,6 +38,7 @@ import com.android.systemui.shared.recents.model.ThumbnailData;
|
||||
import com.android.systemui.shared.system.RecentsAnimationControllerCompat;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.Set;
|
||||
|
||||
@@ -101,9 +103,22 @@ public class RecentsAnimationCallbacks implements
|
||||
RemoteAnimationTarget[] appTargets,
|
||||
RemoteAnimationTarget[] wallpaperTargets,
|
||||
Rect homeContentInsets, Rect minimizedHomeBounds) {
|
||||
long appCount = Arrays.stream(appTargets)
|
||||
.filter(app -> app.mode == MODE_CLOSING)
|
||||
.count();
|
||||
if (appCount == 0) {
|
||||
// Edge case, if there are no closing app targets, then Launcher has nothing to handle
|
||||
ActiveGestureLog.INSTANCE.addLog(
|
||||
/* event= */ "RecentsAnimationCallbacks.onAnimationStart (canceled)",
|
||||
/* extras= */ 0,
|
||||
/* gestureEvent= */ START_RECENTS_ANIMATION);
|
||||
notifyAnimationCanceled();
|
||||
animationController.finish(false /* toHome */, false /* sendUserLeaveHint */);
|
||||
return;
|
||||
}
|
||||
|
||||
mController = new RecentsAnimationController(animationController,
|
||||
mAllowMinimizeSplitScreen, this::onAnimationFinished);
|
||||
|
||||
if (mCancelled) {
|
||||
Utilities.postAsyncCallback(MAIN_EXECUTOR.getHandler(),
|
||||
mController::finishAnimationToApp);
|
||||
|
||||
@@ -1,24 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!--
|
||||
/*
|
||||
**
|
||||
** Copyright 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.
|
||||
*/
|
||||
-->
|
||||
<selector
|
||||
xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:color="?attr/materialColorSurfaceContainerHighest"/>
|
||||
</selector>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle" >
|
||||
<solid android:color="@color/surface" />
|
||||
<solid android:color="@color/material_color_surface_container_highest" />
|
||||
<corners
|
||||
android:topLeftRadius="?android:attr/dialogCornerRadius"
|
||||
android:topRightRadius="?android:attr/dialogCornerRadius" />
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
android:topRightRadius="12dp"
|
||||
android:bottomLeftRadius="4dp"
|
||||
android:bottomRightRadius="4dp" />
|
||||
<solid android:color="@color/surface"/>
|
||||
<solid android:color="@color/material_color_surface_container_highest"/>
|
||||
<stroke
|
||||
android:width="2dp"
|
||||
android:color="@color/button_bg"/>
|
||||
|
||||
Reference in New Issue
Block a user