From fff9fd87bfa45481442a10b6f6086ecd498a98bd Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Thu, 11 Aug 2016 15:45:22 -0700 Subject: [PATCH] Assist: Allow disabling the disclosure animation Change-Id: I18a2e4144c762a0833d2384c51f916b841dfc8b3 Fixes: 30809067 --- res/values/strings.xml | 6 +++ res/xml/manage_assist.xml | 6 +++ .../settings/applications/ManageAssist.java | 45 ++++++++++++++----- 3 files changed, 47 insertions(+), 10 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index ad147818cc6..f683d80463c 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -6951,6 +6951,11 @@ Allow the assist app to access an image of the screen + + Flash screen + + + Flash edges of screen when assist app accesses text from screen or screenshot Assist apps can help you based on information from the screen you\u2019re viewing. Some apps support both launcher and voice input services to give you integrated assistance. @@ -7759,4 +7764,5 @@ %1$s total made available\n\nLast ran on %2$s + diff --git a/res/xml/manage_assist.xml b/res/xml/manage_assist.xml index 6984f88c590..7d4928da35d 100644 --- a/res/xml/manage_assist.xml +++ b/res/xml/manage_assist.xml @@ -36,6 +36,12 @@ android:title="@string/assist_access_screenshot_title" android:summary="@string/assist_access_screenshot_summary"/> + + { + guardScreenshotPref(); + guardFlashPref(); + }); return true; } if (preference == mScreenshotPref) { @@ -84,6 +94,11 @@ public class ManageAssist extends SettingsPreferenceFragment (boolean) newValue ? 1 : 0); return true; } + if (preference == mFlashPref) { + Settings.Secure.putInt(getContentResolver(), Settings.Secure.ASSIST_DISCLOSURE_ENABLED, + (boolean) newValue ? 1 : 0); + return true; + } if (preference == mDefaultAssitPref) { String newAssitPackage = (String)newValue; if (newAssitPackage == null || @@ -101,15 +116,6 @@ public class ManageAssist extends SettingsPreferenceFragment return false; } - private void postGuardScreenshotPref() { - mHandler.post(new Runnable() { - @Override - public void run() { - guardScreenshotPref(); - } - }); - } - private void guardScreenshotPref() { boolean isChecked = mContextPref.isChecked(); boolean screenshotPrefWasSet = Settings.Secure.getInt( @@ -118,6 +124,17 @@ public class ManageAssist extends SettingsPreferenceFragment mScreenshotPref.setChecked(isChecked && screenshotPrefWasSet); } + private void guardFlashPref() { + ComponentName assistant = mDefaultAssitPref.getCurrentAssist(); + + boolean isContextChecked = mContextPref.isChecked(); + boolean willShowFlash = AssistUtils.shouldDisclose(getContext(), assistant); + boolean isSystemAssistant = AssistUtils.isPreinstalledAssistant(getContext(), assistant); + + mFlashPref.setEnabled(isContextChecked && isSystemAssistant); + mFlashPref.setChecked(willShowFlash); + } + private void updateUi() { mDefaultAssitPref.refreshAssistApps(); mVoiceInputPref.refreshVoiceInputs(); @@ -130,6 +147,13 @@ public class ManageAssist extends SettingsPreferenceFragment } else { getPreferenceScreen().removePreference(mContextPref); getPreferenceScreen().removePreference(mScreenshotPref); + getPreferenceScreen().removePreference(mFlashPref); + } + + if (hasAssistant && AssistUtils.allowDisablingAssistDisclosure(getContext())) { + getPreferenceScreen().addPreference(mFlashPref); + } else { + getPreferenceScreen().removePreference(mFlashPref); } if (isCurrentAssistVoiceService()) { @@ -140,6 +164,7 @@ public class ManageAssist extends SettingsPreferenceFragment } guardScreenshotPref(); + guardFlashPref(); } private boolean isCurrentAssistVoiceService() {