feat: clear cache btn in InstallScreen

This commit is contained in:
Diamond 2022-11-05 14:15:15 -07:00
parent 2699f1017c
commit 33ad23fb01
No known key found for this signature in database
GPG key ID: DCBE5952BB3B6420
3 changed files with 27 additions and 5 deletions

View file

@ -69,7 +69,7 @@ class MainActivity : ComponentActivity() {
when (dest) {
is AppDestination.Home -> HomeScreen(
onClickInstall = { data ->
navController.replaceAll(AppDestination.Install(data))
navController.navigate(AppDestination.Install(data))
}
)
is AppDestination.Plugins -> PluginsScreen()

View file

@ -17,7 +17,6 @@ import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.unit.dp
@ -27,12 +26,9 @@ import com.aliucord.manager.ui.dialog.DiscordType
import com.aliucord.manager.ui.dialog.DownloadMethod
import com.aliucord.manager.ui.viewmodel.InstallViewModel
import com.aliucord.manager.ui.viewmodel.InstallViewModel.InstallStepGroup
import com.aliucord.manager.util.copyToClipboard
import com.aliucord.manager.util.saveFile
import kotlinx.parcelize.Parcelize
import org.koin.androidx.compose.getViewModel
import org.koin.core.parameter.parametersOf
import java.text.SimpleDateFormat
import java.util.*
@Parcelize
@ -99,6 +95,17 @@ fun InstallerScreen(
)
}
if (viewModel.isFinished && viewModel.stacktrace.isEmpty()) {
Row(
horizontalArrangement = Arrangement.End,
modifier = Modifier.fillMaxWidth()
) {
FilledTonalButton(onClick = viewModel::clearCache) {
Text(stringResource(R.string.setting_clear_cache))
}
}
}
if (viewModel.stacktrace.isNotEmpty()) {
SelectionContainer {
Text(
@ -118,6 +125,12 @@ fun InstallerScreen(
horizontalArrangement = Arrangement.spacedBy(10.dp, Alignment.End),
modifier = Modifier.fillMaxWidth()
) {
FilledTonalButton(onClick = viewModel::clearCache) {
Text(stringResource(R.string.setting_clear_cache))
}
Spacer(Modifier.weight(1f, true))
OutlinedButton(onClick = viewModel::saveDebugToFile) {
Text(stringResource(R.string.installer_save_file))
}

View file

@ -41,6 +41,9 @@ class InstallViewModel(
var returnToHome by mutableStateOf(false)
var isFinished by mutableStateOf(false)
private set
var stacktrace by mutableStateOf("")
private set
@ -77,6 +80,11 @@ class InstallViewModel(
application.saveFile(name, "$debugInfo\n\n$stacktrace")
}
fun clearCache() {
externalCacheDir.deleteRecursively()
application.showToast(R.string.action_cleared_cache)
}
private val installJob = viewModelScope.launch(Dispatchers.Main) {
if (installationRunning.getAndSet(true)) {
return@launch
@ -89,6 +97,7 @@ class InstallViewModel(
DiscordType.KOTLIN -> installKotlin()
}
isFinished = true
delay(20000)
returnToHome = true
} catch (t: Throwable) {