Add (Re)install/Update button, add installed version
This commit is contained in:
parent
7a5891839c
commit
8698ac687c
7 changed files with 87 additions and 16 deletions
|
|
@ -84,7 +84,7 @@ fun MainActivityLayout() {
|
|||
IconButton(onClick = { navController.popBackStack() }) {
|
||||
Icon(
|
||||
imageVector = Icons.Default.ArrowBack,
|
||||
contentDescription = null,
|
||||
contentDescription = stringResource(R.string.back),
|
||||
tint = MaterialTheme.colors.onPrimary
|
||||
)
|
||||
}
|
||||
|
|
@ -95,7 +95,7 @@ fun MainActivityLayout() {
|
|||
IconButton(onClick = { context.startActivity(Intent(Intent.ACTION_VIEW, Uri.parse("https://discord.gg/${BuildConfig.SUPPORT_SERVER}"))) }) {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.ic_discord),
|
||||
contentDescription = null,
|
||||
contentDescription = stringResource(R.string.support_server),
|
||||
tint = MaterialTheme.colors.onPrimary
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,15 +5,19 @@
|
|||
|
||||
package com.aliucord.manager.ui.screens
|
||||
|
||||
import android.content.pm.PackageManager
|
||||
import android.util.Log
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.material.Card
|
||||
import androidx.compose.material.ExperimentalMaterialApi
|
||||
import androidx.compose.material.ListItem
|
||||
import androidx.compose.material.Text
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material.*
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.SpanStyle
|
||||
import androidx.compose.ui.text.buildAnnotatedString
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
|
|
@ -21,6 +25,7 @@ import androidx.compose.ui.text.withStyle
|
|||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.aliucord.manager.BuildConfig
|
||||
import com.aliucord.manager.R
|
||||
import com.aliucord.manager.ui.components.CommitsList
|
||||
import com.aliucord.manager.utils.Github
|
||||
import com.aliucord.manager.utils.Versions
|
||||
|
|
@ -31,9 +36,15 @@ import kotlinx.coroutines.launch
|
|||
@Composable
|
||||
@Preview
|
||||
fun HomeScreen() {
|
||||
val packageManager = LocalContext.current.packageManager
|
||||
val coroutineScope = rememberCoroutineScope { Dispatchers.IO }
|
||||
val selectedCommit = remember { mutableStateOf<String?>(null) }
|
||||
val versions = remember { mutableStateOf<Versions?>(null) }
|
||||
val installedVersion = remember {
|
||||
try {
|
||||
packageManager.getPackageInfo("com.aliucord", 0).versionName
|
||||
} catch (th: Throwable) { "-" }
|
||||
}
|
||||
|
||||
if (versions.value == null) {
|
||||
LaunchedEffect(null) {
|
||||
|
|
@ -49,9 +60,9 @@ fun HomeScreen() {
|
|||
|
||||
Column(modifier = Modifier.padding(8.dp)) {
|
||||
Card(modifier = Modifier.padding(bottom = 8.dp)) {
|
||||
ListItem(
|
||||
text = { Text("Aliucord") },
|
||||
secondaryText = {
|
||||
Row(modifier = Modifier.padding(16.dp).fillMaxWidth(), horizontalArrangement = Arrangement.SpaceBetween) {
|
||||
Column {
|
||||
Text("Aliucord")
|
||||
Text(buildAnnotatedString {
|
||||
append("Supported version: ")
|
||||
withStyle(SpanStyle(fontWeight = FontWeight.Bold)) {
|
||||
|
|
@ -59,10 +70,32 @@ fun HomeScreen() {
|
|||
versions.value?.versionName ?: "?"
|
||||
)
|
||||
}
|
||||
append("\nInstalled version: ")
|
||||
withStyle(SpanStyle(fontWeight = FontWeight.Bold)) {
|
||||
append(installedVersion)
|
||||
}
|
||||
})
|
||||
},
|
||||
modifier = Modifier.padding(vertical = 4.dp)
|
||||
)
|
||||
}
|
||||
val (drawable, description) = when {
|
||||
installedVersion == "-" -> R.drawable.ic_download_24dp to R.string.install
|
||||
installedVersion.startsWith(
|
||||
versions.value?.versionName ?: "uwu"
|
||||
) -> R.drawable.ic_reinstall_24dp to R.string.reinstall
|
||||
else -> R.drawable.ic_update_24dp to R.string.update
|
||||
}
|
||||
TextButton(onClick = { /* TODO */ }) {
|
||||
Icon(
|
||||
painter = painterResource(drawable),
|
||||
contentDescription = stringResource(description),
|
||||
tint = MaterialTheme.colors.onPrimary,
|
||||
modifier = Modifier
|
||||
.padding(end = 8.dp)
|
||||
.background(MaterialTheme.colors.primary, CircleShape)
|
||||
.padding(6.dp)
|
||||
)
|
||||
Text(stringResource(description), color = MaterialTheme.colors.primary)
|
||||
}
|
||||
}
|
||||
}
|
||||
Card { CommitsList(selectedCommit) }
|
||||
}
|
||||
|
|
|
|||
9
app/src/main/res/drawable/ic_download_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_download_24dp.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="24dp"
|
||||
android:width="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M19,9h-4V3H9v6H5l7,7 7,-7zM5,18v2h14v-2H5z" />
|
||||
</vector>
|
||||
|
|
@ -1,3 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="24dp" android:width="24dp" android:viewportWidth="24" android:viewportHeight="24">
|
||||
<path android:fillColor="#ffffff" android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z"/>
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:height="24dp"
|
||||
android:width="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M13,3c-4.97,0 -9,4.03 -9,9L1,12l3.89,3.89 0.07,0.14L9,12L6,12c0,-3.87 3.13,-7 7,-7s7,3.13 7,7 -3.13,7 -7,7c-1.93,0 -3.68,-0.79 -4.94,-2.06l-1.42,1.42C8.27,19.99 10.51,21 13,21c4.97,0 9,-4.03 9,-9s-4.03,-9 -9,-9zM12,8v5l4.28,2.54 0.72,-1.21 -3.5,-2.08L13.5,8L12,8z" />
|
||||
</vector>
|
||||
|
|
|
|||
9
app/src/main/res/drawable/ic_reinstall_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_reinstall_24dp.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M12,6v3l4,-4 -4,-4v3c-4.42,0 -8,3.58 -8,8 0,1.57 0.46,3.03 1.24,4.26L6.7,14.8c-0.45,-0.83 -0.7,-1.79 -0.7,-2.8 0,-3.31 2.69,-6 6,-6zM18.76,7.74L17.3,9.2c0.44,0.84 0.7,1.79 0.7,2.8 0,3.31 -2.69,6 -6,6v-3l-4,4 4,4v-3c4.42,0 8,-3.58 8,-8 0,-1.57 -0.46,-3.03 -1.24,-4.26z" />
|
||||
</vector>
|
||||
9
app/src/main/res/drawable/ic_update_24dp.xml
Normal file
9
app/src/main/res/drawable/ic_update_24dp.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="24dp"
|
||||
android:height="24dp"
|
||||
android:viewportWidth="24"
|
||||
android:viewportHeight="24">
|
||||
<path
|
||||
android:fillColor="#ffffff"
|
||||
android:pathData="M11,8v5l4.25,2.52l0.77,-1.28l-3.52,-2.09V8H11zM21,10V3l-2.64,2.64C16.74,4.01 14.49,3 12,3c-4.97,0 -9,4.03 -9,9s4.03,9 9,9s9,-4.03 9,-9h-2c0,3.86 -3.14,7 -7,7s-7,-3.14 -7,-7s3.14,-7 7,-7c1.93,0 3.68,0.79 4.95,2.05L14,10H21z" />
|
||||
</vector>
|
||||
|
|
@ -21,4 +21,9 @@
|
|||
<string name="delete">Delete</string>
|
||||
<string name="changelog">%1$s Changelog</string>
|
||||
<string name="close">Close</string>
|
||||
<string name="support_server">Support Server</string>
|
||||
<string name="back">Back</string>
|
||||
<string name="install">Install</string>
|
||||
<string name="reinstall">Reinstall</string>
|
||||
<string name="update">Update</string>
|
||||
</resources>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue