Skip to content

Commit 2fcd365

Browse files
author
Josh
committed
redesign of letter form and detail
1 parent 22aa75d commit 2fcd365

56 files changed

Lines changed: 721 additions & 866 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

app/src/main/java/net/frozendevelopment/openletters/OpenLettersApplication.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ import org.koin.core.component.KoinComponent
1818
import org.koin.core.context.startKoin
1919
import org.koin.ksp.generated.module
2020

21-
class OpenLettersApplication : Application(), KoinComponent {
21+
class OpenLettersApplication :
22+
Application(),
23+
KoinComponent {
2224
override fun onCreate() {
2325
super.onCreate()
2426

app/src/main/java/net/frozendevelopment/openletters/data/sqldelight/SqlDelightKoin.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,13 @@ import org.koin.core.annotation.Single
2323
@Module
2424
class SqlDelightKoin {
2525
@Single
26-
fun databaseDriver(context: Context): SqlDriver {
27-
return AndroidSqliteDriver(
26+
fun databaseDriver(context: Context): SqlDriver =
27+
AndroidSqliteDriver(
2828
schema = OpenLettersDB.Schema,
2929
context = context,
3030
name = "openletters.db",
3131
factory = RequerySQLiteOpenHelperFactory(),
3232
)
33-
}
3433

3534
@Single
3635
fun openLettersDB(driver: SqlDriver): OpenLettersDB {

app/src/main/java/net/frozendevelopment/openletters/data/sqldelight/models/ColorAdapter.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,7 @@ import androidx.compose.ui.graphics.toArgb
55
import app.cash.sqldelight.ColumnAdapter
66

77
object ColorAdapter : ColumnAdapter<Color, Long> {
8-
override fun decode(databaseValue: Long): Color {
9-
return Color(databaseValue).copy(1f)
10-
}
8+
override fun decode(databaseValue: Long): Color = Color(databaseValue).copy(1f)
119

12-
override fun encode(value: Color): Long {
13-
return value.toArgb().toLong()
14-
}
10+
override fun encode(value: Color): Long = value.toArgb().toLong()
1511
}

app/src/main/java/net/frozendevelopment/openletters/data/sqldelight/models/DatabaseTypes.kt

Lines changed: 36 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -17,30 +17,24 @@ import java.util.UUID
1717
@JvmInline
1818
@Parcelize
1919
@Serializable(with = LetterId.Serializer::class)
20-
value class LetterId(val value: String) : Parcelable {
20+
value class LetterId(
21+
val value: String,
22+
) : Parcelable {
2123
companion object {
2224
val adapter =
2325
object : ColumnAdapter<LetterId, String> {
24-
override fun decode(databaseValue: String): LetterId {
25-
return LetterId(databaseValue)
26-
}
26+
override fun decode(databaseValue: String): LetterId = LetterId(databaseValue)
2727

28-
override fun encode(value: LetterId): String {
29-
return value.value
30-
}
28+
override fun encode(value: LetterId): String = value.value
3129
}
3230

33-
fun random(): LetterId {
34-
return LetterId(UUID.randomUUID().toString())
35-
}
31+
fun random(): LetterId = LetterId(UUID.randomUUID().toString())
3632
}
3733

3834
object Serializer : KSerializer<LetterId> {
3935
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("LetterId", PrimitiveKind.STRING)
4036

41-
override fun deserialize(decoder: Decoder): LetterId {
42-
return LetterId(decoder.decodeString())
43-
}
37+
override fun deserialize(decoder: Decoder): LetterId = LetterId(decoder.decodeString())
4438

4539
override fun serialize(
4640
encoder: Encoder,
@@ -50,38 +44,30 @@ value class LetterId(val value: String) : Parcelable {
5044
}
5145
}
5246

53-
override fun toString(): String {
54-
return value
55-
}
47+
override fun toString(): String = value
5648
}
5749

5850
@JvmInline
5951
@Parcelize
6052
@Serializable(with = DocumentId.Serializer::class)
61-
value class DocumentId(val value: String) : Parcelable {
53+
value class DocumentId(
54+
val value: String,
55+
) : Parcelable {
6256
companion object {
6357
val adapter =
6458
object : ColumnAdapter<DocumentId, String> {
65-
override fun decode(databaseValue: String): DocumentId {
66-
return DocumentId(databaseValue)
67-
}
59+
override fun decode(databaseValue: String): DocumentId = DocumentId(databaseValue)
6860

69-
override fun encode(value: DocumentId): String {
70-
return value.value
71-
}
61+
override fun encode(value: DocumentId): String = value.value
7262
}
7363

74-
fun random(): DocumentId {
75-
return DocumentId(UUID.randomUUID().toString())
76-
}
64+
fun random(): DocumentId = DocumentId(UUID.randomUUID().toString())
7765
}
7866

7967
object Serializer : KSerializer<DocumentId> {
8068
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("DocumentId", PrimitiveKind.STRING)
8169

82-
override fun deserialize(decoder: Decoder): DocumentId {
83-
return DocumentId(decoder.decodeString())
84-
}
70+
override fun deserialize(decoder: Decoder): DocumentId = DocumentId(decoder.decodeString())
8571

8672
override fun serialize(
8773
encoder: Encoder,
@@ -91,38 +77,30 @@ value class DocumentId(val value: String) : Parcelable {
9177
}
9278
}
9379

94-
override fun toString(): String {
95-
return value
96-
}
80+
override fun toString(): String = value
9781
}
9882

9983
@JvmInline
10084
@Parcelize
10185
@Serializable(with = CategoryId.Serializer::class)
102-
value class CategoryId(val value: String) : Parcelable {
86+
value class CategoryId(
87+
val value: String,
88+
) : Parcelable {
10389
companion object {
10490
val adapter =
10591
object : ColumnAdapter<CategoryId, String> {
106-
override fun decode(databaseValue: String): CategoryId {
107-
return CategoryId(databaseValue)
108-
}
92+
override fun decode(databaseValue: String): CategoryId = CategoryId(databaseValue)
10993

110-
override fun encode(value: CategoryId): String {
111-
return value.value
112-
}
94+
override fun encode(value: CategoryId): String = value.value
11395
}
11496

115-
fun random(): CategoryId {
116-
return CategoryId(UUID.randomUUID().toString())
117-
}
97+
fun random(): CategoryId = CategoryId(UUID.randomUUID().toString())
11898
}
11999

120100
object Serializer : KSerializer<CategoryId> {
121101
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("CategoryId", PrimitiveKind.STRING)
122102

123-
override fun deserialize(decoder: Decoder): CategoryId {
124-
return CategoryId(decoder.decodeString())
125-
}
103+
override fun deserialize(decoder: Decoder): CategoryId = CategoryId(decoder.decodeString())
126104

127105
override fun serialize(
128106
encoder: Encoder,
@@ -132,38 +110,30 @@ value class CategoryId(val value: String) : Parcelable {
132110
}
133111
}
134112

135-
override fun toString(): String {
136-
return value
137-
}
113+
override fun toString(): String = value
138114
}
139115

140116
@JvmInline
141117
@Parcelize
142118
@Serializable(with = ReminderId.Serializer::class)
143-
value class ReminderId(val value: String) : Parcelable {
119+
value class ReminderId(
120+
val value: String,
121+
) : Parcelable {
144122
companion object {
145123
val adapter =
146124
object : ColumnAdapter<ReminderId, String> {
147-
override fun decode(databaseValue: String): ReminderId {
148-
return ReminderId(databaseValue)
149-
}
125+
override fun decode(databaseValue: String): ReminderId = ReminderId(databaseValue)
150126

151-
override fun encode(value: ReminderId): String {
152-
return value.value
153-
}
127+
override fun encode(value: ReminderId): String = value.value
154128
}
155129

156-
fun random(): ReminderId {
157-
return ReminderId(UUID.randomUUID().toString())
158-
}
130+
fun random(): ReminderId = ReminderId(UUID.randomUUID().toString())
159131
}
160132

161133
object Serializer : KSerializer<ReminderId> {
162134
override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor("ReminderId", PrimitiveKind.STRING)
163135

164-
override fun deserialize(decoder: Decoder): ReminderId {
165-
return ReminderId(decoder.decodeString())
166-
}
136+
override fun deserialize(decoder: Decoder): ReminderId = ReminderId(decoder.decodeString())
167137

168138
override fun serialize(
169139
encoder: Encoder,
@@ -173,27 +143,17 @@ value class ReminderId(val value: String) : Parcelable {
173143
}
174144
}
175145

176-
override fun toString(): String {
177-
return value
178-
}
146+
override fun toString(): String = value
179147
}
180148

181149
object LocalDateTimeAdapter : ColumnAdapter<LocalDateTime, Long> {
182-
override fun decode(databaseValue: Long): LocalDateTime {
183-
return LocalDateTime.ofEpochSecond(databaseValue, 0, ZoneOffset.UTC)
184-
}
150+
override fun decode(databaseValue: Long): LocalDateTime = LocalDateTime.ofEpochSecond(databaseValue, 0, ZoneOffset.UTC)
185151

186-
override fun encode(value: LocalDateTime): Long {
187-
return value.toEpochSecond(ZoneOffset.UTC)
188-
}
152+
override fun encode(value: LocalDateTime): Long = value.toEpochSecond(ZoneOffset.UTC)
189153
}
190154

191155
object BooleanAdapter : ColumnAdapter<Boolean, Int> {
192-
override fun decode(databaseValue: Int): Boolean {
193-
return databaseValue != 0
194-
}
156+
override fun decode(databaseValue: Int): Boolean = databaseValue != 0
195157

196-
override fun encode(value: Boolean): Int {
197-
return if (value) 1 else 0
198-
}
158+
override fun encode(value: Boolean): Int = if (value) 1 else 0
199159
}

app/src/main/java/net/frozendevelopment/openletters/extensions/ContextExtensions.kt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@ package net.frozendevelopment.openletters.extensions
33
import android.content.Context
44
import android.content.pm.PackageManager
55

6-
fun Context.isPermissionGranted(permission: String): Boolean {
7-
return checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
8-
}
6+
fun Context.isPermissionGranted(permission: String): Boolean = checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED
97

108
val Context.appVersion: String
119
get() {
Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
11
package net.frozendevelopment.openletters.extensions
22

3-
fun String.sanitizeForSearch(): String {
4-
return replace(Regex("[-:()|\"\\[\\]{}*?+~,\\\\/]"), "*")
5-
}
3+
fun String.sanitizeForSearch(): String = replace(Regex("[-:()|\"\\[\\]{}*?+~,\\\\/]"), "*")

app/src/main/java/net/frozendevelopment/openletters/feature/category/form/CategoryFormDestination.kt

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ sealed interface CategoryFormMode : Parcelable {
1818

1919
@Serializable
2020
@Parcelize
21-
data class Edit(val id: CategoryId) : CategoryFormMode
21+
data class Edit(
22+
val id: CategoryId,
23+
) : CategoryFormMode
2224
}
2325

2426
@Serializable
@@ -31,22 +33,17 @@ val CategoryFormModeType =
3133
override fun get(
3234
bundle: Bundle,
3335
key: String,
34-
): CategoryFormMode? {
35-
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
36+
): CategoryFormMode? =
37+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {
3638
bundle.getParcelable(key, CategoryFormMode::class.java)
3739
} else {
3840
@Suppress("DEPRECATION")
3941
bundle.getParcelable(key)
4042
}
41-
}
4243

43-
override fun parseValue(value: String): CategoryFormMode {
44-
return Json.decodeFromString(value)
45-
}
44+
override fun parseValue(value: String): CategoryFormMode = Json.decodeFromString(value)
4645

47-
override fun serializeAsValue(value: CategoryFormMode): String {
48-
return Json.encodeToString(value)
49-
}
46+
override fun serializeAsValue(value: CategoryFormMode): String = Json.encodeToString(value)
5047

5148
override fun put(
5249
bundle: Bundle,

app/src/main/java/net/frozendevelopment/openletters/feature/category/form/CategoryFormView.kt

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ import androidx.compose.ui.graphics.Color
3131
import androidx.compose.ui.graphics.SolidColor
3232
import androidx.compose.ui.text.input.KeyboardCapitalization
3333
import androidx.compose.ui.text.style.TextAlign
34-
import androidx.compose.ui.tooling.preview.Preview
34+
import androidx.compose.ui.tooling.preview.PreviewLightDark
3535
import androidx.compose.ui.unit.dp
3636
import com.github.skydoves.colorpicker.compose.BrightnessSlider
3737
import com.github.skydoves.colorpicker.compose.HsvColorPicker
@@ -151,11 +151,8 @@ fun CategoryFormView(
151151
}
152152

153153
@Composable
154-
private fun CategoryFormPreview(
155-
darkTheme: Boolean,
156-
state: CategoryFormState,
157-
) {
158-
OpenLettersTheme(darkTheme) {
154+
private fun CategoryFormPreview(state: CategoryFormState) {
155+
OpenLettersTheme {
159156
Surface {
160157
CategoryFormView(
161158
state = state,
@@ -169,24 +166,9 @@ private fun CategoryFormPreview(
169166
}
170167

171168
@Composable
172-
@Preview(showBackground = true, showSystemUi = true)
173-
private fun DarkPreview() {
174-
CategoryFormPreview(
175-
darkTheme = true,
176-
state =
177-
CategoryFormState(
178-
mode = CategoryFormMode.Create,
179-
label = "",
180-
color = Color(0xFF0F0FF0),
181-
),
182-
)
183-
}
184-
185-
@Composable
186-
@Preview(showBackground = true, showSystemUi = true)
187-
private fun LightPreview() {
169+
@PreviewLightDark
170+
private fun CategoryForm() {
188171
CategoryFormPreview(
189-
darkTheme = false,
190172
state =
191173
CategoryFormState(
192174
mode = CategoryFormMode.Create,

app/src/main/java/net/frozendevelopment/openletters/feature/category/manage/ManageCategoryView.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ import net.frozendevelopment.openletters.feature.category.manage.ui.EmptyCategor
5151
@Serializable
5252
object ManageCategoryDestination
5353

54-
private data class DraggableItem(val index: Int)
54+
private data class DraggableItem(
55+
val index: Int,
56+
)
5557

5658
@OptIn(ExperimentalMaterial3Api::class)
5759
@Composable
@@ -194,7 +196,8 @@ fun ManageCategoryView(
194196
style = MaterialTheme.typography.labelLarge,
195197
textAlign = TextAlign.Center,
196198
modifier =
197-
Modifier.fillMaxWidth()
199+
Modifier
200+
.fillMaxWidth()
198201
.padding(bottom = 8.dp),
199202
)
200203
}

0 commit comments

Comments
 (0)