Merge "Fix "Cannot get activity context when service off"."
diff --git a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
index ab8f18a..63ccb6e 100644
--- a/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
+++ b/src/com/android/settings/accessibility/AccessibilityServiceWarning.java
@@ -19,7 +19,6 @@
import static android.view.WindowManager.LayoutParams.SYSTEM_FLAG_HIDE_NON_SYSTEM_OVERLAY_WINDOWS;
import android.accessibilityservice.AccessibilityServiceInfo;
-import android.app.Activity;
import android.app.Dialog;
import android.content.Context;
import android.graphics.drawable.Drawable;
@@ -60,10 +59,17 @@
return false;
};
- public static Dialog createCapabilitiesDialog(Activity parentActivity,
+ /**
+ * Gets a content View for a dialog to confirm that they want to enable a service.
+ *
+ * @param context A valid context
+ * @param info The info about a service
+ * @return A content view suitable for viewing
+ */
+ public static Dialog createCapabilitiesDialog(Context context,
AccessibilityServiceInfo info, View.OnClickListener listener) {
- final AlertDialog ad = new AlertDialog.Builder(parentActivity)
- .setView(createEnableDialogContentView(parentActivity, info, listener))
+ final AlertDialog ad = new AlertDialog.Builder(context)
+ .setView(createEnableDialogContentView(context, info, listener))
.create();
Window window = ad.getWindow();
@@ -77,7 +83,7 @@
}
/**
- * Return whether the device is encrypted with legacy full disk encryption. Newer devices
+ * Returns whether the device is encrypted with legacy full disk encryption. Newer devices
* should be using File Based Encryption.
*
* @return true if device is encrypted
@@ -86,13 +92,6 @@
return StorageManager.isNonDefaultBlockEncrypted();
}
- /**
- * Get a content View for a dialog to confirm that they want to enable a service.
- *
- * @param context A valid context
- * @param info The info about a service
- * @return A content view suitable for viewing
- */
private static View createEnableDialogContentView(Context context,
AccessibilityServiceInfo info, View.OnClickListener listener) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
index bae6775..fcdd010 100644
--- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java
@@ -23,7 +23,6 @@
import android.app.settings.SettingsEnums;
import android.content.ComponentName;
import android.content.ContentResolver;
-import android.content.Context;
import android.content.Intent;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
@@ -98,7 +97,7 @@
@Override
public void onPreferenceToggled(String preferenceKey, boolean enabled) {
ComponentName toggledService = ComponentName.unflattenFromString(preferenceKey);
- AccessibilityUtils.setAccessibilityServiceState(getActivity(), toggledService, enabled);
+ AccessibilityUtils.setAccessibilityServiceState(getPrefContext(), toggledService, enabled);
}
// IMPORTANT: Refresh the info since there are dynamically changing
@@ -129,7 +128,7 @@
return null;
}
mDialog = AccessibilityServiceWarning
- .createCapabilitiesDialog(getActivity(), info,
+ .createCapabilitiesDialog(getPrefContext(), info,
this::onDialogButtonFromToggleClicked);
break;
}
@@ -139,17 +138,17 @@
return null;
}
mDialog = AccessibilityServiceWarning
- .createCapabilitiesDialog(getActivity(), info,
+ .createCapabilitiesDialog(getPrefContext(), info,
this::onDialogButtonFromShortcutClicked);
break;
}
case DialogEnums.LAUNCH_ACCESSIBILITY_TUTORIAL: {
- if (AccessibilityUtil.isGestureNavigateEnabled(getContext())) {
+ if (AccessibilityUtil.isGestureNavigateEnabled(getPrefContext())) {
mDialog = AccessibilityGestureNavigationTutorial
- .showGestureNavigationTutorialDialog(getActivity());
+ .showGestureNavigationTutorialDialog(getPrefContext());
} else {
mDialog = AccessibilityGestureNavigationTutorial
- .showAccessibilityButtonTutorialDialog(getActivity());
+ .showAccessibilityButtonTutorialDialog(getPrefContext());
}
break;
}
@@ -185,7 +184,7 @@
}
private void updateSwitchBarToggleSwitch() {
- final boolean checked = AccessibilityUtils.getEnabledServicesFromSettings(getActivity())
+ final boolean checked = AccessibilityUtils.getEnabledServicesFromSettings(getPrefContext())
.contains(mComponentName);
mSwitchBar.setCheckedInternal(checked);
}
@@ -220,8 +219,8 @@
}
private boolean isServiceSupportAccessibilityButton() {
- final AccessibilityManager ams = (AccessibilityManager) getContext().getSystemService(
- Context.ACCESSIBILITY_SERVICE);
+ final AccessibilityManager ams = getPrefContext().getSystemService(
+ AccessibilityManager.class);
final List<AccessibilityServiceInfo> services = ams.getInstalledAccessibilityServiceList();
for (AccessibilityServiceInfo info : services) {
@@ -268,17 +267,17 @@
@Override
public void onCheckboxClicked(ShortcutPreference preference) {
- final int shortcutTypes = getUserShortcutType(getContext(), UserShortcutType.SOFTWARE);
+ final int shortcutTypes = getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE);
if (preference.getChecked()) {
if (!getArguments().getBoolean(AccessibilitySettings.EXTRA_CHECKED)) {
preference.setChecked(false);
showPopupDialog(DialogEnums.ENABLE_WARNING_FROM_SHORTCUT);
} else {
- AccessibilityUtil.optInAllValuesToSettings(getContext(), shortcutTypes,
+ AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes,
mComponentName);
}
} else {
- AccessibilityUtil.optOutAllValuesFromSettings(getContext(), shortcutTypes,
+ AccessibilityUtil.optOutAllValuesFromSettings(getPrefContext(), shortcutTypes,
mComponentName);
getArguments().putBoolean(AccessibilitySettings.EXTRA_CHECKED, false);
}
@@ -370,8 +369,8 @@
private void onAllowButtonFromShortcutClicked() {
mShortcutPreference.setChecked(true);
- final int shortcutTypes = getUserShortcutType(getContext(), UserShortcutType.SOFTWARE);
- AccessibilityUtil.optInAllValuesToSettings(getContext(), shortcutTypes, mComponentName);
+ final int shortcutTypes = getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE);
+ AccessibilityUtil.optInAllValuesToSettings(getPrefContext(), shortcutTypes, mComponentName);
mDialog.dismiss();
}
diff --git a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
index ddc9424..409b395 100644
--- a/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleFeaturePreferenceFragment.java
@@ -114,7 +114,7 @@
final int resId = getPreferenceScreenResId();
if (resId <= 0) {
PreferenceScreen preferenceScreen = getPreferenceManager().createPreferenceScreen(
- getActivity());
+ getPrefContext());
setPreferenceScreen(preferenceScreen);
}
}
@@ -143,7 +143,7 @@
PreferenceScreen preferenceScreen = getPreferenceScreen();
if (mImageUri != null) {
final AnimatedImagePreference animatedImagePreference = new AnimatedImagePreference(
- preferenceScreen.getContext());
+ getPrefContext());
animatedImagePreference.setImageUri(mImageUri);
animatedImagePreference.setDividerAllowedAbove(true);
preferenceScreen.addPreference(animatedImagePreference);
@@ -158,7 +158,7 @@
// Show the "Settings" menu as if it were a preference screen.
if (mSettingsTitle != null && mSettingsIntent != null) {
- mSettingsPreference = new Preference(preferenceScreen.getContext());
+ mSettingsPreference = new Preference(getPrefContext());
mSettingsPreference.setTitle(mSettingsTitle);
mSettingsPreference.setIconSpaceReserved(true);
mSettingsPreference.setIntent(mSettingsIntent);
@@ -177,7 +177,7 @@
if (mStaticDescription != null) {
final StaticTextPreference staticTextPreference = new StaticTextPreference(
- preferenceScreen.getContext());
+ getPrefContext());
staticTextPreference.setSummary(mStaticDescription);
staticTextPreference.setSelectable(/* selectable= */ false);
footerCategory.addPreference(staticTextPreference);
@@ -189,7 +189,7 @@
unsupportedTagList.add(ANCHOR_TAG);
final HtmlTextPreference htmlTextPreference = new HtmlTextPreference(
- preferenceScreen.getContext());
+ getPrefContext());
htmlTextPreference.setSummary(mHtmlDescription);
htmlTextPreference.setImageGetter(mImageGetter);
htmlTextPreference.setUnsupportedTagList(unsupportedTagList);
@@ -234,10 +234,10 @@
public Dialog onCreateDialog(int dialogId) {
switch (dialogId) {
case DialogEnums.EDIT_SHORTCUT:
- final CharSequence dialogTitle = getActivity().getString(
+ final CharSequence dialogTitle = getPrefContext().getString(
R.string.accessibility_shortcut_edit_dialog_title, mPackageName);
- Dialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(getActivity(),
- dialogTitle, this::callOnAlertDialogCheckboxClicked);
+ Dialog dialog = AccessibilityEditDialogUtils.showEditShortcutDialog(
+ getPrefContext(), dialogTitle, this::callOnAlertDialogCheckboxClicked);
initializeDialogCheckBox(dialog);
return dialog;
default:
@@ -258,37 +258,35 @@
/** Denotes the dialog emuns for show dialog */
@Retention(RetentionPolicy.SOURCE)
protected @interface DialogEnums {
- int UNKNOWN = 0;
-
/** OPEN: Settings > Accessibility > Any toggle service > Shortcut > Settings. */
int EDIT_SHORTCUT = 1;
/** OPEN: Settings > Accessibility > Magnification > Shortcut > Settings. */
- int MAGNIFICATION_EDIT_SHORTCUT = 2;
+ int MAGNIFICATION_EDIT_SHORTCUT = 1001;
/**
* OPEN: Settings > Accessibility > Magnification > Toggle user service in gesture
* navigation.
*/
- int GESTURE_NAVIGATION_TUTORIAL = 1001;
+ int GESTURE_NAVIGATION_TUTORIAL = 1002;
/**
* OPEN: Settings > Accessibility > Magnification > Toggle user service in button
* navigation.
*/
- int ACCESSIBILITY_BUTTON_TUTORIAL = 1002;
+ int ACCESSIBILITY_BUTTON_TUTORIAL = 1003;
/** OPEN: Settings > Accessibility > Downloaded toggle service > Toggle user service. */
- int ENABLE_WARNING_FROM_TOGGLE = 1003;
+ int ENABLE_WARNING_FROM_TOGGLE = 1004;
/** OPEN: Settings > Accessibility > Downloaded toggle service > Shortcut checkbox. */
- int ENABLE_WARNING_FROM_SHORTCUT = 1004;
+ int ENABLE_WARNING_FROM_SHORTCUT = 1005;
/**
* OPEN: Settings > Accessibility > Downloaded toggle service > Toggle user service > Show
* launch tutorial.
*/
- int LAUNCH_ACCESSIBILITY_TUTORIAL = 1005;
+ int LAUNCH_ACCESSIBILITY_TUTORIAL = 1006;
}
@Override
@@ -364,7 +362,7 @@
private Drawable getDrawableFromUri(Uri imageUri) {
if (mImageGetterCacheView == null) {
- mImageGetterCacheView = new ImageView(getContext());
+ mImageGetterCacheView = new ImageView(getPrefContext());
}
mImageGetterCacheView.setAdjustViewBounds(true);
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
index 8873da1..b82a344 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragment.java
@@ -241,16 +241,17 @@
switch (dialogId) {
case DialogEnums.GESTURE_NAVIGATION_TUTORIAL:
return AccessibilityGestureNavigationTutorial
- .showGestureNavigationTutorialDialog(getActivity());
+ .showGestureNavigationTutorialDialog(getPrefContext());
case DialogEnums.ACCESSIBILITY_BUTTON_TUTORIAL:
return AccessibilityGestureNavigationTutorial
- .showAccessibilityButtonTutorialDialog(getActivity());
+ .showAccessibilityButtonTutorialDialog(getPrefContext());
case DialogEnums.MAGNIFICATION_EDIT_SHORTCUT:
- final CharSequence dialogTitle = getActivity().getText(
+ final CharSequence dialogTitle = getPrefContext().getText(
R.string.accessibility_shortcut_edit_dialog_title_magnification);
final AlertDialog dialog =
AccessibilityEditDialogUtils.showMagnificationEditShortcutDialog(
- getActivity(), dialogTitle, this::callOnAlertDialogCheckboxClicked);
+ getPrefContext(), dialogTitle,
+ this::callOnAlertDialogCheckboxClicked);
initializeDialogCheckBox(dialog);
return dialog;
}
@@ -425,7 +426,7 @@
if (enabled && TextUtils.equals(
Settings.Secure.ACCESSIBILITY_DISPLAY_MAGNIFICATION_NAVBAR_ENABLED,
preferenceKey)) {
- showDialog(AccessibilityUtil.isGestureNavigateEnabled(getContext())
+ showDialog(AccessibilityUtil.isGestureNavigateEnabled(getPrefContext())
? DialogEnums.GESTURE_NAVIGATION_TUTORIAL
: DialogEnums.ACCESSIBILITY_BUTTON_TUTORIAL);
}
@@ -457,11 +458,11 @@
@Override
public void onCheckboxClicked(ShortcutPreference preference) {
- final int shortcutTypes = getUserShortcutType(getContext(), UserShortcutType.SOFTWARE);
+ final int shortcutTypes = getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE);
if (preference.getChecked()) {
- optInAllMagnificationValuesToSettings(getContext(), shortcutTypes);
+ optInAllMagnificationValuesToSettings(getPrefContext(), shortcutTypes);
} else {
- optOutAllMagnificationValuesFromSettings(getContext(), shortcutTypes);
+ optOutAllMagnificationValuesFromSettings(getPrefContext(), shortcutTypes);
}
}
@@ -483,31 +484,19 @@
}
private void initShortcutPreference() {
- final PreferenceScreen preferenceScreen = getPreferenceScreen();
- mShortcutPreference = new ShortcutPreference(
- preferenceScreen.getContext(), null);
+ mShortcutPreference = new ShortcutPreference(getPrefContext(), null);
mShortcutPreference.setPersistent(false);
- mShortcutPreference.setKey(getShortcutPreferenceKey());
+ mShortcutPreference.setKey(KEY_SHORTCUT_PREFERENCE);
mShortcutPreference.setTitle(R.string.accessibility_magnification_shortcut_title);
mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
mShortcutPreference.setOnClickListener(this);
}
private void updateShortcutPreference() {
- final PreferenceScreen preferenceScreen = getPreferenceScreen();
- final ShortcutPreference shortcutPreference = preferenceScreen.findPreference(
- getShortcutPreferenceKey());
-
- if (shortcutPreference != null) {
- final int shortcutTypes = getUserShortcutType(getContext(), UserShortcutType.SOFTWARE);
- shortcutPreference.setChecked(
- hasMagnificationValuesInSettings(getContext(), shortcutTypes));
- shortcutPreference.setSummary(getShortcutTypeSummary(getContext()));
- }
- }
-
- private String getShortcutPreferenceKey() {
- return KEY_SHORTCUT_PREFERENCE;
+ final int shortcutTypes = getUserShortcutType(getPrefContext(), UserShortcutType.SOFTWARE);
+ mShortcutPreference.setChecked(
+ hasMagnificationValuesInSettings(getPrefContext(), shortcutTypes));
+ mShortcutPreference.setSummary(getShortcutTypeSummary(getPrefContext()));
}
private void updateConfigurationWarningIfNeeded() {