diff --git a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java index 464577e435d58..7de978bbd2677 100644 --- a/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java +++ b/core/java/com/android/internal/widget/multiwaveview/GlowPadView.java @@ -948,11 +948,6 @@ private void handleMove(MotionEvent event) { if (angleMatches && (dist2(tx, ty) > snapDistance2)) { activeTarget = i; activeAngle = (float) -angleRad; - break; - } else if (dist2(tx, ty) > snapDistance2 && - mMagneticTargets && activeTarget == -1) { - activeTarget = 0; - activeAngle = (float) -angleRad; } } } @@ -972,6 +967,7 @@ private void handleMove(MotionEvent event) { switchToState(STATE_TRACKING, x, y); updateGlowPosition(x, y); } + if (mActiveTarget != activeTarget) { // Defocus the old target if (mActiveTarget != -1) { @@ -989,7 +985,7 @@ private void handleMove(MotionEvent event) { if (target.hasState(TargetDrawable.STATE_FOCUSED)) { target.setState(TargetDrawable.STATE_FOCUSED); } - if (mMagneticTargets && activeTarget <= 0) { + if (mMagneticTargets) { updateTargetPosition(activeTarget, mWaveCenterX, mWaveCenterY, activeAngle); } if (AccessibilityManager.getInstance(mContext).isEnabled()) { diff --git a/core/res/res/layout/keyguard_glow_pad_view.xml b/core/res/res/layout/keyguard_glow_pad_view.xml index cfd8160582c4e..8ca97ffecd643 100644 --- a/core/res/res/layout/keyguard_glow_pad_view.xml +++ b/core/res/res/layout/keyguard_glow_pad_view.xml @@ -38,7 +38,7 @@ prvandroid:innerRadius="@*android:dimen/glowpadview_inner_radius" prvandroid:snapMargin="@*android:dimen/glowpadview_snap_margin" prvandroid:firstItemOffset="@integer/kg_glowpad_rotation_offset" - prvandroid:magneticTargets="true" + prvandroid:magneticTargets="false" prvandroid:feedbackCount="1" prvandroid:vibrationDuration="20" prvandroid:glowRadius="@*android:dimen/glowpadview_glow_radius" diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java index f13159ac0a73a..0130417295fad 100644 --- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java @@ -109,11 +109,15 @@ public void onTrigger(View v, int target) { } else { target -= 1 + mTargetOffset; if (target < mStoredTargets.length && mStoredTargets[target] != null) { - try { - Intent launchIntent = Intent.parseUri(mStoredTargets[target], 0); - mActivityLauncher.launchActivity(launchIntent, false, true, null, null); - return; - } catch (URISyntaxException e) { + if (mStoredTargets[target].equals(GlowPadView.EMPTY_TARGET)) { + mCallback.dismiss(false); + } else { + try { + Intent launchIntent = Intent.parseUri(mStoredTargets[target], 0); + mActivityLauncher.launchActivity(launchIntent, false, true, null, null); + return; + } catch (URISyntaxException e) { + } } } } @@ -308,6 +312,9 @@ public void updateResources() { final boolean isLandscape = mCreationOrientation == Configuration.ORIENTATION_LANDSCAPE; final Drawable blankActiveDrawable = res.getDrawable(R.drawable.ic_lockscreen_target_activated); final InsetDrawable activeBack = new InsetDrawable(blankActiveDrawable, 0, 0, 0, 0); + //Magnetic target replacement + final Drawable blankInActiveDrawable = res.getDrawable(com.android.internal.R.drawable.ic_lockscreen_lock_pressed); + final Drawable unlockActiveDrawable = res.getDrawable(com.android.internal.R.drawable.ic_lockscreen_unlock_activated); // Shift targets for landscape lockscreen on phones mTargetOffset = isLandscape && !mIsScreenLarge ? 2 : 0; if (mTargetOffset == 2) { @@ -385,7 +392,7 @@ public void updateResources() { storedDraw.add(new TargetDrawable(res, 0)); } } else { - storedDraw.add(new TargetDrawable(res, 0)); + storedDraw.add(new TargetDrawable(res, getLayeredDrawable(unlockActiveDrawable, blankInActiveDrawable, tmpInset, true))); } } else { storedDraw.add(new TargetDrawable(res, 0));