diff --git a/Android.bp b/Android.bp index 1b6ffe42b7..45d022f4fd 100644 --- a/Android.bp +++ b/Android.bp @@ -112,6 +112,7 @@ android_library { "androidx.preference_preference", "androidx.slice_slice-view", "androidx.cardview_cardview", + "com.google.android.material_material", "iconloader_base", ], manifest: "AndroidManifest-common.xml", diff --git a/AndroidManifest-common.xml b/AndroidManifest-common.xml index 3b6141b47f..ea75ea9549 100644 --- a/AndroidManifest-common.xml +++ b/AndroidManifest-common.xml @@ -145,7 +145,7 @@ diff --git a/quickstep/AndroidManifest.xml b/quickstep/AndroidManifest.xml index b43d8d1a4b..dc92731e16 100644 --- a/quickstep/AndroidManifest.xml +++ b/quickstep/AndroidManifest.xml @@ -22,11 +22,6 @@ xmlns:tools="http://schemas.android.com/tools" package="com.android.launcher3"> - - @@ -41,7 +36,6 @@ - - - - - - - - diff --git a/quickstep/res/interpolator/app_open_x.xml b/quickstep/res/interpolator/app_open_x.xml new file mode 100644 index 0000000000..5fa0bcb9ae --- /dev/null +++ b/quickstep/res/interpolator/app_open_x.xml @@ -0,0 +1,21 @@ + + + + diff --git a/quickstep/res/interpolator/three_point_fast_out_extra_slow_in.xml b/quickstep/res/interpolator/three_point_fast_out_extra_slow_in.xml new file mode 100644 index 0000000000..70c4231140 --- /dev/null +++ b/quickstep/res/interpolator/three_point_fast_out_extra_slow_in.xml @@ -0,0 +1,21 @@ + + + + diff --git a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java index a44de793a3..de0416b693 100644 --- a/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/BaseQuickstepLauncher.java @@ -200,6 +200,17 @@ public abstract class BaseQuickstepLauncher extends Launcher } } + /** + * {@code LauncherOverlayCallbacks} scroll amount. + * Indicates transition progress to -1 screen. + * @param progress From 0 to 1. + */ + @Override + public void onScrollChanged(float progress) { + super.onScrollChanged(progress); + mDepthController.onOverlayScrollChanged(progress); + } + @Override public void startIntentSenderForResult(IntentSender intent, int requestCode, Intent fillInIntent, int flagsMask, int flagsValues, int extraFlags, Bundle options) { diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 5bb76d6a67..b557779a26 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -32,7 +32,6 @@ import static com.android.launcher3.Utilities.postAsyncCallback; import static com.android.launcher3.anim.Interpolators.AGGRESSIVE_EASE; import static com.android.launcher3.anim.Interpolators.DEACCEL_1_5; import static com.android.launcher3.anim.Interpolators.DEACCEL_1_7; -import static com.android.launcher3.anim.Interpolators.EXAGGERATED_EASE; import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.launcher3.config.FeatureFlags.ENABLE_SCRIM_FOR_APP_LAUNCH; import static com.android.launcher3.config.FeatureFlags.KEYGUARD_ANIMATION; @@ -72,6 +71,7 @@ import android.view.SurfaceControl; import android.view.View; import android.view.ViewRootImpl; import android.view.ViewTreeObserver; +import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; import android.view.animation.PathInterpolator; @@ -142,21 +142,11 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener private static final String CONTROL_REMOTE_APP_TRANSITION_PERMISSION = "android.permission.CONTROL_REMOTE_APP_TRANSITION_ANIMATIONS"; - private static final long APP_LAUNCH_DURATION = 450; - // Use a shorter duration for x or y translation to create a curve effect - private static final long APP_LAUNCH_CURVED_DURATION = 250; + private static final long APP_LAUNCH_DURATION = 500; + private static final long APP_LAUNCH_ALPHA_DURATION = 50; private static final long APP_LAUNCH_ALPHA_START_DELAY = 25; - // We scale the durations for the downward app launch animations (minus the scale animation). - private static final float APP_LAUNCH_DOWN_DUR_SCALE_FACTOR = 0.8f; - private static final long APP_LAUNCH_DOWN_DURATION = - (long) (APP_LAUNCH_DURATION * APP_LAUNCH_DOWN_DUR_SCALE_FACTOR); - private static final long APP_LAUNCH_DOWN_CURVED_DURATION = - (long) (APP_LAUNCH_CURVED_DURATION * APP_LAUNCH_DOWN_DUR_SCALE_FACTOR); - private static final long APP_LAUNCH_ALPHA_DOWN_DURATION = - (long) (APP_LAUNCH_ALPHA_DURATION * APP_LAUNCH_DOWN_DUR_SCALE_FACTOR); - public static final int ANIMATION_NAV_FADE_IN_DURATION = 266; public static final int ANIMATION_NAV_FADE_OUT_DURATION = 133; public static final long ANIMATION_DELAY_NAV_FADE_IN = @@ -166,9 +156,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener public static final Interpolator NAV_FADE_OUT_INTERPOLATOR = new PathInterpolator(0.2f, 0f, 1f, 1f); - private static final long CROP_DURATION = 375; - private static final long RADIUS_DURATION = 375; - public static final int RECENTS_LAUNCH_DURATION = 336; private static final int LAUNCHER_RESUME_START_DELAY = 100; private static final int CLOSING_TRANSITION_DURATION_MS = 250; @@ -222,6 +209,9 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener // Will never be larger than MAX_NUM_TASKS private LinkedHashMap> mTaskStartParams; + private final Interpolator mOpeningXInterpolator; + private final Interpolator mOpeningInterpolator; + public QuickstepTransitionManager(Context context) { mLauncher = Launcher.cast(Launcher.getLauncher(context)); mDragLayer = mLauncher.getDragLayer(); @@ -248,6 +238,10 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener SystemUiProxy.INSTANCE.get(mLauncher).setStartingWindowListener( mStartingWindowListener); } + + mOpeningXInterpolator = AnimationUtils.loadInterpolator(context, R.interpolator.app_open_x); + mOpeningInterpolator = AnimationUtils.loadInterpolator(context, + R.interpolator.three_point_fast_out_extra_slow_in); } @Override @@ -651,27 +645,29 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener final float finalShadowRadius = appTargetsAreTranslucent ? 0 : mMaxShadowRadius; MultiValueUpdateListener listener = new MultiValueUpdateListener() { - FloatProp mDx = new FloatProp(0, prop.dX, 0, prop.xDuration, AGGRESSIVE_EASE); - FloatProp mDy = new FloatProp(0, prop.dY, 0, prop.yDuration, AGGRESSIVE_EASE); + FloatProp mDx = new FloatProp(0, prop.dX, 0, APP_LAUNCH_DURATION, + mOpeningXInterpolator); + FloatProp mDy = new FloatProp(0, prop.dY, 0, APP_LAUNCH_DURATION, + mOpeningInterpolator); FloatProp mIconScaleToFitScreen = new FloatProp(prop.initialAppIconScale, - prop.finalAppIconScale, 0, APP_LAUNCH_DURATION, EXAGGERATED_EASE); + prop.finalAppIconScale, 0, APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mIconAlpha = new FloatProp(prop.iconAlphaStart, 0f, - APP_LAUNCH_ALPHA_START_DELAY, prop.alphaDuration, LINEAR); + APP_LAUNCH_ALPHA_START_DELAY, APP_LAUNCH_ALPHA_DURATION, LINEAR); FloatProp mWindowRadius = new FloatProp(initialWindowRadius, finalWindowRadius, 0, - RADIUS_DURATION, EXAGGERATED_EASE); + APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mShadowRadius = new FloatProp(0, finalShadowRadius, 0, - APP_LAUNCH_DURATION, EXAGGERATED_EASE); + APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mCropRectCenterX = new FloatProp(prop.cropCenterXStart, prop.cropCenterXEnd, - 0, CROP_DURATION, EXAGGERATED_EASE); + 0, APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mCropRectCenterY = new FloatProp(prop.cropCenterYStart, prop.cropCenterYEnd, - 0, CROP_DURATION, EXAGGERATED_EASE); + 0, APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mCropRectWidth = new FloatProp(prop.cropWidthStart, prop.cropWidthEnd, 0, - CROP_DURATION, EXAGGERATED_EASE); + APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mCropRectHeight = new FloatProp(prop.cropHeightStart, prop.cropHeightEnd, 0, - CROP_DURATION, EXAGGERATED_EASE); + APP_LAUNCH_DURATION, mOpeningInterpolator); FloatProp mNavFadeOut = new FloatProp(1f, 0f, 0, ANIMATION_NAV_FADE_OUT_DURATION, NAV_FADE_OUT_INTERPOLATOR); @@ -873,22 +869,23 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener WIDGET_CROSSFADE_DURATION_MILLIS / 2 /* delay */, WIDGET_CROSSFADE_DURATION_MILLIS / 2 /* duration */, LINEAR); final FloatProp mWindowRadius = new FloatProp(initialWindowRadius, finalWindowRadius, - 0 /* start */, RADIUS_DURATION, LINEAR); - final FloatProp mCornerRadiusProgress = new FloatProp(0, 1, 0, RADIUS_DURATION, LINEAR); + 0 /* start */, APP_LAUNCH_DURATION, mOpeningInterpolator); + final FloatProp mCornerRadiusProgress = new FloatProp(0, 1, 0, APP_LAUNCH_DURATION, + mOpeningInterpolator); // Window & widget background positioning bounds final FloatProp mDx = new FloatProp(widgetBackgroundBounds.centerX(), - windowTargetBounds.centerX(), 0 /* delay */, APP_LAUNCH_CURVED_DURATION, - EXAGGERATED_EASE); + windowTargetBounds.centerX(), 0 /* delay */, APP_LAUNCH_DURATION, + mOpeningXInterpolator); final FloatProp mDy = new FloatProp(widgetBackgroundBounds.centerY(), windowTargetBounds.centerY(), 0 /* delay */, APP_LAUNCH_DURATION, - EXAGGERATED_EASE); + mOpeningInterpolator); final FloatProp mWidth = new FloatProp(widgetBackgroundBounds.width(), windowTargetBounds.width(), 0 /* delay */, APP_LAUNCH_DURATION, - EXAGGERATED_EASE); + mOpeningInterpolator); final FloatProp mHeight = new FloatProp(widgetBackgroundBounds.height(), windowTargetBounds.height(), 0 /* delay */, APP_LAUNCH_DURATION, - EXAGGERATED_EASE); + mOpeningInterpolator); final FloatProp mNavFadeOut = new FloatProp(1f, 0f, 0, ANIMATION_NAV_FADE_OUT_DURATION, NAV_FADE_OUT_INTERPOLATOR); @@ -1424,10 +1421,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener public final float dX; public final float dY; - public final long xDuration; - public final long yDuration; - public final long alphaDuration; - public final float initialAppIconScale; public final float finalAppIconScale; @@ -1459,14 +1452,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener dX = centerX - launcherIconBounds.centerX(); dY = centerY - launcherIconBounds.centerY(); - boolean useUpwardAnimation = launcherIconBounds.top > centerY - || Math.abs(dY) < dp.cellHeightPx; - xDuration = useUpwardAnimation ? APP_LAUNCH_CURVED_DURATION - : APP_LAUNCH_DOWN_DURATION; - yDuration = useUpwardAnimation ? APP_LAUNCH_DURATION - : APP_LAUNCH_DOWN_CURVED_DURATION; - alphaDuration = useUpwardAnimation ? APP_LAUNCH_ALPHA_DURATION - : APP_LAUNCH_ALPHA_DOWN_DURATION; iconAlphaStart = hasSplashScreen && !hasDifferentAppIcon ? 0 : 1f; final int windowIconSize = ResourceUtils.getDimenByName("starting_surface_icon_size", diff --git a/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduActivity.java b/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduActivity.java deleted file mode 100644 index 3a7d821ed6..0000000000 --- a/quickstep/src/com/android/launcher3/hybridhotseat/HotseatEduActivity.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (C) 2020 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. - */ - -package com.android.launcher3.hybridhotseat; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; - -import com.android.launcher3.BaseActivity; -import com.android.launcher3.Launcher; -import com.android.launcher3.uioverrides.QuickstepLauncher; -import com.android.launcher3.util.ActivityTracker; - -/** - * Proxy activity to return user to home screen and show halfsheet education - */ -public class HotseatEduActivity extends Activity { - - @Override - protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - - Intent homeIntent = new Intent(Intent.ACTION_MAIN) - .addCategory(Intent.CATEGORY_HOME) - .setPackage(getPackageName()) - .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - - Launcher.ACTIVITY_TRACKER.registerCallback(new HotseatActivityTracker()); - startActivity(homeIntent); - finish(); - } - - static class HotseatActivityTracker implements - ActivityTracker.SchedulerCallback { - - @Override - public boolean init(BaseActivity activity, boolean alreadyOnHome) { - QuickstepLauncher launcher = (QuickstepLauncher) activity; - if (launcher != null) { - launcher.getHotseatPredictionController().showEdu(); - } - return false; - } - - } -} diff --git a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java index 370fb8ef7c..bb58f451ce 100644 --- a/quickstep/src/com/android/launcher3/statehandlers/DepthController.java +++ b/quickstep/src/com/android/launcher3/statehandlers/DepthController.java @@ -26,6 +26,7 @@ import android.animation.ObjectAnimator; import android.os.IBinder; import android.os.SystemProperties; import android.util.FloatProperty; +import android.view.AttachedSurfaceControl; import android.view.CrossWindowBlurListeners; import android.view.SurfaceControl; import android.view.View; @@ -108,6 +109,13 @@ public class DepthController implements StateHandler, } }; + private final Runnable mOpaquenessListener = new Runnable() { + @Override + public void run() { + dispatchTransactionSurface(mDepth); + } + }; + private final Launcher mLauncher; /** * Blur radius when completely zoomed out, in pixels. @@ -116,6 +124,10 @@ public class DepthController implements StateHandler, private boolean mCrossWindowBlursEnabled; private WallpaperManagerCompat mWallpaperManager; private SurfaceControl mSurface; + /** + * How visible the -1 overlay is, from 0 to 1. + */ + private float mOverlayScrollProgress; /** * Ratio from 0 to 1, where 0 is fully zoomed out, and 1 is zoomed in. * @see android.service.wallpaper.WallpaperService.Engine#onZoomChanged(float) @@ -150,23 +162,28 @@ public class DepthController implements StateHandler, if (windowToken != null) { mWallpaperManager.setWallpaperZoomOut(windowToken, mDepth); } - CrossWindowBlurListeners.getInstance().addListener(mLauncher.getMainExecutor(), - mCrossWindowBlurListener); + onAttached(); } @Override public void onViewDetachedFromWindow(View view) { CrossWindowBlurListeners.getInstance().removeListener(mCrossWindowBlurListener); + mLauncher.getScrimView().removeOpaquenessListener(mOpaquenessListener); } }; mLauncher.getRootView().addOnAttachStateChangeListener(mOnAttachListener); if (mLauncher.getRootView().isAttachedToWindow()) { - CrossWindowBlurListeners.getInstance().addListener(mLauncher.getMainExecutor(), - mCrossWindowBlurListener); + onAttached(); } } } + private void onAttached() { + CrossWindowBlurListeners.getInstance().addListener(mLauncher.getMainExecutor(), + mCrossWindowBlurListener); + mLauncher.getScrimView().addOpaquenessListener(mOpaquenessListener); + } + /** * Sets if the underlying activity is started or not */ @@ -251,12 +268,24 @@ public class DepthController implements StateHandler, } } + public void onOverlayScrollChanged(float progress) { + // Round out the progress to dedupe frequent, non-perceptable updates + int progressI = (int) (progress * 256); + float progressF = Utilities.boundToRange(progressI / 256f, 0f, 1f); + if (Float.compare(mOverlayScrollProgress, progressF) == 0) { + return; + } + mOverlayScrollProgress = progressF; + dispatchTransactionSurface(mDepth); + } + private boolean dispatchTransactionSurface(float depth) { boolean supportsBlur = BlurUtils.supportsBlursOnWindows(); if (supportsBlur && (mSurface == null || !mSurface.isValid())) { return false; } ensureDependencies(); + depth = Math.max(depth, mOverlayScrollProgress); IBinder windowToken = mLauncher.getRootView().getWindowToken(); if (windowToken != null) { mWallpaperManager.setWallpaperZoomOut(windowToken, depth); @@ -270,10 +299,15 @@ public class DepthController implements StateHandler, int blur = opaque || isOverview || !mCrossWindowBlursEnabled || mBlurDisabledForAppLaunch ? 0 : (int) (depth * mMaxBlurRadius); - new SurfaceControl.Transaction() + SurfaceControl.Transaction transaction = new SurfaceControl.Transaction() .setBackgroundBlurRadius(mSurface, blur) - .setOpaque(mSurface, opaque) - .apply(); + .setOpaque(mSurface, opaque); + + AttachedSurfaceControl rootSurfaceControl = + mLauncher.getRootView().getRootSurfaceControl(); + if (rootSurfaceControl != null) { + rootSurfaceControl.applyTransactionOnDraw(transaction); + } } return true; } diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java index c2c721adf8..1cf50f7f64 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepInteractionHandler.java @@ -71,7 +71,7 @@ class QuickstepInteractionHandler implements RemoteViews.InteractionHandler { } } activityOptions.options.setPendingIntentLaunchFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - activityOptions.options.setSplashscreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_ICON); + activityOptions.options.setSplashscreenStyle(SplashScreen.SPLASH_SCREEN_STYLE_EMPTY); Object itemInfo = hostView.getTag(); if (itemInfo instanceof ItemInfo) { mLauncher.addLaunchCookie((ItemInfo) itemInfo, activityOptions.options); diff --git a/quickstep/src/com/android/quickstep/FallbackSwipeHandler.java b/quickstep/src/com/android/quickstep/FallbackSwipeHandler.java index fd44e023a7..e2f198c05d 100644 --- a/quickstep/src/com/android/quickstep/FallbackSwipeHandler.java +++ b/quickstep/src/com/android/quickstep/FallbackSwipeHandler.java @@ -173,7 +173,9 @@ public class FallbackSwipeHandler extends @Override protected void notifyGestureAnimationStartToRecents() { if (mRunningOverHome) { - mRecentsView.onGestureAnimationStartOnHome(mGestureState.getRunningTask()); + if (SysUINavigationMode.getMode(mContext).hasGestures) { + mRecentsView.onGestureAnimationStartOnHome(mGestureState.getRunningTask()); + } } else { super.notifyGestureAnimationStartToRecents(); } diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index db5c93c503..0f5671c543 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -331,12 +331,14 @@ public class TouchInteractionService extends Service implements PluginListener -1) { // When there is a midpoint reference task, adjacent tasks have less distance to travel - // to reach offscreen. Offset the task position to the task's starting point. - int midpointScroll = getScrollForPage(midpointIndex); + // to reach offscreen. Offset the task position to the task's starting point, and offset + // by current page's scroll diff. + int midpointScroll = getScrollForPage(midpointIndex) + + mOrientationHandler.getPrimaryScroll(this) - getScrollForPage(mCurrentPage); + getPersistentChildPosition(midpointIndex, midpointScroll, taskPosition); float midpointStart = mOrientationHandler.getStart(taskPosition); diff --git a/res/color-v31/home_settings_switch_thumb_color.xml b/res/color-v31/home_settings_switch_thumb_color.xml new file mode 100644 index 0000000000..91d3d9b5e4 --- /dev/null +++ b/res/color-v31/home_settings_switch_thumb_color.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + diff --git a/res/color-v31/home_settings_switch_track_color.xml b/res/color-v31/home_settings_switch_track_color.xml new file mode 100644 index 0000000000..50784f527d --- /dev/null +++ b/res/color-v31/home_settings_switch_track_color.xml @@ -0,0 +1,28 @@ + + + + + + + + + + + diff --git a/res/drawable-v31/home_settings_switch_thumb.xml b/res/drawable-v31/home_settings_switch_thumb.xml new file mode 100644 index 0000000000..260d5ea35f --- /dev/null +++ b/res/drawable-v31/home_settings_switch_thumb.xml @@ -0,0 +1,29 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/res/drawable-v31/home_settings_switch_track.xml b/res/drawable-v31/home_settings_switch_track.xml new file mode 100644 index 0000000000..502a3007a9 --- /dev/null +++ b/res/drawable-v31/home_settings_switch_track.xml @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file diff --git a/res/drawable/padded_rounded_action_button.xml b/res/drawable/padded_rounded_action_button.xml index 6432efd539..6863f92f0c 100644 --- a/res/drawable/padded_rounded_action_button.xml +++ b/res/drawable/padded_rounded_action_button.xml @@ -14,18 +14,11 @@ ~ limitations under the License. --> - + - - - - - + android:bottom="@dimen/padded_rounded_button_padding" /> - diff --git a/res/drawable/rounded_action_button.xml b/res/drawable/rounded_action_button.xml index f04389399f..b9942c0c92 100644 --- a/res/drawable/rounded_action_button.xml +++ b/res/drawable/rounded_action_button.xml @@ -19,7 +19,9 @@ xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" android:shape="rectangle"> - + diff --git a/res/layout-v31/settings_activity.xml b/res/layout-v31/settings_activity.xml new file mode 100644 index 0000000000..59e14f22dd --- /dev/null +++ b/res/layout-v31/settings_activity.xml @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/arrow_toast.xml b/res/layout/arrow_toast.xml index 9a6f8c35bd..88a92eb565 100644 --- a/res/layout/arrow_toast.xml +++ b/res/layout/arrow_toast.xml @@ -27,15 +27,13 @@ android:gravity="center" android:padding="16dp" android:background="@drawable/arrow_toast_rounded_background" - android:elevation="2dp" - android:outlineProvider="none" + android:elevation="@dimen/arrow_toast_elevation" android:textColor="@color/arrow_tip_view_content" android:textSize="14sp"/> diff --git a/res/layout/notification_content.xml b/res/layout/notification_content.xml index 84822a671b..91897e9e75 100644 --- a/res/layout/notification_content.xml +++ b/res/layout/notification_content.xml @@ -14,10 +14,11 @@ limitations under the License. --> - + android:layout_height="wrap_content" + android:orientation="vertical"> - - - \ No newline at end of file + + \ No newline at end of file diff --git a/res/layout/popup_container.xml b/res/layout/popup_container.xml index 18014bb1d0..9327287018 100644 --- a/res/layout/popup_container.xml +++ b/res/layout/popup_container.xml @@ -31,12 +31,9 @@ android:elevation="@dimen/deep_shortcuts_elevation" android:orientation="vertical"/> - + android:visibility="gone"/> \ No newline at end of file diff --git a/res/layout/system_shortcut.xml b/res/layout/system_shortcut.xml index de091c51c7..331d2be3aa 100644 --- a/res/layout/system_shortcut.xml +++ b/res/layout/system_shortcut.xml @@ -18,7 +18,8 @@ xmlns:android="http://schemas.android.com/apk/res/android" xmlns:launcher="http://schemas.android.com/apk/res-auto" android:layout_width="@dimen/bg_popup_item_width" - android:layout_height="@dimen/bg_popup_item_height" + android:layout_height="wrap_content" + android:minHeight="@dimen/bg_popup_item_height" android:elevation="@dimen/deep_shortcuts_elevation" android:background="@drawable/middle_item_primary" android:theme="@style/PopupItem" > diff --git a/res/layout/system_shortcut_content.xml b/res/layout/system_shortcut_content.xml new file mode 100644 index 0000000000..feab13d318 --- /dev/null +++ b/res/layout/system_shortcut_content.xml @@ -0,0 +1,47 @@ + + + + + + + + diff --git a/res/layout/work_apps_paused.xml b/res/layout/work_apps_paused.xml index ec34b47364..79bce70287 100644 --- a/res/layout/work_apps_paused.xml +++ b/res/layout/work_apps_paused.xml @@ -28,7 +28,7 @@ android:layout_marginTop="40dp" android:text="@string/work_apps_paused_title" android:textAlignment="center" - android:textSize="22sp" /> + android:textSize="18sp" /> + + + @android:color/system_accent1_100 + @android:color/system_neutral1_700 + @android:color/system_neutral1_900 + + @android:color/system_neutral2_300 + @android:color/system_accent2_700 + @android:color/system_neutral1_700 + \ No newline at end of file diff --git a/res/values-v31/colors.xml b/res/values-v31/colors.xml index d73ee57080..c2ebeffe66 100644 --- a/res/values-v31/colors.xml +++ b/res/values-v31/colors.xml @@ -42,6 +42,16 @@ @android:color/system_accent2_50 + @android:color/system_accent1_600 + @android:color/system_neutral1_100 + @android:color/system_neutral1_50 + + @android:color/system_accent1_100 + @android:color/system_accent2_100 + @android:color/system_neutral2_100 + @android:color/system_accent1_600 + @android:color/system_neutral2_600 + @android:color/system_accent1_100 @android:color/system_accent2_600 diff --git a/res/values-v31/config.xml b/res/values-v31/config.xml new file mode 100644 index 0000000000..afb9e6d9e8 --- /dev/null +++ b/res/values-v31/config.xml @@ -0,0 +1,20 @@ + + + + false + false + \ No newline at end of file diff --git a/res/values-v31/styles.xml b/res/values-v31/styles.xml new file mode 100644 index 0000000000..0d2fce0307 --- /dev/null +++ b/res/values-v31/styles.xml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/values/config.xml b/res/values/config.xml index 04c359ede3..72959b2d5c 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -34,6 +34,9 @@ popup_container_iterate_children + + false + diff --git a/res/values/dimens.xml b/res/values/dimens.xml index f434644996..a1e4cd9bb4 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -109,6 +109,7 @@ 8dp 2dp + 2dp 10dp @@ -196,6 +197,7 @@ 16sp 2dp 4dp + 8dp 30dp @@ -241,6 +243,7 @@ 2dp 216dp 56dp + 12dp 6dp 16dp @@ -271,6 +274,8 @@ 8dp + 8dp + 8dp 16dp 18dp 14sp @@ -331,4 +336,5 @@ 48dp 32dp 8dp + diff --git a/res/values/strings.xml b/res/values/strings.xml index d1774e5a03..d7a2d47e7c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -153,6 +153,7 @@ Apps list + Search results Personal apps list Work apps list @@ -199,8 +200,11 @@ Can\'t load widget + + Widget settings + - Tap to finish setup + Tap to finish setup This is a system app and can\'t be uninstalled. diff --git a/res/values/styles.xml b/res/values/styles.xml index d30b80c813..b7661b9798 100644 --- a/res/values/styles.xml +++ b/res/values/styles.xml @@ -147,18 +147,18 @@ - - @@ -259,7 +259,7 @@