Merge "[Toast] Update A-Z <-> Toast transition for drawable backgrounds." into tm-qpr-dev

This commit is contained in:
Luca Zuccarini
2022-11-15 10:54:03 +00:00
committed by Android (Google) Code Review
2 changed files with 40 additions and 8 deletions

View File

@@ -32,6 +32,7 @@ import android.graphics.drawable.Drawable;
import android.util.FloatProperty;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.Interpolator;
import com.android.launcher3.BubbleTextView;
@@ -39,6 +40,7 @@ import com.android.launcher3.Launcher;
import com.android.launcher3.LauncherState;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.model.data.ItemInfo;
/** Coordinates the transition between Search and A-Z in All Apps. */
@@ -225,16 +227,35 @@ public class SearchTransitionController {
numSearchResultsAnimated++;
}
searchResultView.setAlpha(contentAlpha);
// Apply background alpha to decorator if possible.
if (adapterPosition != NO_POSITION) {
searchRecyclerView.getApps().getAdapterItems()
.get(adapterPosition).setDecorationFillAlpha((int) (255 * backgroundAlpha));
}
// Apply background alpha to view's background (e.g. for Search Edu card).
Drawable background = searchResultView.getBackground();
if (background != null) {
if (background != null
&& searchResultView instanceof ViewGroup
&& FeatureFlags.ENABLE_SEARCH_RESULT_BACKGROUND_DRAWABLES.get()) {
searchResultView.setAlpha(1f);
// Apply content alpha to each child, since the view needs to be fully opaque for
// the background to show properly.
ViewGroup searchResultViewGroup = (ViewGroup) searchResultView;
for (int j = 0; j < searchResultViewGroup.getChildCount(); j++) {
searchResultViewGroup.getChildAt(j).setAlpha(contentAlpha);
}
// Apply background alpha to the background drawable directly.
background.setAlpha((int) (255 * backgroundAlpha));
} else {
searchResultView.setAlpha(contentAlpha);
// Apply background alpha to decorator if possible.
if (adapterPosition != NO_POSITION) {
searchRecyclerView.getApps().getAdapterItems().get(adapterPosition)
.setDecorationFillAlpha((int) (255 * backgroundAlpha));
}
// Apply background alpha to view's background (e.g. for Search Edu card).
if (background != null) {
background.setAlpha((int) (255 * backgroundAlpha));
}
}
float scaleY = 1;
@@ -304,6 +325,13 @@ public class SearchTransitionController {
getSearchRecyclerView().getApps().getAdapterItems().get(adapterPosition)
.setDecorationFillAlpha(255);
}
if (child instanceof ViewGroup
&& FeatureFlags.ENABLE_SEARCH_RESULT_BACKGROUND_DRAWABLES.get()) {
ViewGroup childGroup = (ViewGroup) child;
for (int i = 0; i < childGroup.getChildCount(); i++) {
childGroup.getChildAt(i).setAlpha(1f);
}
}
if (child.getBackground() != null) {
child.getBackground().setAlpha(255);
}

View File

@@ -264,6 +264,10 @@ public final class FeatureFlags {
public static final BooleanFlag ENABLE_ONE_SEARCH_MOTION = new DeviceFlag(
"ENABLE_ONE_SEARCH_MOTION", true, "Enables animations in OneSearch.");
public static final BooleanFlag ENABLE_SEARCH_RESULT_BACKGROUND_DRAWABLES = new DeviceFlag(
"ENABLE_SEARCH_RESULT_BACKGROUND_DRAWABLES", false,
"Enable option to replace decorator-based search result backgrounds with drawables");
public static final BooleanFlag ENABLE_SHOW_KEYBOARD_OPTION_IN_ALL_APPS = new DeviceFlag(
"ENABLE_SHOW_KEYBOARD_OPTION_IN_ALL_APPS", true,
"Enable option to show keyboard when going to all-apps");