[expressive design] Update TwoTargetPreference.

Add a ChevronRight icon in the middle.

Test: visual
Bug: 360916599
Flag: EXEMPT bug fix
Change-Id: Ib63324805c8bc27898ef20046831b2126bed77cd
diff --git a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt
index 3f68804..92b1005 100644
--- a/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt
+++ b/packages/SettingsLib/Spa/spa/src/com/android/settingslib/spa/widget/preference/TwoTargetPreference.kt
@@ -17,18 +17,27 @@
 package com.android.settingslib.spa.widget.preference
 
 import androidx.compose.foundation.background
+import androidx.compose.foundation.clickable
 import androidx.compose.foundation.layout.Box
 import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.layout.size
+import androidx.compose.material.icons.Icons
+import androidx.compose.material.icons.filled.ChevronRight
+import androidx.compose.material3.Icon
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.runtime.Composable
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.setValue
 import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.unit.dp
 import com.android.settingslib.spa.framework.theme.SettingsDimension
+import com.android.settingslib.spa.framework.theme.SettingsOpacity.alphaForEnabled
 import com.android.settingslib.spa.framework.theme.divider
+import com.android.settingslib.spa.framework.theme.isSpaExpressiveEnabled
+import com.android.settingslib.spa.framework.util.wrapOnClickWithLog
 
 @Composable
 internal fun TwoTargetPreference(
@@ -40,21 +49,45 @@
     widget: @Composable () -> Unit,
 ) {
     Row(
-        modifier = Modifier
-            .fillMaxWidth()
-            .padding(end = SettingsDimension.itemPaddingEnd),
+        modifier = Modifier.fillMaxWidth().padding(end = SettingsDimension.itemPaddingEnd),
         verticalAlignment = Alignment.CenterVertically,
     ) {
-        Box(modifier = Modifier.weight(1f)) {
-            Preference(
-                object : PreferenceModel {
-                    override val title = title
-                    override val summary = summary
-                    override val icon = icon
-                    override val enabled = primaryEnabled
-                    override val onClick = primaryOnClick
+        if (isSpaExpressiveEnabled) {
+            val onClickWithLog = wrapOnClickWithLog(primaryOnClick)
+            val enabled = primaryEnabled()
+            val modifier =
+                if (onClickWithLog != null) {
+                    Modifier.clickable(enabled = enabled, onClick = onClickWithLog)
+                } else Modifier
+            Box(modifier = Modifier.weight(1f)) {
+                BasePreference(
+                    title = title,
+                    summary = summary,
+                    icon = icon,
+                    enabled = primaryEnabled,
+                    modifier = modifier,
+                    paddingEnd = 0.dp,
+                ) {
+                    val alphaModifier = Modifier.alphaForEnabled(primaryEnabled())
+                    Icon(
+                        imageVector = Icons.Filled.ChevronRight,
+                        contentDescription = null,
+                        modifier = alphaModifier.size(18.dp),
+                    )
                 }
-            )
+            }
+        } else {
+            Box(modifier = Modifier.weight(1f)) {
+                Preference(
+                    object : PreferenceModel {
+                        override val title = title
+                        override val summary = summary
+                        override val icon = icon
+                        override val enabled = primaryEnabled
+                        override val onClick = primaryOnClick
+                    }
+                )
+            }
         }
         PreferenceDivider()
         widget()
@@ -64,8 +97,7 @@
 @Composable
 private fun PreferenceDivider() {
     Box(
-        Modifier
-            .padding(horizontal = SettingsDimension.itemPaddingEnd)
+        Modifier.padding(horizontal = SettingsDimension.itemPaddingEnd)
             .size(width = 1.dp, height = SettingsDimension.itemDividerHeight)
             .background(color = MaterialTheme.colorScheme.divider)
     )