diff options
Diffstat (limited to 'src/com/android/settings')
7 files changed, 29 insertions, 9 deletions
diff --git a/src/com/android/settings/AccessibilitySettings.java b/src/com/android/settings/AccessibilitySettings.java index 266621f..d64a092 100644 --- a/src/com/android/settings/AccessibilitySettings.java +++ b/src/com/android/settings/AccessibilitySettings.java @@ -282,7 +282,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements Bundle extras = mDisplayMagnificationPreferenceScreen.getExtras(); extras.putString(EXTRA_TITLE, getString( R.string.accessibility_screen_magnification_title)); - extras.putString(EXTRA_SUMMARY, getString( + extras.putCharSequence(EXTRA_SUMMARY, getActivity().getResources().getText( R.string.accessibility_screen_magnification_summary)); extras.putBoolean(EXTRA_CHECKED, Settings.Secure.getInt(getContentResolver(), Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1); @@ -1005,7 +1005,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements getActivity().getActionBar().setTitle(title); } // Summary. - String summary = arguments.getString(EXTRA_SUMMARY); + CharSequence summary = arguments.getCharSequence(EXTRA_SUMMARY); mSummaryPreference.setSummary(summary); } } diff --git a/src/com/android/settings/ChooseLockPassword.java b/src/com/android/settings/ChooseLockPassword.java index 4657be5..aab4ba6 100644 --- a/src/com/android/settings/ChooseLockPassword.java +++ b/src/com/android/settings/ChooseLockPassword.java @@ -40,6 +40,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.View.OnClickListener; +import android.view.accessibility.AccessibilityEvent; import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.TextView; @@ -272,8 +273,15 @@ public class ChooseLockPassword extends PreferenceActivity { } protected void updateStage(Stage stage) { + final Stage previousStage = mUiStage; mUiStage = stage; updateUi(); + + // If the stage changed, announce the header for accessibility. This + // is a no-op when accessibility is disabled. + if (previousStage != stage) { + mHeaderText.announceForAccessibility(mHeaderText.getText()); + } } /** @@ -378,8 +386,8 @@ public class ChooseLockPassword extends PreferenceActivity { errorMsg = validatePassword(pin); if (errorMsg == null) { mFirstPin = pin; - updateStage(Stage.NeedToConfirm); mPasswordEntry.setText(""); + updateStage(Stage.NeedToConfirm); } } else if (mUiStage == Stage.NeedToConfirm) { if (mFirstPin.equals(pin)) { @@ -389,11 +397,11 @@ public class ChooseLockPassword extends PreferenceActivity { mLockPatternUtils.saveLockPassword(pin, mRequestedQuality, isFallback); getActivity().finish(); } else { - updateStage(Stage.ConfirmWrong); CharSequence tmp = mPasswordEntry.getText(); if (tmp != null) { Selection.setSelection((Spannable) tmp, 0, tmp.length()); } + updateStage(Stage.ConfirmWrong); } } if (errorMsg != null) { @@ -415,6 +423,7 @@ public class ChooseLockPassword extends PreferenceActivity { private void showError(String msg, final Stage next) { mHeaderText.setText(msg); + mHeaderText.announceForAccessibility(mHeaderText.getText()); Message mesg = mHandler.obtainMessage(MSG_SHOW_ERROR, next); mHandler.removeMessages(MSG_SHOW_ERROR); mHandler.sendMessageDelayed(mesg, ERROR_MESSAGE_TIMEOUT); diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java index 180eee1..295e8ea 100644 --- a/src/com/android/settings/ChooseLockPattern.java +++ b/src/com/android/settings/ChooseLockPattern.java @@ -429,6 +429,7 @@ public class ChooseLockPattern extends PreferenceActivity { * @param stage */ protected void updateStage(Stage stage) { + final Stage previousStage = mUiStage; mUiStage = stage; @@ -493,6 +494,12 @@ public class ChooseLockPattern extends PreferenceActivity { case ChoiceConfirmed: break; } + + // If the stage changed, announce the header for accessibility. This + // is a no-op when accessibility is disabled. + if (previousStage != stage) { + mHeaderText.announceForAccessibility(mHeaderText.getText()); + } } diff --git a/src/com/android/settings/ConfirmLockPassword.java b/src/com/android/settings/ConfirmLockPassword.java index 1229046..96839ba 100644 --- a/src/com/android/settings/ConfirmLockPassword.java +++ b/src/com/android/settings/ConfirmLockPassword.java @@ -35,6 +35,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; +import android.view.accessibility.AccessibilityEvent; import android.view.inputmethod.EditorInfo; import android.widget.Button; import android.widget.TextView; @@ -173,6 +174,7 @@ public class ConfirmLockPassword extends PreferenceActivity { private void showError(int msg) { mHeaderText.setText(msg); + mHeaderText.announceForAccessibility(mHeaderText.getText()); mPasswordEntry.setText(null); mHandler.postDelayed(new Runnable() { public void run() { diff --git a/src/com/android/settings/ConfirmLockPattern.java b/src/com/android/settings/ConfirmLockPattern.java index 2892930..dd375cc 100644 --- a/src/com/android/settings/ConfirmLockPattern.java +++ b/src/com/android/settings/ConfirmLockPattern.java @@ -180,7 +180,6 @@ public class ConfirmLockPattern extends PreferenceActivity { } private void updateStage(Stage stage) { - switch (stage) { case NeedToUnlock: if (mHeaderText != null) { @@ -220,6 +219,10 @@ public class ConfirmLockPattern extends PreferenceActivity { mLockPatternView.setEnabled(false); // appearance of being disabled break; } + + // Always announce the header for accessibility. This is a no-op + // when accessibility is disabled. + mHeaderTextView.announceForAccessibility(mHeaderTextView.getText()); } private Runnable mClearPatternRunnable = new Runnable() { diff --git a/src/com/android/settings/LocalePicker.java b/src/com/android/settings/LocalePicker.java index 1272ddc..0afa4d5 100644 --- a/src/com/android/settings/LocalePicker.java +++ b/src/com/android/settings/LocalePicker.java @@ -17,9 +17,7 @@ package com.android.settings; import android.app.Dialog; -import android.content.Context; import android.os.Bundle; -import android.os.UserManager; import android.util.Log; import com.android.settings.SettingsPreferenceFragment.SettingsDialogFragment; @@ -78,11 +76,12 @@ public class LocalePicker extends com.android.internal.app.LocalePicker mDialogFragment.show(getActivity().getFragmentManager(), Integer.toString(dialogId)); } - public Dialog onCreateDialog(int dialogId) { + public Dialog onCreateDialog(final int dialogId) { return Utils.buildGlobalChangeWarningDialog(getActivity(), R.string.global_locale_change_title, new Runnable() { public void run() { + removeDialog(dialogId); getActivity().onBackPressed(); LocalePicker.updateLocale(mTargetLocale); } diff --git a/src/com/android/settings/applications/InstalledAppDetails.java b/src/com/android/settings/applications/InstalledAppDetails.java index 7690b7e..1cdb4dc 100644 --- a/src/com/android/settings/applications/InstalledAppDetails.java +++ b/src/com/android/settings/applications/InstalledAppDetails.java @@ -464,7 +464,7 @@ public class InstalledAppDetails extends Fragment showIt = false; } else if ((mAppEntry.info.flags & ApplicationInfo.FLAG_SYSTEM) != 0) { showIt = false; - } else if (mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) { + } else if (mPackageInfo == null || mDpm.packageHasActiveAdmins(mPackageInfo.packageName)) { showIt = false; } else if (UserHandle.myUserId() != 0) { showIt = false; |