Add (Re)install/Update button, add installed version

This commit is contained in:
Vendicated 2021-11-11 00:03:33 +01:00
parent 7a5891839c
commit 8698ac687c
No known key found for this signature in database
GPG key ID: EC781ADFB93EFFA3
7 changed files with 87 additions and 16 deletions

View file

@ -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
)
}

View file

@ -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) }
}

View 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>

View file

@ -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>

View 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>

View 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>

View file

@ -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>