mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-19 02:38:20 +00:00
Calculate the scale up for quickscrub based on the available size of the screen
Bug: 80139193 Change-Id: I0492ce5bfa347bad12a09a13e404ded77e797623
This commit is contained in:
@@ -21,6 +21,7 @@
|
||||
<dimen name="task_menu_background_radius">12dp</dimen>
|
||||
<dimen name="task_corner_radius">2dp</dimen>
|
||||
<dimen name="recents_page_spacing">10dp</dimen>
|
||||
<dimen name="quickscrub_adjacent_visible_width">20dp</dimen>
|
||||
|
||||
<!-- The speed in dp/s at which the user needs to be scrolling in recents such that we start
|
||||
loading full resolution screenshots. -->
|
||||
|
||||
@@ -15,8 +15,13 @@
|
||||
*/
|
||||
package com.android.launcher3.uioverrides;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.res.Resources;
|
||||
import android.graphics.Rect;
|
||||
|
||||
import com.android.launcher3.DeviceProfile;
|
||||
import com.android.launcher3.Launcher;
|
||||
import com.android.launcher3.R;
|
||||
import com.android.quickstep.QuickScrubController;
|
||||
import com.android.quickstep.views.RecentsView;
|
||||
|
||||
@@ -25,6 +30,12 @@ import com.android.quickstep.views.RecentsView;
|
||||
*/
|
||||
public class FastOverviewState extends OverviewState {
|
||||
|
||||
private static final float MAX_PREVIEW_SCALE_UP = 1.3f;
|
||||
/**
|
||||
* Vertical transition of the task previews relative to the full container.
|
||||
*/
|
||||
public static final float OVERVIEW_TRANSLATION_FACTOR = 0.5f;
|
||||
|
||||
private static final int STATE_FLAGS = FLAG_DISABLE_RESTORE | FLAG_DISABLE_INTERACTION
|
||||
| FLAG_OVERVIEW_UI | FLAG_HIDE_BACK_BUTTON | FLAG_DISABLE_ACCESSIBILITY;
|
||||
|
||||
@@ -46,15 +57,23 @@ public class FastOverviewState extends OverviewState {
|
||||
|
||||
@Override
|
||||
public float[] getOverviewScaleAndTranslationYFactor(Launcher launcher) {
|
||||
return new float[] {getOverviewScale(launcher.getDeviceProfile()), 0.5f};
|
||||
RecentsView recentsView = launcher.getOverviewPanel();
|
||||
recentsView.getTaskSize(sTempRect);
|
||||
|
||||
return new float[] {getOverviewScale(launcher.getDeviceProfile(), sTempRect, launcher),
|
||||
OVERVIEW_TRANSLATION_FACTOR};
|
||||
}
|
||||
|
||||
public static float getOverviewScale(DeviceProfile dp) {
|
||||
if (dp.isMultiWindowMode || dp.isVerticalBarLayout()) {
|
||||
public static float getOverviewScale(DeviceProfile dp, Rect taskRect, Context context) {
|
||||
if (dp.isVerticalBarLayout()) {
|
||||
return 1f;
|
||||
}
|
||||
|
||||
// TODO: Calculate it dynamically based on available space
|
||||
return 1.3f;
|
||||
Resources res = context.getResources();
|
||||
float usedHeight = taskRect.height() + res.getDimension(R.dimen.task_thumbnail_top_margin);
|
||||
float usedWidth = taskRect.width() + 2 * (res.getDimension(R.dimen.recents_page_spacing)
|
||||
+ res.getDimension(R.dimen.quickscrub_adjacent_visible_width));
|
||||
return Math.min(Math.min(dp.availableHeightPx / usedHeight,
|
||||
dp.availableWidthPx / usedWidth), MAX_PREVIEW_SCALE_UP);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -153,8 +153,8 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> {
|
||||
@Override
|
||||
public float getTranslationYForQuickScrub(Launcher activity) {
|
||||
LauncherRecentsView recentsView = activity.getOverviewPanel();
|
||||
float transYFactor = FAST_OVERVIEW.getOverviewScaleAndTranslationYFactor(activity)[1];
|
||||
return recentsView.computeTranslationYForFactor(transYFactor);
|
||||
return recentsView.computeTranslationYForFactor(
|
||||
FastOverviewState.OVERVIEW_TRANSLATION_FACTOR);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -167,7 +167,7 @@ public interface ActivityControlHelper<T extends BaseDraggingActivity> {
|
||||
@InteractionType int interactionType, TransformedRect outRect) {
|
||||
LayoutUtils.calculateLauncherTaskSize(context, dp, outRect.rect);
|
||||
if (interactionType == INTERACTION_QUICK_SCRUB) {
|
||||
outRect.scale = FastOverviewState.getOverviewScale(dp);
|
||||
outRect.scale = FastOverviewState.getOverviewScale(dp, outRect.rect, context);
|
||||
}
|
||||
if (dp.isVerticalBarLayout()) {
|
||||
Rect targetInsets = dp.getInsets();
|
||||
|
||||
Reference in New Issue
Block a user