diff options
| -rw-r--r-- | src/com/android/systemui/navigation/fling/FlingTrails.java | 22 | ||||
| -rw-r--r-- | src/com/android/systemui/navigation/fling/FlingView.java | 9 |
2 files changed, 28 insertions, 3 deletions
diff --git a/src/com/android/systemui/navigation/fling/FlingTrails.java b/src/com/android/systemui/navigation/fling/FlingTrails.java index f1a5ea1..3ef538b 100644 --- a/src/com/android/systemui/navigation/fling/FlingTrails.java +++ b/src/com/android/systemui/navigation/fling/FlingTrails.java @@ -23,6 +23,8 @@ package com.android.systemui.navigation.fling; +import com.android.internal.utils.du.DUActionUtils; +import com.orange.dgil.trail.android.AndroidMetrics; import com.orange.dgil.trail.android.animation.IAnimListener; import com.orange.dgil.trail.android.impl.TrailDrawer; @@ -34,8 +36,14 @@ import android.view.MotionEvent; import android.view.View; public class FlingTrails implements View.OnTouchListener, IAnimListener { + public static final String TAG = FlingTrails.class.getSimpleName(); + public static final int TRAIL_WIDTH_DEFAULT = 15; + private static final int ANIM_DELAY = 100; private static final int ANIM_DURATION = 400; + // trail width constraints, in density pixels + private static final int TRAIL_WIDTH_MIN = 1; + private static final int TRAIL_WIDTH_MAX = 25; private TrailDrawer mTrailDrawer; private boolean mEnabled; private View mHost; @@ -58,9 +66,6 @@ public class FlingTrails implements View.OnTouchListener, IAnimListener { if (w == 0 || h == 0) { return; } - //int dimen = w > h ? h : w; - //dimen = Math.round(dimen * SIZE_RELATIVE_TO_BAR); - //mTrailDrawer.getTrailOptions().setTrailWidthMicrometers(dimen); mTrailDrawer.clear(); } @@ -83,6 +88,13 @@ public class FlingTrails implements View.OnTouchListener, IAnimListener { } } + public void setTrailWidth(int dp) { + mTrailDrawer.clear(); + int px = DUActionUtils.ConvertDpToPixelAsInt(validateTrailWidthRange(dp), mHost.getContext()); + int microns = AndroidMetrics.get(mHost.getContext()).pixelsToMicrometers(px); + mTrailDrawer.getTrailOptions().setTrailWidthMicrometers(microns); + } + public void onDraw(Canvas canvas) { if (mEnabled) { mTrailDrawer.draw(canvas); @@ -125,4 +137,8 @@ public class FlingTrails implements View.OnTouchListener, IAnimListener { private void onMove(float x, float y) { mTrailDrawer.touchMove((int) x, (int) y); } + + private static int validateTrailWidthRange(int dp) { + return (int) Math.max(TRAIL_WIDTH_MIN, Math.min(TRAIL_WIDTH_MAX, dp)); + } } diff --git a/src/com/android/systemui/navigation/fling/FlingView.java b/src/com/android/systemui/navigation/fling/FlingView.java index ef46e95..272ee02 100644 --- a/src/com/android/systemui/navigation/fling/FlingView.java +++ b/src/com/android/systemui/navigation/fling/FlingView.java @@ -71,6 +71,7 @@ public class FlingView extends BaseNavigationBar { sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_RIPPLE_COLOR)); sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_TRAILS_ENABLED)); sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_TRAILS_COLOR)); + sUris.add(Settings.Secure.getUriFor(Settings.Secure.FLING_TRAILS_WIDTH)); } private FlingActionHandler mActionHandler; @@ -252,6 +253,13 @@ public class FlingView extends BaseNavigationBar { mTrails.setTrailColor(color); } + private void updateTrailsWidth() { + int width = Settings.Secure.getIntForUser(mContext.getContentResolver(), + Settings.Secure.FLING_TRAILS_WIDTH, FlingTrails.TRAIL_WIDTH_DEFAULT, + UserHandle.USER_CURRENT); + mTrails.setTrailWidth(width); + } + @Override public void updateNavbarThemedResources(Resources res) { // mRipple.updateResources(res); @@ -281,6 +289,7 @@ public class FlingView extends BaseNavigationBar { updateRippleColor(); updateTrailsEnabled(); updateTrailsColor(); + updateTrailsWidth(); int lpTimeout = Settings.Secure.getIntForUser(mContext.getContentResolver(), Settings.Secure.FLING_LONGPRESS_TIMEOUT, FlingGestureDetectorPriv.LP_TIMEOUT_MAX, UserHandle.USER_CURRENT); mGestureDetector.setLongPressTimeout(lpTimeout); |
