Skip to content

Commit 9bc29f0

Browse files
committed
Make good text with icons in intro
1 parent 868f3a8 commit 9bc29f0

File tree

4 files changed

+63
-26
lines changed

4 files changed

+63
-26
lines changed

amuze/src/main/java/com/infbyte/amuze/ui/screens/NoMediaPermissionScreen.kt

+36-22
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,12 @@ import androidx.compose.foundation.background
77
import androidx.compose.foundation.layout.Box
88
import androidx.compose.foundation.layout.Column
99
import androidx.compose.foundation.layout.fillMaxSize
10+
import androidx.compose.foundation.layout.navigationBarsPadding
1011
import androidx.compose.foundation.layout.padding
1112
import androidx.compose.foundation.layout.size
13+
import androidx.compose.foundation.layout.statusBarsPadding
14+
import androidx.compose.foundation.text.InlineTextContent
15+
import androidx.compose.foundation.text.appendInlineContent
1216
import androidx.compose.material.icons.Icons
1317
import androidx.compose.material.icons.outlined.Info
1418
import androidx.compose.material3.Button
@@ -25,11 +29,17 @@ import androidx.compose.runtime.saveable.rememberSaveable
2529
import androidx.compose.runtime.setValue
2630
import androidx.compose.ui.Alignment
2731
import androidx.compose.ui.Modifier
32+
import androidx.compose.ui.graphics.vector.ImageVector
2833
import androidx.compose.ui.res.painterResource
2934
import androidx.compose.ui.res.stringResource
35+
import androidx.compose.ui.res.vectorResource
36+
import androidx.compose.ui.text.Placeholder
37+
import androidx.compose.ui.text.PlaceholderVerticalAlign
38+
import androidx.compose.ui.text.buildAnnotatedString
3039
import androidx.compose.ui.text.font.FontWeight
3140
import androidx.compose.ui.tooling.preview.Preview
3241
import androidx.compose.ui.unit.dp
42+
import androidx.compose.ui.unit.sp
3343
import com.infbyte.amuze.R
3444

