diff options
Diffstat (limited to 'core/java/com')
| -rw-r--r-- | core/java/com/android/internal/widget/LockPatternUtils.java | 6 | ||||
| -rw-r--r-- | core/java/com/android/internal/widget/multiwaveview/GlowPadView.java | 19 |
2 files changed, 20 insertions, 5 deletions
diff --git a/core/java/com/android/internal/widget/LockPatternUtils.java b/core/java/com/android/internal/widget/LockPatternUtils.java index 030dfef..75fef24 100644 --- a/core/java/com/android/internal/widget/LockPatternUtils.java +++ b/core/java/com/android/internal/widget/LockPatternUtils.java @@ -1167,6 +1167,10 @@ public class LockPatternUtils { public boolean removeAppWidget(int widgetId) { int[] widgets = getAppWidgets(); + if (widgets.length == 0) { + return false; + } + int[] newWidgets = new int[widgets.length - 1]; for (int i = 0, j = 0; i < widgets.length; i++) { if (widgets[i] == widgetId) { @@ -1331,7 +1335,7 @@ public class LockPatternUtils { public boolean getPowerButtonInstantlyLocks() { return getBoolean(LOCKSCREEN_POWER_BUTTON_INSTANTLY_LOCKS, true); } - + public static boolean isSafeModeEnabled() { try { return IWindowManager.Stub.asInterface( diff --git a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java index e4d6d8b..aad285a 100644 --- a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java +++ b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java @@ -114,6 +114,7 @@ public class GlowPadView extends View { private int mMaxTargetHeight; private int mMaxTargetWidth; private float mRingScaleFactor = 1f; + private boolean mAllowScaling; private float mOuterRadius = 0.0f; private float mSnapMargin = 0.0f; @@ -222,6 +223,7 @@ public class GlowPadView extends View { mVibrationDuration); mFeedbackCount = a.getInt(R.styleable.GlowPadView_feedbackCount, mFeedbackCount); + mAllowScaling = a.getBoolean(R.styleable.GlowPadView_allowScaling, false); TypedValue handle = a.peekValue(R.styleable.GlowPadView_handleDrawable); mHandleDrawable = new TargetDrawable(res, handle != null ? handle.resourceId : 0); mHandleDrawable.setState(TargetDrawable.STATE_INACTIVE); @@ -793,8 +795,12 @@ public class GlowPadView extends View { } private void updateGlowPosition(float x, float y) { - mPointCloud.glowManager.setX(x); - mPointCloud.glowManager.setY(y); + float dx = x - mOuterRing.getX(); + float dy = y - mOuterRing.getY(); + dx *= 1f / mRingScaleFactor; + dy *= 1f / mRingScaleFactor; + mPointCloud.glowManager.setX(mOuterRing.getX() + dx); + mPointCloud.glowManager.setY(mOuterRing.getY() + dy); } private void handleDown(MotionEvent event) { @@ -863,7 +869,7 @@ public class GlowPadView extends View { if (mDragging) { // For multiple targets, snap to the one that matches - final float snapRadius = mOuterRadius - mSnapMargin; + final float snapRadius = mRingScaleFactor * mOuterRadius - mSnapMargin; final float snapDistance2 = snapRadius * snapRadius; // Find first target in range for (int i = 0; i < ntargets; i++) { @@ -948,7 +954,8 @@ public class GlowPadView extends View { onTouchEvent(event); event.setAction(action); } - return super.onHoverEvent(event); + super.onHoverEvent(event); + return true; } /** @@ -1034,6 +1041,10 @@ public class GlowPadView extends View { */ private float computeScaleFactor(int desiredWidth, int desiredHeight, int actualWidth, int actualHeight) { + + // Return unity if scaling is not allowed. + if (!mAllowScaling) return 1f; + final int layoutDirection = getLayoutDirection(); final int absoluteGravity = Gravity.getAbsoluteGravity(mGravity, layoutDirection); |
