Skip to content

Commit

Permalink
[optimize|build] Optimize add/edit screen layout; update Kotlin and o…
Browse files Browse the repository at this point in the history
…ther dependencies
  • Loading branch information
SkyD666 committed Nov 12, 2023
1 parent 8a80eb1 commit ef62acd
Show file tree
Hide file tree
Showing 12 changed files with 233 additions and 177 deletions.
6 changes: 3 additions & 3 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ android {
applicationId "com.skyd.rays"
minSdk 24
targetSdk 34
versionCode 42
versionName "1.6-beta24"
versionCode 43
versionName "1.6-beta25"
flavorDimensions = ["versionName"]

testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
Expand Down Expand Up @@ -85,7 +85,7 @@ android {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion '1.5.3'
kotlinCompilerExtensionVersion '1.5.4'
}
packagingOptions {
resources {
Expand Down
59 changes: 58 additions & 1 deletion app/src/main/java/com/skyd/rays/ui/component/RaysIconButton.kt
Original file line number Diff line number Diff line change
@@ -1,7 +1,21 @@
package com.skyd.rays.ui.component

import androidx.compose.foundation.interaction.MutableInteractionSource
import androidx.compose.material3.*
import androidx.compose.material3.FilledIconButton
import androidx.compose.material3.FilledTonalIconButton
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.IconButtonColors
import androidx.compose.material3.IconButtonDefaults
import androidx.compose.material3.IconToggleButton
import androidx.compose.material3.IconToggleButtonColors
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.OutlinedIconButton
import androidx.compose.material3.PlainTooltip
import androidx.compose.material3.Text
import androidx.compose.material3.TooltipBox
import androidx.compose.material3.TooltipDefaults
import androidx.compose.material3.rememberTooltipState
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Modifier
Expand Down Expand Up @@ -43,6 +57,7 @@ fun RaysIconButton(
interactionSource = interactionSource,
content = icon,
)

RaysIconButtonStyle.Filled -> FilledIconButton(
modifier = it,
onClick = onClick,
Expand All @@ -51,6 +66,7 @@ fun RaysIconButton(
interactionSource = interactionSource,
content = icon,
)

RaysIconButtonStyle.FilledTonal -> FilledTonalIconButton(
modifier = it,
onClick = onClick,
Expand All @@ -59,6 +75,7 @@ fun RaysIconButton(
interactionSource = interactionSource,
content = icon,
)

RaysIconButtonStyle.Outlined -> OutlinedIconButton(
modifier = it,
onClick = onClick,
Expand Down Expand Up @@ -112,3 +129,43 @@ fun RaysIconButton(
interactionSource = interactionSource,
)
}

@Composable
fun RaysIconToggleButton(
checked: Boolean,
onCheckedChange: (Boolean) -> Unit,
modifier: Modifier = Modifier,
enabled: Boolean = true,
colors: IconToggleButtonColors = IconButtonDefaults.iconToggleButtonColors(),
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
contentDescription: String? = null,
content: @Composable () -> Unit
) {
val iconButton: @Composable (modifier: Modifier) -> Unit = {
IconToggleButton(
checked = checked,
onCheckedChange = onCheckedChange,
modifier = it,
enabled = enabled,
colors = colors,
interactionSource = interactionSource,
content = content,
)
}
if (contentDescription.isNullOrEmpty()) {
iconButton(modifier)
} else {
TooltipBox(
modifier = modifier,
positionProvider = TooltipDefaults.rememberPlainTooltipPositionProvider(),
tooltip = {
PlainTooltip {
Text(contentDescription)
}
},
state = rememberTooltipState()
) {
iconButton(Modifier)
}
}
}
Loading

0 comments on commit ef62acd

Please sign in to comment.