diff --git a/quickstep/res/values/strings.xml b/quickstep/res/values/strings.xml index c0d52a42bd..8f6f60b0af 100644 --- a/quickstep/res/values/strings.xml +++ b/quickstep/res/values/strings.xml @@ -187,6 +187,8 @@ All set! Swipe up to go Home + + Tap the home button to go to your home screen You\u2019re ready to start using your phone diff --git a/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java b/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java index 8986c054dd..897b55949c 100644 --- a/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java +++ b/quickstep/src/com/android/quickstep/interaction/AllSetActivity.java @@ -53,6 +53,7 @@ import android.widget.TextView; import androidx.annotation.Nullable; import androidx.core.graphics.ColorUtils; +import com.android.launcher3.DeviceProfile; import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -120,10 +121,9 @@ public class AllSetActivity extends Activity { mContentView = findViewById(R.id.content_view); mSwipeUpShift = getResources().getDimension(R.dimen.allset_swipe_up_shift); - boolean isTablet = InvariantDeviceProfile.INSTANCE.get(getApplicationContext()) - .getDeviceProfile(this).isTablet; + DeviceProfile dp = InvariantDeviceProfile.INSTANCE.get(this).getDeviceProfile(this); TextView subtitle = findViewById(R.id.subtitle); - subtitle.setText(isTablet + subtitle.setText(dp.isTablet ? R.string.allset_description_tablet : R.string.allset_description); TextView tv = findViewById(R.id.navigation_settings); @@ -137,7 +137,11 @@ public class AllSetActivity extends Activity { } }); - findViewById(R.id.hint).setAccessibilityDelegate(new SkipButtonAccessibilityDelegate()); + TextView hintTextView = findViewById(R.id.hint); + if (!dp.isGestureMode) { + hintTextView.setText(R.string.allset_button_hint); + } + hintTextView.setAccessibilityDelegate(new SkipButtonAccessibilityDelegate()); mTISBindHelper = new TISBindHelper(this, this::onTISConnected); mVibrator = getSystemService(Vibrator.class); diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 033346afdb..3b92ac4d47 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -333,7 +333,7 @@ 48dp - 32dp + 48dp 8dp 6dp 72dp diff --git a/src/com/android/launcher3/allapps/SearchTransitionController.java b/src/com/android/launcher3/allapps/SearchTransitionController.java index 9c3dab4ec3..495f5c3eff 100644 --- a/src/com/android/launcher3/allapps/SearchTransitionController.java +++ b/src/com/android/launcher3/allapps/SearchTransitionController.java @@ -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); } diff --git a/src/com/android/launcher3/config/FeatureFlags.java b/src/com/android/launcher3/config/FeatureFlags.java index d98a7f378a..9484fffef9 100644 --- a/src/com/android/launcher3/config/FeatureFlags.java +++ b/src/com/android/launcher3/config/FeatureFlags.java @@ -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"); @@ -327,6 +331,10 @@ public final class FeatureFlags { "LARGE_SCREEN_WIDGET_PICKER", false, "Enable new widget picker that takes " + "advantage of large screen format"); + public static final BooleanFlag ENABLE_NEW_GESTURE_NAV_TUTORIAL = getDebugFlag( + "ENABLE_NEW_GESTURE_NAV_TUTORIAL", false, + "Enable the redesigned gesture navigation tutorial"); + public static final BooleanFlag ENABLE_TOAST_IMPRESSION_LOGGING = getDebugFlag( "ENABLE_TOAST_IMPRESSION_LOGGING", false, "Enable toast impression logging");