|
|
@ -4,10 +4,8 @@ import android.content.ActivityNotFoundException
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Intent
|
|
|
|
import android.content.Intent
|
|
|
|
import android.net.Uri
|
|
|
|
import android.net.Uri
|
|
|
|
import android.widget.Toast
|
|
|
|
|
|
|
|
import androidx.activity.compose.rememberLauncherForActivityResult
|
|
|
|
import androidx.activity.compose.rememberLauncherForActivityResult
|
|
|
|
import androidx.activity.result.contract.ActivityResultContracts
|
|
|
|
import androidx.activity.result.contract.ActivityResultContracts
|
|
|
|
import androidx.compose.foundation.layout.Column
|
|
|
|
|
|
|
|
import androidx.compose.foundation.layout.fillMaxSize
|
|
|
|
import androidx.compose.foundation.layout.fillMaxSize
|
|
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
|
|
import androidx.compose.foundation.layout.fillMaxWidth
|
|
|
|
import androidx.compose.foundation.layout.padding
|
|
|
|
import androidx.compose.foundation.layout.padding
|
|
|
@ -28,6 +26,7 @@ import cafe.adriel.voyager.core.model.rememberScreenModel
|
|
|
|
import cafe.adriel.voyager.navigator.LocalNavigator
|
|
|
|
import cafe.adriel.voyager.navigator.LocalNavigator
|
|
|
|
import cafe.adriel.voyager.navigator.currentOrThrow
|
|
|
|
import cafe.adriel.voyager.navigator.currentOrThrow
|
|
|
|
import eu.kanade.presentation.components.AppBar
|
|
|
|
import eu.kanade.presentation.components.AppBar
|
|
|
|
|
|
|
|
import eu.kanade.presentation.components.WarningBanner
|
|
|
|
import eu.kanade.presentation.util.Screen
|
|
|
|
import eu.kanade.presentation.util.Screen
|
|
|
|
import eu.kanade.tachiyomi.data.backup.create.BackupCreateFlags
|
|
|
|
import eu.kanade.tachiyomi.data.backup.create.BackupCreateFlags
|
|
|
|
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob
|
|
|
|
import eu.kanade.tachiyomi.data.backup.create.BackupCreateJob
|
|
|
@ -77,22 +76,23 @@ class CreateBackupScreen : Screen() {
|
|
|
|
)
|
|
|
|
)
|
|
|
|
},
|
|
|
|
},
|
|
|
|
) { contentPadding ->
|
|
|
|
) { contentPadding ->
|
|
|
|
Column(
|
|
|
|
LazyColumn(
|
|
|
|
modifier = Modifier
|
|
|
|
modifier = Modifier
|
|
|
|
.padding(contentPadding)
|
|
|
|
.padding(contentPadding)
|
|
|
|
.fillMaxSize(),
|
|
|
|
.fillMaxSize(),
|
|
|
|
) {
|
|
|
|
) {
|
|
|
|
LazyColumn(
|
|
|
|
if (DeviceUtil.isMiui && DeviceUtil.isMiuiOptimizationDisabled()) {
|
|
|
|
modifier = Modifier
|
|
|
|
item {
|
|
|
|
.weight(1f)
|
|
|
|
WarningBanner(MR.strings.restore_miui_warning)
|
|
|
|
.padding(horizontal = MaterialTheme.padding.medium),
|
|
|
|
}
|
|
|
|
) {
|
|
|
|
}
|
|
|
|
item {
|
|
|
|
item {
|
|
|
|
LabeledCheckbox(
|
|
|
|
LabeledCheckbox(
|
|
|
|
label = stringResource(MR.strings.manga),
|
|
|
|
label = stringResource(MR.strings.manga),
|
|
|
|
checked = true,
|
|
|
|
checked = true,
|
|
|
|
onCheckedChange = {},
|
|
|
|
onCheckedChange = {},
|
|
|
|
enabled = false,
|
|
|
|
enabled = false,
|
|
|
|
|
|
|
|
modifier = Modifier.padding(horizontal = MaterialTheme.padding.medium),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
BackupChoices.forEach { (k, v) ->
|
|
|
|
BackupChoices.forEach { (k, v) ->
|
|
|
@ -103,6 +103,7 @@ class CreateBackupScreen : Screen() {
|
|
|
|
onCheckedChange = {
|
|
|
|
onCheckedChange = {
|
|
|
|
model.toggleFlag(k)
|
|
|
|
model.toggleFlag(k)
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
modifier = Modifier.padding(horizontal = MaterialTheme.padding.medium),
|
|
|
|
)
|
|
|
|
)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -116,9 +117,6 @@ class CreateBackupScreen : Screen() {
|
|
|
|
.fillMaxWidth(),
|
|
|
|
.fillMaxWidth(),
|
|
|
|
onClick = {
|
|
|
|
onClick = {
|
|
|
|
if (!BackupCreateJob.isManualJobRunning(context)) {
|
|
|
|
if (!BackupCreateJob.isManualJobRunning(context)) {
|
|
|
|
if (DeviceUtil.isMiui && DeviceUtil.isMiuiOptimizationDisabled()) {
|
|
|
|
|
|
|
|
context.toast(MR.strings.restore_miui_warning, Toast.LENGTH_LONG)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
chooseBackupDir.launch(Backup.getFilename())
|
|
|
|
chooseBackupDir.launch(Backup.getFilename())
|
|
|
|
} catch (e: ActivityNotFoundException) {
|
|
|
|
} catch (e: ActivityNotFoundException) {
|
|
|
@ -136,7 +134,6 @@ class CreateBackupScreen : Screen() {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private class CreateBackupScreenModel : StateScreenModel<CreateBackupScreenModel.State>(State()) {
|
|
|
|
private class CreateBackupScreenModel : StateScreenModel<CreateBackupScreenModel.State>(State()) {
|
|
|
|