UI fixes (back arrow, blue switch bar, append whether Talkback is on to
summary), Talkback no longer disabled when preference is tapped, fixes SettingsPreferenceFragment to not check parent class to determine whether to show options menu. Change-Id: I3345e1a878f51b4387ca1bfe89855339617a94d6
This commit is contained in:
@@ -52,6 +52,12 @@ import java.util.UUID;
|
||||
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;
|
||||
@@ -101,7 +107,13 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
|
||||
}
|
||||
|
||||
// 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);
|
||||
}
|
||||
|
@@ -46,8 +46,6 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
||||
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;
|
||||
@@ -58,11 +56,6 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
||||
return MetricsProto.MetricsEvent.ACCESSIBILITY;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getHelpResource() {
|
||||
return R.string.help_uri_accessibility;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle icicle) {
|
||||
super.onCreate(icicle);
|
||||
@@ -70,9 +63,7 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
||||
|
||||
mDisplayMagnificationPreference = findPreference(DISPLAY_MAGNIFICATION_PREFERENCE);
|
||||
mFontSizePreference = findPreference(FONT_SIZE_PREFERENCE);
|
||||
|
||||
mTalkbackPreference = findPreference(TALKBACK_PREFERENCE);
|
||||
mTalkbackPreference.setTitle(TALKBACK_NAME);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -136,37 +127,36 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
||||
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 int accessibilityEnabled =
|
||||
Settings.Secure.getInt(resolver, Settings.Secure.ACCESSIBILITY_ENABLED, 0);
|
||||
if (accessibilityEnabled == 0) {
|
||||
final String servicesToEnable = getAccessibilityServicesFiltered(
|
||||
getActivity(), AccessibilityServiceInfo.FEEDBACK_SPOKEN);
|
||||
|
||||
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,
|
||||
servicesToEnable);
|
||||
|
||||
// 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,
|
||||
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, 1);
|
||||
|
||||
// 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);
|
||||
// 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);
|
||||
@@ -176,6 +166,7 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
||||
updateFeatureSummary(Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED,
|
||||
mDisplayMagnificationPreference);
|
||||
updateFontSizeSummary(mFontSizePreference);
|
||||
updateTalkbackSummary();
|
||||
}
|
||||
|
||||
private void updateFeatureSummary(String prefKey, Preference pref) {
|
||||
@@ -192,4 +183,13 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
@@ -18,39 +18,41 @@ package com.android.settings.accessibility;
|
||||
|
||||
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
|
||||
protected void onCreate(Bundle savedState) {
|
||||
super.onCreate(savedState);
|
||||
|
||||
@Override
|
||||
public void startPreferencePanel(String fragmentClass, Bundle args, int titleRes,
|
||||
CharSequence titleText, Fragment resultTo, int resultRequestCode) {
|
||||
startPreferenceFragment(Fragment.instantiate(this, fragmentClass, args), true);
|
||||
}
|
||||
getActionBar().setDisplayHomeAsUpEnabled(true);
|
||||
setIsDrawerPresent(false);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void openDrawer() {
|
||||
// Do nothing.
|
||||
}
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Return true, so we get notified when items in the menu are clicked.
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void closeDrawer() {
|
||||
// Do nothing.
|
||||
}
|
||||
@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);
|
||||
}
|
||||
}
|
||||
|
@@ -67,8 +67,9 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
|
||||
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);
|
||||
@@ -87,9 +88,10 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
|
||||
|
||||
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);
|
||||
@@ -107,6 +109,8 @@ public class SwitchBar extends LinearLayout implements CompoundButton.OnCheckedC
|
||||
mSwitch.setImportantForAccessibility(IMPORTANT_FOR_ACCESSIBILITY_NO);
|
||||
lp = (MarginLayoutParams) mSwitch.getLayoutParams();
|
||||
lp.setMarginEnd(switchBarMarginEnd);
|
||||
setBackgroundColor(switchBarBackgroundColor);
|
||||
mSwitch.setBackgroundColor(switchBarBackgroundColor);
|
||||
|
||||
addOnSwitchChangeListener(new OnSwitchChangeListener() {
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user