am 97467c6f: Move emergency call button to top-right when no SIM.

Merge commit '97467c6fd99f67bb0a7024533ea8cc1626c41ac8' into eclair-mr2-plus-aosp

* commit '97467c6fd99f67bb0a7024533ea8cc1626c41ac8':
  Move emergency call button to top-right when no SIM.
This commit is contained in:
Daniel Sandler
2009-12-09 15:45:06 -08:00
committed by Android Git Automerger

View File

@@ -23,6 +23,7 @@ import com.android.internal.widget.SlidingTab;
import android.content.Context;
import android.content.res.Resources;
import android.content.res.ColorStateList;
import android.text.format.DateFormat;
import android.view.KeyEvent;
import android.view.LayoutInflater;
@@ -274,9 +275,14 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
getContext().getString(R.string.global_action_silent_mode_on_status) :
getContext().getString(R.string.global_action_silent_mode_off_status);
final int toastIcon = mSilentMode ? R.drawable.ic_lock_ringer_off
: R.drawable.ic_lock_ringer_on;
toastMessage(mScreenLocked, message, toastIcon);
final int toastIcon = mSilentMode
? R.drawable.ic_lock_ringer_off
: R.drawable.ic_lock_ringer_on;
final int toastColor = mSilentMode
? getContext().getResources().getColor(R.color.keyguard_text_color_soundoff)
: getContext().getResources().getColor(R.color.keyguard_text_color_soundon);
toastMessage(mScreenLocked, message, toastColor, toastIcon);
mCallback.pokeWakelock();
}
}
@@ -292,32 +298,43 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
}
/**
* Displays a message in a text view and then removes it.
* Displays a message in a text view and then restores the previous text.
* @param textView The text view.
* @param text The text.
* @param color The color to apply to the text, or 0 if the existing color should be used.
* @param iconResourceId The left hand icon.
*/
private void toastMessage(final TextView textView, final String text, final int iconResourceId) {
private void toastMessage(final TextView textView, final String text, final int color, final int iconResourceId) {
if (DBG) android.util.Log.d("LockScreen", "toastMessage(text=" + text +", color=" + color + ")");
if (mPendingR1 != null) {
textView.removeCallbacks(mPendingR1);
mPendingR1 = null;
}
if (mPendingR2 != null) {
mPendingR2.run(); // fire immediately, restoring non-toasted appearance
textView.removeCallbacks(mPendingR2);
mPendingR2 = null;
}
final String oldText = textView.getText().toString();
final ColorStateList oldColors = textView.getTextColors();
mPendingR1 = new Runnable() {
public void run() {
textView.setText(text);
if (color != 0) {
textView.setTextColor(color);
}
textView.setCompoundDrawablesWithIntrinsicBounds(iconResourceId, 0, 0, 0);
textView.setCompoundDrawablePadding(4);
}
};
textView.postDelayed(mPendingR1, 0);
mPendingR2 = new Runnable() {
public void run() {
textView.setText("");
textView.setText(oldText);
textView.setTextColor(oldColors);
textView.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0);
}
};
@@ -415,11 +432,11 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
updateLayout(mStatus);
}
private void putEmergencyBelow(int viewId) {
private void addRelativeLayoutRule(View view, int rule, int viewId) {
final RelativeLayout.LayoutParams layoutParams =
(RelativeLayout.LayoutParams) mEmergencyCallButton.getLayoutParams();
layoutParams.addRule(RelativeLayout.BELOW, viewId);
mEmergencyCallButton.setLayoutParams(layoutParams);
(RelativeLayout.LayoutParams) view.getLayoutParams();
layoutParams.addRule(rule, viewId);
view.setLayoutParams(layoutParams);
}
/**
@@ -455,6 +472,9 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
* Update the layout to match the current status.
*/
private void updateLayout(Status status) {
// The emergency call button appears where the carrier would
// ordinarily be shown, so if one is VISIBLE the other must be
// INVISIBLE.
switch (status) {
case Normal:
// text
@@ -481,25 +501,25 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
break;
case SimMissing:
// text
mCarrier.setText(R.string.lockscreen_missing_sim_message_short);
mScreenLocked.setText(R.string.lockscreen_instructions_when_pattern_disabled);
mCarrier.setText("");
mScreenLocked.setText(R.string.lockscreen_missing_sim_message_short);
// previously shown here: lockscreen_instructions_when_pattern_disabled
// layout
mScreenLocked.setVisibility(View.INVISIBLE);
mScreenLocked.setVisibility(View.VISIBLE);
mSelector.setVisibility(View.VISIBLE);
mEmergencyCallButton.setVisibility(View.VISIBLE);
putEmergencyBelow(R.id.screenLocked);
break;
case SimMissingLocked:
// text
mCarrier.setText(R.string.lockscreen_missing_sim_message_short);
mScreenLocked.setText(R.string.lockscreen_missing_sim_instructions);
mCarrier.setText("");
mScreenLocked.setText(R.string.lockscreen_missing_sim_message_short);
// previously shown here: lockscreen_missing_sim_instructions
// layout
mScreenLocked.setVisibility(View.VISIBLE);
mSelector.setVisibility(View.GONE);
mEmergencyCallButton.setVisibility(View.VISIBLE);
putEmergencyBelow(R.id.screenLocked);
break;
case SimLocked:
// text
@@ -512,14 +532,14 @@ class LockScreen extends LinearLayout implements KeyguardScreen, KeyguardUpdateM
break;
case SimPukLocked:
// text
mCarrier.setText(R.string.lockscreen_sim_puk_locked_message);
mScreenLocked.setText(R.string.lockscreen_sim_puk_locked_instructions);
mCarrier.setText("");
mScreenLocked.setText(R.string.lockscreen_sim_puk_locked_message);
// previously shown here: lockscreen_sim_puk_locked_instructions);
// layout
mScreenLocked.setVisibility(View.VISIBLE);
mSelector.setVisibility(View.GONE);
mEmergencyCallButton.setVisibility(View.VISIBLE);
putEmergencyBelow(R.id.screenLocked);
break;
}
}