summaryrefslogtreecommitdiffstats
path: root/policy
diff options
context:
space:
mode:
authorJim Miller <jaggies@google.com>2011-01-06 21:36:17 -0800
committerJim Miller <jaggies@google.com>2011-01-09 13:24:00 -0800
commitb450a65c1c833e40d8c85a7670ed64f8be34102b (patch)
tree03625610a25eb280943cb20b00ec39915da165cb /policy
parent247fe74c934cb3fba85aae7e051a8044f460fb11 (diff)
downloadframeworks_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')
-rw-r--r--policy/src/com/android/internal/policy/impl/LockScreen.java41
-rw-r--r--policy/src/com/android/internal/policy/impl/PatternUnlockScreen.java8
-rw-r--r--policy/src/com/android/internal/policy/impl/StatusView.java158
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);
}
}