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
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user