Tune Overview size according to VisD
- Removed modalTransformY as overview actions no longer need to move in modal view - Moved row spacing and page spacing to DeviceProfile - Added several tablet / orientation specific DeviceProfile params Bug: 194194694 Test: Manual Change-Id: Id5435e7f6fc1b6fb7c0e55e55fa240cf84c4d6da
This commit is contained in:
parent
646f804627
commit
5fd9d491b0
|
@ -14,12 +14,11 @@
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
<!-- NOTE! don't add dimensions for margins / gravity to root view in this file, they need to be
|
|
||||||
loaded at runtime. -->
|
|
||||||
<com.android.quickstep.views.GoOverviewActionsView
|
<com.android.quickstep.views.GoOverviewActionsView
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal|bottom">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/action_buttons"
|
android:id="@+id/action_buttons"
|
||||||
|
|
|
@ -14,11 +14,10 @@
|
||||||
See the License for the specific language governing permissions and
|
See the License for the specific language governing permissions and
|
||||||
limitations under the License.
|
limitations under the License.
|
||||||
-->
|
-->
|
||||||
<!-- NOTE! don't add dimensions for margins / gravity to root view in this file, they need to be
|
|
||||||
loaded at runtime. -->
|
|
||||||
<com.android.quickstep.views.OverviewActionsView xmlns:android="http://schemas.android.com/apk/res/android"
|
<com.android.quickstep.views.OverviewActionsView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_gravity="center_horizontal|bottom">
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:id="@+id/action_buttons"
|
android:id="@+id/action_buttons"
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
<resources>
|
<resources>
|
||||||
<dimen name="task_thumbnail_icon_size">48dp</dimen>
|
<dimen name="task_thumbnail_icon_size">48dp</dimen>
|
||||||
<dimen name="task_thumbnail_icon_size_grid">40dp</dimen>
|
|
||||||
<!-- For screens without rounded corners -->
|
<!-- For screens without rounded corners -->
|
||||||
<dimen name="task_corner_radius_small">2dp</dimen>
|
<dimen name="task_corner_radius_small">2dp</dimen>
|
||||||
<!-- For Launchers that want to override the default dialog corner radius -->
|
<!-- For Launchers that want to override the default dialog corner radius -->
|
||||||
|
@ -31,18 +30,22 @@
|
||||||
|
|
||||||
<dimen name="overview_minimum_next_prev_size">50dp</dimen>
|
<dimen name="overview_minimum_next_prev_size">50dp</dimen>
|
||||||
<dimen name="overview_task_margin">16dp</dimen>
|
<dimen name="overview_task_margin">16dp</dimen>
|
||||||
|
<dimen name="overview_task_margin_grid">12dp</dimen>
|
||||||
|
|
||||||
<!-- Overrideable in overlay that provides the Overview Actions. -->
|
<!-- Overrideable in overlay that provides the Overview Actions. -->
|
||||||
<dimen name="overview_actions_height">48dp</dimen>
|
<dimen name="overview_actions_height">48dp</dimen>
|
||||||
<dimen name="overview_actions_bottom_margin_gesture">28dp</dimen>
|
<dimen name="overview_actions_margin_gesture">28dp</dimen>
|
||||||
<dimen name="overview_actions_bottom_margin_three_button">8dp</dimen>
|
<dimen name="overview_actions_top_margin_gesture_grid_portrait">19.37dp</dimen>
|
||||||
|
<dimen name="overview_actions_bottom_margin_gesture_grid_portrait">22dp</dimen>
|
||||||
|
<dimen name="overview_actions_top_margin_gesture_grid_landscape">19.1dp</dimen>
|
||||||
|
<dimen name="overview_actions_bottom_margin_gesture_grid_landscape">10dp</dimen>
|
||||||
|
<dimen name="overview_actions_margin_three_button">8dp</dimen>
|
||||||
<dimen name="overview_actions_horizontal_margin">16dp</dimen>
|
<dimen name="overview_actions_horizontal_margin">16dp</dimen>
|
||||||
|
|
||||||
<dimen name="overview_grid_top_margin">77dp</dimen>
|
<dimen name="overview_grid_side_margin">50dp</dimen>
|
||||||
<dimen name="overview_grid_bottom_margin">70dp</dimen>
|
<dimen name="overview_grid_row_spacing_portrait">37.13dp</dimen>
|
||||||
<dimen name="overview_grid_side_margin">54dp</dimen>
|
<dimen name="overview_grid_row_spacing_landscape">33.38dp</dimen>
|
||||||
<dimen name="overview_grid_row_spacing">42dp</dimen>
|
<dimen name="overview_grid_focus_vertical_margin">0dp</dimen>
|
||||||
<dimen name="overview_grid_focus_vertical_margin">40dp</dimen>
|
|
||||||
|
|
||||||
<!-- These speeds are in dp/s -->
|
<!-- These speeds are in dp/s -->
|
||||||
<dimen name="max_task_dismiss_drag_velocity">2.25dp</dimen>
|
<dimen name="max_task_dismiss_drag_velocity">2.25dp</dimen>
|
||||||
|
@ -51,6 +54,7 @@
|
||||||
<dimen name="default_task_dismiss_drag_velocity_grid_focus_task">5dp</dimen>
|
<dimen name="default_task_dismiss_drag_velocity_grid_focus_task">5dp</dimen>
|
||||||
|
|
||||||
<dimen name="recents_page_spacing">16dp</dimen>
|
<dimen name="recents_page_spacing">16dp</dimen>
|
||||||
|
<dimen name="recents_page_spacing_grid">36dp</dimen>
|
||||||
<dimen name="recents_clear_all_deadzone_vertical_margin">70dp</dimen>
|
<dimen name="recents_clear_all_deadzone_vertical_margin">70dp</dimen>
|
||||||
|
|
||||||
<!-- The speed in dp/s at which the user needs to be scrolling in recents such that we start
|
<!-- The speed in dp/s at which the user needs to be scrolling in recents such that we start
|
||||||
|
|
|
@ -210,14 +210,8 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||||
Rect gridRect = new Rect();
|
Rect gridRect = new Rect();
|
||||||
calculateGridSize(context, dp, gridRect);
|
calculateGridSize(context, dp, gridRect);
|
||||||
|
|
||||||
int verticalMargin = Math.max(
|
|
||||||
res.getDimensionPixelSize(R.dimen.overview_grid_focus_vertical_margin),
|
|
||||||
res.getDimensionPixelSize(R.dimen.overview_actions_height));
|
|
||||||
float taskHeight =
|
|
||||||
gridRect.height() - verticalMargin * 2 - dp.overviewTaskThumbnailTopMarginPx;
|
|
||||||
|
|
||||||
PointF taskDimension = getTaskDimension(context, dp);
|
PointF taskDimension = getTaskDimension(context, dp);
|
||||||
float scale = taskHeight / taskDimension.y;
|
float scale = gridRect.height() / taskDimension.y;
|
||||||
int outWidth = Math.round(scale * taskDimension.x);
|
int outWidth = Math.round(scale * taskDimension.x);
|
||||||
int outHeight = Math.round(scale * taskDimension.y);
|
int outHeight = Math.round(scale * taskDimension.y);
|
||||||
|
|
||||||
|
@ -225,19 +219,9 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||||
Gravity.apply(gravity, outWidth, outHeight, gridRect, outRect);
|
Gravity.apply(gravity, outWidth, outHeight, gridRect, outRect);
|
||||||
} else {
|
} else {
|
||||||
int taskMargin = dp.overviewTaskMarginPx;
|
int taskMargin = dp.overviewTaskMarginPx;
|
||||||
int proactiveRowAndMargin;
|
|
||||||
if (!TaskView.SHOW_PROACTIVE_ACTIONS || dp.isVerticalBarLayout()) {
|
|
||||||
// In Vertical Bar Layout the proactive row doesn't have its own space, it's inside
|
|
||||||
// the actions row.
|
|
||||||
proactiveRowAndMargin = 0;
|
|
||||||
} else {
|
|
||||||
proactiveRowAndMargin = res.getDimensionPixelSize(
|
|
||||||
R.dimen.overview_proactive_row_height)
|
|
||||||
+ res.getDimensionPixelSize(R.dimen.overview_proactive_row_bottom_margin);
|
|
||||||
}
|
|
||||||
calculateTaskSizeInternal(context, dp,
|
calculateTaskSizeInternal(context, dp,
|
||||||
dp.overviewTaskThumbnailTopMarginPx,
|
dp.overviewTaskThumbnailTopMarginPx,
|
||||||
proactiveRowAndMargin + getOverviewActionsHeight(context, dp),
|
getProactiveRowAndMargin(context, dp) + getOverviewActionsHeight(context, dp),
|
||||||
res.getDimensionPixelSize(R.dimen.overview_minimum_next_prev_size) + taskMargin,
|
res.getDimensionPixelSize(R.dimen.overview_minimum_next_prev_size) + taskMargin,
|
||||||
outRect);
|
outRect);
|
||||||
}
|
}
|
||||||
|
@ -299,13 +283,14 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||||
*/
|
*/
|
||||||
public final void calculateGridSize(Context context, DeviceProfile dp, Rect outRect) {
|
public final void calculateGridSize(Context context, DeviceProfile dp, Rect outRect) {
|
||||||
Resources res = context.getResources();
|
Resources res = context.getResources();
|
||||||
int topMargin = res.getDimensionPixelSize(R.dimen.overview_grid_top_margin);
|
Rect insets = dp.getInsets();
|
||||||
int bottomMargin = res.getDimensionPixelSize(R.dimen.overview_grid_bottom_margin);
|
int topMargin = dp.overviewTaskThumbnailTopMarginPx;
|
||||||
|
int bottomMargin =
|
||||||
|
getProactiveRowAndMargin(context, dp) + getOverviewActionsHeight(context, dp);
|
||||||
int sideMargin = res.getDimensionPixelSize(R.dimen.overview_grid_side_margin);
|
int sideMargin = res.getDimensionPixelSize(R.dimen.overview_grid_side_margin);
|
||||||
|
|
||||||
Rect insets = dp.getInsets();
|
|
||||||
outRect.set(0, 0, dp.widthPx, dp.heightPx);
|
outRect.set(0, 0, dp.widthPx, dp.heightPx);
|
||||||
outRect.inset(Math.max(insets.left, sideMargin), Math.max(insets.top, topMargin),
|
outRect.inset(Math.max(insets.left, sideMargin), insets.top + topMargin,
|
||||||
Math.max(insets.right, sideMargin), Math.max(insets.bottom, bottomMargin));
|
Math.max(insets.right, sideMargin), Math.max(insets.bottom, bottomMargin));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -318,8 +303,9 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||||
Rect gridRect = new Rect();
|
Rect gridRect = new Rect();
|
||||||
calculateGridSize(context, dp, gridRect);
|
calculateGridSize(context, dp, gridRect);
|
||||||
|
|
||||||
int rowSpacing = res.getDimensionPixelSize(R.dimen.overview_grid_row_spacing);
|
float rowHeight =
|
||||||
float rowHeight = (gridRect.height() - rowSpacing) / 2f;
|
(gridRect.height() + dp.overviewTaskThumbnailTopMarginPx - dp.overviewRowSpacing)
|
||||||
|
/ 2f;
|
||||||
|
|
||||||
PointF taskDimension = getTaskDimension(context, dp);
|
PointF taskDimension = getTaskDimension(context, dp);
|
||||||
float scale = (rowHeight - dp.overviewTaskThumbnailTopMarginPx) / taskDimension.y;
|
float scale = (rowHeight - dp.overviewTaskThumbnailTopMarginPx) / taskDimension.y;
|
||||||
|
@ -328,7 +314,6 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||||
|
|
||||||
int gravity = Gravity.TOP;
|
int gravity = Gravity.TOP;
|
||||||
gravity |= orientedState.getRecentsRtlSetting(res) ? Gravity.RIGHT : Gravity.LEFT;
|
gravity |= orientedState.getRecentsRtlSetting(res) ? Gravity.RIGHT : Gravity.LEFT;
|
||||||
gridRect.inset(0, dp.overviewTaskThumbnailTopMarginPx, 0, 0);
|
|
||||||
Gravity.apply(gravity, outWidth, outHeight, gridRect, outRect);
|
Gravity.apply(gravity, outWidth, outHeight, gridRect, outRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,6 +329,21 @@ public abstract class BaseActivityInterface<STATE_TYPE extends BaseState<STATE_T
|
||||||
outRect);
|
outRect);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int getProactiveRowAndMargin(Context context, DeviceProfile dp) {
|
||||||
|
Resources res = context.getResources();
|
||||||
|
int proactiveRowAndMargin;
|
||||||
|
if (!TaskView.SHOW_PROACTIVE_ACTIONS || dp.isVerticalBarLayout()) {
|
||||||
|
// In Vertical Bar Layout the proactive row doesn't have its own space, it's inside
|
||||||
|
// the actions row.
|
||||||
|
proactiveRowAndMargin = 0;
|
||||||
|
} else {
|
||||||
|
proactiveRowAndMargin = res.getDimensionPixelSize(
|
||||||
|
R.dimen.overview_proactive_row_height)
|
||||||
|
+ res.getDimensionPixelSize(R.dimen.overview_proactive_row_bottom_margin);
|
||||||
|
}
|
||||||
|
return proactiveRowAndMargin;
|
||||||
|
}
|
||||||
|
|
||||||
/** Gets the space that the overview actions will take, including bottom margin. */
|
/** Gets the space that the overview actions will take, including bottom margin. */
|
||||||
private int getOverviewActionsHeight(Context context, DeviceProfile dp) {
|
private int getOverviewActionsHeight(Context context, DeviceProfile dp) {
|
||||||
Resources res = context.getResources();
|
Resources res = context.getResources();
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
|
|
||||||
package com.android.quickstep.views;
|
package com.android.quickstep.views;
|
||||||
|
|
||||||
import static com.android.launcher3.anim.Interpolators.ACCEL_DEACCEL;
|
|
||||||
import static com.android.launcher3.config.FeatureFlags.ENABLE_OVERVIEW_SHARE;
|
import static com.android.launcher3.config.FeatureFlags.ENABLE_OVERVIEW_SHARE;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
@ -33,7 +32,6 @@ import androidx.annotation.Nullable;
|
||||||
import com.android.launcher3.DeviceProfile;
|
import com.android.launcher3.DeviceProfile;
|
||||||
import com.android.launcher3.Insettable;
|
import com.android.launcher3.Insettable;
|
||||||
import com.android.launcher3.R;
|
import com.android.launcher3.R;
|
||||||
import com.android.launcher3.Utilities;
|
|
||||||
import com.android.launcher3.util.MultiValueAlpha;
|
import com.android.launcher3.util.MultiValueAlpha;
|
||||||
import com.android.launcher3.util.MultiValueAlpha.AlphaProperty;
|
import com.android.launcher3.util.MultiValueAlpha.AlphaProperty;
|
||||||
import com.android.quickstep.SysUINavigationMode;
|
import com.android.quickstep.SysUINavigationMode;
|
||||||
|
@ -90,9 +88,6 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
|
||||||
|
|
||||||
protected T mCallbacks;
|
protected T mCallbacks;
|
||||||
|
|
||||||
private float mModalness;
|
|
||||||
private float mModalTransformY;
|
|
||||||
|
|
||||||
protected DeviceProfile mDp;
|
protected DeviceProfile mDp;
|
||||||
|
|
||||||
public OverviewActionsView(Context context) {
|
public OverviewActionsView(Context context) {
|
||||||
|
@ -225,29 +220,6 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
|
||||||
requestLayout();
|
requestLayout();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The current task is fully modal (modalness = 1) when it is shown on its own in a modal
|
|
||||||
* way. Modalness 0 means the task is shown in context with all the other tasks.
|
|
||||||
*/
|
|
||||||
public void setTaskModalness(float modalness) {
|
|
||||||
mModalness = modalness;
|
|
||||||
applyTranslationY();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setModalTransformY(float modalTransformY) {
|
|
||||||
mModalTransformY = modalTransformY;
|
|
||||||
applyTranslationY();
|
|
||||||
}
|
|
||||||
|
|
||||||
private void applyTranslationY() {
|
|
||||||
setTranslationY(getModalTrans(mModalTransformY));
|
|
||||||
}
|
|
||||||
|
|
||||||
private float getModalTrans(float endTranslation) {
|
|
||||||
float progress = ACCEL_DEACCEL.getInterpolation(mModalness);
|
|
||||||
return Utilities.mapRange(progress, 0, endTranslation);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Get the top margin associated with the action buttons in Overview. */
|
/** Get the top margin associated with the action buttons in Overview. */
|
||||||
public static int getOverviewActionsTopMarginPx(
|
public static int getOverviewActionsTopMarginPx(
|
||||||
SysUINavigationMode.Mode mode, DeviceProfile dp) {
|
SysUINavigationMode.Mode mode, DeviceProfile dp) {
|
||||||
|
@ -260,7 +232,7 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
|
||||||
return dp.overviewActionsMarginThreeButtonPx;
|
return dp.overviewActionsMarginThreeButtonPx;
|
||||||
}
|
}
|
||||||
|
|
||||||
return dp.overviewActionsMarginGesturePx;
|
return dp.overviewActionsTopMarginGesturePx;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get the bottom margin associated with the action buttons in Overview. */
|
/** Get the bottom margin associated with the action buttons in Overview. */
|
||||||
|
@ -276,6 +248,6 @@ public class OverviewActionsView<T extends OverlayUICallbacks> extends FrameLayo
|
||||||
return dp.overviewActionsMarginThreeButtonPx + inset;
|
return dp.overviewActionsMarginThreeButtonPx + inset;
|
||||||
}
|
}
|
||||||
|
|
||||||
return dp.overviewActionsMarginGesturePx + inset;
|
return dp.overviewActionsBottomMarginGesturePx + inset;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,6 @@ import android.text.TextPaint;
|
||||||
import android.util.AttributeSet;
|
import android.util.AttributeSet;
|
||||||
import android.util.FloatProperty;
|
import android.util.FloatProperty;
|
||||||
import android.util.SparseBooleanArray;
|
import android.util.SparseBooleanArray;
|
||||||
import android.view.Gravity;
|
|
||||||
import android.view.HapticFeedbackConstants;
|
import android.view.HapticFeedbackConstants;
|
||||||
import android.view.KeyEvent;
|
import android.view.KeyEvent;
|
||||||
import android.view.LayoutInflater;
|
import android.view.LayoutInflater;
|
||||||
|
@ -95,7 +94,6 @@ import android.view.ViewTreeObserver.OnScrollChangedListener;
|
||||||
import android.view.accessibility.AccessibilityEvent;
|
import android.view.accessibility.AccessibilityEvent;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
import android.view.animation.Interpolator;
|
import android.view.animation.Interpolator;
|
||||||
import android.widget.FrameLayout;
|
|
||||||
import android.widget.ListView;
|
import android.widget.ListView;
|
||||||
import android.widget.OverScroller;
|
import android.widget.OverScroller;
|
||||||
|
|
||||||
|
@ -386,7 +384,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||||
protected final ACTIVITY_TYPE mActivity;
|
protected final ACTIVITY_TYPE mActivity;
|
||||||
private final float mFastFlingVelocity;
|
private final float mFastFlingVelocity;
|
||||||
private final RecentsModel mModel;
|
private final RecentsModel mModel;
|
||||||
private final int mRowSpacing;
|
|
||||||
private final int mGridSideMargin;
|
private final int mGridSideMargin;
|
||||||
private final ClearAllButton mClearAllButton;
|
private final ClearAllButton mClearAllButton;
|
||||||
private final Rect mClearAllButtonDeadZoneRect = new Rect();
|
private final Rect mClearAllButtonDeadZoneRect = new Rect();
|
||||||
|
@ -598,7 +595,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||||
public RecentsView(Context context, AttributeSet attrs, int defStyleAttr,
|
public RecentsView(Context context, AttributeSet attrs, int defStyleAttr,
|
||||||
BaseActivityInterface sizeStrategy) {
|
BaseActivityInterface sizeStrategy) {
|
||||||
super(context, attrs, defStyleAttr);
|
super(context, attrs, defStyleAttr);
|
||||||
setPageSpacing(getResources().getDimensionPixelSize(R.dimen.recents_page_spacing));
|
|
||||||
setEnableFreeScroll(true);
|
setEnableFreeScroll(true);
|
||||||
mSizeStrategy = sizeStrategy;
|
mSizeStrategy = sizeStrategy;
|
||||||
mActivity = BaseActivity.fromContext(context);
|
mActivity = BaseActivity.fromContext(context);
|
||||||
|
@ -620,7 +616,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||||
|
|
||||||
mIsRtl = mOrientationHandler.getRecentsRtlSetting(getResources());
|
mIsRtl = mOrientationHandler.getRecentsRtlSetting(getResources());
|
||||||
setLayoutDirection(mIsRtl ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
|
setLayoutDirection(mIsRtl ? View.LAYOUT_DIRECTION_RTL : View.LAYOUT_DIRECTION_LTR);
|
||||||
mRowSpacing = getResources().getDimensionPixelSize(R.dimen.overview_grid_row_spacing);
|
|
||||||
mGridSideMargin = getResources().getDimensionPixelSize(R.dimen.overview_grid_side_margin);
|
mGridSideMargin = getResources().getDimensionPixelSize(R.dimen.overview_grid_side_margin);
|
||||||
mSquaredTouchSlop = squaredTouchSlop(context);
|
mSquaredTouchSlop = squaredTouchSlop(context);
|
||||||
|
|
||||||
|
@ -1351,6 +1346,7 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||||
DeviceProfile dp = mActivity.getDeviceProfile();
|
DeviceProfile dp = mActivity.getDeviceProfile();
|
||||||
setOverviewGridEnabled(
|
setOverviewGridEnabled(
|
||||||
mActivity.getStateManager().getState().displayOverviewTasksAsGrid(dp));
|
mActivity.getStateManager().getState().displayOverviewTasksAsGrid(dp));
|
||||||
|
setPageSpacing(dp.overviewPageSpacing);
|
||||||
|
|
||||||
// Propagate DeviceProfile change event.
|
// Propagate DeviceProfile change event.
|
||||||
mLiveTileTaskViewSimulator.setDp(dp);
|
mLiveTileTaskViewSimulator.setDp(dp);
|
||||||
|
@ -1421,32 +1417,10 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||||
mTaskGridVerticalDiff = mLastComputedGridTaskSize.top - mLastComputedTaskSize.top;
|
mTaskGridVerticalDiff = mLastComputedGridTaskSize.top - mLastComputedTaskSize.top;
|
||||||
mTopBottomRowHeightDiff =
|
mTopBottomRowHeightDiff =
|
||||||
mLastComputedGridTaskSize.height() + dp.overviewTaskThumbnailTopMarginPx
|
mLastComputedGridTaskSize.height() + dp.overviewTaskThumbnailTopMarginPx
|
||||||
+ mRowSpacing;
|
+ dp.overviewRowSpacing;
|
||||||
|
|
||||||
// Force TaskView to update size from thumbnail
|
// Force TaskView to update size from thumbnail
|
||||||
updateTaskSize();
|
updateTaskSize();
|
||||||
|
|
||||||
// Update ActionsView position
|
|
||||||
if (mActionsView != null) {
|
|
||||||
FrameLayout.LayoutParams layoutParams =
|
|
||||||
(FrameLayout.LayoutParams) mActionsView.getLayoutParams();
|
|
||||||
if (dp.overviewShowAsGrid) {
|
|
||||||
layoutParams.gravity = Gravity.BOTTOM;
|
|
||||||
layoutParams.bottomMargin =
|
|
||||||
dp.heightPx - mInsets.bottom - mLastComputedGridSize.bottom;
|
|
||||||
layoutParams.leftMargin = mLastComputedTaskSize.left;
|
|
||||||
layoutParams.rightMargin = dp.widthPx - mLastComputedTaskSize.right;
|
|
||||||
// When in modal state, remove bottom margin to avoid covering content.
|
|
||||||
mActionsView.setModalTransformY(layoutParams.bottomMargin);
|
|
||||||
} else {
|
|
||||||
layoutParams.gravity = Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM;
|
|
||||||
layoutParams.bottomMargin = 0;
|
|
||||||
layoutParams.leftMargin = 0;
|
|
||||||
layoutParams.rightMargin = 0;
|
|
||||||
mActionsView.setModalTransformY(0);
|
|
||||||
}
|
|
||||||
mActionsView.setLayoutParams(layoutParams);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3946,7 +3920,6 @@ public abstract class RecentsView<ACTIVITY_TYPE extends StatefulActivity<STATE_T
|
||||||
boolean inPlaceLandscape = !mOrientationState.canRecentsActivityRotate()
|
boolean inPlaceLandscape = !mOrientationState.canRecentsActivityRotate()
|
||||||
&& mOrientationState.getTouchRotation() != ROTATION_0;
|
&& mOrientationState.getTouchRotation() != ROTATION_0;
|
||||||
mActionsView.updateHiddenFlags(HIDDEN_NON_ZERO_ROTATION, modalness < 1 && inPlaceLandscape);
|
mActionsView.updateHiddenFlags(HIDDEN_NON_ZERO_ROTATION, modalness < 1 && inPlaceLandscape);
|
||||||
mActionsView.setTaskModalness(modalness);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
|
|
|
@ -324,8 +324,17 @@
|
||||||
<dimen name="task_thumbnail_icon_size">0dp</dimen>
|
<dimen name="task_thumbnail_icon_size">0dp</dimen>
|
||||||
<dimen name="task_thumbnail_icon_size_grid">0dp</dimen>
|
<dimen name="task_thumbnail_icon_size_grid">0dp</dimen>
|
||||||
<dimen name="overview_task_margin">0dp</dimen>
|
<dimen name="overview_task_margin">0dp</dimen>
|
||||||
<dimen name="overview_actions_bottom_margin_gesture">0dp</dimen>
|
<dimen name="overview_task_margin_grid">0dp</dimen>
|
||||||
<dimen name="overview_actions_bottom_margin_three_button">0dp</dimen>
|
<dimen name="overview_actions_margin_gesture">0dp</dimen>
|
||||||
|
<dimen name="overview_actions_top_margin_gesture_grid_portrait">0dp</dimen>
|
||||||
|
<dimen name="overview_actions_bottom_margin_gesture_grid_portrait">0dp</dimen>
|
||||||
|
<dimen name="overview_actions_top_margin_gesture_grid_landscape">0dp</dimen>
|
||||||
|
<dimen name="overview_actions_bottom_margin_gesture_grid_landscape">0dp</dimen>
|
||||||
|
<dimen name="overview_actions_margin_three_button">0dp</dimen>
|
||||||
|
<dimen name="overview_grid_row_spacing_portrait">0dp</dimen>
|
||||||
|
<dimen name="overview_grid_row_spacing_landscape">0dp</dimen>
|
||||||
|
<dimen name="recents_page_spacing">0dp</dimen>
|
||||||
|
<dimen name="recents_page_spacing_grid">0dp</dimen>
|
||||||
<dimen name="split_placeholder_size">110dp</dimen>
|
<dimen name="split_placeholder_size">110dp</dimen>
|
||||||
|
|
||||||
<!-- Workspace grid visualization parameters -->
|
<!-- Workspace grid visualization parameters -->
|
||||||
|
|
|
@ -184,7 +184,10 @@ public class DeviceProfile {
|
||||||
public int overviewTaskIconSizePx;
|
public int overviewTaskIconSizePx;
|
||||||
public int overviewTaskThumbnailTopMarginPx;
|
public int overviewTaskThumbnailTopMarginPx;
|
||||||
public final int overviewActionsMarginThreeButtonPx;
|
public final int overviewActionsMarginThreeButtonPx;
|
||||||
public final int overviewActionsMarginGesturePx;
|
public final int overviewActionsTopMarginGesturePx;
|
||||||
|
public final int overviewActionsBottomMarginGesturePx;
|
||||||
|
public int overviewPageSpacing;
|
||||||
|
public int overviewRowSpacing;
|
||||||
|
|
||||||
// Widgets
|
// Widgets
|
||||||
public final PointF appWidgetScale = new PointF(1.0f, 1.0f);
|
public final PointF appWidgetScale = new PointF(1.0f, 1.0f);
|
||||||
|
@ -350,15 +353,36 @@ public class DeviceProfile {
|
||||||
: 0;
|
: 0;
|
||||||
|
|
||||||
overviewShowAsGrid = isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get();
|
overviewShowAsGrid = isTablet && FeatureFlags.ENABLE_OVERVIEW_GRID.get();
|
||||||
overviewTaskMarginPx = res.getDimensionPixelSize(R.dimen.overview_task_margin);
|
overviewTaskMarginPx = overviewShowAsGrid
|
||||||
overviewTaskIconSizePx = overviewShowAsGrid
|
? res.getDimensionPixelSize(R.dimen.overview_task_margin_grid)
|
||||||
? res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_size_grid)
|
: res.getDimensionPixelSize(R.dimen.overview_task_margin);
|
||||||
: res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_size);
|
overviewTaskIconSizePx = res.getDimensionPixelSize(R.dimen.task_thumbnail_icon_size);
|
||||||
overviewTaskThumbnailTopMarginPx = overviewTaskIconSizePx + overviewTaskMarginPx * 2;
|
overviewTaskThumbnailTopMarginPx = overviewTaskIconSizePx + overviewTaskMarginPx * 2;
|
||||||
overviewActionsMarginGesturePx = res.getDimensionPixelSize(
|
if (overviewShowAsGrid) {
|
||||||
R.dimen.overview_actions_bottom_margin_gesture);
|
if (isLandscape) {
|
||||||
|
overviewActionsTopMarginGesturePx = res.getDimensionPixelSize(
|
||||||
|
R.dimen.overview_actions_top_margin_gesture_grid_landscape);
|
||||||
|
overviewActionsBottomMarginGesturePx = res.getDimensionPixelSize(
|
||||||
|
R.dimen.overview_actions_bottom_margin_gesture_grid_landscape);
|
||||||
|
} else {
|
||||||
|
overviewActionsTopMarginGesturePx = res.getDimensionPixelSize(
|
||||||
|
R.dimen.overview_actions_top_margin_gesture_grid_portrait);
|
||||||
|
overviewActionsBottomMarginGesturePx = res.getDimensionPixelSize(
|
||||||
|
R.dimen.overview_actions_bottom_margin_gesture_grid_portrait);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
overviewActionsTopMarginGesturePx = res.getDimensionPixelSize(
|
||||||
|
R.dimen.overview_actions_margin_gesture);
|
||||||
|
overviewActionsBottomMarginGesturePx = overviewActionsTopMarginGesturePx;
|
||||||
|
}
|
||||||
overviewActionsMarginThreeButtonPx = res.getDimensionPixelSize(
|
overviewActionsMarginThreeButtonPx = res.getDimensionPixelSize(
|
||||||
R.dimen.overview_actions_bottom_margin_three_button);
|
R.dimen.overview_actions_margin_three_button);
|
||||||
|
overviewPageSpacing = overviewShowAsGrid
|
||||||
|
? res.getDimensionPixelSize(R.dimen.recents_page_spacing_grid)
|
||||||
|
: res.getDimensionPixelSize(R.dimen.recents_page_spacing);
|
||||||
|
overviewRowSpacing = isLandscape
|
||||||
|
? res.getDimensionPixelSize(R.dimen.overview_grid_row_spacing_landscape)
|
||||||
|
: res.getDimensionPixelSize(R.dimen.overview_grid_row_spacing_portrait);
|
||||||
|
|
||||||
// Calculate all of the remaining variables.
|
// Calculate all of the remaining variables.
|
||||||
extraSpace = updateAvailableDimensions(res);
|
extraSpace = updateAvailableDimensions(res);
|
||||||
|
|
Loading…
Reference in New Issue