Merge "Hide "Magnify with button" if no navbar is shown" into oc-dev

This commit is contained in:
Casey Burkhardt
2017-04-18 00:06:52 +00:00
committed by Android (Google) Code Review
3 changed files with 62 additions and 16 deletions

View File

@@ -389,6 +389,7 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
// Display magnification. // Display magnification.
mDisplayMagnificationPreferenceScreen = findPreference( mDisplayMagnificationPreferenceScreen = findPreference(
DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN); DISPLAY_MAGNIFICATION_PREFERENCE_SCREEN);
configureMagnificationPreferenceIfNeeded(mDisplayMagnificationPreferenceScreen);
// Font size. // Font size.
mFontSizePreferenceScreen = findPreference(FONT_SIZE_PREFERENCE_SCREEN); mFontSizePreferenceScreen = findPreference(FONT_SIZE_PREFERENCE_SCREEN);
@@ -682,6 +683,19 @@ public class AccessibilitySettings extends SettingsPreferenceFragment implements
} }
} }
private static void configureMagnificationPreferenceIfNeeded(Preference preference) {
// Some devices support only a single magnification mode. In these cases, we redirect to
// the magnification mode's UI directly, rather than showing a PreferenceScreen with a
// single list item.
final Context context = preference.getContext();
if (!MagnificationPreferenceFragment.isApplicable(context.getResources())) {
preference.setFragment(ToggleScreenMagnificationPreferenceFragment.class.getName());
final Bundle extras = preference.getExtras();
MagnificationPreferenceFragment.populateMagnificationGesturesPreferenceExtras(extras,
context);
}
}
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() { new BaseSearchIndexProvider() {
@Override @Override

View File

@@ -18,9 +18,9 @@ package com.android.settings.accessibility;
import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context;
import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.accessibility.AccessibilityManager; import android.view.accessibility.AccessibilityManager;
@@ -79,6 +79,7 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
findService(SCREEN_READER_PACKAGE_NAME, SCREEN_READER_SERVICE_NAME)); findService(SCREEN_READER_PACKAGE_NAME, SCREEN_READER_SERVICE_NAME));
updateAccessibilityServicePreference(mSelectToSpeakPreference, updateAccessibilityServicePreference(mSelectToSpeakPreference,
findService(SELECT_TO_SPEAK_PACKAGE_NAME, SELECT_TO_SPEAK_SERVICE_NAME)); findService(SELECT_TO_SPEAK_PACKAGE_NAME, SELECT_TO_SPEAK_SERVICE_NAME));
configureMagnificationPreferenceIfNeeded(mDisplayMagnificationPreference);
} }
@Override @Override
@@ -145,4 +146,18 @@ public class AccessibilitySettingsForSetupWizard extends SettingsPreferenceFragm
} }
extras.putString(AccessibilitySettings.EXTRA_SUMMARY, description); extras.putString(AccessibilitySettings.EXTRA_SUMMARY, description);
} }
private static void configureMagnificationPreferenceIfNeeded(Preference preference) {
// Some devices support only a single magnification mode. In these cases, we redirect to
// the magnification mode's UI directly, rather than showing a PreferenceScreen with a
// single list item.
final Context context = preference.getContext();
if (!MagnificationPreferenceFragment.isApplicable(context.getResources())) {
preference.setFragment(
ToggleScreenMagnificationPreferenceFragmentForSetupWizard.class.getName());
final Bundle extras = preference.getExtras();
MagnificationPreferenceFragment.populateMagnificationGesturesPreferenceExtras(extras,
context);
}
}
} }

View File

@@ -19,6 +19,7 @@ package com.android.settings.accessibility;
import android.accessibilityservice.AccessibilityServiceInfo; import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.res.Resources;
import android.os.Bundle; import android.os.Bundle;
import android.provider.SearchIndexableResource; import android.provider.SearchIndexableResource;
import android.provider.Settings; import android.provider.Settings;
@@ -34,6 +35,7 @@ import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable; import com.android.settings.search.Indexable;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.List; import java.util.List;
public final class MagnificationPreferenceFragment extends SettingsPreferenceFragment implements public final class MagnificationPreferenceFragment extends SettingsPreferenceFragment implements
@@ -123,18 +125,7 @@ public final class MagnificationPreferenceFragment extends SettingsPreferenceFra
private void handleMagnificationGesturesPreferenceScreenClick() { private void handleMagnificationGesturesPreferenceScreenClick() {
Bundle extras = mMagnificationGesturesPreference.getExtras(); Bundle extras = mMagnificationGesturesPreference.getExtras();
extras.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY, populateMagnificationGesturesPreferenceExtras(extras, getContext());
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
extras.putString(AccessibilitySettings.EXTRA_TITLE, getString(
R.string.accessibility_screen_magnification_gestures_title));
extras.putCharSequence(AccessibilitySettings.EXTRA_SUMMARY,
getActivity().getResources().getText(
R.string.accessibility_screen_magnification_summary));
extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED,
Settings.Secure.getInt(getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1);
extras.putInt(AccessibilitySettings.EXTRA_VIDEO_RAW_RESOURCE_ID,
R.raw.accessibility_screen_magnification);
extras.putBoolean(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW, mLaunchedFromSuw); extras.putBoolean(AccessibilitySettings.EXTRA_LAUNCHED_FROM_SUW, mLaunchedFromSuw);
} }
@@ -188,14 +179,40 @@ public final class MagnificationPreferenceFragment extends SettingsPreferenceFra
return null; return null;
} }
static void populateMagnificationGesturesPreferenceExtras(Bundle extras, Context context) {
extras.putString(AccessibilitySettings.EXTRA_PREFERENCE_KEY,
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED);
extras.putString(AccessibilitySettings.EXTRA_TITLE, context.getString(
R.string.accessibility_screen_magnification_gestures_title));
extras.putCharSequence(AccessibilitySettings.EXTRA_SUMMARY, context.getResources().getText(
R.string.accessibility_screen_magnification_summary));
extras.putBoolean(AccessibilitySettings.EXTRA_CHECKED,
Settings.Secure.getInt(context.getContentResolver(),
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_ENABLED, 0) == 1);
extras.putInt(AccessibilitySettings.EXTRA_VIDEO_RAW_RESOURCE_ID,
R.raw.accessibility_screen_magnification);
}
/**
* @return {@code true} if this fragment should be shown, {@code false} otherwise. This
* fragment is shown in the case that more than one magnification mode is available.
*/
static boolean isApplicable(Resources res) {
return res.getBoolean(com.android.internal.R.bool.config_showNavigationBar);
}
public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = public static final Indexable.SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() { new BaseSearchIndexProvider() {
@Override @Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context, public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) { boolean enabled) {
final SearchIndexableResource sir = new SearchIndexableResource(context); if (isApplicable(context.getResources())) {
sir.xmlResId = R.xml.accessibility_magnification_settings; final SearchIndexableResource sir = new SearchIndexableResource(context);
return Arrays.asList(sir); sir.xmlResId = R.xml.accessibility_magnification_settings;
return Arrays.asList(sir);
} else {
return Collections.emptyList();
}
} }
}; };
} }