Merge "Using xml-drawable and elevation as folder background" into ub-launcher3-burnaby
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -76,10 +76,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>
|
||||
@@ -108,6 +112,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>
|
||||
|
||||
@@ -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. */
|
||||
|
||||
@@ -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
|
||||
@@ -473,9 +483,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);
|
||||
@@ -494,10 +510,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);
|
||||
@@ -507,10 +519,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);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user