summaryrefslogtreecommitdiffstats
path: root/core/java/com
diff options
context:
space:
mode:
authorJim Miller <jaggies@google.com>2009-09-30 02:50:02 -0700
committerJim Miller <jaggies@google.com>2009-09-30 02:53:05 -0700
commit85d630020a29c24f3d51f00b5ce3f701c16f0a45 (patch)
tree682feff0d1918d75b7c951c3c6b79a9a83864e75 /core/java/com
parent3ba351267a3815a3c9a08e2ac7f62a39f83d7776 (diff)
downloadframeworks_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.java29
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;
}