diff --git a/app/src/main/java/org/fairscan/app/MainActivity.kt b/app/src/main/java/org/fairscan/app/MainActivity.kt
index 75d1e13..0b3c652 100644
--- a/app/src/main/java/org/fairscan/app/MainActivity.kt
+++ b/app/src/main/java/org/fairscan/app/MainActivity.kt
@@ -46,6 +46,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.suspendCancellableCoroutine
import kotlinx.coroutines.withContext
+import org.fairscan.app.data.GeneratedPdf
import org.fairscan.app.ui.theme.FairScanTheme
import org.fairscan.app.view.AboutScreen
import org.fairscan.app.view.CameraScreen
diff --git a/app/src/main/java/org/fairscan/app/MainViewModel.kt b/app/src/main/java/org/fairscan/app/MainViewModel.kt
index 97f3a5e..8005bef 100644
--- a/app/src/main/java/org/fairscan/app/MainViewModel.kt
+++ b/app/src/main/java/org/fairscan/app/MainViewModel.kt
@@ -39,6 +39,9 @@ import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.flow.update
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
+import org.fairscan.app.data.GeneratedPdf
+import org.fairscan.app.data.ImageRepository
+import org.fairscan.app.data.PdfFileManager
import org.fairscan.app.data.recentDocumentsDataStore
import org.fairscan.app.domain.ImageSegmentationService
import org.fairscan.app.domain.detectDocumentQuad
@@ -71,7 +74,8 @@ class MainViewModel(
PdfFileManager(
File(context.cacheDir, "pdfs"),
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
- AndroidPdfWriter()),
+ AndroidPdfWriter()
+ ),
context.recentDocumentsDataStore,
) as T
}
@@ -385,12 +389,6 @@ class MainViewModel(
}
}
-data class GeneratedPdf(
- val file: File,
- val sizeInBytes: Long,
- val pageCount: Int,
-)
-
// TODO Move somewhere else: ViewModel should not depend on that
data class PdfGenerationActions(
val startGeneration: () -> Unit,
diff --git a/app/src/main/java/org/fairscan/app/PdfGeneration.kt b/app/src/main/java/org/fairscan/app/PdfGeneration.kt
index 683a1ed..8ac8dc8 100644
--- a/app/src/main/java/org/fairscan/app/PdfGeneration.kt
+++ b/app/src/main/java/org/fairscan/app/PdfGeneration.kt
@@ -20,6 +20,7 @@ import com.tom_roush.pdfbox.pdmodel.PDPageContentStream
import com.tom_roush.pdfbox.pdmodel.PDPageContentStream.AppendMode
import com.tom_roush.pdfbox.pdmodel.common.PDRectangle
import com.tom_roush.pdfbox.pdmodel.graphics.image.JPEGFactory
+import org.fairscan.app.data.PdfWriter
import java.io.OutputStream
class AndroidPdfWriter : PdfWriter {
diff --git a/app/src/main/java/org/fairscan/app/ImageRepository.kt b/app/src/main/java/org/fairscan/app/data/ImageRepository.kt
similarity index 98%
rename from app/src/main/java/org/fairscan/app/ImageRepository.kt
rename to app/src/main/java/org/fairscan/app/data/ImageRepository.kt
index da816c9..45be75e 100644
--- a/app/src/main/java/org/fairscan/app/ImageRepository.kt
+++ b/app/src/main/java/org/fairscan/app/data/ImageRepository.kt
@@ -12,13 +12,12 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
-package org.fairscan.app
+package org.fairscan.app.data
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toImmutableList
import kotlinx.serialization.json.Json
-import org.fairscan.app.data.DocumentMetadata
-import org.fairscan.app.data.Page
+import org.fairscan.app.ImageTransformations
import java.io.File
const val SCAN_DIR_NAME = "scanned_pages"
diff --git a/app/src/main/java/org/fairscan/app/PdfFileManager.kt b/app/src/main/java/org/fairscan/app/data/PdfFileManager.kt
similarity index 95%
rename from app/src/main/java/org/fairscan/app/PdfFileManager.kt
rename to app/src/main/java/org/fairscan/app/data/PdfFileManager.kt
index 76bd8ee..5ab082f 100644
--- a/app/src/main/java/org/fairscan/app/PdfFileManager.kt
+++ b/app/src/main/java/org/fairscan/app/data/PdfFileManager.kt
@@ -12,12 +12,18 @@
* You should have received a copy of the GNU General Public License along with
* this program. If not, see .
*/
-package org.fairscan.app
+package org.fairscan.app.data
import java.io.File
import java.io.FileOutputStream
import java.io.OutputStream
+data class GeneratedPdf(
+ val file: File,
+ val sizeInBytes: Long,
+ val pageCount: Int,
+)
+
fun interface PdfWriter {
fun writePdfFromJpegs(jpegs: Sequence, outputStream: OutputStream): Int
}
diff --git a/app/src/main/java/org/fairscan/app/ui/UiState.kt b/app/src/main/java/org/fairscan/app/ui/UiState.kt
index ea70277..250fce4 100644
--- a/app/src/main/java/org/fairscan/app/ui/UiState.kt
+++ b/app/src/main/java/org/fairscan/app/ui/UiState.kt
@@ -15,7 +15,7 @@
package org.fairscan.app.ui
import android.net.Uri
-import org.fairscan.app.GeneratedPdf
+import org.fairscan.app.data.GeneratedPdf
import java.io.File
data class PdfGenerationUiState(
diff --git a/app/src/main/java/org/fairscan/app/view/ExportScreen.kt b/app/src/main/java/org/fairscan/app/view/ExportScreen.kt
index 6a1fe04..72f30d0 100644
--- a/app/src/main/java/org/fairscan/app/view/ExportScreen.kt
+++ b/app/src/main/java/org/fairscan/app/view/ExportScreen.kt
@@ -66,7 +66,7 @@ import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
-import org.fairscan.app.GeneratedPdf
+import org.fairscan.app.data.GeneratedPdf
import org.fairscan.app.Navigation
import org.fairscan.app.PdfGenerationActions
import org.fairscan.app.R
diff --git a/app/src/test/java/org/fairscan/app/ImageRepositoryTest.kt b/app/src/test/java/org/fairscan/app/data/ImageRepositoryTest.kt
similarity index 98%
rename from app/src/test/java/org/fairscan/app/ImageRepositoryTest.kt
rename to app/src/test/java/org/fairscan/app/data/ImageRepositoryTest.kt
index 0b99b68..3989c25 100644
--- a/app/src/test/java/org/fairscan/app/ImageRepositoryTest.kt
+++ b/app/src/test/java/org/fairscan/app/data/ImageRepositoryTest.kt
@@ -12,9 +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
+package org.fairscan.app.data
import org.assertj.core.api.Assertions.assertThat
+import org.fairscan.app.ImageTransformations
import org.junit.Rule
import org.junit.Test
import org.junit.rules.TemporaryFolder
diff --git a/app/src/test/java/org/fairscan/app/PdfFileManagerTest.kt b/app/src/test/java/org/fairscan/app/data/PdfFileManagerTest.kt
similarity index 99%
rename from app/src/test/java/org/fairscan/app/PdfFileManagerTest.kt
rename to app/src/test/java/org/fairscan/app/data/PdfFileManagerTest.kt
index 0172a42..3d4e11c 100644
--- a/app/src/test/java/org/fairscan/app/PdfFileManagerTest.kt
+++ b/app/src/test/java/org/fairscan/app/data/PdfFileManagerTest.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
+package org.fairscan.app.data
import org.assertj.core.api.Assertions.assertThat
import org.junit.Test