diff options
author | Alan Viverette <alanv@google.com> | 2014-12-16 16:51:19 -0800 |
---|---|---|
committer | Alan Viverette <alanv@google.com> | 2014-12-16 16:51:19 -0800 |
commit | 3c682c32a4d9f703a1233568735ef1165ab73395 (patch) | |
tree | dc285e0b7032cde733fe3e4c8e24c6eb9bee8922 /src/com/android/settings/accessibility | |
parent | 7068d702bdf21232669ea82a6c64a52a08cc6e45 (diff) | |
download | packages_apps_Settings-3c682c32a4d9f703a1233568735ef1165ab73395.zip packages_apps_Settings-3c682c32a4d9f703a1233568735ef1165ab73395.tar.gz packages_apps_Settings-3c682c32a4d9f703a1233568735ef1165ab73395.tar.bz2 |
Show a toast when filtering obscured touch input
We can't verify user consent if the touch input is obscured, so the
best we can do is fail with an informative message.
BUG: 18082299
Change-Id: I99bea51171d998c0e0ba58dd7bbf1167d4af925d
Diffstat (limited to 'src/com/android/settings/accessibility')
-rw-r--r-- | src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java index 0b7600b..5fd2e18 100644 --- a/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java +++ b/src/com/android/settings/accessibility/ToggleAccessibilityServicePreferenceFragment.java @@ -32,11 +32,13 @@ import android.os.Handler; import android.provider.Settings; import android.text.TextUtils; import android.view.LayoutInflater; +import android.view.MotionEvent; import android.view.View; import android.view.accessibility.AccessibilityManager; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; +import android.widget.Toast; import com.android.internal.widget.LockPatternUtils; import com.android.settings.ConfirmDeviceCredentialActivity; @@ -168,11 +170,13 @@ public class ToggleAccessibilityServicePreferenceFragment switch (dialogId) { case DIALOG_ID_ENABLE_WARNING: { mShownDialogId = DIALOG_ID_ENABLE_WARNING; - AccessibilityServiceInfo info = getAccessibilityServiceInfo(); + + final AccessibilityServiceInfo info = getAccessibilityServiceInfo(); if (info == null) { return null; } - AlertDialog ad = new AlertDialog.Builder(getActivity()) + + final AlertDialog ad = new AlertDialog.Builder(getActivity()) .setTitle(getString(R.string.enable_service_title, info.getResolveInfo().loadLabel(getPackageManager()))) .setView(createEnableDialogContentView(info)) @@ -180,8 +184,24 @@ public class ToggleAccessibilityServicePreferenceFragment .setPositiveButton(android.R.string.ok, this) .setNegativeButton(android.R.string.cancel, this) .create(); + + final View.OnTouchListener filterTouchListener = new View.OnTouchListener() { + @Override + public boolean onTouch(View v, MotionEvent event) { + // Filter obscured touches by consuming them. + if ((event.getFlags() & MotionEvent.FLAG_WINDOW_IS_OBSCURED) != 0) { + if (event.getAction() == MotionEvent.ACTION_UP) { + Toast.makeText(v.getContext(), R.string.touch_filtered_warning, + Toast.LENGTH_SHORT).show(); + } + return true; + } + return false; + } + }; + ad.create(); - ad.getButton(AlertDialog.BUTTON_POSITIVE).setFilterTouchesWhenObscured(true); + ad.getButton(AlertDialog.BUTTON_POSITIVE).setOnTouchListener(filterTouchListener); return ad; } case DIALOG_ID_DISABLE_WARNING: { |