diff --git a/android-design-system/design-system/src/main/res/drawable/duck_ai_suggested_prompts_background.xml b/android-design-system/design-system/src/main/res/drawable/duck_ai_suggested_prompts_background.xml new file mode 100644 index 000000000000..c692d7e24804 --- /dev/null +++ b/android-design-system/design-system/src/main/res/drawable/duck_ai_suggested_prompts_background.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/contextual/suggestions/ContextualSuggestionsView.kt b/duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/contextual/suggestions/ContextualSuggestionsView.kt index 7378735fb9d7..b2f2fac68c33 100644 --- a/duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/contextual/suggestions/ContextualSuggestionsView.kt +++ b/duckchat/duckchat-impl/src/main/java/com/duckduckgo/duckchat/impl/contextual/suggestions/ContextualSuggestionsView.kt @@ -21,6 +21,7 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.widget.LinearLayout import androidx.annotation.DrawableRes +import androidx.core.content.res.use import androidx.core.view.doOnAttach import androidx.core.view.isNotEmpty import androidx.core.view.isVisible @@ -41,6 +42,7 @@ import dagger.android.support.AndroidSupportInjection import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import javax.inject.Inject +import com.duckduckgo.mobile.android.R as CommonR @InjectWith(ViewScope::class) class ContextualSuggestionsView @JvmOverloads constructor( @@ -65,8 +67,14 @@ class ContextualSuggestionsView @JvmOverloads constructor( private val viewStateJob = ConflatedJob() + @DrawableRes + private val suggestionBackgroundRes: Int = context.obtainStyledAttributes(attrs, R.styleable.ContextualSuggestionsView).use { + it.getResourceId(R.styleable.ContextualSuggestionsView_suggestionBackground, CommonR.drawable.duck_ai_prompt_background) + } + init { orientation = VERTICAL + loadingView.setBackgroundResource(suggestionBackgroundRes) addView( loadingView, LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT).apply { bottomMargin = LOADING_MARGIN_BOTTOM_DP.toPx() }, @@ -128,6 +136,7 @@ class ContextualSuggestionsView @JvmOverloads constructor( val inflater = LayoutInflater.from(context) viewState.suggestions.forEach { suggestion -> val itemBinding = ItemContextualSuggestionBinding.inflate(inflater, cardsContainer, false) + itemBinding.suggestionLabel.setBackgroundResource(suggestionBackgroundRes) itemBinding.suggestionLabel.text = suggestion.label itemBinding.suggestionLabel.setCompoundDrawablesRelativeWithIntrinsicBounds(iconResFor(suggestion.icon), 0, 0, 0) itemBinding.root.setOnClickListener { diff --git a/duckchat/duckchat-impl/src/main/res/layout/dialog_contextual_duck_ai_entry.xml b/duckchat/duckchat-impl/src/main/res/layout/dialog_contextual_duck_ai_entry.xml index 773f2d284b40..01f022118319 100644 --- a/duckchat/duckchat-impl/src/main/res/layout/dialog_contextual_duck_ai_entry.xml +++ b/duckchat/duckchat-impl/src/main/res/layout/dialog_contextual_duck_ai_entry.xml @@ -44,17 +44,19 @@ + android:layout_height="wrap_content" + app:suggestionBackground="@drawable/duck_ai_suggested_prompts_background" /> diff --git a/duckchat/duckchat-impl/src/main/res/layout/item_contextual_suggestion.xml b/duckchat/duckchat-impl/src/main/res/layout/item_contextual_suggestion.xml index 14f65d9b2935..7ba3f408bf2a 100644 --- a/duckchat/duckchat-impl/src/main/res/layout/item_contextual_suggestion.xml +++ b/duckchat/duckchat-impl/src/main/res/layout/item_contextual_suggestion.xml @@ -25,7 +25,8 @@ android:layout_marginBottom="@dimen/keyline_2" android:background="@drawable/duck_ai_prompt_background" android:drawablePadding="@dimen/keyline_2" - android:padding="@dimen/keyline_2" + android:paddingVertical="@dimen/keyline_2" + android:paddingHorizontal="@dimen/keyline_3" app:typography="body2_bold" tools:drawableStart="@drawable/ic_summarize_16" tools:text="Summarize this page" /> diff --git a/duckchat/duckchat-impl/src/main/res/values/attrs-contextual-suggestions-view.xml b/duckchat/duckchat-impl/src/main/res/values/attrs-contextual-suggestions-view.xml new file mode 100644 index 000000000000..5f52f02dd5c8 --- /dev/null +++ b/duckchat/duckchat-impl/src/main/res/values/attrs-contextual-suggestions-view.xml @@ -0,0 +1,21 @@ + + + + + + +