diff options
-rw-r--r-- | res/layout/user_folder.xml | 2 | ||||
-rw-r--r-- | res/values/dimens.xml | 9 | ||||
-rw-r--r-- | src/com/android/launcher3/DragView.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher3/Folder.java | 22 |
4 files changed, 30 insertions, 7 deletions
diff --git a/res/layout/user_folder.xml b/res/layout/user_folder.xml index cd3a051ad..5bacc9605 100644 --- a/res/layout/user_folder.xml +++ b/res/layout/user_folder.xml @@ -19,7 +19,7 @@ xmlns:launcher="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:background="@drawable/quantum_panel" + android:elevation="5dp" android:orientation="vertical" > <FrameLayout diff --git a/res/values/dimens.xml b/res/values/dimens.xml index 4fbe87e09..5b5b5fc54 100644 --- a/res/values/dimens.xml +++ b/res/values/dimens.xml @@ -75,10 +75,14 @@ or right while you're dragging. --> <dimen name="scroll_zone">20dp</dimen> - <!-- When dragging an item, how much bigger (fixed dps) the dragged view - should be. If 0, it will not be scaled at all. --> + <!-- When dragging an item, how much bigger (fixed dps) the dragged view + should be. If 0, it will not be scaled at all. --> <dimen name="dragViewScale">12dp</dimen> + <!-- Elevation for the drag view. It should be larger than elevation of all other drag sources + and drop targets like all-apps and folders --> + <dimen name="drag_elevation">30dp</dimen> + <!-- Widget tray --> <dimen name="widget_container_inset">8dp</dimen> <dimen name="widget_preview_size">120dp</dimen> @@ -107,6 +111,7 @@ <!-- The amount that the preview contents are inset from the preview background --> <dimen name="folder_preview_padding">4dp</dimen> <dimen name="folder_name_padding">10dp</dimen> + <dimen name="folder_shadow_padding">8dp</dimen> <!-- Sizes for managed profile badges --> <dimen name="profile_badge_size">24dp</dimen> diff --git a/src/com/android/launcher3/DragView.java b/src/com/android/launcher3/DragView.java index a4b6704ac..3eec3d9ee 100644 --- a/src/com/android/launcher3/DragView.java +++ b/src/com/android/launcher3/DragView.java @@ -129,6 +129,10 @@ public class DragView extends View { int ms = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); measure(ms, ms); mPaint = new Paint(Paint.FILTER_BITMAP_FLAG); + + if (Utilities.isLmpOrAbove()) { + setElevation(getResources().getDimension(R.dimen.drag_elevation)); + } } /** Sets the scale of the view over the normal workspace icon size. */ diff --git a/src/com/android/launcher3/Folder.java b/src/com/android/launcher3/Folder.java index a2828054c..d98b0eb6a 100644 --- a/src/com/android/launcher3/Folder.java +++ b/src/com/android/launcher3/Folder.java @@ -27,6 +27,7 @@ import android.content.res.Resources; import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; +import android.graphics.drawable.InsetDrawable; import android.os.Build; import android.text.InputType; import android.text.Selection; @@ -180,6 +181,15 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList // name is complete, we have something to focus on, thus hiding the cursor and giving // reliable behavior when clicking the text field (since it will always gain focus on click). setFocusableInTouchMode(true); + + if (Utilities.isLmpOrAbove()) { + int padding = getResources().getDimensionPixelSize(R.dimen.folder_shadow_padding); + setBackground(new InsetDrawable( + getResources().getDrawable(R.drawable.apps_list_bg), + padding, padding, padding, padding)); + } else { + setBackgroundResource(R.drawable.quantum_panel); + } } @Override @@ -470,9 +480,15 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList PropertyValuesHolder tx = PropertyValuesHolder.ofFloat("translationX", transX, 0); PropertyValuesHolder ty = PropertyValuesHolder.ofFloat("translationY", transY, 0); + Animator drift = LauncherAnimUtils.ofPropertyValuesHolder(this, tx, ty); + drift.setDuration(mMaterialExpandDuration); + drift.setStartDelay(mMaterialExpandStagger); + drift.setInterpolator(new LogDecelerateInterpolator(100, 0)); + int rx = (int) Math.max(Math.max(width - getPivotX(), 0), getPivotX()); int ry = (int) Math.max(Math.max(height - getPivotY(), 0), getPivotY()); float radius = (float) Math.hypot(rx, ry); + AnimatorSet anim = LauncherAnimUtils.createAnimatorSet(); Animator reveal = LauncherAnimUtils.createCircularReveal(this, (int) getPivotX(), (int) getPivotY(), 0, radius); @@ -491,10 +507,6 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList textAlpha.setStartDelay(mMaterialExpandStagger); textAlpha.setInterpolator(new AccelerateInterpolator(1.5f)); - Animator drift = LauncherAnimUtils.ofPropertyValuesHolder(this, tx, ty); - drift.setDuration(mMaterialExpandDuration); - drift.setStartDelay(mMaterialExpandStagger); - drift.setInterpolator(new LogDecelerateInterpolator(60, 0)); anim.play(drift); anim.play(iconsAlpha); @@ -504,10 +516,12 @@ public class Folder extends LinearLayout implements DragSource, View.OnClickList openFolderAnim = anim; mContentWrapper.setLayerType(LAYER_TYPE_HARDWARE, null); + mFooter.setLayerType(LAYER_TYPE_HARDWARE, null); onCompleteRunnable = new Runnable() { @Override public void run() { mContentWrapper.setLayerType(LAYER_TYPE_NONE, null); + mContentWrapper.setLayerType(LAYER_TYPE_NONE, null); } }; } |