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

Commit 9e8540c8 authored by Yuchen Sun's avatar Yuchen Sun Committed by Android (Google) Code Review
Browse files

Merge "[expressive design] Update Switch appearance." into main

parents 72f14da8 b96f651a
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -40,3 +40,5 @@ fun SettingsTheme(content: @Composable () -> Unit) {
        }
    }
}

const val isSpaExpressiveEnabled = false
 No newline at end of file
+37 −1
Original line number Diff line number Diff line
@@ -17,11 +17,18 @@
package com.android.settingslib.spa.widget.ui

import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.foundation.layout.size
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Check
import androidx.compose.material.icons.filled.Close
import androidx.compose.material3.Icon
import androidx.compose.material3.Switch
import androidx.compose.material3.SwitchDefaults
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
import com.android.settingslib.spa.framework.compose.contentDescription
import com.android.settingslib.spa.framework.theme.isSpaExpressiveEnabled
import com.android.settingslib.spa.framework.util.wrapOnSwitchWithLog

@Composable
@@ -39,13 +46,42 @@ internal fun SettingsSwitch(
            modifier = Modifier.contentDescription(contentDescription),
            enabled = changeable(),
            interactionSource = interactionSource,
            thumbContent =
                if (isSpaExpressiveEnabled) {
                    if (checked) {
                        {
                            Icon(
                                imageVector = Icons.Filled.Check,
                                contentDescription = null,
                                modifier = Modifier.size(SwitchDefaults.IconSize),
                            )
                        }
                    } else {
                        {
                            Icon(
                                imageVector = Icons.Filled.Close,
                                contentDescription = null,
                                modifier = Modifier.size(SwitchDefaults.IconSize),
                            )
                        }
                    }
                } else null)
    } else {
        Switch(
            checked = false,
            onCheckedChange = null,
            enabled = false,
            interactionSource = interactionSource,
            thumbContent =
            if (isSpaExpressiveEnabled) {
                {
                    Icon(
                        imageVector = Icons.Filled.Close,
                        contentDescription = null,
                        modifier = Modifier.size(SwitchDefaults.IconSize),
                    )
                }
            } else null
        )
    }
}