From 1cf1eca45ff4892d88adcd6e4f40e39975c5c5ba Mon Sep 17 00:00:00 2001 From: Abdelilah El Aissaoui Date: Sat, 15 Jul 2023 13:21:19 +0200 Subject: [PATCH] Added new switch and adjusted surface color on light theme --- .../gitnuro/git/FileChangesWatcher.kt | 1 - .../jetpackduba/gitnuro/ui/CommitChanges.kt | 1 - .../gitnuro/ui/components/Switch.kt | 64 +++++++++++++++++++ .../ui/dialogs/settings/SettingsDialog.kt | 14 ++-- 4 files changed, 69 insertions(+), 11 deletions(-) create mode 100644 src/main/kotlin/com/jetpackduba/gitnuro/ui/components/Switch.kt diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/git/FileChangesWatcher.kt b/src/main/kotlin/com/jetpackduba/gitnuro/git/FileChangesWatcher.kt index c2f9491..1793dbd 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/git/FileChangesWatcher.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/git/FileChangesWatcher.kt @@ -59,7 +59,6 @@ class FileChangesWatcher @Inject constructor( matchesAnyRule || isGitIgnoredFile } - val hasGitDirChanged = paths.any { it.startsWith("$pathStr$systemSeparator.git%$systemSeparator") } if (!areAllPathsIgnored) { diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/CommitChanges.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/CommitChanges.kt index f7c4111..c664746 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/CommitChanges.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/CommitChanges.kt @@ -75,7 +75,6 @@ fun CommitChanges( textScroll = textScroll, searchFilter = searchFilter, onDiffSelected = onDiffSelected, - onSearchFilterToggled = { visible -> commitChangesViewModel.onSearchFilterToggled(visible) }, diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/Switch.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/Switch.kt new file mode 100644 index 0000000..3f02673 --- /dev/null +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/components/Switch.kt @@ -0,0 +1,64 @@ +package com.jetpackduba.gitnuro.ui.components + +import androidx.compose.desktop.ui.tooling.preview.Preview +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.MaterialTheme +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.draw.clip +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import com.jetpackduba.gitnuro.extensions.handMouseClickable + +@Preview +@Composable +fun SwitchPreview() { + AppSwitch(false, {}) +} + +@Composable +fun AppSwitch( + isChecked: Boolean, + onValueChanged: (Boolean) -> Unit, +) { + val background: Color + val startPadding: Dp + val uncheckedColor = Color( + red = (MaterialTheme.colors.onBackground.red + MaterialTheme.colors.primary.red) / 2, + green = (MaterialTheme.colors.onBackground.green + MaterialTheme.colors.primary.green) / 2, + blue = (MaterialTheme.colors.onBackground.blue + MaterialTheme.colors.primary.blue) / 2, + alpha = 0.4f + ) + + + if (isChecked) { + background = MaterialTheme.colors.primary + startPadding = 24.dp + } else { + background = uncheckedColor + startPadding = 4.dp + } + + Box( + modifier = Modifier + .width(48.dp) + .height(28.dp) + .clip(RoundedCornerShape(50)) + .background(background) + .handMouseClickable { onValueChanged(!isChecked) } + .padding(top = 4.dp, bottom = 4.dp, end = 4.dp, start = startPadding), + contentAlignment = if (isChecked) Alignment.CenterEnd else Alignment.CenterStart, + ) { + Box( + modifier = Modifier + .size(20.dp) + .clip(CircleShape) + .background(MaterialTheme.colors.onSecondary) + ) + } +} diff --git a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/settings/SettingsDialog.kt b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/settings/SettingsDialog.kt index 273f495..dc0d308 100644 --- a/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/settings/SettingsDialog.kt +++ b/src/main/kotlin/com/jetpackduba/gitnuro/ui/dialogs/settings/SettingsDialog.kt @@ -5,6 +5,7 @@ import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.material.* +import androidx.compose.material.Switch import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -20,10 +21,7 @@ import com.jetpackduba.gitnuro.extensions.handOnHover import com.jetpackduba.gitnuro.managers.Error import com.jetpackduba.gitnuro.preferences.DEFAULT_UI_SCALE import com.jetpackduba.gitnuro.theme.* -import com.jetpackduba.gitnuro.ui.components.AdjustableOutlinedTextField -import com.jetpackduba.gitnuro.ui.components.PrimaryButton -import com.jetpackduba.gitnuro.ui.components.ScrollableLazyColumn -import com.jetpackduba.gitnuro.ui.components.gitnuroViewModel +import com.jetpackduba.gitnuro.ui.components.* import com.jetpackduba.gitnuro.ui.dialogs.ErrorDialog import com.jetpackduba.gitnuro.ui.dialogs.MaterialDialog import com.jetpackduba.gitnuro.ui.dropdowns.DropDownOption @@ -463,11 +461,9 @@ fun SettingToggle( Spacer(modifier = Modifier.weight(1f)) - Switch( - checked = value, - onCheckedChange = onValueChanged, - colors = SwitchDefaults.colors(uncheckedThumbColor = MaterialTheme.colors.secondary), - modifier = Modifier.handOnHover(), + AppSwitch( + isChecked = value, + onValueChanged = onValueChanged, ) } }