From ad1908c4288e9868c38ffa27e6fa80ffb183efb3 Mon Sep 17 00:00:00 2001 From: Dan Sandler Date: Fri, 19 Oct 2018 18:12:40 -0400 Subject: [PATCH] Add configurable default setting for assistant componentname By requiring an explicit default setting, it eliminates all ambiguous states where a disambiguation would normally be shown. With this change in place, at no point should a disambiguation be shown. (Note: this is a fix to Change-Id: Ib32daf that clarifies the logic if R.string.config_defaultAssistantComponentName has not been set in a given build.) Test: manual Bug: 111603898 Change-Id: Id39fdf700ed4ef08ebbc333b5452223430ac2e48 Merged-In: Ib32dafbd3c6fcbe11186dc8ecab6b09c9b734067 --- .../com/android/internal/app/AssistUtils.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/core/java/com/android/internal/app/AssistUtils.java b/core/java/com/android/internal/app/AssistUtils.java index 4f742843eb124..fed0a89a4d75f 100644 --- a/core/java/com/android/internal/app/AssistUtils.java +++ b/core/java/com/android/internal/app/AssistUtils.java @@ -32,6 +32,8 @@ import android.os.ServiceManager; import android.provider.Settings; import android.util.Log; +import com.android.internal.R; + /** * Utility method for dealing with the assistant aspects of * {@link com.android.internal.app.IVoiceInteractionManagerService IVoiceInteractionManagerService}. @@ -40,6 +42,14 @@ public class AssistUtils { private static final String TAG = "AssistUtils"; + /** + * Sentinel value for "no default assistant specified." + * + * Empty string is already used to represent an explicit setting of No Assistant. null cannot + * be used because we can't represent a null value in XML. + */ + private static final String UNSET = "#+UNSET"; + private final Context mContext; private final IVoiceInteractionManagerService mVoiceInteractionManagerService; @@ -154,7 +164,7 @@ public class AssistUtils { final String defaultSetting = mContext.getResources().getString( R.string.config_defaultAssistantComponentName); - if (defaultSetting != null) { + if (defaultSetting != null && !defaultSetting.equals(UNSET)) { return ComponentName.unflattenFromString(defaultSetting); } @@ -162,6 +172,11 @@ public class AssistUtils { if (activeServiceSupportsAssistGesture()) { return getActiveServiceComponentName(); } + + if (UNSET.equals(defaultSetting)) { + return null; + } + final SearchManager searchManager = (SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE); if (searchManager == null) {