Loading protos/launcher_atom.proto +11 −0 Original line number Diff line number Diff line Loading @@ -49,15 +49,26 @@ message ContainerInfo { FolderContainer folder = 3; AllAppsContainer all_apps_container = 4; WidgetsContainer widgets_container = 5; PredictionContainer prediction_container = 6; SearchResultContainer search_result_container = 7; } } // Represents the apps list sorted alphabetically inside the all-apps view. message AllAppsContainer { } message WidgetsContainer { } // Represents the predicted apps row(top row) in the all-apps view. message PredictionContainer { } // Represents the apps container within search results. message SearchResultContainer { } enum Origin { UNKNOWN = 0; DEFAULT_LAYOUT = 1; // icon automatically placed in workspace, folder, hotseat Loading quickstep/recents_ui_overrides/res/layout/fallback_recents_activity.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ android:id="@+id/drag_layer" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:fitsSystemWindows="true"> <com.android.quickstep.fallback.FallbackRecentsView Loading quickstep/recents_ui_overrides/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java +6 −4 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ package com.android.launcher3; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.anim.Interpolators.AGGRESSIVE_EASE; import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.quickstep.TaskViewUtils.createRecentsWindowAnimator; import static com.android.quickstep.TaskViewUtils.findTaskViewToLaunch; import static com.android.quickstep.TaskViewUtils.getRecentsWindowAnimator; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; Loading @@ -34,6 +34,7 @@ import androidx.annotation.Nullable; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.anim.PendingAnimation; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskView; import com.android.systemui.shared.system.RemoteAnimationTargetCompat; Loading Loading @@ -63,9 +64,10 @@ public final class LauncherAppTransitionManagerImpl extends QuickstepAppTransiti boolean skipLauncherChanges = !launcherClosing; TaskView taskView = findTaskViewToLaunch(mLauncher, v, appTargets); Animator recentsAnimator = getRecentsWindowAnimator(taskView, skipLauncherChanges, appTargets, wallpaperTargets, mLauncher.getDepthController()); anim.play(recentsAnimator.setDuration(RECENTS_LAUNCH_DURATION)); PendingAnimation pa = new PendingAnimation(RECENTS_LAUNCH_DURATION); createRecentsWindowAnimator(taskView, skipLauncherChanges, appTargets, wallpaperTargets, mLauncher.getDepthController(), pa); anim.play(pa.buildAnim()); Animator childStateAnimation = null; // Found a visible recents task that matches the opening app, lets launch the app from there Loading quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java +5 −2 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.launcher3.hybridhotseat; import static com.android.launcher3.InvariantDeviceProfile.CHANGE_FLAG_GRID; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; import android.animation.Animator; Loading Loading @@ -571,9 +572,11 @@ public class HotseatPredictionController implements DragController.DragListener, @Override public void onIdpChanged(int changeFlags, InvariantDeviceProfile profile) { if ((changeFlags & CHANGE_FLAG_GRID) != 0) { this.mHotSeatItemsCount = profile.numHotseatIcons; createPredictor(); } } @Override public void onAppsUpdated() { Loading quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/PredictedAppIcon.java +4 −4 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.touch.ItemClickHandler; import com.android.launcher3.touch.ItemLongClickListener; import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.views.DoubleShadowBubbleTextView; /** Loading @@ -68,7 +69,6 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView implements private int mPlateColor; boolean mDrawForDrag = false; public PredictedAppIcon(Context context) { this(context, null, 0); } Loading @@ -79,10 +79,8 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView implements public PredictedAppIcon(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mDeviceProfile = Launcher.getLauncher(context).getDeviceProfile(); mDeviceProfile = ActivityContext.lookupContext(context).getDeviceProfile(); mNormalizedIconRadius = IconNormalizer.getNormalizedCircleSize(getIconSize()) / 2; setOnClickListener(ItemClickHandler.INSTANCE); setOnFocusChangeListener(Launcher.getLauncher(context).getFocusHandler()); int shadowSize = context.getResources().getDimensionPixelSize( R.dimen.blur_size_thin_outline); mShadowFilter = new BlurMaskFilter(shadowSize, BlurMaskFilter.Blur.OUTER); Loading Loading @@ -241,6 +239,8 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView implements PredictedAppIcon icon = (PredictedAppIcon) LayoutInflater.from(parent.getContext()) .inflate(R.layout.predicted_app_icon, parent, false); icon.applyFromWorkspaceItem(info); icon.setOnClickListener(ItemClickHandler.INSTANCE); icon.setOnFocusChangeListener(Launcher.getLauncher(parent.getContext()).getFocusHandler()); return icon; } Loading Loading
protos/launcher_atom.proto +11 −0 Original line number Diff line number Diff line Loading @@ -49,15 +49,26 @@ message ContainerInfo { FolderContainer folder = 3; AllAppsContainer all_apps_container = 4; WidgetsContainer widgets_container = 5; PredictionContainer prediction_container = 6; SearchResultContainer search_result_container = 7; } } // Represents the apps list sorted alphabetically inside the all-apps view. message AllAppsContainer { } message WidgetsContainer { } // Represents the predicted apps row(top row) in the all-apps view. message PredictionContainer { } // Represents the apps container within search results. message SearchResultContainer { } enum Origin { UNKNOWN = 0; DEFAULT_LAYOUT = 1; // icon automatically placed in workspace, folder, hotseat Loading
quickstep/recents_ui_overrides/res/layout/fallback_recents_activity.xml +1 −0 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ android:id="@+id/drag_layer" android:layout_width="match_parent" android:layout_height="match_parent" android:clipChildren="false" android:fitsSystemWindows="true"> <com.android.quickstep.fallback.FallbackRecentsView Loading
quickstep/recents_ui_overrides/src/com/android/launcher3/LauncherAppTransitionManagerImpl.java +6 −4 Original line number Diff line number Diff line Loading @@ -19,8 +19,8 @@ package com.android.launcher3; import static com.android.launcher3.LauncherState.NORMAL; import static com.android.launcher3.anim.Interpolators.AGGRESSIVE_EASE; import static com.android.launcher3.anim.Interpolators.LINEAR; import static com.android.quickstep.TaskViewUtils.createRecentsWindowAnimator; import static com.android.quickstep.TaskViewUtils.findTaskViewToLaunch; import static com.android.quickstep.TaskViewUtils.getRecentsWindowAnimator; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; Loading @@ -34,6 +34,7 @@ import androidx.annotation.Nullable; import com.android.launcher3.anim.AnimatorPlaybackController; import com.android.launcher3.anim.Interpolators; import com.android.launcher3.anim.PendingAnimation; import com.android.quickstep.views.RecentsView; import com.android.quickstep.views.TaskView; import com.android.systemui.shared.system.RemoteAnimationTargetCompat; Loading Loading @@ -63,9 +64,10 @@ public final class LauncherAppTransitionManagerImpl extends QuickstepAppTransiti boolean skipLauncherChanges = !launcherClosing; TaskView taskView = findTaskViewToLaunch(mLauncher, v, appTargets); Animator recentsAnimator = getRecentsWindowAnimator(taskView, skipLauncherChanges, appTargets, wallpaperTargets, mLauncher.getDepthController()); anim.play(recentsAnimator.setDuration(RECENTS_LAUNCH_DURATION)); PendingAnimation pa = new PendingAnimation(RECENTS_LAUNCH_DURATION); createRecentsWindowAnimator(taskView, skipLauncherChanges, appTargets, wallpaperTargets, mLauncher.getDepthController(), pa); anim.play(pa.buildAnim()); Animator childStateAnimation = null; // Found a visible recents task that matches the opening app, lets launch the app from there Loading
quickstep/recents_ui_overrides/src/com/android/launcher3/hybridhotseat/HotseatPredictionController.java +5 −2 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.launcher3.hybridhotseat; import static com.android.launcher3.InvariantDeviceProfile.CHANGE_FLAG_GRID; import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY; import android.animation.Animator; Loading Loading @@ -571,9 +572,11 @@ public class HotseatPredictionController implements DragController.DragListener, @Override public void onIdpChanged(int changeFlags, InvariantDeviceProfile profile) { if ((changeFlags & CHANGE_FLAG_GRID) != 0) { this.mHotSeatItemsCount = profile.numHotseatIcons; createPredictor(); } } @Override public void onAppsUpdated() { Loading
quickstep/recents_ui_overrides/src/com/android/launcher3/uioverrides/PredictedAppIcon.java +4 −4 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import com.android.launcher3.model.data.WorkspaceItemInfo; import com.android.launcher3.touch.ItemClickHandler; import com.android.launcher3.touch.ItemLongClickListener; import com.android.launcher3.util.SafeCloseable; import com.android.launcher3.views.ActivityContext; import com.android.launcher3.views.DoubleShadowBubbleTextView; /** Loading @@ -68,7 +69,6 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView implements private int mPlateColor; boolean mDrawForDrag = false; public PredictedAppIcon(Context context) { this(context, null, 0); } Loading @@ -79,10 +79,8 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView implements public PredictedAppIcon(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); mDeviceProfile = Launcher.getLauncher(context).getDeviceProfile(); mDeviceProfile = ActivityContext.lookupContext(context).getDeviceProfile(); mNormalizedIconRadius = IconNormalizer.getNormalizedCircleSize(getIconSize()) / 2; setOnClickListener(ItemClickHandler.INSTANCE); setOnFocusChangeListener(Launcher.getLauncher(context).getFocusHandler()); int shadowSize = context.getResources().getDimensionPixelSize( R.dimen.blur_size_thin_outline); mShadowFilter = new BlurMaskFilter(shadowSize, BlurMaskFilter.Blur.OUTER); Loading Loading @@ -241,6 +239,8 @@ public class PredictedAppIcon extends DoubleShadowBubbleTextView implements PredictedAppIcon icon = (PredictedAppIcon) LayoutInflater.from(parent.getContext()) .inflate(R.layout.predicted_app_icon, parent, false); icon.applyFromWorkspaceItem(info); icon.setOnClickListener(ItemClickHandler.INSTANCE); icon.setOnFocusChangeListener(Launcher.getLauncher(parent.getContext()).getFocusHandler()); return icon; } Loading