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

Commit 56ccb4ed authored by Luca Zuccarini's avatar Luca Zuccarini Committed by Android (Google) Code Review
Browse files

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

parents e2334d76 431f05b3
Loading
Loading
Loading
Loading
+36 −8
Original line number Diff line number Diff line
@@ -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,17 +227,36 @@ public class SearchTransitionController {

                numSearchResultsAnimated++;
            }

            Drawable background = searchResultView.getBackground();
            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));
                    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) {
                    background.setAlpha((int) (255 * backgroundAlpha));
                }
            }

            float scaleY = 1;
            if (shouldAnimate) {
@@ -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);
            }
+4 −0
Original line number Diff line number Diff line
@@ -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");