Skip to content

Commit 313b9d9

Browse files
committed
feat: integrate AboutLibraries plugin and update dependencies
1 parent fe74977 commit 313b9d9

File tree

4 files changed

+60
-10
lines changed

4 files changed

+60
-10
lines changed

app/build.gradle.kts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ plugins {
99
alias(libs.plugins.kotlin.serialization)
1010
alias(libs.plugins.compose.compiler)
1111
// id("kotlinx-serialization")
12+
alias(libs.plugins.aboutLibraries)
1213
}
1314

1415
android {
@@ -136,6 +137,15 @@ android {
136137
}
137138
}
138139

140+
aboutLibraries {
141+
library {
142+
// Enable the duplication mode, allows to merge, or link dependencies which relate
143+
duplicationMode = com.mikepenz.aboutlibraries.plugin.DuplicateMode.MERGE
144+
// Configure the duplication rule, to match "duplicates" with
145+
duplicationRule = com.mikepenz.aboutlibraries.plugin.DuplicateRule.SIMPLE
146+
}
147+
}
148+
139149
room {
140150
// Specify the schema directory
141151
schemaDirectory("$projectDir/schemas")
@@ -159,6 +169,7 @@ dependencies {
159169
implementation(libs.androidx.lifecycle)
160170
implementation(libs.androidx.activity.compose)
161171
implementation(libs.androidx.datastore.preferences)
172+
//implementation(libs.androidx.foundation)
162173
implementation(libs.compose.ui)
163174
implementation(platform(libs.androidx.compose.bom))
164175
implementation(libs.compose.material)
@@ -195,11 +206,12 @@ dependencies {
195206

196207
implementation(libs.compose.coil)
197208

198-
implementation(libs.xxpermissions)
199-
200209
implementation(libs.iamr0s.dhizuku.api)
201210

202211
implementation(libs.iamr0s.androidAppProcess)
203212

204213
implementation(libs.okhttp)
214+
215+
implementation(libs.aboutlibraries.core)
216+
implementation(libs.aboutlibraries.compose.m3)
205217
}

app/src/main/java/com/rosan/installer/ui/page/settings/home/HomePage.kt

Lines changed: 35 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ import androidx.compose.foundation.layout.fillMaxSize
1212
import androidx.compose.foundation.layout.fillMaxWidth
1313
import androidx.compose.foundation.layout.padding
1414
import androidx.compose.foundation.layout.size
15-
import androidx.compose.foundation.lazy.LazyColumn
1615
import androidx.compose.material3.CardColors
1716
import androidx.compose.material3.CardDefaults
1817
import androidx.compose.material3.ElevatedCard
1918
import androidx.compose.material3.ExperimentalMaterial3Api
19+
import androidx.compose.material3.HorizontalDivider
2020
import androidx.compose.material3.Icon
2121
import androidx.compose.material3.LocalContentColor
2222
import androidx.compose.material3.MaterialTheme
@@ -26,33 +26,43 @@ import androidx.compose.material3.Text
2626
import androidx.compose.material3.TopAppBar
2727
import androidx.compose.runtime.Composable
2828
import androidx.compose.runtime.CompositionLocalProvider
29+
import androidx.compose.runtime.getValue
2930
import androidx.compose.ui.Alignment
3031
import androidx.compose.ui.Modifier
3132
import androidx.compose.ui.platform.LocalContext
3233
import androidx.compose.ui.res.stringResource
3334
import androidx.compose.ui.unit.dp
3435
import androidx.core.content.ContextCompat
3536
import com.google.accompanist.drawablepainter.rememberDrawablePainter
37+
import com.mikepenz.aboutlibraries.ui.compose.android.rememberLibraries
38+
import com.mikepenz.aboutlibraries.ui.compose.m3.LibrariesContainer
3639
import com.rosan.installer.R
3740
import com.rosan.installer.build.Level
3841
import com.rosan.installer.build.RsConfig
3942

4043
@OptIn(ExperimentalMaterial3Api::class)
4144
@Composable
4245
fun HomePage() {
46+
// from https://github.com/mikepenz/AboutLibraries#setup
47+
// Android: Provide resource identifier for the `R.raw.aboutlibraries` file.
48+
// This file is generated by the AboutLibraries Gradle plugin.
49+
val libraries by rememberLibraries(R.raw.aboutlibraries)
50+
4351
Scaffold(
4452
modifier = Modifier
4553
.fillMaxSize(),
4654
topBar = {
4755
TopAppBar(
4856
title = {
4957
Text(text = stringResource(id = R.string.about))
50-
//Text(text = "About")
5158
},
5259
)
5360
},
5461
) {
55-
LazyColumn(
62+
/**
63+
* @author iamr0s
64+
*/
65+
/*LazyColumn(
5666
contentPadding = PaddingValues(16.dp),
5767
modifier = Modifier
5868
.fillMaxSize()
@@ -62,13 +72,32 @@ fun HomePage() {
6272
item {
6373
StatusWidget()
6474
}
65-
/* item {
75+
*//* item {
6676
DonateWidget()
6777
}
6878
item {
6979
DiscussWidget()
70-
}*/
71-
}
80+
}*//*
81+
}*/
82+
/**
83+
* @author wxxsfxyzm
84+
*/
85+
LibrariesContainer(
86+
libraries = libraries,
87+
modifier = Modifier
88+
.fillMaxSize()
89+
.padding(it), // 作为页面主滚动体,填满屏幕
90+
contentPadding = PaddingValues(16.dp),
91+
divider = {
92+
//Spacer(modifier = Modifier.height(16.dp))
93+
// 线 + 间距
94+
HorizontalDivider(modifier = Modifier.padding(vertical = 8.dp))
95+
},
96+
header = {
97+
item {
98+
StatusWidget()
99+
}
100+
})
72101
}
73102
}
74103

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
2-
@Suppress("DSL_SCOPE_VIOLATION")
32
plugins {
43
alias(libs.plugins.agp.lib) apply false
54
alias(libs.plugins.agp.app) apply false
@@ -8,6 +7,7 @@ plugins {
87
alias(libs.plugins.kotlin.jvm) apply false
98
alias(libs.plugins.ksp) apply false
109
alias(libs.plugins.compose.compiler) apply false
10+
alias(libs.plugins.aboutLibraries) apply false
1111
}
1212

1313

gradle/libs.versions.toml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ rikka-shizuku = "13.1.5"
2121
koin-bom = "4.0.1"
2222
materialVersion = "1.12.0"
2323
datastoreCoreAndroid = "1.2.0-alpha02"
24+
aboutLibraries = "12.2.2"
2425

2526
[plugins]
2627
agp-lib = { id = "com.android.library", version.ref = "agp" }
@@ -31,13 +32,16 @@ kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
3132
ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
3233
room = { id = "androidx.room", version.ref = "room" }
3334
compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
35+
aboutLibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutLibraries" }
36+
3437

3538
[libraries]
3639
androidx-core = { group = "androidx.core", name = "core-ktx", version = "1.16.0" }
3740
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
3841
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version = "1.10.1" }
3942
androidx-lifecycle = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version = "2.9.1" }
4043
androidx-datastore-preferences = { group = "androidx.datastore", name = "datastore-preferences", version.ref = "datastoreCoreAndroid" }
44+
# androidx-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "compose" }
4145

4246
material = { module = "com.google.android.material:material", version.ref = "materialVersion" }
4347
compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "compose" }
@@ -101,4 +105,9 @@ iamr0s-dhizuku-api = { group = "io.github.iamr0s", name = "Dhizuku-API", version
101105
# https://github.com/iamr0s/AndroidAppProcess
102106
iamr0s-androidAppProcess = { group = "io.github.iamr0s", name = "AndroidAppProcess", version = "1.3.2" }
103107

104-
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version = "4.9.3" }
108+
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version = "4.9.3" }
109+
110+
# Core module (required for accessing library data)
111+
aboutlibraries-core = { module = "com.mikepenz:aboutlibraries-core", version.ref = "aboutLibraries" }
112+
# Compose UI modules (choose one or both)
113+
aboutlibraries-compose-m3 = { module = "com.mikepenz:aboutlibraries-compose-m3", version.ref = "aboutLibraries" } # Material 3 UI

0 commit comments

Comments
 (0)