From 8698ac687c35553922c186b254908705f4812b1b Mon Sep 17 00:00:00 2001 From: Vendicated Date: Thu, 11 Nov 2021 00:03:33 +0100 Subject: [PATCH] Add (Re)install/Update button, add installed version --- .../com/aliucord/manager/ui/MainActivity.kt | 4 +- .../aliucord/manager/ui/screens/HomeScreen.kt | 57 +++++++++++++++---- .../main/res/drawable/ic_download_24dp.xml | 9 +++ .../res/drawable/ic_history_white_24dp.xml | 10 +++- .../main/res/drawable/ic_reinstall_24dp.xml | 9 +++ app/src/main/res/drawable/ic_update_24dp.xml | 9 +++ app/src/main/res/values/strings.xml | 5 ++ 7 files changed, 87 insertions(+), 16 deletions(-) create mode 100644 app/src/main/res/drawable/ic_download_24dp.xml create mode 100644 app/src/main/res/drawable/ic_reinstall_24dp.xml create mode 100644 app/src/main/res/drawable/ic_update_24dp.xml diff --git a/app/src/main/java/com/aliucord/manager/ui/MainActivity.kt b/app/src/main/java/com/aliucord/manager/ui/MainActivity.kt index 03a4f17..5f2bd60 100644 --- a/app/src/main/java/com/aliucord/manager/ui/MainActivity.kt +++ b/app/src/main/java/com/aliucord/manager/ui/MainActivity.kt @@ -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 ) } diff --git a/app/src/main/java/com/aliucord/manager/ui/screens/HomeScreen.kt b/app/src/main/java/com/aliucord/manager/ui/screens/HomeScreen.kt index 010283e..ae14a81 100644 --- a/app/src/main/java/com/aliucord/manager/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/aliucord/manager/ui/screens/HomeScreen.kt @@ -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(null) } val versions = remember { mutableStateOf(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) } } diff --git a/app/src/main/res/drawable/ic_download_24dp.xml b/app/src/main/res/drawable/ic_download_24dp.xml new file mode 100644 index 0000000..f80cf84 --- /dev/null +++ b/app/src/main/res/drawable/ic_download_24dp.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_history_white_24dp.xml b/app/src/main/res/drawable/ic_history_white_24dp.xml index 94396f7..4bc8bde 100644 --- a/app/src/main/res/drawable/ic_history_white_24dp.xml +++ b/app/src/main/res/drawable/ic_history_white_24dp.xml @@ -1,3 +1,9 @@ - - + + diff --git a/app/src/main/res/drawable/ic_reinstall_24dp.xml b/app/src/main/res/drawable/ic_reinstall_24dp.xml new file mode 100644 index 0000000..d19a881 --- /dev/null +++ b/app/src/main/res/drawable/ic_reinstall_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_update_24dp.xml b/app/src/main/res/drawable/ic_update_24dp.xml new file mode 100644 index 0000000..8c53213 --- /dev/null +++ b/app/src/main/res/drawable/ic_update_24dp.xml @@ -0,0 +1,9 @@ + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 92fcfe7..348e0ce 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -21,4 +21,9 @@ Delete %1$s Changelog Close + Support Server + Back + Install + Reinstall + Update