Loading quickstep/recents_ui_overrides/res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ <dimen name="chip_hint_start_padding">10dp</dimen> <dimen name="chip_hint_end_padding">12dp</dimen> <dimen name="chip_hint_horizontal_margin">20dp</dimen> <dimen name="chip_hint_vertical_offset">16dp</dimen> <dimen name="chip_hint_elevation">2dp</dimen> <dimen name="chip_icon_size">16dp</dimen> <dimen name="chip_text_height">26dp</dimen> Loading quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +67 −9 Original line number Diff line number Diff line Loading @@ -174,11 +174,12 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { // Order in which the footers appear. Lower order appear below higher order. public static final int INDEX_DIGITAL_WELLBEING_TOAST = 0; public static final int INDEX_PROACTIVE_SUGGEST = 1; private final FooterWrapper[] mFooters = new FooterWrapper[2]; private float mFooterVerticalOffset = 0; private float mFooterAlpha = 1; private int mStackHeight; private View mContextualChipWrapper; private View mContextualChip; public TaskView(Context context) { this(context, null); Loading Loading @@ -255,8 +256,14 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { footer.animateHide(); } } if (mContextualChip != null) { mContextualChip.animate().scaleX(0f).scaleY(0f).setDuration(300); } mIconView.animate().alpha(0.0f); } else { if (mContextualChip != null) { mContextualChip.animate().scaleX(1f).scaleY(1f).setDuration(300); } mIconView.animate().alpha(1.0f); } Loading Loading @@ -657,6 +664,51 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { return oldFooter; } /** * Sets the contextual chip. * * @param view Wrapper view containing contextual chip. */ public void setContextualChip(View view) { if (mContextualChipWrapper != null) { removeView(mContextualChipWrapper); } if (view != null) { mContextualChipWrapper = view; LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); layoutParams.gravity = BOTTOM | CENTER_HORIZONTAL; layoutParams.bottomMargin = (int) (((MarginLayoutParams) mSnapshotView.getLayoutParams()).bottomMargin - getExpectedViewHeight(view) + getResources().getDimension( R.dimen.chip_hint_vertical_offset)); mContextualChip = ((FrameLayout) mContextualChipWrapper).getChildAt(0); mContextualChip.setScaleX(0f); mContextualChip.setScaleY(0f); addView(view, getChildCount(), layoutParams); view.setAlpha(mFooterAlpha); if (mContextualChip != null) { mContextualChip.animate().scaleX(1f).scaleY(1f).setDuration(50); } } } /** * Clears the contextual chip from TaskView. * * @return The contextual chip wrapper view to be recycled. */ public View clearContextualChip() { if (mContextualChipWrapper != null) { removeView(mContextualChipWrapper); } View oldContextualChipWrapper = mContextualChipWrapper; mContextualChipWrapper = null; mContextualChip = null; return oldContextualChipWrapper; } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); Loading Loading @@ -750,14 +802,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { mDelegate = mOldOutlineProvider == null ? ViewOutlineProvider.BACKGROUND : mOldOutlineProvider; int h = view.getLayoutParams().height; if (h > 0) { mExpectedHeight = h; } else { int m = MeasureSpec.makeMeasureSpec(MeasureSpec.EXACTLY - 1, MeasureSpec.AT_MOST); view.measure(m, m); mExpectedHeight = view.getMeasuredHeight(); } mExpectedHeight = getExpectedViewHeight(view); mOldPaddingBottom = view.getPaddingBottom(); if (mOldOutlineProvider != null) { Loading Loading @@ -819,6 +864,19 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { } } private int getExpectedViewHeight(View view) { int expectedHeight; int h = view.getLayoutParams().height; if (h > 0) { expectedHeight = h; } else { int m = MeasureSpec.makeMeasureSpec(MeasureSpec.EXACTLY - 1, MeasureSpec.AT_MOST); view.measure(m, m); expectedHeight = view.getMeasuredHeight(); } return expectedHeight; } @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); Loading Loading
quickstep/recents_ui_overrides/res/values/dimens.xml +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ <dimen name="chip_hint_start_padding">10dp</dimen> <dimen name="chip_hint_end_padding">12dp</dimen> <dimen name="chip_hint_horizontal_margin">20dp</dimen> <dimen name="chip_hint_vertical_offset">16dp</dimen> <dimen name="chip_hint_elevation">2dp</dimen> <dimen name="chip_icon_size">16dp</dimen> <dimen name="chip_text_height">26dp</dimen> Loading
quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java +67 −9 Original line number Diff line number Diff line Loading @@ -174,11 +174,12 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { // Order in which the footers appear. Lower order appear below higher order. public static final int INDEX_DIGITAL_WELLBEING_TOAST = 0; public static final int INDEX_PROACTIVE_SUGGEST = 1; private final FooterWrapper[] mFooters = new FooterWrapper[2]; private float mFooterVerticalOffset = 0; private float mFooterAlpha = 1; private int mStackHeight; private View mContextualChipWrapper; private View mContextualChip; public TaskView(Context context) { this(context, null); Loading Loading @@ -255,8 +256,14 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { footer.animateHide(); } } if (mContextualChip != null) { mContextualChip.animate().scaleX(0f).scaleY(0f).setDuration(300); } mIconView.animate().alpha(0.0f); } else { if (mContextualChip != null) { mContextualChip.animate().scaleX(1f).scaleY(1f).setDuration(300); } mIconView.animate().alpha(1.0f); } Loading Loading @@ -657,6 +664,51 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { return oldFooter; } /** * Sets the contextual chip. * * @param view Wrapper view containing contextual chip. */ public void setContextualChip(View view) { if (mContextualChipWrapper != null) { removeView(mContextualChipWrapper); } if (view != null) { mContextualChipWrapper = view; LayoutParams layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); layoutParams.gravity = BOTTOM | CENTER_HORIZONTAL; layoutParams.bottomMargin = (int) (((MarginLayoutParams) mSnapshotView.getLayoutParams()).bottomMargin - getExpectedViewHeight(view) + getResources().getDimension( R.dimen.chip_hint_vertical_offset)); mContextualChip = ((FrameLayout) mContextualChipWrapper).getChildAt(0); mContextualChip.setScaleX(0f); mContextualChip.setScaleY(0f); addView(view, getChildCount(), layoutParams); view.setAlpha(mFooterAlpha); if (mContextualChip != null) { mContextualChip.animate().scaleX(1f).scaleY(1f).setDuration(50); } } } /** * Clears the contextual chip from TaskView. * * @return The contextual chip wrapper view to be recycled. */ public View clearContextualChip() { if (mContextualChipWrapper != null) { removeView(mContextualChipWrapper); } View oldContextualChipWrapper = mContextualChipWrapper; mContextualChipWrapper = null; mContextualChip = null; return oldContextualChipWrapper; } @Override protected void onLayout(boolean changed, int left, int top, int right, int bottom) { super.onLayout(changed, left, top, right, bottom); Loading Loading @@ -750,14 +802,7 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { mDelegate = mOldOutlineProvider == null ? ViewOutlineProvider.BACKGROUND : mOldOutlineProvider; int h = view.getLayoutParams().height; if (h > 0) { mExpectedHeight = h; } else { int m = MeasureSpec.makeMeasureSpec(MeasureSpec.EXACTLY - 1, MeasureSpec.AT_MOST); view.measure(m, m); mExpectedHeight = view.getMeasuredHeight(); } mExpectedHeight = getExpectedViewHeight(view); mOldPaddingBottom = view.getPaddingBottom(); if (mOldOutlineProvider != null) { Loading Loading @@ -819,6 +864,19 @@ public class TaskView extends FrameLayout implements PageCallbacks, Reusable { } } private int getExpectedViewHeight(View view) { int expectedHeight; int h = view.getLayoutParams().height; if (h > 0) { expectedHeight = h; } else { int m = MeasureSpec.makeMeasureSpec(MeasureSpec.EXACTLY - 1, MeasureSpec.AT_MOST); view.measure(m, m); expectedHeight = view.getMeasuredHeight(); } return expectedHeight; } @Override public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { super.onInitializeAccessibilityNodeInfo(info); Loading