diff --git a/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraPreview.kt b/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraPreview.kt index 87f0baa..1686420 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraPreview.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraPreview.kt @@ -53,10 +53,9 @@ import androidx.core.graphics.scale import androidx.lifecycle.LifecycleOwner import androidx.lifecycle.compose.LocalLifecycleOwner import com.google.common.util.concurrent.ListenableFuture -import org.fairscan.app.ui.components.CameraPermissionState -import org.fairscan.app.ui.state.LiveAnalysisState import org.fairscan.app.domain.Point import org.fairscan.app.domain.scaledTo +import org.fairscan.app.ui.components.CameraPermissionState import java.util.concurrent.ExecutorService import java.util.concurrent.Executors diff --git a/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraScreen.kt b/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraScreen.kt index 232850f..8158466 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraScreen.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraScreen.kt @@ -93,19 +93,8 @@ import org.fairscan.app.ui.components.MyScaffold import org.fairscan.app.ui.components.pageCountText import org.fairscan.app.ui.dummyNavigation import org.fairscan.app.ui.fakeDocument -import org.fairscan.app.ui.state.LiveAnalysisState import org.fairscan.app.ui.theme.FairScanTheme -data class CameraUiState( - val pageCount: Int, - val liveAnalysisState: LiveAnalysisState, - val captureState: CaptureState, - val showDetectionError: Boolean, - val isLandscape: Boolean, - val isDebugMode: Boolean, - val isTorchEnabled: Boolean, -) - const val CAPTURED_IMAGE_DISPLAY_DURATION = 1500L const val ANIMATION_DURATION = 200 diff --git a/app/src/main/java/org/fairscan/app/ui/state/LiveAnalysisState.kt b/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraUiState.kt similarity index 76% rename from app/src/main/java/org/fairscan/app/ui/state/LiveAnalysisState.kt rename to app/src/main/java/org/fairscan/app/ui/screens/camera/CameraUiState.kt index 0c22436..ceed28b 100644 --- a/app/src/main/java/org/fairscan/app/ui/state/LiveAnalysisState.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraUiState.kt @@ -12,7 +12,7 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ -package org.fairscan.app.ui.state +package org.fairscan.app.ui.screens.camera import android.graphics.Bitmap import androidx.compose.runtime.Immutable @@ -24,4 +24,14 @@ data class LiveAnalysisState( val binaryMask: Bitmap? = null, val documentQuad: Quad? = null, val timestamp: Long = System.currentTimeMillis(), -) \ No newline at end of file +) + +data class CameraUiState( + val pageCount: Int, + val liveAnalysisState: LiveAnalysisState, + val captureState: CaptureState, + val showDetectionError: Boolean, + val isLandscape: Boolean, + val isDebugMode: Boolean, + val isTorchEnabled: Boolean, +) diff --git a/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraViewModel.kt b/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraViewModel.kt index ee966cb..0883928 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraViewModel.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/camera/CameraViewModel.kt @@ -33,7 +33,6 @@ import org.fairscan.app.AppContainer import org.fairscan.app.domain.detectDocumentQuad import org.fairscan.app.domain.extractDocument import org.fairscan.app.domain.scaledTo -import org.fairscan.app.ui.state.LiveAnalysisState import java.io.ByteArrayOutputStream sealed interface CameraEvent { diff --git a/app/src/main/java/org/fairscan/app/ui/screens/export/ExportScreen.kt b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportScreen.kt index 4f54142..7423a28 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/export/ExportScreen.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportScreen.kt @@ -76,7 +76,6 @@ import org.fairscan.app.ui.components.NewDocumentDialog import org.fairscan.app.ui.components.isLandscape import org.fairscan.app.ui.components.pageCountText import org.fairscan.app.ui.dummyNavigation -import org.fairscan.app.ui.state.PdfGenerationUiState import org.fairscan.app.ui.theme.FairScanTheme import java.io.File import java.text.SimpleDateFormat diff --git a/app/src/main/java/org/fairscan/app/ui/state/UiState.kt b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportUiState.kt similarity index 87% rename from app/src/main/java/org/fairscan/app/ui/state/UiState.kt rename to app/src/main/java/org/fairscan/app/ui/screens/export/ExportUiState.kt index a7ad806..21e2b4d 100644 --- a/app/src/main/java/org/fairscan/app/ui/state/UiState.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportUiState.kt @@ -12,11 +12,10 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ -package org.fairscan.app.ui.state +package org.fairscan.app.ui.screens.export import android.net.Uri import org.fairscan.app.data.GeneratedPdf -import java.io.File data class PdfGenerationUiState( val isGenerating: Boolean = false, @@ -28,9 +27,3 @@ data class PdfGenerationUiState( ) { val hasSavedOrSharedPdf get() = savedFileUri != null || hasSharedPdf } - -data class RecentDocumentUiState( - val file: File, - val saveTimestamp: Long, - val pageCount: Int, -) diff --git a/app/src/main/java/org/fairscan/app/ui/screens/export/ExportViewModel.kt b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportViewModel.kt index 15e2957..04e9b4d 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/export/ExportViewModel.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/export/ExportViewModel.kt @@ -35,7 +35,6 @@ import org.fairscan.app.AppContainer import org.fairscan.app.data.GeneratedPdf import org.fairscan.app.data.PdfFileManager import org.fairscan.app.ui.screens.home.HomeViewModel -import org.fairscan.app.ui.state.PdfGenerationUiState import java.io.File private const val PDF_MIME_TYPE = "application/pdf" diff --git a/app/src/main/java/org/fairscan/app/ui/screens/home/HomeScreen.kt b/app/src/main/java/org/fairscan/app/ui/screens/home/HomeScreen.kt index 57d1401..06e0d0a 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/home/HomeScreen.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/home/HomeScreen.kt @@ -59,7 +59,6 @@ import org.fairscan.app.ui.components.CameraPermissionState import org.fairscan.app.ui.Navigation import org.fairscan.app.R import org.fairscan.app.ui.components.rememberCameraPermissionState -import org.fairscan.app.ui.state.RecentDocumentUiState import org.fairscan.app.ui.components.AboutScreenNavButton import org.fairscan.app.ui.components.formatDate import org.fairscan.app.ui.components.pageCountText diff --git a/app/src/main/java/org/fairscan/app/ui/screens/home/HomeUiState.kt b/app/src/main/java/org/fairscan/app/ui/screens/home/HomeUiState.kt new file mode 100644 index 0000000..00cd021 --- /dev/null +++ b/app/src/main/java/org/fairscan/app/ui/screens/home/HomeUiState.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2025 Pierre-Yves Nicolas + * + * This program is free software: you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation, either version 3 of the License, or (at your option) + * any later version. + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * You should have received a copy of the GNU General Public License along with + * this program. If not, see . + */ +package org.fairscan.app.ui.screens.home + +import java.io.File + +data class RecentDocumentUiState( + val file: File, + val saveTimestamp: Long, + val pageCount: Int, +) diff --git a/app/src/main/java/org/fairscan/app/ui/screens/home/HomeViewModel.kt b/app/src/main/java/org/fairscan/app/ui/screens/home/HomeViewModel.kt index 5c94b5c..84073f9 100644 --- a/app/src/main/java/org/fairscan/app/ui/screens/home/HomeViewModel.kt +++ b/app/src/main/java/org/fairscan/app/ui/screens/home/HomeViewModel.kt @@ -23,7 +23,6 @@ import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.launch import org.fairscan.app.AppContainer import org.fairscan.app.RecentDocument -import org.fairscan.app.ui.state.RecentDocumentUiState import java.io.File class HomeViewModel(appContainer: AppContainer): ViewModel() {