<attr name="switchBarTheme" format="reference" />
<attr name="switchBarMarginStart" format="dimension" />
<attr name="switchBarMarginEnd" format="dimension" />
+ <attr name="switchBarBackgroundColor" format="color" />
<attr name="preferenceBackgroundColor" format="color" />
<string name="vision_settings_description">Adjust these settings now to assist you through the remainder of the set up process. You can adjust them any time in device settings.</string>
<!-- Title for the accessibility preference category of accessibility services. [CHAR LIMIT=25] -->
<string name="accessibility_services_title">Services</string>
- <!-- Summary for the Talkback Accessibility Service. Lets the user know that Talkback is a screenreader and that it is usually most helpful to blind and low vision users. [CHAR_LIMIT=none] -->
- <string name="talkback_summary">Screenreader tool primarily for people with blindness and low vision</string>
+ <!-- Title for the Talkback Accessibility Service. Displayed on the Accessibility Settings screen in Setup Wizard. [CHAR_LIMIT=25] -->
+ <string name="talkback_title">Talkback</string>
+ <!-- Summary for the Talkback Accessibility Service. Lets the user know that Talkback is a screenreader and that it is usually most helpful to blind and low vision users and whether the service is on. [CHAR_LIMIT=none] -->
+ <string name="talkback_summary">Screenreader tool primarily for people with blindness and low vision\n<xliff:g id="service_state" example="On">%1$s</xliff:g></string>
<!-- Title for the accessibility preference category of system related preferences. [CHAR LIMIT=25] -->
<string name="accessibility_system_title">System</string>
<!-- Title for the accessibility preference category of display related preferences. [CHAR LIMIT=25] -->
<!-- Title for the accessibility preference screen to enable screen magnification. [CHAR LIMIT=35] -->
<string name="accessibility_screen_magnification_title">Magnification gestures</string>
<!-- Summary for the accessibility preference screen to enable screen magnification. [CHAR LIMIT=none] -->
- <string name="accessibility_screen_magnification_summary">Zoom in and out by triple-tapping the screen with one finger.\n\nWhile zoomed in, you can:\n<ul><li>Pan: Drag two or more fingers across the screen.</li>\n<li>Adjust zoom level: Pinch two or more fingers together or spread them apart.</li>\n<li>Temporariliy magnify: Triple-tap, hold, and drag your finger to explore different parts of the screen. Lift your finger to return to our previous state.</li></ul>\n\nTriple-tap for magnification works everywhere except the keyboard and navigation bar.</string>
+ <string name="accessibility_screen_magnification_summary">Zoom in and out by triple-tapping the screen with one finger.\n\nWhile zoomed in, you can:\n<ul><li>Pan: Drag two or more fingers across the screen.</li>\n<li>Adjust zoom level: Pinch two or more fingers together or spread them apart.</li>\n<li>Temporariliy magnify: Triple-tap, hold, and drag your finger to explore different parts of the screen. Lift your finger to return to your previous state.</li></ul>\n\nTriple-tap for magnification works everywhere except the keyboard and navigation bar.</string>
<!-- Title for the preference to enable the global geture that turns on accessibility. [CHAR LIMIT=35] -->
<string name="accessibility_global_gesture_preference_title">Accessibility shortcut</string>
<!-- Summary for the preference to enable the global geture that turns on accessibility (on state). [CHAR LIMIT=60] -->
<item name="android:colorPrimary">@color/material_blue_700</item>
<item name="android:colorPrimaryDark">@color/material_blue_700</item>
<item name="preferenceTheme">@style/PreferenceTheme</item>
- <item name="switchBarTheme">@style/ThemeOverlay.SwitchBar.Settings</item>
+ <item name="switchBarTheme">@style/SetupWizardAccessibilitySwitchBarTheme</item>
+ </style>
+
+ <style name="SetupWizardAccessibilitySwitchBarTheme" parent="ThemeOverlay.SwitchBar.Settings">
+ <item name="switchBarBackgroundColor">@color/material_blue_500</item>
</style>
<!-- Theme with no local references, used by AccountPreferenceBase where we have to inflate
<style name="ThemeOverlay.SwitchBar.Settings" parent="@android:style/ThemeOverlay.Material.Dark.ActionBar">
<item name="switchBarMarginStart">@dimen/switchbar_margin_start</item>
<item name="switchBarMarginEnd">@dimen/switchbar_margin_end</item>
+ <item name="switchBarBackgroundColor">@color/switchbar_background_color</item>
</style>
<style name="ThemeOverlay.SwitchBar.SubSettings" parent="@android:style/ThemeOverlay.Material.Dark.ActionBar">
<item name="switchBarMarginStart">@dimen/switchbar_subsettings_margin_start</item>
<item name="switchBarMarginEnd">@dimen/switchbar_subsettings_margin_end</item>
+ <item name="switchBarBackgroundColor">@color/switchbar_background_color</item>
</style>
<style name="Theme.DialogWhenLarge" parent="@*android:style/Theme.Material.Settings.DialogWhenLarge">
<style name="ThemeOverlay.SwitchBar" parent="@android:style/ThemeOverlay">
<!-- Used by controls, e.g. CheckBox, ProgressBar, etc. -->
<item name="android:colorAccent">@color/switch_accent_color</item>
+ <item name="switchBarBackgroundColor">@color/switchbar_background_color</item>
</style>
<style name="Theme.ConfirmDeviceCredentials" parent="Theme.SubSettings">
<Preference
android:key="talkback_preference"
- android:summary="@string/talkback_summary"
+ android:title="@string/talkback_title"
android:persistent="true" />
</PreferenceScreen>
public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceFragment
implements DialogCreatable {
+ /**
+ * The Help Uri Resource key. This can be passed as an extra argument when creating the
+ * Fragment.
+ **/
+ public static final String HELP_URI_RESOURCE_KEY = "help_uri_resource";
+
private static final String TAG = "SettingsPreference";
private static final int DELAY_HIGHLIGHT_DURATION_MILLIS = 600;
}
// Prepare help url and enable menu if necessary
- int helpResource = getHelpResource();
+ Bundle arguments = getArguments();
+ int helpResource;
+ if (arguments != null && arguments.containsKey(HELP_URI_RESOURCE_KEY)) {
+ helpResource = arguments.getInt(HELP_URI_RESOURCE_KEY);
+ } else {
+ helpResource = getHelpResource();
+ }
if (helpResource != 0) {
mHelpUri = getResources().getString(helpResource);
}
private static final String TALKBACK_PREFERENCE = "talkback_preference";
private static final String FONT_SIZE_PREFERENCE = "font_size_preference";
- private static final String TALKBACK_NAME = "Talkback";
-
// Preference controls.
private Preference mDisplayMagnificationPreference;
private Preference mFontSizePreference;
}
@Override
- protected int getHelpResource() {
- return R.string.help_uri_accessibility;
- }
-
- @Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.accessibility_settings_for_setup_wizard);
mDisplayMagnificationPreference = findPreference(DISPLAY_MAGNIFICATION_PREFERENCE);
mFontSizePreference = findPreference(FONT_SIZE_PREFERENCE);
-
mTalkbackPreference = findPreference(TALKBACK_PREFERENCE);
- mTalkbackPreference.setTitle(TALKBACK_NAME);
}
@Override
extras.putString(AccessibilitySettings.EXTRA_TITLE,
getString(R.string.accessibility_screen_magnification_title));
extras.putCharSequence(AccessibilitySettings.EXTRA_SUMMARY,
- getActivity().getResources().getText(
- R.string.accessibility_screen_magnification_summary));
+ getText(R.string.accessibility_screen_magnification_summary));
extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED,
Settings.Secure.getInt(getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1);
} else if (mTalkbackPreference == preference) {
- // Toggle Talkback. The tutorial will automatically start when Talkback is first
- // activated.
+ // Enable Talkback if disabled. The tutorial will automatically start when Talkback is
+ // first activated.
final ContentResolver resolver = getContentResolver();
-
- final boolean enable =
- Settings.Secure.getInt(resolver, Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 0;
- final String servicesToEnable = getAccessibilityServicesFiltered(
- getActivity(), AccessibilityServiceInfo.FEEDBACK_SPOKEN);
-
- // Enable all accessibility services with spoken feedback type.
- Settings.Secure.putString(resolver, Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
- enable ? servicesToEnable : "");
-
- // Allow the services we just enabled to toggle touch exploration.
- Settings.Secure.putString(resolver,
- Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES,
- enable ? servicesToEnable : "");
-
- // Enable touch exploration.
- Settings.Secure.putInt(resolver, Settings.Secure.TOUCH_EXPLORATION_ENABLED,
- enable ? 1 : 0);
-
- // Turn on accessibility mode last, since enabling accessibility with no
- // services has no effect.
- Settings.Secure.putInt(resolver, Settings.Secure.ACCESSIBILITY_ENABLED, enable ? 1 : 0);
+ final int accessibilityEnabled =
+ Settings.Secure.getInt(resolver, Settings.Secure.ACCESSIBILITY_ENABLED, 0);
+ if (accessibilityEnabled == 0) {
+ final String servicesToEnable = getAccessibilityServicesFiltered(
+ getActivity(), AccessibilityServiceInfo.FEEDBACK_SPOKEN);
+
+ // Enable all accessibility services with spoken feedback type.
+ Settings.Secure.putString(resolver, Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
+ servicesToEnable);
+
+ // Allow the services we just enabled to toggle touch exploration.
+ Settings.Secure.putString(resolver,
+ Settings.Secure.TOUCH_EXPLORATION_GRANTED_ACCESSIBILITY_SERVICES,
+ servicesToEnable);
+
+ // Enable touch exploration.
+ Settings.Secure.putInt(resolver, Settings.Secure.TOUCH_EXPLORATION_ENABLED, 1);
+
+ // Turn on accessibility mode last, since enabling accessibility with no
+ // services has no effect.
+ Settings.Secure.putInt(resolver, Settings.Secure.ACCESSIBILITY_ENABLED, 1);
+ }
}
return super.onPreferenceTreeClick(preference);
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
mDisplayMagnificationPreference);
updateFontSizeSummary(mFontSizePreference);
+ updateTalkbackSummary();
}
private void updateFeatureSummary(String prefKey, Preference pref) {
res.getConfiguration().fontScale, strEntryValues);
pref.setSummary(entries[index]);
}
+
+ private void updateTalkbackSummary() {
+ final boolean enabled = Settings.Secure.getInt(getContentResolver(),
+ Settings.Secure.ACCESSIBILITY_ENABLED, 0) == 1;
+ final String enabledText = (enabled
+ ? getString(R.string.accessibility_feature_state_on)
+ : getString(R.string.accessibility_feature_state_off));
+ mTalkbackPreference.setSummary(getString(R.string.talkback_summary, enabledText));
+ }
}
import android.app.Fragment;
import android.os.Bundle;
+import android.support.v4.widget.DrawerLayout;
import android.view.Menu;
import android.view.MenuItem;
import com.android.settings.R;
import com.android.settings.SettingsActivity;
+import com.android.settings.SettingsPreferenceFragment;
public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivity {
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Return true, so we get notified when items in the menu are clicked.
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- onBackPressed();
- return true;
- }
-
- @Override
- public void startPreferencePanel(String fragmentClass, Bundle args, int titleRes,
- CharSequence titleText, Fragment resultTo, int resultRequestCode) {
- startPreferenceFragment(Fragment.instantiate(this, fragmentClass, args), true);
- }
-
- @Override
- public void openDrawer() {
- // Do nothing.
- }
-
- @Override
- public void closeDrawer() {
- // Do nothing.
- }
+
+ @Override
+ protected void onCreate(Bundle savedState) {
+ super.onCreate(savedState);
+
+ getActionBar().setDisplayHomeAsUpEnabled(true);
+ setIsDrawerPresent(false);
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Return true, so we get notified when items in the menu are clicked.
+ return true;
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ onBackPressed();
+ return true;
+ }
+
+ @Override
+ public void startPreferencePanel(String fragmentClass, Bundle args, int titleRes,
+ CharSequence titleText, Fragment resultTo, int resultRequestCode) {
+ args.putInt(SettingsPreferenceFragment.HELP_URI_RESOURCE_KEY, 0);
+ startPreferenceFragment(Fragment.instantiate(this, fragmentClass, args), true);
+ }
}
private ArrayList<OnSwitchChangeListener> mSwitchChangeListeners =
new ArrayList<OnSwitchChangeListener>();
- private static int[] MARGIN_ATTRIBUTES = {
- R.attr.switchBarMarginStart, R.attr.switchBarMarginEnd};
+ private static int[] XML_ATTRIBUTES = {
+ R.attr.switchBarMarginStart, R.attr.switchBarMarginEnd,
+ R.attr.switchBarBackgroundColor};
public SwitchBar(Context context) {
this(context, null);
LayoutInflater.from(context).inflate(R.layout.switch_bar, this);
- final TypedArray a = context.obtainStyledAttributes(attrs, MARGIN_ATTRIBUTES);
+ final TypedArray a = context.obtainStyledAttributes(attrs, XML_ATTRIBUTES);
int switchBarMarginStart = (int) a.getDimension(0, 0);
int switchBarMarginEnd = (int) a.getDimension(1, 0);
+ int switchBarBackgroundColor = (int) a.getColor(2, 0);
a.recycle();
mTextView = (TextView) findViewById(R.id.switch_text);
mSwitch.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
lp = (MarginLayoutParams) mSwitch.getLayoutParams();
lp.setMarginEnd(switchBarMarginEnd);
+ setBackgroundColor(switchBarBackgroundColor);
+ mSwitch.setBackgroundColor(switchBarBackgroundColor);
addOnSwitchChangeListener(new OnSwitchChangeListener() {
@Override