diff options
author | Jim Miller <jaggies@google.com> | 2011-06-16 17:31:21 -0700 |
---|---|---|
committer | Jim Miller <jaggies@google.com> | 2011-06-17 16:48:57 -0700 |
commit | 0d244193bed0c995e2beaff5e217200457b28b9d (patch) | |
tree | 705405163b38b6b949f850701b6581a304b1c1d7 | |
parent | 576715c75987b64eff120f8800862815753b0c8a (diff) | |
download | frameworks_base-0d244193bed0c995e2beaff5e217200457b28b9d.zip frameworks_base-0d244193bed0c995e2beaff5e217200457b28b9d.tar.gz frameworks_base-0d244193bed0c995e2beaff5e217200457b28b9d.tar.bz2 |
Update pattern unlock and assets to match new UX design spec.
Fix bug with LockPatternView measurement.
Clean up forgotPassword/emergencyCall button code.
Lots of layout tweaks. Now uses new GridLayout for many of them.
New assets.
Updated after review.
Change-Id: I52d4ce65c6b6c644ac60eb55bb8eaff8bfeb1071
72 files changed, 523 insertions, 614 deletions
diff --git a/core/java/com/android/internal/widget/DigitalClock.java b/core/java/com/android/internal/widget/DigitalClock.java index 0885b6e..ac0dc35 100644 --- a/core/java/com/android/internal/widget/DigitalClock.java +++ b/core/java/com/android/internal/widget/DigitalClock.java @@ -96,13 +96,13 @@ public class DigitalClock extends RelativeLayout { }; static class AmPm { - private TextView mAmPm; + private TextView mAmPmTextView; private String mAmString, mPmString; AmPm(View parent, Typeface tf) { - mAmPm = (TextView) parent.findViewById(R.id.am_pm); - if (tf != null) { - mAmPm.setTypeface(tf); + mAmPmTextView = (TextView) parent.findViewById(R.id.am_pm); + if (mAmPmTextView != null && tf != null) { + mAmPmTextView.setTypeface(tf); } String[] ampm = new DateFormatSymbols().getAmPmStrings(); @@ -111,11 +111,15 @@ public class DigitalClock extends RelativeLayout { } void setShowAmPm(boolean show) { - mAmPm.setVisibility(show ? View.VISIBLE : View.GONE); + if (mAmPmTextView != null) { + mAmPmTextView.setVisibility(show ? View.VISIBLE : View.GONE); + } } void setIsMorning(boolean isMorning) { - mAmPm.setText(isMorning ? mAmString : mPmString); + if (mAmPmTextView != null) { + mAmPmTextView.setText(isMorning ? mAmString : mPmString); + } } } diff --git a/core/java/com/android/internal/widget/LockPatternView.java b/core/java/com/android/internal/widget/LockPatternView.java index bee8112..fd49ae3 100644 --- a/core/java/com/android/internal/widget/LockPatternView.java +++ b/core/java/com/android/internal/widget/LockPatternView.java @@ -131,6 +131,7 @@ public class LockPatternView extends View { private int mAspect; private final Matrix mArrowMatrix = new Matrix(); + private final Matrix mCircleMatrix = new Matrix(); /** * Represents a cell in the 3 X 3 matrix of the unlock pattern view. @@ -281,9 +282,14 @@ public class LockPatternView extends View { mBitmapArrowGreenUp = getBitmapFor(R.drawable.indicator_code_lock_drag_direction_green_up); mBitmapArrowRedUp = getBitmapFor(R.drawable.indicator_code_lock_drag_direction_red_up); - // we assume all bitmaps have the same size - mBitmapWidth = mBitmapBtnDefault.getWidth(); - mBitmapHeight = mBitmapBtnDefault.getHeight(); + // bitmaps have the size of the largest bitmap in this group + final Bitmap bitmaps[] = { mBitmapBtnDefault, mBitmapBtnTouched, mBitmapCircleDefault, + mBitmapCircleGreen, mBitmapCircleRed }; + + for (Bitmap bitmap : bitmaps) { + mBitmapWidth = Math.max(mBitmapWidth, bitmap.getWidth()); + mBitmapHeight = Math.max(mBitmapHeight, bitmap.getHeight()); + } // allow vibration pattern to be customized mVibePattern = loadVibratePattern(com.android.internal.R.array.config_virtualKeyVibePattern); @@ -458,31 +464,40 @@ public class LockPatternView extends View { break; case MeasureSpec.EXACTLY: default: - result = specSize; + // use the specified size, if non-zero + result = specSize != 0 ? specSize : desired; } return result; } @Override + protected int getSuggestedMinimumWidth() { + // View should be large enough to contain 3 side-by-side target bitmaps + return 3 * mBitmapWidth; + } + + @Override + protected int getSuggestedMinimumHeight() { + // View should be large enough to contain 3 side-by-side target bitmaps + return 3 * mBitmapWidth; + } + + @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { - final int minimumWidth = 3 * mBitmapCircleDefault.getWidth(); - final int minimumHeight = 3 * mBitmapCircleDefault.getHeight(); + final int minimumWidth = getSuggestedMinimumWidth(); + final int minimumHeight = getSuggestedMinimumHeight(); int viewWidth = resolveMeasured(widthMeasureSpec, minimumWidth); int viewHeight = resolveMeasured(heightMeasureSpec, minimumHeight); - int requestedWidth = MeasureSpec.getSize(widthMeasureSpec); - int requestedHeight = MeasureSpec.getSize(heightMeasureSpec); switch (mAspect) { case ASPECT_SQUARE: - viewWidth = viewHeight = Math.min(requestedWidth, requestedHeight); + viewWidth = viewHeight = Math.min(viewWidth, viewHeight); break; case ASPECT_LOCK_WIDTH: - viewWidth = requestedWidth; - viewHeight = Math.min(requestedWidth, requestedHeight); + viewHeight = Math.min(viewWidth, viewHeight); break; case ASPECT_LOCK_HEIGHT: - viewWidth = Math.min(requestedWidth, requestedHeight); - viewHeight = requestedHeight; + viewWidth = Math.min(viewWidth, viewHeight); break; } // Log.v(TAG, "LockPatternView dimensions: " + viewWidth + "x" + viewHeight); @@ -947,8 +962,8 @@ public class LockPatternView extends View { // This assumes that the arrow image is drawn at 12:00 with it's top edge // coincident with the circle bitmap's top edge. Bitmap arrow = green ? mBitmapArrowGreenUp : mBitmapArrowRedUp; - final int cellWidth = mBitmapCircleDefault.getWidth(); - final int cellHeight = mBitmapCircleDefault.getHeight(); + final int cellWidth = mBitmapWidth; + final int cellHeight = mBitmapHeight; // the up arrow bitmap is at 12:00, so find the rotation from x axis and add 90 degrees. final float theta = (float) Math.atan2( @@ -956,7 +971,12 @@ public class LockPatternView extends View { final float angle = (float) Math.toDegrees(theta) + 90.0f; // compose matrix + float sx = Math.min(mSquareWidth / mBitmapWidth, 1.0f); + float sy = Math.min(mSquareHeight / mBitmapHeight, 1.0f); mArrowMatrix.setTranslate(leftX + offsetX, topY + offsetY); // transform to cell position + mArrowMatrix.preTranslate(mBitmapWidth/2, mBitmapHeight/2); + mArrowMatrix.preScale(sx, sy); + mArrowMatrix.preTranslate(-mBitmapWidth/2, -mBitmapHeight/2); mArrowMatrix.preRotate(angle, cellWidth / 2.0f, cellHeight / 2.0f); // rotate about cell center mArrowMatrix.preTranslate((cellWidth - arrow.getWidth()) / 2.0f, 0.0f); // translate to 12:00 pos canvas.drawBitmap(arrow, mArrowMatrix, mPaint); @@ -1002,8 +1022,17 @@ public class LockPatternView extends View { int offsetX = (int) ((squareWidth - width) / 2f); int offsetY = (int) ((squareHeight - height) / 2f); - canvas.drawBitmap(outerCircle, leftX + offsetX, topY + offsetY, mPaint); - canvas.drawBitmap(innerCircle, leftX + offsetX, topY + offsetY, mPaint); + // Allow circles to shrink if the view is too small to hold them. + float sx = Math.min(mSquareWidth / mBitmapWidth, 1.0f); + float sy = Math.min(mSquareHeight / mBitmapHeight, 1.0f); + + mCircleMatrix.setTranslate(leftX + offsetX, topY + offsetY); + mCircleMatrix.preTranslate(mBitmapWidth/2, mBitmapHeight/2); + mCircleMatrix.preScale(sx, sy); + mCircleMatrix.preTranslate(-mBitmapWidth/2, -mBitmapHeight/2); + + canvas.drawBitmap(outerCircle, mCircleMatrix, mPaint); + canvas.drawBitmap(innerCircle, mCircleMatrix, mPaint); } @Override diff --git a/core/res/res/drawable-hdpi/btn_code_lock_default_holo.png b/core/res/res/drawable-hdpi/btn_code_lock_default_holo.png Binary files differnew file mode 100644 index 0000000..94d27cf --- /dev/null +++ b/core/res/res/drawable-hdpi/btn_code_lock_default_holo.png diff --git a/core/res/res/drawable-hdpi/btn_code_lock_touched_holo.png b/core/res/res/drawable-hdpi/btn_code_lock_touched_holo.png Binary files differnew file mode 100644 index 0000000..94d27cf --- /dev/null +++ b/core/res/res/drawable-hdpi/btn_code_lock_touched_holo.png diff --git a/core/res/res/drawable-hdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-hdpi/ic_lock_idle_alarm.png Binary files differindex 6b4f66d..3cadaff 100644 --- a/core/res/res/drawable-hdpi/ic_lock_idle_alarm.png +++ b/core/res/res/drawable-hdpi/ic_lock_idle_alarm.png diff --git a/core/res/res/drawable-hdpi/ic_lockscreen_emergencycall_normal.png b/core/res/res/drawable-hdpi/ic_lockscreen_emergencycall_normal.png Binary files differnew file mode 100644 index 0000000..460495a --- /dev/null +++ b/core/res/res/drawable-hdpi/ic_lockscreen_emergencycall_normal.png diff --git a/core/res/res/drawable-hdpi/ic_lockscreen_emergencycall_pressed.png b/core/res/res/drawable-hdpi/ic_lockscreen_emergencycall_pressed.png Binary files differnew file mode 100644 index 0000000..b0f7ae9 --- /dev/null +++ b/core/res/res/drawable-hdpi/ic_lockscreen_emergencycall_pressed.png diff --git a/core/res/res/drawable-hdpi/ic_lockscreen_forgotpassword_normal.png b/core/res/res/drawable-hdpi/ic_lockscreen_forgotpassword_normal.png Binary files differnew file mode 100644 index 0000000..6402d3d --- /dev/null +++ b/core/res/res/drawable-hdpi/ic_lockscreen_forgotpassword_normal.png diff --git a/core/res/res/drawable-hdpi/ic_lockscreen_forgotpassword_pressed.png b/core/res/res/drawable-hdpi/ic_lockscreen_forgotpassword_pressed.png Binary files differnew file mode 100644 index 0000000..83be046 --- /dev/null +++ b/core/res/res/drawable-hdpi/ic_lockscreen_forgotpassword_pressed.png diff --git a/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_green_up_holo.png b/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_green_up_holo.png Binary files differnew file mode 100644 index 0000000..a686975 --- /dev/null +++ b/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_green_up_holo.png diff --git a/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_red_up_holo.png b/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_red_up_holo.png Binary files differnew file mode 100644 index 0000000..92db8ef --- /dev/null +++ b/core/res/res/drawable-hdpi/indicator_code_lock_drag_direction_red_up_holo.png diff --git a/core/res/res/drawable-hdpi/indicator_code_lock_point_area_default_holo.png b/core/res/res/drawable-hdpi/indicator_code_lock_point_area_default_holo.png Binary files differnew file mode 100644 index 0000000..237011c --- /dev/null +++ b/core/res/res/drawable-hdpi/indicator_code_lock_point_area_default_holo.png diff --git a/core/res/res/drawable-hdpi/indicator_code_lock_point_area_green_holo.png b/core/res/res/drawable-hdpi/indicator_code_lock_point_area_green_holo.png Binary files differnew file mode 100644 index 0000000..2418017 --- /dev/null +++ b/core/res/res/drawable-hdpi/indicator_code_lock_point_area_green_holo.png diff --git a/core/res/res/drawable-hdpi/indicator_code_lock_point_area_red_holo.png b/core/res/res/drawable-hdpi/indicator_code_lock_point_area_red_holo.png Binary files differnew file mode 100644 index 0000000..2120bad --- /dev/null +++ b/core/res/res/drawable-hdpi/indicator_code_lock_point_area_red_holo.png diff --git a/core/res/res/drawable-mdpi/btn_code_lock_default.png b/core/res/res/drawable-mdpi/btn_code_lock_default.png Binary files differindex 45cc20d..f524317 100644..100755 --- a/core/res/res/drawable-mdpi/btn_code_lock_default.png +++ b/core/res/res/drawable-mdpi/btn_code_lock_default.png diff --git a/core/res/res/drawable-mdpi/btn_code_lock_default_holo.png b/core/res/res/drawable-mdpi/btn_code_lock_default_holo.png Binary files differnew file mode 100644 index 0000000..7d11275 --- /dev/null +++ b/core/res/res/drawable-mdpi/btn_code_lock_default_holo.png diff --git a/core/res/res/drawable-mdpi/btn_code_lock_touched.png b/core/res/res/drawable-mdpi/btn_code_lock_touched.png Binary files differindex 45cc20d..5cd436c 100644..100755 --- a/core/res/res/drawable-mdpi/btn_code_lock_touched.png +++ b/core/res/res/drawable-mdpi/btn_code_lock_touched.png diff --git a/core/res/res/drawable-mdpi/btn_code_lock_touched_holo.png b/core/res/res/drawable-mdpi/btn_code_lock_touched_holo.png Binary files differnew file mode 100644 index 0000000..7d11275 --- /dev/null +++ b/core/res/res/drawable-mdpi/btn_code_lock_touched_holo.png diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-mdpi/ic_lock_idle_alarm.png Binary files differindex 97ac023..b5d3e09 100644 --- a/core/res/res/drawable-mdpi/ic_lock_idle_alarm.png +++ b/core/res/res/drawable-mdpi/ic_lock_idle_alarm.png diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_charging.png b/core/res/res/drawable-mdpi/ic_lock_idle_charging.png Binary files differindex 4210db2..20d6320 100644..100755 --- a/core/res/res/drawable-mdpi/ic_lock_idle_charging.png +++ b/core/res/res/drawable-mdpi/ic_lock_idle_charging.png diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_lock.png b/core/res/res/drawable-mdpi/ic_lock_idle_lock.png Binary files differindex 1060f5a..0206aee 100644..100755 --- a/core/res/res/drawable-mdpi/ic_lock_idle_lock.png +++ b/core/res/res/drawable-mdpi/ic_lock_idle_lock.png diff --git a/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png b/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png Binary files differindex 72e4afa..bb96782 100644..100755 --- a/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png +++ b/core/res/res/drawable-mdpi/ic_lock_idle_low_battery.png diff --git a/core/res/res/drawable-mdpi/ic_lockscreen_emergencycall_normal.png b/core/res/res/drawable-mdpi/ic_lockscreen_emergencycall_normal.png Binary files differnew file mode 100644 index 0000000..cae795f --- /dev/null +++ b/core/res/res/drawable-mdpi/ic_lockscreen_emergencycall_normal.png diff --git a/core/res/res/drawable-mdpi/ic_lockscreen_emergencycall_pressed.png b/core/res/res/drawable-mdpi/ic_lockscreen_emergencycall_pressed.png Binary files differnew file mode 100644 index 0000000..2867956 --- /dev/null +++ b/core/res/res/drawable-mdpi/ic_lockscreen_emergencycall_pressed.png diff --git a/core/res/res/drawable-mdpi/ic_lockscreen_forgotpassword_normal.png b/core/res/res/drawable-mdpi/ic_lockscreen_forgotpassword_normal.png Binary files differnew file mode 100644 index 0000000..a7e063a --- /dev/null +++ b/core/res/res/drawable-mdpi/ic_lockscreen_forgotpassword_normal.png diff --git a/core/res/res/drawable-mdpi/ic_lockscreen_forgotpassword_pressed.png b/core/res/res/drawable-mdpi/ic_lockscreen_forgotpassword_pressed.png Binary files differnew file mode 100644 index 0000000..53af5a5 --- /dev/null +++ b/core/res/res/drawable-mdpi/ic_lockscreen_forgotpassword_pressed.png diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_green_up.png b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_green_up.png Binary files differindex 0bc86c3..7ddeba5 100644 --- a/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_green_up.png +++ b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_green_up.png diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_green_up_holo.png b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_green_up_holo.png Binary files differnew file mode 100644 index 0000000..89d209c --- /dev/null +++ b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_green_up_holo.png diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_red_up.png b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_red_up.png Binary files differindex 2ab4547..7201e58 100644 --- a/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_red_up.png +++ b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_red_up.png diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_red_up_holo.png b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_red_up_holo.png Binary files differnew file mode 100644 index 0000000..1d4cb32 --- /dev/null +++ b/core/res/res/drawable-mdpi/indicator_code_lock_drag_direction_red_up_holo.png diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_point_area_default_holo.png b/core/res/res/drawable-mdpi/indicator_code_lock_point_area_default_holo.png Binary files differnew file mode 100644 index 0000000..a627cda --- /dev/null +++ b/core/res/res/drawable-mdpi/indicator_code_lock_point_area_default_holo.png diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_point_area_green_holo.png b/core/res/res/drawable-mdpi/indicator_code_lock_point_area_green_holo.png Binary files differnew file mode 100644 index 0000000..308624b --- /dev/null +++ b/core/res/res/drawable-mdpi/indicator_code_lock_point_area_green_holo.png diff --git a/core/res/res/drawable-mdpi/indicator_code_lock_point_area_red_holo.png b/core/res/res/drawable-mdpi/indicator_code_lock_point_area_red_holo.png Binary files differnew file mode 100644 index 0000000..6c451ec --- /dev/null +++ b/core/res/res/drawable-mdpi/indicator_code_lock_point_area_red_holo.png diff --git a/core/res/res/drawable-xhdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-xhdpi/ic_lock_idle_alarm.png Binary files differnew file mode 100644 index 0000000..2822a92 --- /dev/null +++ b/core/res/res/drawable-xhdpi/ic_lock_idle_alarm.png diff --git a/core/res/res/drawable-xhdpi/ic_lockscreen_emergencycall_normal.png b/core/res/res/drawable-xhdpi/ic_lockscreen_emergencycall_normal.png Binary files differnew file mode 100644 index 0000000..a61f7a5 --- /dev/null +++ b/core/res/res/drawable-xhdpi/ic_lockscreen_emergencycall_normal.png diff --git a/core/res/res/drawable-xhdpi/ic_lockscreen_emergencycall_pressed.png b/core/res/res/drawable-xhdpi/ic_lockscreen_emergencycall_pressed.png Binary files differnew file mode 100644 index 0000000..dd5e481 --- /dev/null +++ b/core/res/res/drawable-xhdpi/ic_lockscreen_emergencycall_pressed.png diff --git a/core/res/res/drawable-xhdpi/ic_lockscreen_forgotpassword_normal.png b/core/res/res/drawable-xhdpi/ic_lockscreen_forgotpassword_normal.png Binary files differnew file mode 100644 index 0000000..e4172ce --- /dev/null +++ b/core/res/res/drawable-xhdpi/ic_lockscreen_forgotpassword_normal.png diff --git a/core/res/res/drawable-xhdpi/ic_lockscreen_forgotpassword_pressed.png b/core/res/res/drawable-xhdpi/ic_lockscreen_forgotpassword_pressed.png Binary files differnew file mode 100644 index 0000000..e2c7621 --- /dev/null +++ b/core/res/res/drawable-xhdpi/ic_lockscreen_forgotpassword_pressed.png diff --git a/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_default_holo.png b/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_default_holo.png Binary files differnew file mode 100644 index 0000000..d98a126 --- /dev/null +++ b/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_default_holo.png diff --git a/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_green_holo.png b/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_green_holo.png Binary files differnew file mode 100644 index 0000000..4491f02 --- /dev/null +++ b/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_green_holo.png diff --git a/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_red_holo.png b/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_red_holo.png Binary files differnew file mode 100644 index 0000000..6e91fbc --- /dev/null +++ b/core/res/res/drawable-xhdpi/indicator_code_lock_point_area_red_holo.png diff --git a/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_alarm.png Binary files differnew file mode 100644 index 0000000..29cd471 --- /dev/null +++ b/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_alarm.png diff --git a/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_charging.png b/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_charging.png Binary files differnew file mode 100644 index 0000000..211aa0b --- /dev/null +++ b/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_charging.png diff --git a/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_lock.png b/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_lock.png Binary files differnew file mode 100644 index 0000000..683ba22 --- /dev/null +++ b/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_lock.png diff --git a/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_low_battery.png b/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_low_battery.png Binary files differnew file mode 100644 index 0000000..f4383f3 --- /dev/null +++ b/core/res/res/drawable-xlarge-hdpi/ic_lock_idle_low_battery.png diff --git a/core/res/res/drawable-xlarge-mdpi/btn_code_lock_default.png b/core/res/res/drawable-xlarge-mdpi/btn_code_lock_default.png Binary files differnew file mode 100644 index 0000000..45cc20d --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/btn_code_lock_default.png diff --git a/core/res/res/drawable-xlarge-mdpi/btn_code_lock_touched.png b/core/res/res/drawable-xlarge-mdpi/btn_code_lock_touched.png Binary files differnew file mode 100644 index 0000000..45cc20d --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/btn_code_lock_touched.png diff --git a/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_alarm.png b/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_alarm.png Binary files differnew file mode 100644 index 0000000..97ac023 --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_alarm.png diff --git a/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_charging.png b/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_charging.png Binary files differnew file mode 100644 index 0000000..4210db2 --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_charging.png diff --git a/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_lock.png b/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_lock.png Binary files differnew file mode 100644 index 0000000..1060f5a --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_lock.png diff --git a/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_low_battery.png b/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_low_battery.png Binary files differnew file mode 100644 index 0000000..72e4afa --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/ic_lock_idle_low_battery.png diff --git a/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_drag_direction_green_up.png b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_drag_direction_green_up.png Binary files differnew file mode 100644 index 0000000..0bc86c3 --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_drag_direction_green_up.png diff --git a/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_drag_direction_red_up.png b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_drag_direction_red_up.png Binary files differnew file mode 100644 index 0000000..2ab4547 --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_drag_direction_red_up.png diff --git a/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_default.png b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_default.png Binary files differnew file mode 100644 index 0000000..fe72d00 --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_default.png diff --git a/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_green.png b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_green.png Binary files differnew file mode 100644 index 0000000..be666c6 --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_green.png diff --git a/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_red.png b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_red.png Binary files differnew file mode 100644 index 0000000..9627197 --- /dev/null +++ b/core/res/res/drawable-xlarge-mdpi/indicator_code_lock_point_area_red.png diff --git a/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_default.png b/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_default.png Binary files differnew file mode 100644 index 0000000..6662eb1 --- /dev/null +++ b/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_default.png diff --git a/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_green.png b/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_green.png Binary files differnew file mode 100644 index 0000000..dce220a --- /dev/null +++ b/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_green.png diff --git a/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_red.png b/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_red.png Binary files differnew file mode 100644 index 0000000..746a3ea --- /dev/null +++ b/core/res/res/drawable-xlarge-xhdpi/indicator_code_lock_point_area_red.png diff --git a/core/res/res/drawable/lockscreen_emergency_button.xml b/core/res/res/drawable/lockscreen_emergency_button.xml new file mode 100644 index 0000000..4ec6a96 --- /dev/null +++ b/core/res/res/drawable/lockscreen_emergency_button.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2008 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_enabled="true" android:drawable="@drawable/ic_lockscreen_emergencycall_normal" /> + <item android:state_pressed="true" android:drawable="@drawable/ic_lockscreen_emergencycall_pressed" /> + <item android:drawable="@drawable/ic_lockscreen_emergencycall_normal" /> +</selector> diff --git a/core/res/res/drawable/lockscreen_forgot_password_button.xml b/core/res/res/drawable/lockscreen_forgot_password_button.xml new file mode 100644 index 0000000..6c081bf --- /dev/null +++ b/core/res/res/drawable/lockscreen_forgot_password_button.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- Copyright (C) 2008 The Android Open Source Project + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> + +<selector xmlns:android="http://schemas.android.com/apk/res/android"> + <item android:state_enabled="true" android:drawable="@drawable/ic_lockscreen_forgotpassword_normal" /> + <item android:state_pressed="true" android:drawable="@drawable/ic_lockscreen_forgotpassword_pressed" /> + <item android:drawable="@drawable/ic_lockscreen_forgotpassword_normal" /> +</selector> diff --git a/core/res/res/layout-sw600dp/keyguard_screen_status_land.xml b/core/res/res/layout-sw600dp/keyguard_screen_status_land.xml index 0a485e2..302ee01 100644 --- a/core/res/res/layout-sw600dp/keyguard_screen_status_land.xml +++ b/core/res/res/layout-sw600dp/keyguard_screen_status_land.xml @@ -56,7 +56,7 @@ android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="none" - android:textSize="98sp" + android:textSize="@dimen/keyguard_pattern_unlock_clock_font_size" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/lockscreen_clock_background" android:layout_marginBottom="6dip" @@ -67,7 +67,7 @@ android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="none" - android:textSize="98sp" + android:textSize="@dimen/keyguard_pattern_unlock_clock_font_size" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/lockscreen_clock_foreground" android:layout_alignLeft="@id/timeDisplayBackground" diff --git a/core/res/res/layout-sw600dp/keyguard_screen_status_port.xml b/core/res/res/layout-sw600dp/keyguard_screen_status_port.xml index 346b21e..53fe902 100644 --- a/core/res/res/layout-sw600dp/keyguard_screen_status_port.xml +++ b/core/res/res/layout-sw600dp/keyguard_screen_status_port.xml @@ -55,7 +55,7 @@ android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="none" - android:textSize="98sp" + android:textSize="@dimen/keyguard_pattern_unlock_clock_font_size" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/lockscreen_clock_background" android:layout_marginBottom="6dip" @@ -66,7 +66,7 @@ android:layout_height="wrap_content" android:singleLine="true" android:ellipsize="none" - android:textSize="98sp" + android:textSize="@dimen/keyguard_pattern_unlock_clock_font_size" android:textAppearance="?android:attr/textAppearanceMedium" android:textColor="@color/lockscreen_clock_foreground" android:layout_marginBottom="6dip" diff --git a/core/res/res/layout-sw600dp/keyguard_screen_unlock_landscape.xml b/core/res/res/layout-sw600dp/keyguard_screen_unlock_landscape.xml index e3d7a3f..7ac41b5 100644 --- a/core/res/res/layout-sw600dp/keyguard_screen_unlock_landscape.xml +++ b/core/res/res/layout-sw600dp/keyguard_screen_unlock_landscape.xml @@ -56,10 +56,8 @@ android:layout_gravity="center_vertical" /> - <!-- footer --> - - <!-- option 1: a single emergency call button --> - <RelativeLayout android:id="@+id/footerNormal" + <!-- Emergency and forgot pattern buttons. --> + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/lockPattern" @@ -68,43 +66,27 @@ android:layout_marginTop="28dip" android:layout_marginLeft="28dip" android:layout_marginRight="28dip" - > - <Button android:id="@+id/emergencyCallAlone" + android:orientation="horizontal"> + + <Button android:id="@+id/forgotPatternButton" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/lockscreen_emergency_call" + android:layout_gravity="center" style="@style/Widget.Button.Transparent" android:drawableLeft="@drawable/ic_emergency" android:drawablePadding="8dip" + android:text="@string/lockscreen_forgot_pattern_button_text" android:visibility="gone" - /> - </RelativeLayout> - - <!-- option 2: an emergency call button, and a 'forgot pattern?' button --> - <LinearLayout android:id="@+id/footerForgotPattern" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_below="@id/footerNormal" - android:layout_alignLeft="@id/lockPattern" - android:layout_alignRight="@id/lockPattern" - android:layout_marginTop="28dip" - android:layout_marginLeft="28dip" - android:layout_marginRight="28dip"> - - <Button android:id="@+id/forgotPattern" - android:layout_width="match_parent" - android:layout_height="wrap_content" - style="@style/Widget.Button.Transparent" /> - <Button android:id="@+id/emergencyCallTogether" - android:layout_width="match_parent" + <Button android:id="@+id/emergencyCallButton" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/lockscreen_emergency_call" + android:layout_gravity="center" style="@style/Widget.Button.Transparent" android:drawableLeft="@drawable/ic_emergency" android:drawablePadding="8dip" + android:text="@string/lockscreen_emergency_call" android:visibility="gone" /> diff --git a/core/res/res/layout-sw600dp/keyguard_screen_unlock_portrait.xml b/core/res/res/layout-sw600dp/keyguard_screen_unlock_portrait.xml index f35897e..1f6058f 100644 --- a/core/res/res/layout-sw600dp/keyguard_screen_unlock_portrait.xml +++ b/core/res/res/layout-sw600dp/keyguard_screen_unlock_portrait.xml @@ -23,7 +23,7 @@ android:layout_width="match_parent" android:layout_height="match_parent"> - <!-- top: status --> + <!-- top: status and emergency/forgot pattern buttons --> <LinearLayout android:layout_height="0dip" android:layout_weight="1" @@ -36,53 +36,37 @@ android:layout_marginTop="134dip" android:layout_marginLeft="266dip"/> - <!-- footer --> - <FrameLayout + <!-- Emergency and forgot pattern buttons. --> + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:layout_marginLeft="140dip" - > + android:orientation="horizontal" + android:gravity="center_horizontal"> - <!-- option 1: a single emergency call button --> - <RelativeLayout android:id="@+id/footerNormal" - android:layout_width="match_parent" + <Button android:id="@+id/forgotPatternButton" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:gravity="left" - > - <Button android:id="@+id/emergencyCallAlone" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/lockscreen_emergency_call" - style="@style/Widget.Button.Transparent" - android:drawableLeft="@drawable/ic_emergency" - android:drawablePadding="8dip" - android:visibility="gone" - /> - </RelativeLayout> + android:layout_gravity="center" + style="@style/Widget.Button.Transparent" + android:drawableLeft="@drawable/ic_emergency" + android:drawablePadding="8dip" + android:text="@string/lockscreen_forgot_pattern_button_text" + android:visibility="gone" + /> - <!-- option 2: an emergency call button, and a 'forgot pattern?' button --> - <LinearLayout android:id="@+id/footerForgotPattern" - android:orientation="vertical" - android:layout_width="match_parent" + <Button android:id="@+id/emergencyCallButton" + android:layout_width="wrap_content" android:layout_height="wrap_content" - android:gravity="left" - > - <Button android:id="@+id/forgotPattern" - android:layout_width="match_parent" - android:layout_height="wrap_content" - style="@style/Widget.Button.Transparent" - /> - <Button android:id="@+id/emergencyCallTogether" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/lockscreen_emergency_call" - style="@style/Widget.Button.Transparent" - android:drawableLeft="@drawable/ic_emergency" - android:drawablePadding="8dip" - android:visibility="gone" - /> - </LinearLayout> - </FrameLayout> + android:layout_gravity="center" + style="@style/Widget.Button.Transparent" + android:drawableLeft="@drawable/ic_emergency" + android:drawablePadding="8dip" + android:text="@string/lockscreen_emergency_call" + android:visibility="gone" + /> + + </LinearLayout> + </LinearLayout> <!-- right side: lock pattern --> diff --git a/core/res/res/layout/keyguard_screen_tab_unlock_land.xml b/core/res/res/layout/keyguard_screen_tab_unlock_land.xml index df29a4b..d45cc85 100644 --- a/core/res/res/layout/keyguard_screen_tab_unlock_land.xml +++ b/core/res/res/layout/keyguard_screen_tab_unlock_land.xml @@ -20,154 +20,155 @@ <!-- This is the general lock screen which shows information about the state of the device, as well as instructions on how to get past it depending on the state of the device.--> -<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" +<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" - android:orientation="horizontal" + android:orientation="vertical" + android:rowCount="10" android:id="@+id/root" android:clipChildren="false"> - <!-- left side --> - <RelativeLayout - android:layout_width="0dip" - android:layout_height="match_parent" - android:layout_weight="1.0" - android:layout_marginLeft="24dip" - android:gravity="left"> + <!-- Column 0 --> + <Space android:height="20dip"/> - <TextView - android:id="@+id/carrier" + <com.android.internal.widget.DigitalClock android:id="@+id/time" + android:layout_marginTop="56dip" + android:layout_marginBottom="8dip"> + + <!-- Because we can't have multi-tone fonts, we render two TextViews, one on + top of the other. Hence the redundant layout... --> + <TextView android:id="@+id/timeDisplayBackground" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:layout_marginTop="20dip" android:singleLine="true" - android:ellipsize="marquee" - android:gravity="right|bottom" + android:ellipsize="none" + android:textSize="72sp" android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_marginBottom="6dip" + android:textColor="@color/lockscreen_clock_background" /> - <!-- "emergency calls only" shown when sim is missing or PUKd --> - <TextView - android:id="@+id/emergencyCallText" + <TextView android:id="@+id/timeDisplayForeground" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:layout_marginTop="20dip" - android:text="@string/emergency_calls_only" - android:textAppearance="?android:attr/textAppearanceSmall" - android:textColor="@color/white" - /> - - <com.android.internal.widget.DigitalClock android:id="@+id/time" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_below="@id/carrier" - android:layout_marginTop="56dip" - android:layout_marginBottom="8dip" - > - - <!-- Because we can't have multi-tone fonts, we render two TextViews, one on - top of the other. Hence the redundant layout... --> - <TextView android:id="@+id/timeDisplayBackground" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="none" - android:textSize="72sp" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_marginBottom="6dip" - android:textColor="@color/lockscreen_clock_background" - /> - - <TextView android:id="@+id/timeDisplayForeground" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="none" - android:textSize="72sp" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_marginBottom="6dip" - android:textColor="@color/lockscreen_clock_foreground" - android:layout_alignLeft="@id/timeDisplayBackground" - android:layout_alignTop="@id/timeDisplayBackground" - /> - - <TextView android:id="@+id/am_pm" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_toRightOf="@id/timeDisplayBackground" - android:layout_alignBaseline="@id/timeDisplayBackground" - android:singleLine="true" - android:ellipsize="none" - android:textSize="22sp" - android:layout_marginLeft="8dip" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textColor="@color/lockscreen_clock_am_pm" - /> - - </com.android.internal.widget.DigitalClock> - - <TextView - android:id="@+id/date" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_below="@id/time" - android:layout_marginTop="6dip" + android:singleLine="true" + android:ellipsize="none" + android:textSize="72sp" android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_marginBottom="6dip" + android:textColor="@color/lockscreen_clock_foreground" + android:layout_alignLeft="@id/timeDisplayBackground" + android:layout_alignTop="@id/timeDisplayBackground" /> - <!-- TODO: Redo layout when we release on phones --> - <TextView - android:id="@+id/alarm_status" + <TextView android:id="@+id/am_pm" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:layout_toRightOf="@id/timeDisplayBackground" + android:layout_alignBaseline="@id/timeDisplayBackground" + android:singleLine="true" + android:ellipsize="none" + android:textSize="22sp" + android:layout_marginLeft="8dip" android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="18sp" - android:drawablePadding="4dip" - android:layout_below="@id/date" - android:layout_marginTop="4dip" - android:layout_marginLeft="24dip" + android:textColor="@color/lockscreen_clock_am_pm" + android:visibility="gone" /> - <TextView - android:id="@+id/status1" + </com.android.internal.widget.DigitalClock> + + <TextView + android:id="@+id/date" + android:layout_below="@id/time" + android:layout_marginTop="6dip" + android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_gravity="left" + /> + + <TextView + android:id="@+id/alarm_status" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="18sp" + android:drawablePadding="4dip" + android:layout_marginTop="4dip" + android:layout_gravity="left" + /> + + <TextView + android:id="@+id/status1" + android:layout_marginTop="4dip" + android:textAppearance="?android:attr/textAppearanceMedium" + android:drawablePadding="4dip" + android:layout_gravity="left" + /> + + <TextView + android:id="@+id/status2" + android:layout_marginTop="4dip" + android:textAppearance="?android:attr/textAppearanceMedium" + android:drawablePadding="4dip" + android:layout_gravity="left" + /> + + <TextView + android:id="@+id/screenLocked" + android:textAppearance="?android:attr/textAppearanceMedium" + android:gravity="center" + android:layout_marginTop="4dip" + android:drawablePadding="4dip" + android:layout_gravity="left" + /> + + <Space android:height="20dip"/> + + <LinearLayout android:orientation="horizontal" > + + <TextView + android:id="@+id/carrier" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/alarm_status" - android:layout_marginTop="6dip" + android:layout_alignParentTop="true" + android:singleLine="true" + android:ellipsize="marquee" + android:layout_gravity="bottom|left" android:textAppearance="?android:attr/textAppearanceMedium" - android:drawablePadding="4dip" - /> + /> - <TextView - android:id="@+id/status2" + <Button + android:id="@+id/emergencyCallButton" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/status1" - android:layout_marginTop="6dip" - android:textAppearance="?android:attr/textAppearanceMedium" - android:drawablePadding="4dip" - /> + android:drawableLeft="@drawable/ic_emergency" + style="@style/Widget.Button.Transparent" + android:drawablePadding="8dip" + android:layout_marginRight="80dip" + android:visibility="gone" + /> + <!-- "emergency calls only" shown when sim is missing or PUKd --> <TextView - android:id="@+id/screenLocked" + android:id="@+id/emergencyCallText" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/status2" - android:textAppearance="?android:attr/textAppearanceMedium" - android:gravity="center" - android:layout_marginTop="12dip" - android:drawablePadding="4dip" - /> + android:layout_alignParentTop="true" + android:layout_marginTop="20dip" + android:text="@string/emergency_calls_only" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textColor="@color/white" + /> + </LinearLayout> - </RelativeLayout> + <Space android:height="20dip"/> - <!-- right side --> + <!-- Column 1 --> + <Space android:width="20dip" android:layout_columnWeight="1" android:layout_rowSpan="10" /> + + <!-- Column 2 --> <com.android.internal.widget.multiwaveview.MultiWaveView android:id="@+id/unlock_widget" android:layout_width="300dip" android:layout_height="match_parent" + android:layout_rowSpan="10" android:targetDrawables="@array/lockscreen_targets_when_silent" android:handleDrawable="@drawable/ic_lockscreen_handle" @@ -178,21 +179,8 @@ android:vibrationDuration="20" android:topChevronDrawable="@drawable/ic_lockscreen_chevron_up" android:feedbackCount="3" - android:horizontalOffset="60dip" + android:horizontalOffset="0dip" android:verticalOffset="0dip" /> - <!-- emergency call button shown when sim is PUKd and tab_selector is - hidden --> - <Button - android:id="@+id/emergencyCallButton" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:drawableLeft="@drawable/ic_emergency" - style="@style/Widget.Button.Transparent" - android:drawablePadding="8dip" - android:layout_marginRight="80dip" - android:visibility="gone" - /> - -</LinearLayout> +</GridLayout> diff --git a/core/res/res/layout/keyguard_screen_unlock_landscape.xml b/core/res/res/layout/keyguard_screen_unlock_landscape.xml index c7b78c4..d52bc57 100644 --- a/core/res/res/layout/keyguard_screen_unlock_landscape.xml +++ b/core/res/res/layout/keyguard_screen_unlock_landscape.xml @@ -21,198 +21,124 @@ the user how to unlock their device, or make an emergency call. This is the portrait layout. --> -<com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient - xmlns:android="http://schemas.android.com/apk/res/android" - android:orientation="horizontal" +<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:id="@+id/root" + android:orientation="vertical" android:layout_width="match_parent" - android:layout_height="match_parent"> - - <!-- left side: instructions and emergency call button --> - <LinearLayout - android:orientation="vertical" - android:layout_width="0dip" - android:layout_height="match_parent" - android:layout_weight="1.0" - android:layout_marginLeft="24dip" - android:gravity="left" - > - - <TextView - android:id="@+id/alarm_status" + android:layout_height="match_parent" + android:rowCount="9"> + + <!-- Column 0: Time, date and status --> + <com.android.internal.widget.DigitalClock android:id="@+id/time" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_marginTop="8dip" + android:layout_marginBottom="12dip" + android:layout_gravity="right"> + + <!-- Because we can't have multi-tone fonts, we render two TextViews, one on + top of the other. Hence the redundant layout... --> + <TextView android:id="@+id/timeDisplayBackground" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:singleLine="true" + android:ellipsize="none" android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="18sp" - android:drawablePadding="4dip" - /> - <TextView - android:id="@+id/status1" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="16dip" - android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/keyguard_pattern_unlock_clock_font_size" + android:layout_marginBottom="6dip" + android:textColor="@color/lockscreen_clock_background" /> - <TextView - android:id="@+id/carrier" + <TextView android:id="@+id/timeDisplayForeground" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="17sp" - android:drawablePadding="4dip" - android:layout_marginTop="32dip" android:singleLine="true" - android:ellipsize="marquee" - android:gravity="right|bottom" - /> - - <com.android.internal.widget.DigitalClock android:id="@+id/time" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:layout_alignParentLeft="true" - android:layout_marginTop="8dip" - android:layout_marginBottom="8dip" - > - - <!-- Because we can't have multi-tone fonts, we render two TextViews, one on - top of the other. Hence the redundant layout... --> - <TextView android:id="@+id/timeDisplayBackground" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="none" - android:textSize="72sp" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_marginBottom="6dip" - android:textColor="@color/lockscreen_clock_background" - /> - - <TextView android:id="@+id/timeDisplayForeground" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="none" - android:textSize="72sp" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_marginBottom="6dip" - android:layout_alignLeft="@id/timeDisplayBackground" - android:layout_alignTop="@id/timeDisplayBackground" - android:textColor="@color/lockscreen_clock_foreground" - /> - - - - <TextView android:id="@+id/am_pm" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_toRightOf="@id/timeDisplayBackground" - android:layout_alignBaseline="@id/timeDisplayBackground" - android:singleLine="true" - android:ellipsize="none" - android:textSize="22sp" - android:layout_marginLeft="8dip" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textColor="@color/lockscreen_clock_am_pm" - /> - - </com.android.internal.widget.DigitalClock> - - <TextView - android:id="@+id/date" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_below="@id/time" + android:ellipsize="none" android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/keyguard_pattern_unlock_clock_font_size" + android:layout_marginBottom="6dip" + android:layout_alignLeft="@id/timeDisplayBackground" + android:layout_alignTop="@id/timeDisplayBackground" + android:textColor="@color/lockscreen_clock_foreground" /> - <!-- used for instructions such as "draw pattern to unlock", the next alarm, and charging - status. --> - <LinearLayout - android:orientation="horizontal" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginTop="8dip" - android:gravity="center" - > - <TextView - android:id="@+id/statusSep" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_marginLeft="5dip" - android:layout_marginRight="5dip" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="17sp" - /> - <TextView - android:id="@+id/status2" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="17sp" - android:drawablePadding="4dip" - /> - </LinearLayout> - - <!-- fill space between header and button below --> - <View - android:layout_weight="1.0" - android:layout_width="match_parent" - android:layout_height="0dip" - /> - - <!-- footer --> - <FrameLayout - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:layout_marginBottom="16dip" - > - - <!-- option 1: a single emergency call button --> - <RelativeLayout android:id="@+id/footerNormal" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="left" - > - <Button android:id="@+id/emergencyCallAlone" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:text="@string/lockscreen_emergency_call" - style="@style/Widget.Button.Transparent" - android:drawableLeft="@drawable/ic_emergency" - android:drawablePadding="8dip" - /> - </RelativeLayout> - - <!-- option 2: an emergency call button, and a 'forgot pattern?' button --> - <LinearLayout android:id="@+id/footerForgotPattern" - android:orientation="vertical" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:gravity="left" - > - <Button android:id="@+id/forgotPattern" - android:layout_width="match_parent" - android:layout_height="wrap_content" - style="@style/Widget.Button.Transparent" - android:visibility="invisible" - /> - <Button android:id="@+id/emergencyCallTogether" - android:layout_width="match_parent" - android:layout_height="wrap_content" - android:text="@string/lockscreen_emergency_call" - style="@style/Widget.Button.Transparent" - android:drawableLeft="@drawable/ic_emergency" - android:drawablePadding="8dip" - /> - </LinearLayout> - </FrameLayout> - </LinearLayout> - - <!-- right side: lock pattern --> + </com.android.internal.widget.DigitalClock> + + <TextView + android:id="@+id/date" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:layout_gravity="right" + /> + + <TextView + android:id="@+id/alarm_status" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:layout_gravity="right" + android:drawablePadding="4dip" + /> + + <TextView + android:id="@+id/status1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:layout_gravity="right" + /> + + <TextView + android:id="@+id/status2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:layout_gravity="right" + android:drawablePadding="4dip" + android:visibility="gone" + /> + + <Space android:layout_rowWeight="1" android:layout_columnWeight="1" /> + + <TextView android:id="@+id/carrier" + android:layout_gravity="right" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:singleLine="true" + android:ellipsize="marquee" + /> + + <Button android:id="@+id/emergencyCallButton" + android:layout_gravity="right" + style="@*android:style/Widget.Button.Transparent" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:text="@string/lockscreen_emergency_call" + android:drawableLeft="@*android:drawable/lockscreen_emergency_button" + android:drawablePadding="0dip" + /> + + <Button android:id="@+id/forgotPatternButton" + android:layout_gravity="right" + style="@*android:style/Widget.Button.Transparent" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:text="@*android:string/lockscreen_forgot_pattern_button_text" + android:drawableLeft="@*android:drawable/lockscreen_forgot_password_button" + android:drawablePadding="0dip" + /> + + <!-- Column 1: lock pattern --> <com.android.internal.widget.LockPatternView android:id="@+id/lockPattern" - android:layout_width="wrap_content" - android:layout_height="wrap_content" /> - -</com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient> + android:layout_width="match_parent" + android:layout_height="match_parent" + android:layout_marginTop="8dip" + android:layout_marginRight="8dip" + android:layout_marginBottom="8dip" + android:layout_marginLeft="8dip" + android:layout_rowSpan="9"/> + +</GridLayout> diff --git a/core/res/res/layout/keyguard_screen_unlock_portrait.xml b/core/res/res/layout/keyguard_screen_unlock_portrait.xml index 15f2afb..0132b6c 100644 --- a/core/res/res/layout/keyguard_screen_unlock_portrait.xml +++ b/core/res/res/layout/keyguard_screen_unlock_portrait.xml @@ -20,213 +20,149 @@ <!-- This is the screen that shows the 9 circle unlock widget and instructs the user how to unlock their device, or make an emergency call. This is the portrait layout. --> -<com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient +<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center_horizontal"> - <RelativeLayout - android:layout_width="match_parent" + + <com.android.internal.widget.DigitalClock android:id="@+id/time" + android:layout_width="wrap_content" android:layout_height="wrap_content" - > - <TextView - android:id="@+id/carrier" + android:layout_marginBottom="18dip" + android:layout_marginRight="-4dip" + android:layout_gravity="right"> + + <!-- Because we can't have multi-tone fonts, we render two TextViews, one on + top of the other. Hence the redundant layout... --> + <TextView android:id="@*android:id/timeDisplayBackground" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentTop="true" - android:layout_marginTop="6dip" - android:layout_alignParentRight="true" - android:layout_marginRight="8dip" - android:layout_toRightOf="@+id/time" android:singleLine="true" - android:ellipsize="marquee" - android:gravity="right|bottom" + android:ellipsize="none" + android:textSize="@*android:dimen/keyguard_pattern_unlock_clock_font_size" android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_marginBottom="6dip" + android:textColor="@*android:color/lockscreen_clock_background" /> - <com.android.internal.widget.DigitalClock android:id="@+id/time" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_alignParentLeft="true" - android:layout_alignParentTop="true" - android:layout_marginTop="15dip" - android:layout_marginLeft="20dip" - android:layout_marginBottom="8dip" - > - - <!-- Because we can't have multi-tone fonts, we render two TextViews, one on - top of the other. Hence the redundant layout... --> - <TextView android:id="@+id/timeDisplayBackground" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="none" - android:textSize="56sp" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_marginBottom="6dip" - android:textColor="@color/lockscreen_clock_background" - /> - - <TextView android:id="@+id/timeDisplayForeground" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:singleLine="true" - android:ellipsize="none" - android:textSize="56sp" - android:textAppearance="?android:attr/textAppearanceMedium" - android:layout_marginBottom="6dip" - android:textColor="@color/lockscreen_clock_foreground" - /> - - <TextView android:id="@+id/am_pm" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_toRightOf="@id/timeDisplayBackground" - android:layout_alignBaseline="@id/timeDisplayBackground" - android:singleLine="true" - android:ellipsize="none" - android:textSize="18sp" - android:layout_marginLeft="4dip" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textColor="@color/lockscreen_clock_am_pm" - /> - - </com.android.internal.widget.DigitalClock> - - <TextView - android:id="@+id/date" + <TextView android:id="@*android:id/timeDisplayForeground" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_below="@id/time" - android:layout_marginLeft="24dip" + android:singleLine="true" + android:ellipsize="none" + android:textSize="@*android:dimen/keyguard_pattern_unlock_clock_font_size" android:textAppearance="?android:attr/textAppearanceMedium" + android:layout_marginBottom="6dip" + android:textColor="@color/lockscreen_clock_foreground" /> - </RelativeLayout> - - <View - android:id="@+id/divider" - android:layout_width="match_parent" - android:layout_height="1dip" - android:layout_marginTop="8dip" - android:layout_marginBottom="8dip" - android:background="@android:drawable/divider_horizontal_dark" - /> + </com.android.internal.widget.DigitalClock> - <!-- used for instructions such as "draw pattern to unlock", the next alarm, and charging - status. --> <LinearLayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="0dip" android:layout_marginLeft="12dip" - android:gravity="left" - > - <!-- TODO: Redo layout when we release on phones --> - <TextView - android:id="@+id/alarm_status" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="18sp" - android:drawablePadding="4dip" - /> - <TextView - android:id="@+id/status1" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="18sp" - android:drawablePadding="4dip" - /> + android:layout_gravity="right"> + <TextView - android:id="@+id/statusSep" + android:id="@+id/date" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_marginLeft="5dip" - android:layout_marginRight="5dip" android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="18sp" + android:textSize="@*android:dimen/keyguard_pattern_unlock_status_line_font_size" /> + <TextView - android:id="@+id/status2" + android:id="@+id/alarm_status" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:layout_alignParentTop="true" + android:layout_marginLeft="16dip" android:textAppearance="?android:attr/textAppearanceMedium" - android:textSize="18sp" + android:textSize="@*android:dimen/keyguard_pattern_unlock_status_line_font_size" android:drawablePadding="4dip" /> + </LinearLayout> + + <TextView + android:id="@+id/status1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@*android:dimen/keyguard_pattern_unlock_status_line_font_size" + android:drawablePadding="4dip" + android:layout_gravity="right" + /> + + <TextView + android:id="@+id/status2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentTop="true" + android:textAppearance="?android:attr/textAppearanceMedium" + android:textSize="@*android:dimen/keyguard_pattern_unlock_status_line_font_size" + android:drawablePadding="4dip" + android:layout_gravity="right" + android:visibility="gone" + /> + <com.android.internal.widget.LockPatternView android:id="@+id/lockPattern" android:layout_width="match_parent" - android:layout_height="0dip" - android:layout_weight="1" - android:layout_marginTop="2dip" - android:aspect="@string/lock_pattern_view_aspect" - /> - - <!-- footer --> - <FrameLayout + android:layout_height="match_parent" + android:layout_rowWeight="1" + android:layout_marginTop="8dip" + android:layout_marginRight="8dip" + android:layout_marginBottom="4dip" + android:layout_marginLeft="8dip" + /> + + <TextView + android:id="@+id/carrier" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + android:singleLine="true" + android:ellipsize="marquee" + android:textSize="@*android:dimen/keyguard_pattern_unlock_status_line_font_size" + android:textAppearance="?android:attr/textAppearanceMedium" + /> + + <!-- Footer: an emergency call button and an initially hidden "Forgot pattern" button --> + <LinearLayout + android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="wrap_content" - > - - <!-- option 1: a single emergency call button --> - <RelativeLayout android:id="@+id/footerNormal" - android:layout_width="match_parent" - android:layout_height="match_parent" - > - <Button android:id="@+id/emergencyCallAlone" - android:layout_width="wrap_content" - android:layout_height="wrap_content" - android:layout_centerInParent="true" - android:text="@string/lockscreen_emergency_call" - style="@style/Widget.Button.Transparent" - android:drawableLeft="@drawable/ic_emergency" - android:drawablePadding="8dip" - /> - - </RelativeLayout> - - <!-- option 2: an emergency call button, and a 'forgot pattern?' button --> - <LinearLayout android:id="@+id/footerForgotPattern" - android:orientation="horizontal" - android:layout_width="match_parent" - android:layout_height="match_parent" - android:gravity="center" - > - <Button android:id="@+id/emergencyCallTogether" - android:layout_width="0dip" - android:layout_height="match_parent" - android:layout_weight="1.0" - android:layout_marginTop="4dip" - android:layout_marginBottom="4dip" - android:layout_marginLeft="4dip" - android:layout_marginRight="2dip" - android:text="@string/lockscreen_emergency_call" - style="@style/Widget.Button.Transparent" - android:drawableLeft="@drawable/ic_emergency" - android:drawablePadding="8dip" - /> - <Button android:id="@+id/forgotPattern" - android:layout_width="0dip" - android:layout_height="match_parent" - android:layout_weight="1.0" - android:layout_marginTop="4dip" - android:layout_marginBottom="4dip" - android:layout_marginLeft="2dip" - android:layout_marginRight="4dip" - style="@style/Widget.Button.Transparent" - android:visibility="invisible" - /> - </LinearLayout> - - </FrameLayout> - -</com.android.internal.widget.LinearLayoutWithDefaultTouchRecepient> + android:layout_gravity="center"> + + <Button android:id="@+id/emergencyCallButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + style="@style/Widget.Button.Transparent" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:text="@string/lockscreen_emergency_call" + android:drawableLeft="@drawable/lockscreen_emergency_button" + android:drawablePadding="0dip" + /> + + <Button android:id="@+id/forgotPatternButton" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_horizontal" + style="@style/Widget.Button.Transparent" + android:textSize="@dimen/keyguard_pattern_unlock_status_line_font_size" + android:text="@string/lockscreen_forgot_pattern_button_text" + android:drawableLeft="@drawable/lockscreen_forgot_password_button" + android:drawablePadding="0dip" + /> + + </LinearLayout> + +</GridLayout> diff --git a/core/res/res/values-land/dimens.xml b/core/res/res/values-land/dimens.xml index dbaad13..b8ce9b4 100644 --- a/core/res/res/values-land/dimens.xml +++ b/core/res/res/values-land/dimens.xml @@ -32,4 +32,7 @@ <!-- Default height of an action bar. --> <dimen name="action_bar_default_height">40dip</dimen> + <!-- Size of clock font in LockScreen. --> + <dimen name="keyguard_pattern_unlock_clock_font_size">80sp</dimen> + </resources> diff --git a/core/res/res/values-sw600dp/dimens.xml b/core/res/res/values-sw600dp/dimens.xml index df1597c..150b6d4 100644 --- a/core/res/res/values-sw600dp/dimens.xml +++ b/core/res/res/values-sw600dp/dimens.xml @@ -24,5 +24,12 @@ <dimen name="status_bar_icon_size">32dip</dimen> <!-- Size of the giant number (unread count) in the notifications --> <dimen name="status_bar_content_number_size">48sp</dimen> + + <!-- Size of clock font in LockScreen. --> + <dimen name="keyguard_pattern_unlock_clock_font_size">98sp</dimen> + + <!-- Size of status line font in LockScreen. --> + <dimen name="keyguard_pattern_unlock_status_line_font_size">14sp</dimen> + </resources> diff --git a/core/res/res/values/dimens.xml b/core/res/res/values/dimens.xml index df22f15..c530632 100644 --- a/core/res/res/values/dimens.xml +++ b/core/res/res/values/dimens.xml @@ -119,4 +119,14 @@ <dimen name="action_bar_default_height">48dip</dimen> <!-- Vertical padding around action bar icons. --> <dimen name="action_bar_icon_vertical_padding">4dip</dimen> + + <!-- Size of clock font in LockScreen. --> + <dimen name="keyguard_pattern_unlock_clock_font_size">80sp</dimen> + + <!-- Size of status line font in LockScreen. --> + <dimen name="keyguard_pattern_unlock_status_line_font_size">14sp</dimen> + + <!-- Size of right margin in LockScreen --> + <dimen name="keyguard_pattern_unlock_status_line_font_right_margin">20dip</dimen> + </resources> diff --git a/policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java b/policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java index a685497..cd79b60 100644 --- a/policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java +++ b/policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java @@ -23,6 +23,7 @@ import android.os.SystemClock; import android.security.KeyStore; import android.view.LayoutInflater; import android.view.View; +import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.MotionEvent; import android.widget.Button; @@ -73,12 +74,8 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient private boolean mEnableFallback; private StatusView mStatusView; - private LockPatternView mLockPatternView; - private ViewGroup mFooterNormal; - private ViewGroup mFooterForgotPattern; - /** * Keeps track of the last time we poked the wake lock during dispatching * of the touch event, initalized to something gauranteed to make us @@ -96,9 +93,20 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient } }; + private final OnClickListener mEmergencyClick = new OnClickListener() { + public void onClick(View v) { + mCallback.takeEmergencyCallAction(); + } + }; + + private final OnClickListener mForgotPatternClick = new OnClickListener() { + public void onClick(View v) { + mCallback.forgotPattern(true); + } + }; + private Button mForgotPatternButton; - private Button mEmergencyAlone; - private Button mEmergencyTogether; + private Button mEmergencyButton; private int mCreationOrientation; enum FooterMode { @@ -107,23 +115,27 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient VerifyUnlocked } + private void hideForgotPatternButton() { + mForgotPatternButton.setVisibility(View.GONE); + } + + private void showForgotPatternButton() { + mForgotPatternButton.setVisibility(View.VISIBLE); + } + private void updateFooter(FooterMode mode) { switch (mode) { case Normal: - Log.d(TAG, "mode normal"); - mFooterNormal.setVisibility(View.VISIBLE); - mFooterForgotPattern.setVisibility(View.GONE); + if (DEBUG) Log.d(TAG, "mode normal"); + hideForgotPatternButton(); break; case ForgotLockPattern: - Log.d(TAG, "mode ForgotLockPattern"); - mFooterNormal.setVisibility(View.GONE); - mFooterForgotPattern.setVisibility(View.VISIBLE); - mForgotPatternButton.setVisibility(View.VISIBLE); + if (DEBUG) Log.d(TAG, "mode ForgotLockPattern"); + showForgotPatternButton(); break; case VerifyUnlocked: - Log.d(TAG, "mode VerifyUnlocked"); - mFooterNormal.setVisibility(View.GONE); - mFooterForgotPattern.setVisibility(View.GONE); + if (DEBUG) Log.d(TAG, "mode VerifyUnlocked"); + hideForgotPatternButton(); } } @@ -176,32 +188,16 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient mLockPatternView = (LockPatternView) findViewById(R.id.lockPattern); - mFooterNormal = (ViewGroup) findViewById(R.id.footerNormal); - mFooterForgotPattern = (ViewGroup) findViewById(R.id.footerForgotPattern); - // emergency call buttons - final OnClickListener emergencyClick = new OnClickListener() { - public void onClick(View v) { - mCallback.takeEmergencyCallAction(); - } - }; - - mEmergencyAlone = (Button) findViewById(R.id.emergencyCallAlone); - mEmergencyAlone.setFocusable(false); // touch only! - mEmergencyAlone.setOnClickListener(emergencyClick); - mEmergencyTogether = (Button) findViewById(R.id.emergencyCallTogether); - mEmergencyTogether.setFocusable(false); - mEmergencyTogether.setOnClickListener(emergencyClick); + mEmergencyButton = (Button) findViewById(R.id.emergencyCallButton); + mEmergencyButton.setFocusable(false); // touch only! + mEmergencyButton.setOnClickListener(mEmergencyClick); + refreshEmergencyButtonText(); - mForgotPatternButton = (Button) findViewById(R.id.forgotPattern); + mForgotPatternButton = (Button) findViewById(R.id.forgotPatternButton); mForgotPatternButton.setText(R.string.lockscreen_forgot_pattern_button_text); - mForgotPatternButton.setOnClickListener(new OnClickListener() { - - public void onClick(View v) { - mCallback.forgotPattern(true); - } - }); + mForgotPatternButton.setOnClickListener(mForgotPatternClick); // make it so unhandled touch events within the unlock screen go to the // lock pattern view. @@ -232,8 +228,7 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient } private void refreshEmergencyButtonText() { - mLockPatternUtils.updateEmergencyCallButtonState(mEmergencyAlone); - mLockPatternUtils.updateEmergencyCallButtonState(mEmergencyTogether); + mLockPatternUtils.updateEmergencyCallButtonState(mEmergencyButton); } public void setEnableFallback(boolean state) { @@ -338,8 +333,11 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient mLockPatternView.clearPattern(); // show "forgot pattern?" button if we have an alternate authentication method - mForgotPatternButton.setVisibility(mCallback.doesFallbackUnlockScreenExist() - ? View.VISIBLE : View.INVISIBLE); + if (mCallback.doesFallbackUnlockScreenExist()) { + showForgotPatternButton(); + } else { + hideForgotPatternButton(); + } // if the user is currently locked out, enforce it. long deadline = mLockPatternUtils.getLockoutAttemptDeadline(); |