Remove App.context
This commit is contained in:
@@ -39,11 +39,14 @@ fun UpdateDialog(
|
||||
onConfirmUpdate = {
|
||||
scope.launch(Dispatchers.IO) {
|
||||
runCatching {
|
||||
Updater.downloadApk(latestRelease = latestRelease)
|
||||
Updater.downloadApk(
|
||||
context = context,
|
||||
latestRelease = latestRelease
|
||||
)
|
||||
.collect { downloadStatus ->
|
||||
currentDownloadStatus = downloadStatus
|
||||
if (downloadStatus is Updater.DownloadStatus.Finished) {
|
||||
Updater.installLatestApk()
|
||||
Updater.installLatestApk(context)
|
||||
}
|
||||
}
|
||||
}.onFailure {
|
||||
|
||||
@@ -58,7 +58,7 @@ object Updater {
|
||||
latestRelease
|
||||
}
|
||||
|
||||
suspend fun checkForUpdate(context: Context = App.context): LatestRelease? {
|
||||
suspend fun checkForUpdate(context: Context): LatestRelease? {
|
||||
val currentVersion = context.getCurrentVersion()
|
||||
val latestRelease = getLatestRelease()
|
||||
val latestVersion = latestRelease.name.toVersion()
|
||||
@@ -80,7 +80,7 @@ object Updater {
|
||||
private fun Context.getLatestApk() =
|
||||
File(getExternalFilesDir("apk"), "latest.apk")
|
||||
|
||||
fun installLatestApk(context: Context = App.context) = context.run {
|
||||
fun installLatestApk(context: Context) = context.run {
|
||||
kotlin.runCatching {
|
||||
val contentUri = FileProvider.getUriForFile(this, getFileProvider(), getLatestApk())
|
||||
val intent = Intent(Intent.ACTION_VIEW).apply {
|
||||
@@ -96,7 +96,7 @@ object Updater {
|
||||
}
|
||||
|
||||
suspend fun deleteOutdatedApk(
|
||||
context: Context = App.context,
|
||||
context: Context,
|
||||
) = context.runCatching {
|
||||
val apkFile = getLatestApk()
|
||||
if (apkFile.exists()) {
|
||||
@@ -110,7 +110,7 @@ object Updater {
|
||||
}
|
||||
|
||||
suspend fun downloadApk(
|
||||
context: Context = App.context,
|
||||
context: Context,
|
||||
latestRelease: LatestRelease
|
||||
): Flow<DownloadStatus> = withContext(Dispatchers.IO) {
|
||||
val apkVersion = context.packageManager.getPackageArchiveInfo(
|
||||
|
||||
@@ -3,8 +3,10 @@ package org.xtimms.tokusho.sections.settings.about
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.lazy.LazyColumn
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.outlined.Description
|
||||
import androidx.compose.material.icons.outlined.Info
|
||||
import androidx.compose.material.icons.outlined.Update
|
||||
import androidx.compose.material.icons.outlined.UpdateDisabled
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
@@ -13,6 +15,7 @@ import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalClipboardManager
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalUriHandler
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.AnnotatedString
|
||||
import org.xtimms.tokusho.App
|
||||
@@ -27,6 +30,7 @@ import org.xtimms.tokusho.utils.system.toast
|
||||
|
||||
const val ABOUT_DESTINATION = "about"
|
||||
|
||||
private const val repoUrl = "https://git.kotatsu.app/Xtimms/Tokusho"
|
||||
const val weblate = "https://hosted.weblate.org/engage/tokusho/"
|
||||
|
||||
@Composable
|
||||
@@ -42,6 +46,11 @@ fun AboutView(
|
||||
val info = App.getVersionReport()
|
||||
val versionName = packageInfo.versionName
|
||||
|
||||
val uriHandler = LocalUriHandler.current
|
||||
fun openUrl(url: String) {
|
||||
uriHandler.openUri(url)
|
||||
}
|
||||
|
||||
ScaffoldWithTopAppBar(
|
||||
title = stringResource(R.string.about),
|
||||
navigateBack = navigateBack
|
||||
@@ -50,13 +59,19 @@ fun AboutView(
|
||||
modifier = Modifier
|
||||
.padding(padding)
|
||||
) {
|
||||
item {
|
||||
PreferenceItem(
|
||||
title = stringResource(R.string.readme),
|
||||
description = stringResource(R.string.readme_desc),
|
||||
icon = Icons.Outlined.Description,
|
||||
) { openUrl(repoUrl) }
|
||||
}
|
||||
item {
|
||||
PreferenceSwitchWithDivider(
|
||||
title = stringResource(R.string.auto_update),
|
||||
description = stringResource(R.string.check_for_updates_desc),
|
||||
icon = Icons.Outlined.Update,
|
||||
icon = if (isAutoUpdateEnabled) Icons.Outlined.Update else Icons.Outlined.UpdateDisabled,
|
||||
isChecked = isAutoUpdateEnabled,
|
||||
isSwitchEnabled = true,
|
||||
onClick = navigateToUpdatePage,
|
||||
onChecked = {
|
||||
isAutoUpdateEnabled = !isAutoUpdateEnabled
|
||||
|
||||
@@ -131,7 +131,7 @@ fun UpdateView(
|
||||
runCatching {
|
||||
isLoading = true
|
||||
withContext(Dispatchers.IO) {
|
||||
Updater.checkForUpdate()?.let {
|
||||
Updater.checkForUpdate(context)?.let {
|
||||
latestRelease = it
|
||||
showUpdateDialog = true
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
<string name="off">Off</string>
|
||||
<string name="open_settings">Open settings</string>
|
||||
<string name="auto_update">Automatic updates</string>
|
||||
<string name="check_for_updates_desc">Automatically check for the latest version on GitHub</string>
|
||||
<string name="check_for_updates_desc">Automatically check for the latest version on Gitea</string>
|
||||
<string name="version">Version</string>
|
||||
<string name="info_copied">Info copied to clipboard</string>
|
||||
<string name="enable_auto_update">Enable auto update</string>
|
||||
@@ -57,4 +57,6 @@
|
||||
<string name="no_results_found">No results found</string>
|
||||
<string name="error_no_match">No matches</string>
|
||||
<string name="information_no_manga_category">No manga in this category</string>
|
||||
<string name="readme">README</string>
|
||||
<string name="readme_desc">Check the Gitea repository and the README</string>
|
||||
</resources>
|
||||
Reference in New Issue
Block a user