Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 433c83dc authored by Steve Elliott's avatar Steve Elliott
Browse files

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.

Test: manual
Bug: 111603898
Change-Id: Ib32dafbd3c6fcbe11186dc8ecab6b09c9b734067
parent 3109f4a1
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -31,6 +31,8 @@ import android.os.ServiceManager;
import android.provider.Settings;
import android.util.Log;

import com.android.internal.R;

import java.util.ArrayList;
import java.util.Set;

@@ -42,6 +44,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;

@@ -178,10 +188,21 @@ public class AssistUtils {
            return ComponentName.unflattenFromString(setting);
        }

        final String defaultSetting = mContext.getResources().getString(
                R.string.config_defaultAssistantComponentName);
        if (defaultSetting != null && !defaultSetting.equals(UNSET)) {
            return ComponentName.unflattenFromString(defaultSetting);
        }

        // Fallback to keep backward compatible behavior when there is no user setting.
        if (activeServiceSupportsAssistGesture()) {
            return getActiveServiceComponentName();
        }

        if (UNSET.equals(defaultSetting)) {
            return null;
        }

        final SearchManager searchManager =
                (SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE);
        if (searchManager == null) {
+6 −2
Original line number Diff line number Diff line
@@ -3553,4 +3553,8 @@

    <!-- Whether or not the "SMS app service" feature is enabled -->
    <bool name="config_useSmsAppService">true</bool>

    <!-- Component name for default assistant on this device -->
    <string name="config_defaultAssistantComponentName">#+UNSET</string>

</resources>
+2 −0
Original line number Diff line number Diff line
@@ -3478,4 +3478,6 @@
  <java-symbol type="fraction" name="config_prescaleAbsoluteVolume_index3" />

  <java-symbol type="bool" name="config_useSmsAppService" />

  <java-symbol type="string" name="config_defaultAssistantComponentName" />
</resources>