Skip to content

Commit 4684400

Browse files
committed
[a]: added russian localization, fixed bug with animation on hide (on pick image)
1 parent c2382c1 commit 4684400

File tree

9 files changed

+68
-19
lines changed

9 files changed

+68
-19
lines changed

gradle/libs.versions.toml

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,17 @@
22
accompanist-permissions = "0.33.1-alpha"
33
agp = "8.2.2"
44
coil-compose = "2.5.0"
5-
github-landscapist-coil = "2.2.8"
6-
landscapist-placeholder = "2.2.8"
5+
landscapist = "2.3.3"
76
kotlin = "1.9.22"
87
core-ktx = "1.12.0"
98
junit = "4.13.2"
109
androidx-test-ext-junit = "1.1.5"
1110
espresso-core = "3.5.1"
1211
lifecycle-runtime-ktx = "2.7.0"
1312
activity-compose = "1.8.2"
14-
material3 = "1.2.0"
15-
compose-bom = "2024.02.00"
16-
ui="1.6.1"
13+
material3 = "1.2.1"
14+
compose-bom = "2024.05.00"
15+
ui="1.6.7"
1716

1817
[libraries]
1918
accompanist-permissions = { module = "com.google.accompanist:accompanist-permissions", version.ref = "accompanist-permissions" }
@@ -25,8 +24,8 @@ espresso-core = { group = "androidx.test.espresso", name = "espresso-core", vers
2524
lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle-runtime-ktx" }
2625
activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activity-compose" }
2726
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }
28-
skydoves-landscapist-coil = { module = "com.github.skydoves:landscapist-coil", version.ref = "github-landscapist-coil" }
29-
skydoves-landscapist-placeholder = { module = "com.github.skydoves:landscapist-placeholder", version.ref = "landscapist-placeholder" }
27+
skydoves-landscapist-coil = { module = "com.github.skydoves:landscapist-coil", version.ref = "landscapist" }
28+
skydoves-landscapist-placeholder = { module = "com.github.skydoves:landscapist-placeholder", version.ref = "landscapist" }
3029
ui = { group = "androidx.compose.ui", name = "ui", version.ref = "ui" }
3130
ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
3231
ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }

kige/src/main/java/com/kiko/kige/data/remembers/RememberGalleryState.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@ import com.kiko.kige.ui.states.GalleryUIState
1414
fun rememberKigeGalleryState(): GalleryState {
1515
val sheetState = rememberModalBottomSheetState()
1616
val visibleState = remember { mutableStateOf(false) }
17+
val galleryUIState = GalleryUIState.standardGalleryUiState()
18+
1719
return remember {
18-
GalleryState(sheetState, GalleryUIState(), visibleState)
20+
GalleryState(sheetState, galleryUIState, visibleState)
1921
}
2022
}

kige/src/main/java/com/kiko/kige/data/remembers/RememberPermissionState.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,9 @@ import com.kiko.kige.ui.states.PermissionUIState
1313
fun rememberKigePermissionState(): PermissionState {
1414
val sheetState = rememberModalBottomSheetState()
1515
val visibleState = remember { mutableStateOf(false) }
16+
val permissionUIState = PermissionUIState.standardPermissionUiState()
17+
1618
return remember {
17-
PermissionState(sheetState, visibleState, PermissionUIState())
19+
PermissionState(sheetState, visibleState, permissionUIState)
1820
}
1921
}

kige/src/main/java/com/kiko/kige/ui/components/GallerySheet.kt

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import androidx.compose.runtime.rememberCoroutineScope
2828
import androidx.compose.runtime.setValue
2929
import androidx.compose.ui.Alignment
3030
import androidx.compose.ui.Modifier
31+
import androidx.compose.ui.graphics.Color
3132
import androidx.compose.ui.graphics.painter.Painter
3233
import androidx.compose.ui.layout.ContentScale
3334
import androidx.compose.ui.platform.LocalContext
@@ -42,6 +43,7 @@ import com.kiko.kige.data.utils.GalleryUtils
4243
import com.skydoves.landscapist.ImageOptions
4344
import com.skydoves.landscapist.coil.CoilImage
4445
import com.skydoves.landscapist.components.rememberImageComponent
46+
import com.skydoves.landscapist.placeholder.shimmer.Shimmer
4547
import com.skydoves.landscapist.placeholder.shimmer.ShimmerPlugin
4648
import com.skydoves.landscapist.rememberDrawablePainter
4749
import kotlinx.coroutines.delay
@@ -101,16 +103,17 @@ internal fun GallerySheet(
101103
uri
102104
)
103105

104-
delay(500) // Костыль надо придумать как возвращать hide при получении изображения
105-
106+
rememberGalleryState.hide(coroutineScope)
107+
delay(200) // Костыль надо придумать как возвращать hide при получении изображения
106108
rememberKigeState.hide(coroutineScope)
107109
}
108110
},
109111
component = rememberImageComponent {
110-
// shows a shimmering effect when loading an image.
111112
+ShimmerPlugin(
112-
baseColor = MaterialTheme.colorScheme.secondaryContainer,
113-
highlightColor = MaterialTheme.colorScheme.secondary
113+
Shimmer.Resonate(
114+
baseColor = MaterialTheme.colorScheme.secondaryContainer,
115+
highlightColor = MaterialTheme.colorScheme.secondary
116+
),
114117
)
115118
},
116119
imageModel = { photoUri }, // loading a network image or local resource using an URL.

