diff options
| author | Jim Miller <jaggies@google.com> | 2009-09-30 02:50:02 -0700 |
|---|---|---|
| committer | Jim Miller <jaggies@google.com> | 2009-09-30 02:53:05 -0700 |
| commit | 85d630020a29c24f3d51f00b5ce3f701c16f0a45 (patch) | |
| tree | 682feff0d1918d75b7c951c3c6b79a9a83864e75 /core/java/com | |
| parent | 3ba351267a3815a3c9a08e2ac7f62a39f83d7776 (diff) | |
| download | frameworks_base-85d630020a29c24f3d51f00b5ce3f701c16f0a45.zip frameworks_base-85d630020a29c24f3d51f00b5ce3f701c16f0a45.tar.gz frameworks_base-85d630020a29c24f3d51f00b5ce3f701c16f0a45.tar.bz2 | |
Fix for 2139014: Allow platform customization of vibration pattern in LockScreenView.
Can be configured by config_virtualKeyVibePattern.
Diffstat (limited to 'core/java/com')
| -rw-r--r-- | core/java/com/android/internal/widget/LockPatternView.java | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/core/java/com/android/internal/widget/LockPatternView.java b/core/java/com/android/internal/widget/LockPatternView.java index 0d0a3c2..6adce6d 100644 --- a/core/java/com/android/internal/widget/LockPatternView.java +++ b/core/java/com/android/internal/widget/LockPatternView.java @@ -20,6 +20,7 @@ package com.android.internal.widget; import com.android.internal.R; import android.content.Context; +import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; @@ -34,6 +35,7 @@ import android.os.Parcelable; import android.os.SystemClock; import android.os.Vibrator; import android.util.AttributeSet; +import android.util.Log; import android.view.MotionEvent; import android.view.View; @@ -49,7 +51,7 @@ import java.util.List; */ public class LockPatternView extends View { // Vibrator pattern for creating a tactile bump - private static final long[] VIBE_PATTERN = {0, 1, 40, 41}; + private static final long[] DEFAULT_VIBE_PATTERN = {0, 1, 40, 41}; private static final boolean PROFILE_DRAWING = false; private boolean mDrawingProfilingStarted = false; @@ -118,6 +120,8 @@ public class LockPatternView extends View { private Vibrator vibe; // Vibrator for creating tactile feedback + private long[] mVibePattern; + /** * Represents a cell in the 3 X 3 matrix of the unlock pattern view. */ @@ -256,6 +260,27 @@ public class LockPatternView extends View { // we assume all bitmaps have the same size mBitmapWidth = mBitmapBtnDefault.getWidth(); mBitmapHeight = mBitmapBtnDefault.getHeight(); + + // allow vibration pattern to be customized + mVibePattern = loadVibratePattern(com.android.internal.R.array.config_virtualKeyVibePattern); + } + + private long[] loadVibratePattern(int id) { + int[] pattern = null; + try { + pattern = getResources().getIntArray(id); + } catch (Resources.NotFoundException e) { + Log.e("LockPatternView", "Vibrate pattern missing, using default", e); + } + if (pattern == null) { + return DEFAULT_VIBE_PATTERN; + } + + long[] tmpPattern = new long[pattern.length]; + for (int i = 0; i < pattern.length; i++) { + tmpPattern[i] = pattern[i]; + } + return tmpPattern; } private Bitmap getBitmapFor(int resId) { @@ -443,7 +468,7 @@ public class LockPatternView extends View { } addCellToPattern(cell); if (mTactileFeedbackEnabled){ - vibe.vibrate(VIBE_PATTERN, -1); // Generate tactile feedback + vibe.vibrate(mVibePattern, -1); // Generate tactile feedback } return cell; } |
