ExportScreen: "End scan" -> "New scan" + change behavior
This commit is contained in:
@@ -140,7 +140,7 @@ fun ExportScreenWrapper(
|
||||
onOpen = pdfActions.open,
|
||||
onCloseScan = {
|
||||
if (!uiState.isSaving) {
|
||||
if (uiState.hasSavedOrShared)
|
||||
if (uiState.hasSavedOrShared || uiState.isResumedScan)
|
||||
onCloseScan()
|
||||
else
|
||||
showConfirmationDialog.value = true
|
||||
@@ -149,7 +149,7 @@ fun ExportScreenWrapper(
|
||||
)
|
||||
|
||||
if (showConfirmationDialog.value) {
|
||||
NewDocumentDialog(onCloseScan, showConfirmationDialog, stringResource(R.string.end_scan))
|
||||
NewDocumentDialog(onCloseScan, showConfirmationDialog, stringResource(R.string.scan_button))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -396,7 +396,7 @@ private fun MainActions(
|
||||
}
|
||||
ExportButton(
|
||||
icon = Icons.Default.Done,
|
||||
text = stringResource(R.string.end_scan),
|
||||
text = stringResource(R.string.scan_button),
|
||||
onClick = onCloseScan,
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
isPrimary = uiState.hasSavedOrShared,
|
||||
|
||||
@@ -26,6 +26,7 @@ data class ExportUiState(
|
||||
val savedBundle: SavedBundle? = null,
|
||||
val hasShared: Boolean = false,
|
||||
val error: ExportError? = null,
|
||||
val isResumedScan: Boolean = false,
|
||||
) {
|
||||
val hasSavedOrShared get() = savedBundle != null || hasShared
|
||||
}
|
||||
|
||||
@@ -88,6 +88,12 @@ class ExportViewModel(container: AppContainer, val imageRepository: ImageReposit
|
||||
private val _uiState = MutableStateFlow(ExportUiState())
|
||||
val uiState: StateFlow<ExportUiState> = _uiState.asStateFlow()
|
||||
|
||||
private var resumedScanKeys: List<PageViewKey> = emptyList()
|
||||
init {
|
||||
viewModelScope.launch {
|
||||
resumedScanKeys = currentPageKeys()
|
||||
}
|
||||
}
|
||||
private var lastPreparationKey: ExportPreparationKey? = null
|
||||
private var preparationJob: Job? = null
|
||||
|
||||
@@ -127,7 +133,8 @@ class ExportViewModel(container: AppContainer, val imageRepository: ImageReposit
|
||||
val exportQuality = settingsRepository.exportQuality.first()
|
||||
val exportFormat = settingsRepository.exportFormat.first()
|
||||
|
||||
val key = ExportPreparationKey(currentPageKeys(), exportFormat, exportQuality)
|
||||
val currentPageKeys = currentPageKeys()
|
||||
val key = ExportPreparationKey(currentPageKeys, exportFormat, exportQuality)
|
||||
if (key == lastPreparationKey) {
|
||||
return@launch
|
||||
}
|
||||
@@ -137,7 +144,12 @@ class ExportViewModel(container: AppContainer, val imageRepository: ImageReposit
|
||||
|
||||
preparationJob = launch {
|
||||
_uiState.update {
|
||||
ExportUiState(filename = it.filename, format = exportFormat, isGenerating = true)
|
||||
ExportUiState(
|
||||
filename = it.filename,
|
||||
format = exportFormat,
|
||||
isGenerating = true,
|
||||
isResumedScan = resumedScanKeys == currentPageKeys
|
||||
)
|
||||
}
|
||||
try {
|
||||
val t1 = System.currentTimeMillis()
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">مطوّر</string>
|
||||
<string name="discard_scan">أهمِل المسح</string>
|
||||
<string name="download_dirname">التنزيلات</string>
|
||||
<string name="end_scan">أنهِ المسح</string>
|
||||
<string name="error">خطأ: %1$s</string>
|
||||
<string name="error_context_folder">مجلد التصدير: %1$s</string>
|
||||
<string name="error_context_provider">المزود: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Vývojář</string>
|
||||
<string name="discard_scan">Zrušit skenování</string>
|
||||
<string name="download_dirname">stažených</string>
|
||||
<string name="end_scan">Ukončit skenování</string>
|
||||
<string name="error">Chyba: %1$s</string>
|
||||
<string name="error_context_folder">Složka exportu: %1$s</string>
|
||||
<string name="error_context_provider">Poskytovatel: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Entwickler</string>
|
||||
<string name="discard_scan">Löschen</string>
|
||||
<string name="download_dirname">Downloads</string>
|
||||
<string name="end_scan">Scan beenden</string>
|
||||
<string name="error">Fehler: %1$s</string>
|
||||
<string name="error_context_folder">Exportordner: %1$s</string>
|
||||
<string name="error_context_provider">Anbieter: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Desarrollador</string>
|
||||
<string name="discard_scan">Descartar escaneo</string>
|
||||
<string name="download_dirname">Descargas</string>
|
||||
<string name="end_scan">Finalizar escaneo</string>
|
||||
<string name="error">Error: %1$s</string>
|
||||
<string name="error_context_folder">Carpeta de exportación: %1$s</string>
|
||||
<string name="error_context_provider">Proveedor: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Développeur</string>
|
||||
<string name="discard_scan">Supprimer le scan</string>
|
||||
<string name="download_dirname">Téléchargements</string>
|
||||
<string name="end_scan">Terminer le scan</string>
|
||||
<string name="error">Erreur : %1$s</string>
|
||||
<string name="error_context_folder">Dossier d’export : %1$s</string>
|
||||
<string name="error_context_provider">Fournisseur : %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Desenvolvedor</string>
|
||||
<string name="discard_scan">Descartar escaneo</string>
|
||||
<string name="download_dirname">Descargas</string>
|
||||
<string name="end_scan">Rematar escaneo</string>
|
||||
<string name="error">Erro: %1$s</string>
|
||||
<string name="error_context_folder">Cartafol de exportación: %1$s</string>
|
||||
<string name="error_context_provider">Provedor: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Sviluppatore</string>
|
||||
<string name="discard_scan">Scarta scansione</string>
|
||||
<string name="download_dirname">Download</string>
|
||||
<string name="end_scan">Termina scansione</string>
|
||||
<string name="error">Errore: %1$s</string>
|
||||
<string name="error_context_folder">Cartella di esportazione: %1$s</string>
|
||||
<string name="error_context_provider">Provider: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Desenvolvedor</string>
|
||||
<string name="discard_scan">Descartar digitalização</string>
|
||||
<string name="download_dirname">Downloads</string>
|
||||
<string name="end_scan">Finalizar digitalização</string>
|
||||
<string name="error">Erro: %1$s</string>
|
||||
<string name="error_context_folder">Pasta de exportação: %1$s</string>
|
||||
<string name="error_context_provider">Provedor: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Разработчик</string>
|
||||
<string name="discard_scan">Отказаться</string>
|
||||
<string name="download_dirname">Download</string>
|
||||
<string name="end_scan">Закончить</string>
|
||||
<string name="error">Ошибка: %1$s</string>
|
||||
<string name="error_context_folder">Папка экспорта: %1$s</string>
|
||||
<string name="error_context_provider">Провайдер: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">Geliştirici</string>
|
||||
<string name="discard_scan">Taramayı at</string>
|
||||
<string name="download_dirname">İndirilenler</string>
|
||||
<string name="end_scan">Taramayı bitir</string>
|
||||
<string name="error">Error: %1$s</string>
|
||||
<string name="error_context_folder">Dışa aktarma klasörü: %1$s</string>
|
||||
<string name="error_context_provider">Sağlayıcı: %1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">開發者</string>
|
||||
<string name="discard_scan">捨棄掃描</string>
|
||||
<string name="download_dirname">下載 (Downloads)</string>
|
||||
<string name="end_scan">結束掃描</string>
|
||||
<string name="error">錯誤:%1$s</string>
|
||||
<string name="error_context_folder">匯出資料夾:%1$s</string>
|
||||
<string name="error_context_provider">提供者:%1$s</string>
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<string name="developer">开发者</string>
|
||||
<string name="discard_scan">放弃扫描</string>
|
||||
<string name="download_dirname">下载</string>
|
||||
<string name="end_scan">结束扫描</string>
|
||||
<string name="error">错误: %1$s</string>
|
||||
<string name="error_context_folder">导出文件夹:%1$s</string>
|
||||
<string name="error_context_provider">提供方:%1$s</string>
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
<string name="developer">Developer</string>
|
||||
<string name="discard_scan">Discard scan</string>
|
||||
<string name="download_dirname">Downloads</string>
|
||||
<string name="end_scan">End scan</string>
|
||||
<string name="error">Error: %1$s</string>
|
||||
<string name="error_context_folder">Export folder: %1$s</string>
|
||||
<string name="error_context_provider">Provider: %1$s</string>
|
||||
|
||||
Reference in New Issue
Block a user