Skip to content

Commit 15464fa

Browse files
feat: new home page (#65)
1 parent d4c575f commit 15464fa

20 files changed

+637
-341
lines changed

app/build.gradle.kts

+8-3
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,11 @@ android {
9191
jvmTarget = "11"
9292
freeCompilerArgs += listOf(
9393
"-Xcontext-receivers",
94-
"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi",
95-
"-opt-in=androidx.compose.animation.ExperimentalAnimationApi",
9694
"-opt-in=androidx.compose.material3.ExperimentalMaterial3Api",
97-
// "-P", "plugin:androidx.compose.compiler.plugins.kotlin:reportsDestination=${reportsDir}",
95+
"-opt-in=androidx.compose.animation.ExperimentalAnimationApi",
96+
"-opt-in=androidx.compose.foundation.ExperimentalFoundationApi",
97+
"-opt-in=androidx.compose.foundation.layout.ExperimentalLayoutApi",
98+
"-P", "plugin:androidx.compose.compiler.plugins.kotlin:reportsDestination=${reportsDir}",
9899
)
99100
}
100101

@@ -106,6 +107,10 @@ android {
106107
composeOptions {
107108
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
108109
}
110+
111+
lint {
112+
disable += "ModifierParameter"
113+
}
109114
}
110115

111116
dependencies {

app/src/main/AndroidManifest.xml

+1-7
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,14 @@
44

55
<uses-permission android:name="android.permission.INTERNET" />
66
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
7+
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
78
<uses-permission android:name="android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION" />
89
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
910
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
10-
<uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" />
1111

1212
<uses-permission
1313
android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
1414
tools:ignore="ScopedStorage" />
15-
<uses-permission
16-
android:name="android.permission.REQUEST_DELETE_PACKAGES"
17-
tools:ignore="ProtectedPermissions" />
18-
<uses-permission
19-
android:name="android.permission.DELETE_PACKAGES"
20-
tools:ignore="ProtectedPermissions" />
2115
<uses-permission
2216
android:name="android.permission.QUERY_ALL_PACKAGES"
2317
tools:ignore="QueryAllPackagesPermission" />
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package com.aliucord.manager.ui.components
2+
3+
import androidx.compose.foundation.Image
4+
import androidx.compose.foundation.layout.*
5+
import androidx.compose.material3.*
6+
import androidx.compose.runtime.Composable
7+
import androidx.compose.ui.Alignment
8+
import androidx.compose.ui.Modifier
9+
import androidx.compose.ui.platform.LocalUriHandler
10+
import androidx.compose.ui.res.painterResource
11+
import androidx.compose.ui.res.stringResource
12+
import androidx.compose.ui.unit.dp
13+
import androidx.compose.ui.unit.sp
14+
import com.aliucord.manager.BuildConfig
15+
import com.aliucord.manager.R
16+
17+
@Composable
18+
fun ProjectHeader(modifier: Modifier = Modifier) {
19+
val uriHandler = LocalUriHandler.current
20+
21+
Column(
22+
horizontalAlignment = Alignment.CenterHorizontally,
23+
verticalArrangement = Arrangement.spacedBy(4.dp),
24+
modifier = modifier,
25+
) {
26+
Image(
27+
painter = painterResource(R.drawable.ic_aliucord_logo),
28+
contentDescription = null,
29+
modifier = Modifier
30+
.size(88.dp)
31+
.padding(bottom = 8.dp),
32+
)
33+
34+
Text(
35+
text = stringResource(R.string.aliucord),
36+
style = MaterialTheme.typography.titleMedium.copy(fontSize = 26.sp)
37+
)
38+
39+
Text(
40+
text = stringResource(R.string.app_description),
41+
style = MaterialTheme.typography.titleSmall.copy(
42+
color = MaterialTheme.colorScheme.onSurface.copy(alpha = .6f)
43+
)
44+
)
45+
46+
Row(
47+
horizontalArrangement = Arrangement.Center,
48+
) {
49+
TextButton(onClick = { uriHandler.openUri("https://github.com/Aliucord") }) {
50+
Icon(
51+
painter = painterResource(R.drawable.ic_account_github_white_24dp),
52+
contentDescription = null,
53+
modifier = Modifier.padding(end = ButtonDefaults.IconSpacing),
54+
)
55+
Text(text = stringResource(R.string.github))
56+
}
57+
58+
TextButton(onClick = { uriHandler.openUri("https://discord.gg/${BuildConfig.SUPPORT_SERVER}") }) {
59+
Icon(
60+
painter = painterResource(R.drawable.ic_discord),
61+
contentDescription = stringResource(R.string.support_server),
62+
modifier = Modifier
63+
.padding(end = ButtonDefaults.IconSpacing)
64+
.size(22.dp),
65+
)
66+
Text(text = stringResource(R.string.discord))
67+
}
68+
}
69+
}
70+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package com.aliucord.manager.ui.components
2+
3+
import androidx.compose.foundation.*
4+
import androidx.compose.foundation.layout.*
5+
import androidx.compose.material3.*
6+
import androidx.compose.runtime.Composable
7+
import androidx.compose.ui.Alignment
8+
import androidx.compose.ui.Modifier
9+
import androidx.compose.ui.graphics.Color
10+
import androidx.compose.ui.graphics.painter.Painter
11+
import androidx.compose.ui.unit.dp
12+
13+
@Composable
14+
fun RowScope.SegmentedButton(
15+
icon: Painter,
16+
iconColor: Color = MaterialTheme.colorScheme.primary,
17+
iconDescription: String? = null,
18+
text: String,
19+
textColor: Color = MaterialTheme.colorScheme.primary,
20+
onClick: () -> Unit,
21+
) {
22+
Column(
23+
horizontalAlignment = Alignment.CenterHorizontally,
24+
verticalArrangement = Arrangement.spacedBy(8.dp, Alignment.CenterVertically),
25+
modifier = Modifier
26+
.clickable(onClick = onClick)
27+
.background(MaterialTheme.colorScheme.surfaceColorAtElevation(LocalAbsoluteTonalElevation.current + 2.dp))
28+
.weight(1f)
29+
.padding(12.dp)
30+
) {
31+
Icon(
32+
painter = icon,
33+
contentDescription = iconDescription,
34+
tint = iconColor,
35+
)
36+
37+
Text(
38+
text = text,
39+
style = MaterialTheme.typography.labelLarge,
40+
color = textColor,
41+
maxLines = 1,
42+
modifier = Modifier.basicMarquee(),
43+
)
44+
}
45+
}

app/src/main/kotlin/com/aliucord/manager/ui/components/home/InfoCard.kt

-139
This file was deleted.

app/src/main/kotlin/com/aliucord/manager/ui/screens/about/AboutScreen.kt

+2-57
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ import androidx.compose.ui.Alignment
1919
import androidx.compose.ui.Modifier
2020
import androidx.compose.ui.draw.clip
2121
import androidx.compose.ui.platform.LocalUriHandler
22-
import androidx.compose.ui.res.painterResource
2322
import androidx.compose.ui.res.stringResource
2423
import androidx.compose.ui.unit.dp
2524
import androidx.compose.ui.unit.sp
@@ -47,6 +46,7 @@ class AboutScreen : Screen {
4746
}
4847
) { paddingValues ->
4948
LazyColumn(
49+
horizontalAlignment = Alignment.CenterHorizontally,
5050
contentPadding = paddingValues
5151
.exclude(PaddingValuesSides.Horizontal + PaddingValuesSides.Top),
5252
modifier = Modifier
@@ -68,7 +68,7 @@ class AboutScreen : Screen {
6868
style = MaterialTheme.typography.titleLarge,
6969
color = MaterialTheme.colorScheme.primary,
7070
modifier = Modifier
71-
.padding(start = 16.dp, top = 12.dp, bottom = 16.dp)
71+
.padding(start = 16.dp, top = 12.dp, bottom = 12.dp)
7272
)
7373
}
7474

@@ -101,61 +101,6 @@ class AboutScreen : Screen {
101101
}
102102
}
103103

104-
@Composable
105-
private fun ProjectHeader(modifier: Modifier = Modifier) {
106-
Column(
107-
horizontalAlignment = Alignment.CenterHorizontally,
108-
modifier = modifier
109-
.fillMaxWidth()
110-
.padding(vertical = 16.dp)
111-
) {
112-
AsyncImage(
113-
model = "https://github.com/Aliucord.png",
114-
contentDescription = stringResource(R.string.aliucord),
115-
modifier = Modifier.size(71.dp)
116-
)
117-
118-
Text(
119-
text = stringResource(R.string.aliucord),
120-
style = MaterialTheme.typography.titleMedium.copy(
121-
fontSize = 26.sp
122-
)
123-
)
124-
125-
Text(
126-
text = stringResource(R.string.app_description),
127-
style = MaterialTheme.typography.titleSmall.copy(
128-
color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.6f)
129-
)
130-
)
131-
132-
Row(
133-
horizontalArrangement = Arrangement.Center,
134-
modifier = Modifier.fillMaxWidth()
135-
) {
136-
val uriHandler = LocalUriHandler.current
137-
138-
TextButton(onClick = { uriHandler.openUri("https://github.com/Aliucord") }) {
139-
Icon(
140-
painter = painterResource(R.drawable.ic_account_github_white_24dp),
141-
contentDescription = stringResource(R.string.github)
142-
)
143-
Spacer(modifier = Modifier.width(ButtonDefaults.IconSpacing))
144-
Text(text = stringResource(id = R.string.github))
145-
}
146-
147-
TextButton(onClick = { uriHandler.openUri("https://aliucord.com") }) {
148-
Icon(
149-
painter = painterResource(R.drawable.ic_link),
150-
contentDescription = stringResource(R.string.website)
151-
)
152-
Spacer(modifier = Modifier.width(ButtonDefaults.IconSpacing))
153-
Text(text = stringResource(id = R.string.website))
154-
}
155-
}
156-
}
157-
}
158-
159104
@Composable
160105
private fun MainContributors(modifier: Modifier = Modifier) {
161106
Row(

0 commit comments

Comments
 (0)