diff --git a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt index 1aa153691b..fb18fbb44f 100644 --- a/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt +++ b/lawnchair/src/app/lawnchair/allapps/AllAppsSearchInput.kt @@ -115,8 +115,9 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) : val supportsLens = searchProvider == Google || searchProvider == PixelSearch val lensIntent = getLensIntent(context) + val voiceIntent = AssistantIconView.getVoiceIntent(searchProvider, context) - micIcon.isVisible = shouldShowIcons + micIcon.isVisible = shouldShowIcons && voiceIntent != null lensIcon.isVisible = shouldShowIcons && supportsLens && lensIntent != null with(input) { @@ -162,6 +163,9 @@ class AllAppsSearchInput(context: Context, attrs: AttributeSet?) : } with(micIcon) { setIcon(isGoogle, themed) + setOnClickListener { + context.startActivity(voiceIntent) + } } with(lensIcon) { if (lensIntent != null) { diff --git a/lawnchair/src/app/lawnchair/qsb/AssistantIconView.kt b/lawnchair/src/app/lawnchair/qsb/AssistantIconView.kt index 26be58495c..44932a1343 100644 --- a/lawnchair/src/app/lawnchair/qsb/AssistantIconView.kt +++ b/lawnchair/src/app/lawnchair/qsb/AssistantIconView.kt @@ -2,10 +2,12 @@ package app.lawnchair.qsb import android.annotation.SuppressLint import android.content.Context +import android.content.Intent import android.util.AttributeSet import android.widget.ImageButton import androidx.core.view.isVisible import app.lawnchair.preferences2.PreferenceManager2 +import app.lawnchair.qsb.providers.QsbSearchProvider import com.android.launcher3.R @SuppressLint("AppCompatCustomView") @@ -13,9 +15,9 @@ class AssistantIconView(context: Context, attrs: AttributeSet?) : ImageButton(co init { val provider = LawnQsbLayout.getSearchProvider(context, PreferenceManager2.getInstance(context)) - val intent = if (provider.supportVoiceIntent) provider.createVoiceIntent() else null - if (intent == null || !LawnQsbLayout.resolveIntent(context, intent)) isVisible = false + val intent = getVoiceIntent(provider, context) + isVisible = intent != null setOnClickListener { context.startActivity(intent) @@ -34,4 +36,20 @@ class AssistantIconView(context: Context, attrs: AttributeSet?) : ImageButton(co method = themingMethod, ) } + + companion object { + + fun getVoiceIntent( + provider: QsbSearchProvider, + context: Context + ): Intent? { + val intent = if (provider.supportVoiceIntent) provider.createVoiceIntent() else null + + return if (intent == null || !LawnQsbLayout.resolveIntent(context, intent)) { + null + } else { + intent + } + } + } } diff --git a/lawnchair/src/app/lawnchair/search/adapter/SearchTargetUtils.kt b/lawnchair/src/app/lawnchair/search/adapter/SearchTargetUtils.kt index da2284ae8c..20817f08dd 100644 --- a/lawnchair/src/app/lawnchair/search/adapter/SearchTargetUtils.kt +++ b/lawnchair/src/app/lawnchair/search/adapter/SearchTargetUtils.kt @@ -21,7 +21,7 @@ fun createSearchTarget(appInfo: AppInfo, asRow: Boolean = false): SearchTargetCo val user = appInfo.user return SearchTargetCompat.Builder( SearchTargetCompat.RESULT_TYPE_APPLICATION, - if (asRow) LayoutType.ICON_HORIZONTAL_TEXT else LayoutType.ICON_SINGLE_VERTICAL_TEXT, + if (asRow) LayoutType.SMALL_ICON_HORIZONTAL_TEXT else LayoutType.ICON_SINGLE_VERTICAL_TEXT, generateHashKey(ComponentKey(componentName, user).toString()), ) .setPackageName(componentName.packageName)