3545
@Composable
@@ -38,18 +48,18 @@ fun NoMediaPermissionScreen(
3848
@StringRes action: Int,
3949
onStartAction: () -> Unit,
4050
onExit: () -> Unit,
41-
about: @Composable (() -> Unit) -> Unit
51+
aboutApp: @Composable (() -> Unit) -> Unit
4252
) {
4353
Box(
4454
Modifier
4555
.background(MaterialTheme.colorScheme.background)
46-
.fillMaxSize(),
56+
.fillMaxSize().navigationBarsPadding().statusBarsPadding(),
4757
contentAlignment = Alignment.Center
4858
) {
4959
var showAbout by rememberSaveable { mutableStateOf(false) }
5060

5161
if (showAbout) {
52-
about { showAbout = false }
62+
aboutApp { showAbout = false }
5363
return
5464
}
5565

@@ -65,26 +75,30 @@ fun NoMediaPermissionScreen(
6575
Icon(Icons.Outlined.Info, contentDescription = "")
6676
}
6777
Column(horizontalAlignment = Alignment.CenterHorizontally) {
68-
Box {
69-
Text(
70-
stringResource(R.string.amuze_intro_1),
71-
Modifier.padding(top = 31.dp),
72-
style = MaterialTheme.typography.titleLarge.copy(fontWeight = FontWeight.Bold)
73-
)
74-
Icon(
75-
painter = painterResource(appIcon),
76-
contentDescription = "",
77-
Modifier
78-
.padding(start = 112.dp)
79-
.size(72.dp),
80-
tint = MaterialTheme.colorScheme.primary
81-
)
82-
Text(
83-
stringResource(R.string.amuze_intro_2),
84-
Modifier.padding(start = 162.dp, top = 31.dp),
85-
style = MaterialTheme.typography.titleLarge.copy(fontWeight = FontWeight.Bold)
86-
)
78+
val id = "appIcon"
79+
val inlineContent = mapOf(
80+
id to InlineTextContent(
81+
Placeholder(32.sp, 32.sp, PlaceholderVerticalAlign.AboveBaseline)
82+
) {
83+
Icon(
84+
ImageVector.vectorResource(appIcon),
85+
contentDescription = "",
86+
tint = MaterialTheme.colorScheme.primary
87+
)
88+
}
89+
)
90+
val text = buildAnnotatedString {
91+
append("${stringResource(R.string.amuze_intro_1)} ")
92+
appendInlineContent(id, "[icon]")
93+
append(stringResource(R.string.amuze_intro_2))
8794
}
95+
96+
Text(
97+
text,
98+
Modifier.padding(start = 0.dp, top = 31.dp),
99+
inlineContent = inlineContent,
100+
style = MaterialTheme.typography.titleLarge.copy(fontWeight = FontWeight.Bold)
101+
)
88102
Button(
89103
onClick = { onStartAction() },
90104
Modifier.padding(top = 64.dp),

amuze/src/main/java/com/infbyte/amuze/ui/screens/NoMusicAvailableScreen.kt

+5-3
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ import androidx.compose.foundation.background
66
import androidx.compose.foundation.layout.Box
77
import androidx.compose.foundation.layout.Column
88
import androidx.compose.foundation.layout.fillMaxSize
9+
import androidx.compose.foundation.layout.navigationBarsPadding
910
import androidx.compose.foundation.layout.padding
11+
import androidx.compose.foundation.layout.statusBarsPadding
1012
import androidx.compose.material.icons.Icons
1113
import androidx.compose.material.icons.outlined.Info
1214
import androidx.compose.material3.Button
@@ -35,18 +37,18 @@ fun NoMediaAvailableScreen(
3537
@StringRes messageId: Int,
3638
onRefresh: () -> Unit,
3739
onExit: () -> Unit,
38-
about: @Composable (() -> Unit) -> Unit
40+
aboutApp: @Composable (() -> Unit) -> Unit
3941
) {
4042
Box(
4143
Modifier
4244
.background(MaterialTheme.colorScheme.background)
43-
.fillMaxSize(),
45+
.fillMaxSize().navigationBarsPadding().statusBarsPadding(),
4446
contentAlignment = Alignment.Center
4547
) {
4648
var showAbout by rememberSaveable { mutableStateOf(false) }
4749

4850
if (showAbout) {
49-
about { showAbout = false }
51+
aboutApp { showAbout = false }
5052
return
5153
}
5254

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="108dp"
3+
android:height="108dp"
4+
android:viewportWidth="773"
5+
android:viewportHeight="911">
6+
<path
7+
android:pathData="M461.68,181.79l-70.74,-28.13l-202,623.93l70.74,28.14l202,-623.94z"
8+
android:fillColor="#FFFFFF"/>
9+
<path
10+
android:pathData="M0,724.05a136.85,186.95 0,1 0,273.7 0a136.85,186.95 0,1 0,-273.7 0z"
11+
android:fillColor="#FBFDFB"/>
12+
<path
13+
android:pathData="M583.4,819.08l-167.6,-629.17l148.09,-48.45l167.6,629.17"
14+
android:fillColor="#FFFFFF"/>
15+
<path
16+
android:pathData="M588.39,233.2l-199.51,-72q2.58,-8.51 5.68,-16.82C419.63,77.21 468,24.44 527,0Z"
17+
android:fillColor="#FFFFFF"/>
18+
<path
19+
android:pathData="M730.32,767.23L773,905.64A172,172 0,0 1,730.32 911c-65.82,0 -125,-37.55 -147.92,-93.8Z"
20+
android:fillColor="#FFFFFF"/>
21+
</vector>

app/src/main/java/com/infbyte/amuze_android/MainActivity.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ fun PreviewLoadingScreen() {
8484
fun PreviewNoMediaPermissionScreen() {
8585
AmuzeAndroidTheme {
8686
NoMediaPermissionScreen(
87-
appIcon = R.drawable.ic_amuzic_foreground,
87+
appIcon = R.drawable.ic_amuzic_intro,
8888
action = R.string.amuze_listen,
8989
onStartAction = {},
9090
onExit = {}

0 commit comments

Comments
 (0)