feat: clear cache btn in InstallScreen
This commit is contained in:
parent
2699f1017c
commit
33ad23fb01
3 changed files with 27 additions and 5 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue