summaryrefslogtreecommitdiffstats
path: root/quickstep
diff options
context:
space:
mode:
authorMatthew Ng <ngmatthew@google.com>2018-06-06 17:07:29 -0700
committerMatthew Ng <ngmatthew@google.com>2018-06-08 14:24:22 -0700
commit1b9c3d6fe3c1cfae239aa003b96d53f93d85f4a5 (patch)
tree66e8a88f3c6a3eee8b7697493f1f6fe85fb5d62e /quickstep
parent5ac259c46e8ed798b1313bd6421ade7249204215 (diff)
downloadandroid_packages_apps_Trebuchet-1b9c3d6fe3c1cfae239aa003b96d53f93d85f4a5.tar.gz
android_packages_apps_Trebuchet-1b9c3d6fe3c1cfae239aa003b96d53f93d85f4a5.tar.bz2
android_packages_apps_Trebuchet-1b9c3d6fe3c1cfae239aa003b96d53f93d85f4a5.zip
Changed the Task Menu to overlay on top of the task view
When tapping the icon for each card in overview, the options will overlay on top of the task view below the icon instead of popping up above the task view. Change-Id: I42746022432385d976134988262514a238a5066e Fixes: 109676098 Test: go to overview, tap the icon for the task
Diffstat (limited to 'quickstep')
-rw-r--r--quickstep/res/drawable/ic_split_screen.xml37
-rw-r--r--quickstep/res/drawable/task_menu_bg.xml38
-rw-r--r--quickstep/res/layout/task_menu.xml40
-rw-r--r--quickstep/res/layout/task_view_menu_option.xml50
-rw-r--r--quickstep/res/values-land/dimens.xml19
-rw-r--r--quickstep/res/values-land/styles.xml28
-rw-r--r--quickstep/res/values/dimens.xml4
-rw-r--r--quickstep/res/values/styles.xml28
-rw-r--r--quickstep/src/com/android/quickstep/views/TaskMenuView.java77
-rw-r--r--quickstep/src/com/android/quickstep/views/TaskThumbnailView.java14
-rw-r--r--quickstep/src/com/android/quickstep/views/TaskView.java2
11 files changed, 253 insertions, 84 deletions
diff --git a/quickstep/res/drawable/ic_split_screen.xml b/quickstep/res/drawable/ic_split_screen.xml
index 77bd3336d..110af914c 100644
--- a/quickstep/res/drawable/ic_split_screen.xml
+++ b/quickstep/res/drawable/ic_split_screen.xml
@@ -13,33 +13,16 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
<vector xmlns:android="http://schemas.android.com/apk/res/android"
- android:width="88.0dp"
- android:height="88.0dp"
- android:viewportWidth="88.0"
- android:viewportHeight="88.0" >
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
<path
- android:pathData="M 32,11
- C 32,11 68,11 68,11
- 76.74,11.06 76.98,12.76 77,21
- 77.01,25.97 78.50,38.23 73.85,40.98
- 71.80,42.19 68.35,42 66,42
- 66,42 22,42 22,42
- 18.82,41.99 14.87,42.38 12.60,39.69
- 10.71,37.44 11.01,33.77 11,31
- 10.99,25.54 9.53,16.08 13.31,12.02
- 18.07,10.21 26.66,11 32,11 Z
- M 32,46
- C 32,46 68,46 68,46
- 76.74,46.06 76.98,47.76 77,56
- 77.01,60.97 78.50,73.23 73.85,75.98
- 71.80,77.19 68.35,77 66,77
- 66,77 22,77 22,77
- 18.82,76.99 14.87,77.38 12.60,74.69
- 10.71,72.44 11.01,68.77 11,66
- 10.99,60.54 9.53,51.08 13.31,47.02
- 18.07,45.21 26.66,46 32,46 Z"
- android:fillColor="@android:color/white" />
-</vector> \ No newline at end of file
+ android:fillColor="@android:color/white"
+ android:pathData="M18,4v5H6V4H18 M18,2H6C4.9,2,4,2.9,4,4v5c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2V4C20,2.9,19.1,2,18,2L18,2z" />
+ <path
+ android:fillColor="@android:color/white"
+ android:pathData="M18,15v5H6v-5H18 M18,13H6c-1.1,0-2,0.9-2,2v5c0,1.1,0.9,2,2,2h12c1.1,0,2-0.9,2-2v-5C20,13.9,19.1,13,18,13L18,13z" />
+</vector>
diff --git a/quickstep/res/drawable/task_menu_bg.xml b/quickstep/res/drawable/task_menu_bg.xml
new file mode 100644
index 000000000..d5597a9db
--- /dev/null
+++ b/quickstep/res/drawable/task_menu_bg.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 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.
+-->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:gravity="bottom">
+ <!-- Shadow -->
+ <shape>
+ <gradient android:angle="270"
+ android:endColor="@android:color/transparent"
+ android:startColor="#26000000" />
+ <size android:height="@dimen/task_card_menu_shadow_height" />
+ </shape>
+ </item>
+ <item android:bottom="@dimen/task_card_menu_shadow_height">
+ <!-- Background -->
+ <shape>
+ <corners
+ android:topLeftRadius="@dimen/task_corner_radius"
+ android:topRightRadius="@dimen/task_corner_radius"
+ android:bottomLeftRadius="0dp"
+ android:bottomRightRadius="0dp" />
+ <solid android:color="?attr/popupColorPrimary" />
+ </shape>
+ </item>
+</layer-list>
diff --git a/quickstep/res/layout/task_menu.xml b/quickstep/res/layout/task_menu.xml
index b8466652e..bf55ece44 100644
--- a/quickstep/res/layout/task_menu.xml
+++ b/quickstep/res/layout/task_menu.xml
@@ -16,21 +16,31 @@
-->
<com.android.quickstep.views.TaskMenuView
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="@dimen/bg_popup_item_width"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:visibility="invisible"
- android:elevation="@dimen/deep_shortcuts_elevation"
+ android:animateLayoutChanges="true"
+ android:background="@drawable/task_menu_bg"
+ android:paddingBottom="@dimen/task_card_menu_shadow_height"
android:orientation="vertical"
- android:background="?attr/popupColorPrimary"
- android:divider="@drawable/all_apps_divider"
- android:showDividers="middle"
- android:animateLayoutChanges="true">
- <TextView
- android:id="@+id/task_icon_and_name"
- android:layout_width="match_parent"
- android:layout_height="112dp"
- android:textSize="14sp"
- android:paddingTop="18dp"
- android:drawablePadding="8dp"
- android:gravity="center_horizontal"/>
+ android:visibility="invisible">
+
+ <TextView
+ android:id="@+id/task_icon_and_name"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:drawablePadding="@dimen/deep_shortcut_drawable_padding"
+ android:gravity="center_horizontal"
+ android:layout_marginBottom="16dp"
+ android:textSize="12sp"/>
+
+ <LinearLayout
+ android:id="@+id/menu_option_layout"
+ style="@style/TaskMenu"
+ android:divider="@drawable/all_apps_divider"
+ android:showDividers="beginning"
+ android:paddingStart="@dimen/task_card_menu_horizontal_padding"
+ android:paddingEnd="@dimen/task_card_menu_horizontal_padding"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"/>
+
</com.android.quickstep.views.TaskMenuView> \ No newline at end of file
diff --git a/quickstep/res/layout/task_view_menu_option.xml b/quickstep/res/layout/task_view_menu_option.xml
new file mode 100644
index 000000000..102ae9bc2
--- /dev/null
+++ b/quickstep/res/layout/task_view_menu_option.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 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.
+-->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ style="@style/TaskMenu.Option"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:orientation="vertical"
+ android:paddingTop="@dimen/task_card_menu_option_vertical_padding"
+ android:paddingBottom="@dimen/task_card_menu_option_vertical_padding"
+ android:background="?android:attr/selectableItemBackground"
+ android:theme="@style/PopupItem" >
+
+ <View
+ android:id="@+id/icon"
+ android:layout_width="@dimen/system_shortcut_icon_size"
+ android:layout_height="@dimen/system_shortcut_icon_size"
+ android:layout_marginTop="@dimen/system_shortcut_header_icon_padding"
+ android:layout_marginBottom="@dimen/deep_shortcut_drawable_padding"
+ android:layout_gravity="center_horizontal"
+ android:backgroundTint="?android:attr/textColorTertiary"/>
+
+ <TextView
+ style="@style/BaseIcon"
+ android:id="@+id/text"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:paddingBottom="@dimen/popup_padding_end"
+ android:textSize="12sp"
+ android:textColor="?android:attr/textColorPrimary"
+ android:fontFamily="sans-serif"
+ android:gravity="center_horizontal"
+ android:layout_gravity="center_horizontal"
+ android:focusable="false" />
+
+</LinearLayout>
diff --git a/quickstep/res/values-land/dimens.xml b/quickstep/res/values-land/dimens.xml
new file mode 100644
index 000000000..c03eaa2cf
--- /dev/null
+++ b/quickstep/res/values-land/dimens.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 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.
+-->
+<resources>
+ <dimen name="task_card_menu_horizontal_padding">24dp</dimen>
+</resources> \ No newline at end of file
diff --git a/quickstep/res/values-land/styles.xml b/quickstep/res/values-land/styles.xml
new file mode 100644
index 000000000..0824b4f55
--- /dev/null
+++ b/quickstep/res/values-land/styles.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 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.
+-->
+<resources>
+ <!-- Task Menu layout styles. -->
+ <style name="TaskMenu">
+ <item name="android:orientation">horizontal</item>
+ </style>
+
+ <!-- Task Menu Option layout styles. -->
+ <style name="TaskMenu.Option">
+ <item name="android:layout_width">0dp</item>
+ <item name="android:layout_weight">1</item>
+ </style>
+</resources> \ No newline at end of file
diff --git a/quickstep/res/values/dimens.xml b/quickstep/res/values/dimens.xml
index ed18bf5e3..acfc180ad 100644
--- a/quickstep/res/values/dimens.xml
+++ b/quickstep/res/values/dimens.xml
@@ -18,7 +18,6 @@
<dimen name="task_thumbnail_top_margin">24dp</dimen>
<dimen name="task_thumbnail_icon_size">48dp</dimen>
- <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>
@@ -41,6 +40,9 @@
<!-- Total space (start + end) between the task card and the edge of the screen
in various configurations -->
<dimen name="task_card_vert_space">40dp</dimen>
+ <dimen name="task_card_menu_option_vertical_padding">8dp</dimen>
+ <dimen name="task_card_menu_shadow_height">3dp</dimen>
+ <dimen name="task_card_menu_horizontal_padding">0dp</dimen>
<dimen name="portrait_task_card_horz_space">136dp</dimen>
<dimen name="landscape_task_card_horz_space">200dp</dimen>
<dimen name="multi_window_task_card_horz_space">100dp</dimen>
diff --git a/quickstep/res/values/styles.xml b/quickstep/res/values/styles.xml
new file mode 100644
index 000000000..bb364ff6d
--- /dev/null
+++ b/quickstep/res/values/styles.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 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.
+-->
+<resources>
+ <!-- Task Menu layout styles. -->
+ <style name="TaskMenu">
+ <item name="android:orientation">vertical</item>
+ </style>
+
+ <!-- Task Menu Option layout styles. -->
+ <style name="TaskMenu.Option">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">wrap_content</item>
+ </style>
+</resources> \ No newline at end of file
diff --git a/quickstep/src/com/android/quickstep/views/TaskMenuView.java b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
index dd90c8867..39f532320 100644
--- a/quickstep/src/com/android/quickstep/views/TaskMenuView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskMenuView.java
@@ -16,19 +16,19 @@
package com.android.quickstep.views;
+import static com.android.quickstep.views.TaskThumbnailView.DIM_ALPHA;
+
import android.animation.Animator;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.content.Context;
-import android.graphics.Outline;
-import android.graphics.Point;
+import android.content.res.Configuration;
import android.graphics.Rect;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.view.MotionEvent;
-import android.view.View;
-import android.view.ViewOutlineProvider;
-import android.view.animation.AccelerateDecelerateInterpolator;
+import android.view.ViewGroup;
+import android.widget.LinearLayout;
import android.widget.TextView;
import com.android.launcher3.AbstractFloatingView;
@@ -37,8 +37,8 @@ import com.android.launcher3.LauncherAnimUtils;
import com.android.launcher3.R;
import com.android.launcher3.Utilities;
import com.android.launcher3.anim.AnimationSuccessListener;
+import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.anim.RoundedRectRevealOutlineProvider;
-import com.android.launcher3.shortcuts.DeepShortcutView;
import com.android.launcher3.views.BaseDragLayer;
import com.android.quickstep.TaskSystemShortcut;
import com.android.quickstep.TaskUtils;
@@ -58,12 +58,14 @@ public class TaskMenuView extends AbstractFloatingView {
new TaskSystemShortcut.Install(),
};
- private static final long OPEN_CLOSE_DURATION = 220;
+ private static final int REVEAL_OPEN_DURATION = 150;
+ private static final int REVEAL_CLOSE_DURATION = 100;
private BaseDraggingActivity mActivity;
private TextView mTaskIconAndName;
private AnimatorSet mOpenCloseAnimator;
private TaskView mTaskView;
+ private LinearLayout mOptionLayout;
public TaskMenuView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
@@ -73,20 +75,13 @@ public class TaskMenuView extends AbstractFloatingView {
super(context, attrs, defStyleAttr);
mActivity = BaseDraggingActivity.fromContext(context);
- setClipToOutline(true);
- setOutlineProvider(new ViewOutlineProvider() {
- @Override
- public void getOutline(View view, Outline outline) {
- float r = getResources().getDimensionPixelSize(R.dimen.task_menu_background_radius);
- outline.setRoundRect(0, 0, view.getWidth(), view.getHeight(), r);
- }
- });
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mTaskIconAndName = findViewById(R.id.task_icon_and_name);
+ mOptionLayout = findViewById(R.id.menu_option_layout);
}
@Override
@@ -148,6 +143,12 @@ public class TaskMenuView extends AbstractFloatingView {
mTaskIconAndName.setText(TaskUtils.getTitle(getContext(), taskView.getTask()));
mTaskIconAndName.setOnClickListener(v -> close(true));
+ // Move the icon and text up half an icon size to lay over the TaskView
+ LinearLayout.LayoutParams params =
+ (LinearLayout.LayoutParams) mTaskIconAndName.getLayoutParams();
+ params.topMargin = (int) -getResources().getDimension(R.dimen.task_thumbnail_top_margin);
+ mTaskIconAndName.setLayoutParams(params);
+
for (TaskSystemShortcut menuOption : MENU_OPTIONS) {
OnClickListener onClickListener = menuOption.getOnClickListener(mActivity, taskView);
if (onClickListener != null) {
@@ -157,21 +158,24 @@ public class TaskMenuView extends AbstractFloatingView {
}
private void addMenuOption(TaskSystemShortcut menuOption, OnClickListener onClickListener) {
- DeepShortcutView menuOptionView = (DeepShortcutView) mActivity.getLayoutInflater().inflate(
- R.layout.system_shortcut, this, false);
- menuOptionView.getIconView().setBackgroundResource(menuOption.iconResId);
- menuOptionView.getBubbleText().setText(menuOption.labelResId);
+ ViewGroup menuOptionView = (ViewGroup) mActivity.getLayoutInflater().inflate(
+ R.layout.task_view_menu_option, this, false);
+ menuOptionView.findViewById(R.id.icon).setBackgroundResource(menuOption.iconResId);
+ ((TextView) menuOptionView.findViewById(R.id.text)).setText(menuOption.labelResId);
menuOptionView.setOnClickListener(onClickListener);
- addView(menuOptionView);
+ mOptionLayout.addView(menuOptionView);
}
private void orientAroundTaskView(TaskView taskView) {
measure(MeasureSpec.UNSPECIFIED, MeasureSpec.UNSPECIFIED);
mActivity.getDragLayer().getDescendantRectRelativeToSelf(taskView, sTempRect);
Rect insets = mActivity.getDragLayer().getInsets();
- int x = sTempRect.left + (sTempRect.width() - getMeasuredWidth()) / 2 - insets.left;
- setX(Utilities.isRtl(getResources()) ? -x : x);
- setY(sTempRect.top - mTaskIconAndName.getPaddingTop() - insets.top);
+ BaseDragLayer.LayoutParams params = (BaseDragLayer.LayoutParams) getLayoutParams();
+ params.width = sTempRect.width();
+ setLayoutParams(params);
+ setX(Utilities.isRtl(getResources()) ? -sTempRect.left : sTempRect.left);
+ setY(sTempRect.top + getResources().getDimension(R.dimen.task_thumbnail_top_margin)
+ - insets.top);
}
private void animateOpen() {
@@ -188,8 +192,13 @@ public class TaskMenuView extends AbstractFloatingView {
return;
}
mOpenCloseAnimator = LauncherAnimUtils.createAnimatorSet();
- mOpenCloseAnimator.play(createOpenCloseOutlineProvider()
- .createRevealAnimator(this, closing));
+
+ final Animator revealAnimator = createOpenCloseOutlineProvider()
+ .createRevealAnimator(this, closing);
+ revealAnimator.setInterpolator(Interpolators.DEACCEL);
+ mOpenCloseAnimator.play(revealAnimator);
+ mOpenCloseAnimator.play(ObjectAnimator.ofFloat(mTaskView.getThumbnail(), DIM_ALPHA,
+ closing ? 0 : TaskView.MAX_PAGE_SCRIM_ALPHA));
mOpenCloseAnimator.addListener(new AnimationSuccessListener() {
@Override
public void onAnimationStart(Animator animation) {
@@ -204,8 +213,7 @@ public class TaskMenuView extends AbstractFloatingView {
}
});
mOpenCloseAnimator.play(ObjectAnimator.ofFloat(this, ALPHA, closing ? 0 : 1));
- mOpenCloseAnimator.setDuration(OPEN_CLOSE_DURATION);
- mOpenCloseAnimator.setInterpolator(new AccelerateDecelerateInterpolator());
+ mOpenCloseAnimator.setDuration(closing ? REVEAL_CLOSE_DURATION: REVEAL_OPEN_DURATION);
mOpenCloseAnimator.start();
}
@@ -215,18 +223,9 @@ public class TaskMenuView extends AbstractFloatingView {
}
private RoundedRectRevealOutlineProvider createOpenCloseOutlineProvider() {
- int iconSize = getResources().getDimensionPixelSize(R.dimen.task_thumbnail_icon_size);
- float fromRadius = iconSize / 2;
- float toRadius = getResources().getDimensionPixelSize(
- R.dimen.task_menu_background_radius);
- Point iconCenter = new Point(getWidth() / 2, mTaskIconAndName.getPaddingTop() + iconSize / 2);
- Rect fromRect = new Rect(iconCenter.x, iconCenter.y, iconCenter.x, iconCenter.y);
+ float radius = getResources().getDimension(R.dimen.task_corner_radius);
+ Rect fromRect = new Rect(0, 0, getWidth(), 0);
Rect toRect = new Rect(0, 0, getWidth(), getHeight());
- return new RoundedRectRevealOutlineProvider(fromRadius, toRadius, fromRect, toRect) {
- @Override
- public boolean shouldRemoveElevationDuringAnimation() {
- return true;
- }
- };
+ return new RoundedRectRevealOutlineProvider(radius, radius, fromRect, toRect);
}
}
diff --git a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
index d9dfd1815..07f22aada 100644
--- a/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskThumbnailView.java
@@ -29,7 +29,6 @@ import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Rect;
import android.graphics.Shader;
-import android.support.v4.graphics.ColorUtils;
import android.util.AttributeSet;
import android.util.FloatProperty;
import android.util.Property;
@@ -68,6 +67,19 @@ public class TaskThumbnailView extends View {
}
};
+ public static final Property<TaskThumbnailView, Float> DIM_ALPHA =
+ new FloatProperty<TaskThumbnailView>("dimAlpha") {
+ @Override
+ public void setValue(TaskThumbnailView thumbnail, float dimAlpha) {
+ thumbnail.setDimAlpha(dimAlpha);
+ }
+
+ @Override
+ public Float get(TaskThumbnailView thumbnailView) {
+ return thumbnailView.mDimAlpha;
+ }
+ };
+
private final float mCornerRadius;
private final BaseActivity mActivity;
diff --git a/quickstep/src/com/android/quickstep/views/TaskView.java b/quickstep/src/com/android/quickstep/views/TaskView.java
index a7690e1e3..468efd8f9 100644
--- a/quickstep/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/src/com/android/quickstep/views/TaskView.java
@@ -71,7 +71,7 @@ public class TaskView extends FrameLayout implements TaskCallbacks, PageCallback
* The alpha of a black scrim on a page in the carousel as it leaves the screen.
* In the resting position of the carousel, the adjacent pages have about half this scrim.
*/
- private static final float MAX_PAGE_SCRIM_ALPHA = 0.4f;
+ public static final float MAX_PAGE_SCRIM_ALPHA = 0.4f;
/**
* How much to scale down pages near the edge of the screen.