diff options
author | Jim Miller <jaggies@google.com> | 2011-01-06 21:36:17 -0800 |
---|---|---|
committer | Jim Miller <jaggies@google.com> | 2011-01-09 13:24:00 -0800 |
commit | b450a65c1c833e40d8c85a7670ed64f8be34102b (patch) | |
tree | 03625610a25eb280943cb20b00ec39915da165cb /policy | |
parent | 247fe74c934cb3fba85aae7e051a8044f460fb11 (diff) | |
download | frameworks_base-b450a65c1c833e40d8c85a7670ed64f8be34102b.zip frameworks_base-b450a65c1c833e40d8c85a7670ed64f8be34102b.tar.gz frameworks_base-b450a65c1c833e40d8c85a7670ed64f8be34102b.tar.bz2 |
Fix 3330653: Update lockscreen layouts to match latest mocks [DO NOT MERGE]
This change list:
- simplifies the UI design to reduce the number of
on-screen items by combining Alarm status with the date line.
- updates many of the layout files to match closer to the
final design.
- Simplifies the logic for showing Status1 info. It's now
more predictable and robust.
- updates the layout for tablets
- contains a modified alpha to work well with different backgrounds
(Tested: white, gray, and dark backgrounds)
- updates the tablet icons to something closer to the final size.
Manual merge from Change-Id: Ifb349dfa778e9c91b0649c8d95229607be5af8e5
Change-Id: Ia2a9a2d285102d0208b3a7fcead58d6454d116ae
Diffstat (limited to 'policy')
3 files changed, 61 insertions, 146 deletions
diff --git a/policy/src/com/android/internal/policy/impl/LockScreen.java b/policy/src/com/android/internal/policy/impl/LockScreen.java index 50d10bf..4daf84f 100644 --- a/policy/src/com/android/internal/policy/impl/LockScreen.java +++ b/policy/src/com/android/internal/policy/impl/LockScreen.java @@ -80,11 +80,6 @@ class LockScreen extends LinearLayout implements KeyguardScreen, // last known battery level private int mBatteryLevel = 100; - private String mNextAlarm = null; - private Drawable mAlarmIcon = null; - private String mCharging = null; - private Drawable mChargingIcon = null; - private boolean mSilentMode; private AudioManager mAudioManager; private String mDateFormatString; @@ -356,9 +351,6 @@ class LockScreen extends LinearLayout implements KeyguardScreen, mStatus = getCurrentStatus(updateMonitor.getSimState()); updateLayout(mStatus); - refreshBatteryStringAndIcon(); - refreshAlarmDisplay(); - mTimeFormat = DateFormat.getTimeFormat(getContext()); mDateFormatString = getContext().getString(R.string.full_wday_month_day_no_year); refreshTimeAndDateDisplay(); @@ -417,14 +409,6 @@ class LockScreen extends LinearLayout implements KeyguardScreen, private Runnable mPendingR1; private Runnable mPendingR2; - private void refreshAlarmDisplay() { - mNextAlarm = mLockPatternUtils.getNextAlarm(); - if (mNextAlarm != null) { - mAlarmIcon = getContext().getResources().getDrawable(R.drawable.ic_lock_idle_alarm); - } - updateStatusLines(); - } - /** {@inheritDoc} */ public void onRefreshBatteryInfo(boolean showBatteryInfo, boolean pluggedIn, int batteryLevel) { @@ -433,32 +417,9 @@ class LockScreen extends LinearLayout implements KeyguardScreen, mPluggedIn = pluggedIn; mBatteryLevel = batteryLevel; - refreshBatteryStringAndIcon(); updateStatusLines(); } - private void refreshBatteryStringAndIcon() { - if (!mShowingBatteryInfo) { - mCharging = null; - return; - } - - if (mChargingIcon == null) { - mChargingIcon = - getContext().getResources().getDrawable(R.drawable.ic_lock_idle_charging); - } - - if (mPluggedIn) { - if (mBatteryLevel >= 100) { - mCharging = getContext().getString(R.string.lockscreen_charged); - } else { - mCharging = getContext().getString(R.string.lockscreen_plugged_in, mBatteryLevel); - } - } else { - mCharging = getContext().getString(R.string.lockscreen_low_battery); - } - } - /** {@inheritDoc} */ public void onTimeChanged() { refreshTimeAndDateDisplay(); @@ -469,7 +430,7 @@ class LockScreen extends LinearLayout implements KeyguardScreen, } private void updateStatusLines() { - mStatusView.updateStatusLines(mStatus.showStatusLines(), mCharging, mChargingIcon, mAlarmIcon); + mStatusView.updateStatusLines(mStatus.showStatusLines()); } /** {@inheritDoc} */ diff --git a/policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java b/policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java index 35fa3e5..5d1455e 100644 --- a/policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java +++ b/policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java @@ -396,7 +396,7 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient mLockPatternView .setDisplayMode(LockPatternView.DisplayMode.Correct); mStatusView.setInstructions(""); - mStatusView.updateStatusLines(); + mStatusView.updateStatusLines(true); mCallback.keyguardDone(true); mCallback.reportSuccessfulUnlockAttempt(); } else { @@ -416,7 +416,7 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient // TODO mUnlockIcon.setVisibility(View.VISIBLE); mStatusView.setInstructions( getContext().getString(R.string.lockscreen_pattern_wrong)); - mStatusView.updateStatusLines(); + mStatusView.updateStatusLines(true); mLockPatternView.postDelayed( mCancelPatternRunnable, PATTERN_CLEAR_TIMEOUT_MS); @@ -437,7 +437,7 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient mStatusView.setInstructions(getContext().getString( R.string.lockscreen_too_many_failed_attempts_countdown, secondsRemaining)); - mStatusView.updateStatusLines(); + mStatusView.updateStatusLines(true); } @Override @@ -445,7 +445,7 @@ class PatternUnlockScreen extends LinearLayoutWithDefaultTouchRecepient mLockPatternView.setEnabled(true); mStatusView.setInstructions(getContext().getString( R.string.lockscreen_pattern_instructions)); - mStatusView.updateStatusLines(); + mStatusView.updateStatusLines(true); // TODO mUnlockIcon.setVisibility(View.VISIBLE); mFailedPatternAttemptsSinceLastTimeout = 0; if (mEnableFallback) { diff --git a/policy/src/com/android/internal/policy/impl/StatusView.java b/policy/src/com/android/internal/policy/impl/StatusView.java index 2b78851..1caf0b7 100644 --- a/policy/src/com/android/internal/policy/impl/StatusView.java +++ b/policy/src/com/android/internal/policy/impl/StatusView.java @@ -19,6 +19,11 @@ import android.view.View; import android.widget.TextView; class StatusView { + private static final int LOCK_ICON = R.drawable.ic_lock_idle_lock; + private static final int ALARM_ICON = R.drawable.ic_lock_idle_alarm; + private static final int CHARGING_ICON = R.drawable.ic_lock_idle_charging; + private static final int BATTERY_LOW_ICON = R.drawable.ic_lock_idle_low_battery; + private String mDateFormatString; private TextView mCarrier; @@ -33,20 +38,18 @@ class StatusView { // last known battery level private int mBatteryLevel = 100; - private String mNextAlarm = null; - private String mInstructions = null; private TextView mStatus1; - private TextView mStatus2; private TextView mPropertyOf; - private boolean mHasStatus2; private boolean mHasCarrier; private boolean mHasDate; - private boolean mHasProperty; private View mView; + private TextView mAlarmStatus; + private LockPatternUtils mLockPatternUtils; + private View findViewById(int id) { return mView.findViewById(id); } @@ -69,7 +72,7 @@ class StatusView { mShowingBatteryInfo = showBatteryInfo; mPluggedIn = pluggedIn; mBatteryLevel = batteryLevel; - updateStatusLines(); + updateStatusLines(true); } void onTimeChanged() { @@ -91,14 +94,14 @@ class StatusView { mDate = (TextView) findViewById(R.id.date); mHasDate = (mDate != null); mDateFormatString = getContext().getString(R.string.full_wday_month_day_no_year); + mLockPatternUtils = lockPatternUtils; refreshTimeAndDateDisplay(); mStatus1 = (TextView) findViewById(R.id.status1); - mStatus2 = (TextView) findViewById(R.id.status2); - mHasStatus2 = (mStatus2 != null); + mAlarmStatus = (TextView) findViewById(R.id.alarm_status); + mAlarmStatus.setCompoundDrawablesWithIntrinsicBounds(ALARM_ICON, 0, 0, 0); mPropertyOf = (TextView) findViewById(R.id.propertyOf); - mHasProperty = (mPropertyOf != null); resetStatusInfo(updateMonitor, lockPatternUtils); @@ -107,7 +110,6 @@ class StatusView { mCarrier.setSelected(true); mCarrier.setTextColor(0xffffffff); } - } void resetStatusInfo(KeyguardUpdateMonitor updateMonitor, LockPatternUtils lockPatternUtils) { @@ -115,19 +117,18 @@ class StatusView { mShowingBatteryInfo = updateMonitor.shouldShowBatteryInfo(); mPluggedIn = updateMonitor.isDevicePluggedIn(); mBatteryLevel = updateMonitor.getBatteryLevel(); - mNextAlarm = lockPatternUtils.getNextAlarm(); - updateStatusLines(); + updateStatusLines(true); } void setInstructionText(int stringId) { mStatus1.setText(stringId); - mStatus1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_idle_lock, 0, 0, 0); + mStatus1.setCompoundDrawablesWithIntrinsicBounds(LOCK_ICON, 0, 0, 0); mStatus1.setVisibility(View.VISIBLE); } void setInstructionText(String string) { mStatus1.setText(string); - mStatus1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_idle_lock, 0, 0, 0); + mStatus1.setCompoundDrawablesWithIntrinsicBounds(LOCK_ICON, 0, 0, 0); mStatus1.setVisibility(View.VISIBLE); } @@ -138,9 +139,22 @@ class StatusView { mCarrier.setText(string); } - /** Originated from PatternUnlockScreen **/ - void updateStatusLines() { - if (mHasProperty) { + /** + * Update the status lines based on these rules: + * AlarmStatus: Alarm state always gets it's own line. + * Status1 is shared between help, battery status and generic unlock instructions, + * prioritized in that order. + * @param showStatusLines status lines are shown if true + */ + void updateStatusLines(boolean showStatusLines) { + if (!showStatusLines) { + mStatus1.setVisibility(showStatusLines ? View.VISIBLE : View.GONE); + mAlarmStatus.setVisibility(showStatusLines ? View.VISIBLE : View.GONE); + return; + } + + // Update owner info + if (mPropertyOf != null) { ContentResolver res = getContext().getContentResolver(); String info = Settings.Secure.getString(res, Settings.Secure.LOCK_SCREEN_OWNER_INFO); boolean enabled = Settings.Secure.getInt(res, @@ -151,104 +165,44 @@ class StatusView { View.VISIBLE : View.INVISIBLE); } - if (!mHasStatus2) return; + // Update Alarm status + String nextAlarm = mLockPatternUtils.getNextAlarm(); + if (!TextUtils.isEmpty(nextAlarm)) { + mAlarmStatus.setText(nextAlarm); + mAlarmStatus.setVisibility(View.VISIBLE); + } else { + mAlarmStatus.setVisibility(View.GONE); + } + // Update Status1 if (mInstructions != null) { - // instructions only + // Instructions only + final int resId = TextUtils.isEmpty(mInstructions) ? 0 : LOCK_ICON; mStatus1.setText(mInstructions); - if (TextUtils.isEmpty(mInstructions)) { - mStatus1.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); - } else { - mStatus1.setCompoundDrawablesWithIntrinsicBounds( - R.drawable.ic_lock_idle_lock, 0, 0, 0); - } - + mStatus1.setCompoundDrawablesWithIntrinsicBounds(resId, 0, 0, 0); mStatus1.setVisibility(View.VISIBLE); - mStatus2.setVisibility(View.INVISIBLE); - } else if (mShowingBatteryInfo && mNextAlarm == null) { - // battery only + } else if (mShowingBatteryInfo) { + // Battery status if (mPluggedIn) { - if (mBatteryLevel >= 100) { - mStatus1.setText(getContext().getString(R.string.lockscreen_charged)); - } else { - mStatus1.setText(getContext().getString(R.string.lockscreen_plugged_in, - mBatteryLevel)); - } + // Charging or charged + if (mBatteryLevel >= 100) { + mStatus1.setText(getContext().getString(R.string.lockscreen_charged)); + } else { + mStatus1.setText(getContext().getString(R.string.lockscreen_plugged_in, + mBatteryLevel)); + } + mStatus1.setCompoundDrawablesWithIntrinsicBounds(CHARGING_ICON, 0, 0, 0); } else { + // Battery is low mStatus1.setText(getContext().getString(R.string.lockscreen_low_battery)); + mStatus1.setCompoundDrawablesWithIntrinsicBounds(BATTERY_LOW_ICON, 0, 0, 0); } - mStatus1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_idle_charging, 0, - 0, 0); - - mStatus1.setVisibility(View.VISIBLE); - mStatus2.setVisibility(View.INVISIBLE); - - } else if (mNextAlarm != null && !mShowingBatteryInfo) { - // alarm only - mStatus1.setText(mNextAlarm); - mStatus1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_idle_alarm, 0, - 0, 0); - - mStatus1.setVisibility(View.VISIBLE); - mStatus2.setVisibility(View.INVISIBLE); - } else if (mNextAlarm != null && mShowingBatteryInfo) { - // both battery and next alarm - mStatus1.setText(mNextAlarm); - mStatus2.setText(getContext().getString( - R.string.lockscreen_battery_short, - Math.min(100, mBatteryLevel))); - mStatus1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_idle_alarm, 0, - 0, 0); - if (mPluggedIn) { - mStatus2.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_idle_charging, - 0, 0, 0); - } else { - mStatus2.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); - } - mStatus1.setVisibility(View.VISIBLE); - mStatus2.setVisibility(View.VISIBLE); } else { // nothing specific to show; show general instructions mStatus1.setText(R.string.lockscreen_pattern_instructions); - mStatus1.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_lock_idle_lock, 0, - 0, 0); - + mStatus1.setCompoundDrawablesWithIntrinsicBounds(LOCK_ICON, 0,0, 0); mStatus1.setVisibility(View.VISIBLE); - mStatus2.setVisibility(View.INVISIBLE); - } - } - - /** Originated from LockScreen **/ - // TODO Merge with function above - void updateStatusLines(boolean showStatusLines, String charging, Drawable chargingIcon, - Drawable alarmIcon) { - if (!showStatusLines || (charging == null && mNextAlarm == null)) { - mStatus1.setVisibility(View.INVISIBLE); - mStatus2.setVisibility(View.INVISIBLE); - } else if (charging != null && mNextAlarm == null) { - // charging only - mStatus1.setVisibility(View.VISIBLE); - mStatus2.setVisibility(View.INVISIBLE); - - mStatus1.setText(charging); - mStatus1.setCompoundDrawablesWithIntrinsicBounds(chargingIcon, null, null, null); - } else if (mNextAlarm != null && charging == null) { - // next alarm only - mStatus1.setVisibility(View.VISIBLE); - mStatus2.setVisibility(View.INVISIBLE); - - mStatus1.setText(mNextAlarm); - mStatus1.setCompoundDrawablesWithIntrinsicBounds(alarmIcon, null, null, null); - } else if (charging != null && mNextAlarm != null) { - // both charging and next alarm - mStatus1.setVisibility(View.VISIBLE); - mStatus2.setVisibility(View.VISIBLE); - - mStatus1.setText(charging); - mStatus1.setCompoundDrawablesWithIntrinsicBounds(chargingIcon, null, null, null); - mStatus2.setText(mNextAlarm); - mStatus2.setCompoundDrawablesWithIntrinsicBounds(alarmIcon, null, null, null); } } |