Merge "ConfirmationDialog: Fail if accessibility services are running." into pi-dev
am: b57365562d
Change-Id: I5cc4ac36d980a4a0b6c202ddcba4ffb5433cd149
This commit is contained in:
@@ -227,12 +227,32 @@ public class ConfirmationDialog {
|
||||
return uiOptionsAsFlags;
|
||||
}
|
||||
|
||||
private boolean isAccessibilityServiceRunning() {
|
||||
boolean serviceRunning = false;
|
||||
try {
|
||||
ContentResolver contentResolver = mContext.getContentResolver();
|
||||
int a11yEnabled = Settings.Secure.getInt(contentResolver,
|
||||
Settings.Secure.ACCESSIBILITY_ENABLED);
|
||||
if (a11yEnabled == 1) {
|
||||
serviceRunning = true;
|
||||
}
|
||||
} catch (SettingNotFoundException e) {
|
||||
Log.w(TAG, "Unexpected SettingNotFoundException");
|
||||
e.printStackTrace();
|
||||
}
|
||||
return serviceRunning;
|
||||
}
|
||||
|
||||
/**
|
||||
* Requests a confirmation prompt to be presented to the user.
|
||||
*
|
||||
* When the prompt is no longer being presented, one of the methods in
|
||||
* {@link ConfirmationCallback} is called on the supplied callback object.
|
||||
*
|
||||
* Confirmation dialogs may not be available when accessibility services are running so this
|
||||
* may fail with a {@link ConfirmationNotAvailableException} exception even if
|
||||
* {@link #isSupported} returns {@code true}.
|
||||
*
|
||||
* @param executor the executor identifying the thread that will receive the callback.
|
||||
* @param callback the callback to use when the dialog is done showing.
|
||||
* @throws IllegalArgumentException if the prompt text is too long or malfomed.
|
||||
@@ -245,6 +265,9 @@ public class ConfirmationDialog {
|
||||
if (mCallback != null) {
|
||||
throw new ConfirmationAlreadyPresentingException();
|
||||
}
|
||||
if (isAccessibilityServiceRunning()) {
|
||||
throw new ConfirmationNotAvailableException();
|
||||
}
|
||||
mCallback = callback;
|
||||
mExecutor = executor;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user