kige/src/main/java/com/kiko/kige/ui/components/PermissionSheet.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,17 @@ internal fun PermissionSheet(
6060
) {
6161
GalleryUtils.fetchGalleryImages(LocalContext.current)
6262
Text(
63-
rememberKigePermissionState.permissionUIState.title,
63+
text = rememberKigePermissionState.permissionUIState.title,
6464
fontWeight = rememberKigePermissionState.permissionUIState.fontWeight,
6565
fontSize = rememberKigePermissionState.permissionUIState.fontSize,
6666
textAlign = rememberKigePermissionState.permissionUIState.textAlign
6767
)
68-
Text(rememberKigePermissionState.permissionUIState.contentText)
68+
69+
Text(
70+
modifier = Modifier.fillMaxWidth(),
71+
textAlign = rememberKigePermissionState.permissionUIState.textAlign,
72+
text = rememberKigePermissionState.permissionUIState.contentText
73+
)
6974
Button(modifier = Modifier.fillMaxWidth(), onClick = {
7075
coroutineScope.launch { readExternalPermission.launchPermissionRequest() }
7176
.invokeOnCompletion {

kige/src/main/java/com/kiko/kige/ui/states/GalleryUIState.kt

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,15 @@ package com.kiko.kige.ui.states
66

77
import androidx.compose.foundation.layout.size
88
import androidx.compose.foundation.shape.RoundedCornerShape
9+
import androidx.compose.runtime.Composable
910
import androidx.compose.ui.Modifier
1011
import androidx.compose.ui.draw.clip
12+
import androidx.compose.ui.res.stringResource
1113
import androidx.compose.ui.text.font.FontWeight
1214
import androidx.compose.ui.unit.TextUnit
1315
import androidx.compose.ui.unit.dp
1416
import androidx.compose.ui.unit.sp
17+
import com.kiko.kige.R
1518

1619
data class GalleryUIState(
1720
val title: String = "Choose image",
@@ -20,4 +23,11 @@ data class GalleryUIState(
2023
val imagesModifier: Modifier = Modifier
2124
.size(120.dp)
2225
.clip(RoundedCornerShape(16.dp))
23-
)
26+
) {
27+
companion object {
28+
@Composable
29+
fun standardGalleryUiState(): GalleryUIState {
30+
return GalleryUIState(title = stringResource(R.string.gallery_choose_image))
31+
}
32+
}
33+
}

kige/src/main/java/com/kiko/kige/ui/states/PermissionUIState.kt

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,34 @@ package com.kiko.kige.ui.states
66

77
import androidx.compose.foundation.layout.size
88
import androidx.compose.foundation.shape.RoundedCornerShape
9+
import androidx.compose.runtime.Composable
910
import androidx.compose.ui.Modifier
1011
import androidx.compose.ui.draw.clip
12+
import androidx.compose.ui.res.stringResource
1113
import androidx.compose.ui.text.font.FontWeight
1214
import androidx.compose.ui.text.style.TextAlign
1315
import androidx.compose.ui.unit.TextUnit
1416
import androidx.compose.ui.unit.dp
1517
import androidx.compose.ui.unit.sp
18+
import com.kiko.kige.R
1619
import org.w3c.dom.Text
1720

1821
data class PermissionUIState(
1922
val title: String = "Need permission",
2023
val fontSize: TextUnit = 18.sp,
2124
val fontWeight: FontWeight = FontWeight.SemiBold,
2225
val textAlign: TextAlign = TextAlign.Center,
23-
val contentText : String = "App need request permission for gallery use",
26+
val contentText: String = "App need request permission for gallery use",
2427
val buttonText: String = "Give"
25-
)
28+
) {
29+
companion object {
30+
@Composable
31+
fun standardPermissionUiState(): PermissionUIState {
32+
return PermissionUIState(
33+
title = stringResource(R.string.gallery_title),
34+
contentText = stringResource(R.string.gallery_content),
35+
buttonText = stringResource(R.string.gallery_button)
36+
)
37+
}
38+
}
39+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<string name="gallery_choose_image">Выберите изображение</string>
4+
<string name="gallery_content">Приложению необходимо разрешение на чтение галлереи</string>
5+
<string name="gallery_title">Необходимо разрешение</string>
6+
<string name="gallery_button">Выдать</string>
7+
</resources>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<string name="gallery_choose_image">Choose image</string>
4+
<string name="gallery_content">App need request permission for gallery use</string>
5+
<string name="gallery_title">Need permission</string>
6+
<string name="gallery_button">Give</string>
7+
</resources>

0 commit comments

Comments
 (0)