diff --git a/app/src/androidTest/java/org/fairscan/app/DocumentDetectionTest.kt b/app/src/androidTest/java/org/fairscan/app/domain/DocumentDetectionTest.kt similarity index 95% rename from app/src/androidTest/java/org/fairscan/app/DocumentDetectionTest.kt rename to app/src/androidTest/java/org/fairscan/app/domain/DocumentDetectionTest.kt index 6060474..9a542be 100644 --- a/app/src/androidTest/java/org/fairscan/app/DocumentDetectionTest.kt +++ b/app/src/androidTest/java/org/fairscan/app/domain/DocumentDetectionTest.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.domain import android.content.Context import android.graphics.Bitmap @@ -51,8 +51,8 @@ class DocumentDetectionTest { segmentationService.runSegmentationAndReturn(bitmap, 0) } if (segmentationResult != null) { - val mask = segmentationResult.segmentation.toBinaryMask() - val quad = detectDocumentQuad(mask) + val mask = segmentationResult.segmentation + val quad = detectDocumentQuad(mask, false) if (quad != null) { val resizedQuad = quad.scaledTo(mask.width, mask.height, bitmap.width, bitmap.height) diff --git a/app/src/main/java/org/fairscan/app/LiveAnalysisState.kt b/app/src/main/java/org/fairscan/app/LiveAnalysisState.kt index 50b5686..93b9bfa 100644 --- a/app/src/main/java/org/fairscan/app/LiveAnalysisState.kt +++ b/app/src/main/java/org/fairscan/app/LiveAnalysisState.kt @@ -16,6 +16,7 @@ package org.fairscan.app import android.graphics.Bitmap import androidx.compose.runtime.Immutable +import org.fairscan.app.domain.Quad @Immutable data class LiveAnalysisState( diff --git a/app/src/main/java/org/fairscan/app/MainViewModel.kt b/app/src/main/java/org/fairscan/app/MainViewModel.kt index 1e2ae1a..97f3a5e 100644 --- a/app/src/main/java/org/fairscan/app/MainViewModel.kt +++ b/app/src/main/java/org/fairscan/app/MainViewModel.kt @@ -40,6 +40,10 @@ import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import org.fairscan.app.data.recentDocumentsDataStore +import org.fairscan.app.domain.ImageSegmentationService +import org.fairscan.app.domain.detectDocumentQuad +import org.fairscan.app.domain.extractDocument +import org.fairscan.app.domain.scaledTo import org.fairscan.app.ui.PdfGenerationUiState import org.fairscan.app.ui.RecentDocumentUiState import org.fairscan.app.view.DocumentUiModel diff --git a/app/src/main/java/org/fairscan/app/DocumentDetection.kt b/app/src/main/java/org/fairscan/app/domain/DocumentDetection.kt similarity index 96% rename from app/src/main/java/org/fairscan/app/DocumentDetection.kt rename to app/src/main/java/org/fairscan/app/domain/DocumentDetection.kt index afe9121..7db33d6 100644 --- a/app/src/main/java/org/fairscan/app/DocumentDetection.kt +++ b/app/src/main/java/org/fairscan/app/domain/DocumentDetection.kt @@ -12,14 +12,14 @@ * 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.domain import android.graphics.Bitmap import androidx.core.graphics.createBitmap -import org.fairscan.app.ImageSegmentationService.Segmentation -import org.fairscan.app.quad.detectDocumentQuadFromProbmap -import org.fairscan.app.quad.findQuadFromRightAngles -import org.fairscan.app.quad.minAreaRect +import org.fairscan.app.domain.ImageSegmentationService.Segmentation +import org.fairscan.app.domain.quad.detectDocumentQuadFromProbmap +import org.fairscan.app.domain.quad.findQuadFromRightAngles +import org.fairscan.app.domain.quad.minAreaRect import org.opencv.android.Utils import org.opencv.core.Core import org.opencv.core.CvType diff --git a/app/src/main/java/org/fairscan/app/Geometry.kt b/app/src/main/java/org/fairscan/app/domain/Geometry.kt similarity index 97% rename from app/src/main/java/org/fairscan/app/Geometry.kt rename to app/src/main/java/org/fairscan/app/domain/Geometry.kt index 76b3aa0..8209444 100644 --- a/app/src/main/java/org/fairscan/app/Geometry.kt +++ b/app/src/main/java/org/fairscan/app/domain/Geometry.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.domain import kotlin.math.atan2 +import kotlin.math.hypot data class Point(val x: Double, val y: Double) { constructor(x: Int, y: Int) : this (x.toDouble(), y.toDouble()) @@ -29,7 +30,7 @@ data class Line(val from: Point, val to: Point) { fun norm(p1: Point, p2: Point): Double { val dx = (p2.x - p1.x) val dy = (p2.y - p1.y) - return kotlin.math.hypot(dx, dy) + return hypot(dx, dy) } data class Quad( diff --git a/app/src/main/java/org/fairscan/app/ImageSegmentation.kt b/app/src/main/java/org/fairscan/app/domain/ImageSegmentation.kt similarity index 99% rename from app/src/main/java/org/fairscan/app/ImageSegmentation.kt rename to app/src/main/java/org/fairscan/app/domain/ImageSegmentation.kt index a753594..4f1c1d2 100644 --- a/app/src/main/java/org/fairscan/app/ImageSegmentation.kt +++ b/app/src/main/java/org/fairscan/app/domain/ImageSegmentation.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.domain import android.content.Context import android.graphics.Bitmap diff --git a/app/src/main/java/org/fairscan/app/PostProcessing.kt b/app/src/main/java/org/fairscan/app/domain/PostProcessing.kt similarity index 98% rename from app/src/main/java/org/fairscan/app/PostProcessing.kt rename to app/src/main/java/org/fairscan/app/domain/PostProcessing.kt index 1c2c531..65af518 100644 --- a/app/src/main/java/org/fairscan/app/PostProcessing.kt +++ b/app/src/main/java/org/fairscan/app/domain/PostProcessing.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.domain import android.util.Log import org.opencv.core.Core import org.opencv.core.CvType import org.opencv.core.Mat -import org.opencv.core.MatOfDouble import org.opencv.core.Scalar import org.opencv.core.Size import org.opencv.imgproc.Imgproc diff --git a/app/src/main/java/org/fairscan/app/quad/AdaptiveThreshold.kt b/app/src/main/java/org/fairscan/app/domain/quad/AdaptiveThreshold.kt similarity index 99% rename from app/src/main/java/org/fairscan/app/quad/AdaptiveThreshold.kt rename to app/src/main/java/org/fairscan/app/domain/quad/AdaptiveThreshold.kt index da5ed18..4be20a1 100644 --- a/app/src/main/java/org/fairscan/app/quad/AdaptiveThreshold.kt +++ b/app/src/main/java/org/fairscan/app/domain/quad/AdaptiveThreshold.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.quad +package org.fairscan.app.domain.quad import org.opencv.core.Mat import org.opencv.core.CvType diff --git a/app/src/main/java/org/fairscan/app/quad/MinAreaRect.kt b/app/src/main/java/org/fairscan/app/domain/quad/MinAreaRect.kt similarity index 97% rename from app/src/main/java/org/fairscan/app/quad/MinAreaRect.kt rename to app/src/main/java/org/fairscan/app/domain/quad/MinAreaRect.kt index fcf824d..2e42dcf 100644 --- a/app/src/main/java/org/fairscan/app/quad/MinAreaRect.kt +++ b/app/src/main/java/org/fairscan/app/domain/quad/MinAreaRect.kt @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ -package org.fairscan.app.quad +package org.fairscan.app.domain.quad -import org.fairscan.app.Point +import org.fairscan.app.domain.Point import kotlin.math.cos import kotlin.math.sin diff --git a/app/src/main/java/org/fairscan/app/quad/RightAngles.kt b/app/src/main/java/org/fairscan/app/domain/quad/RightAngles.kt similarity index 98% rename from app/src/main/java/org/fairscan/app/quad/RightAngles.kt rename to app/src/main/java/org/fairscan/app/domain/quad/RightAngles.kt index 61666bb..b79cccd 100644 --- a/app/src/main/java/org/fairscan/app/quad/RightAngles.kt +++ b/app/src/main/java/org/fairscan/app/domain/quad/RightAngles.kt @@ -12,9 +12,9 @@ * You should have received a copy of the GNU General Public License along with * this program. If not, see . */ -package org.fairscan.app.quad +package org.fairscan.app.domain.quad -import org.fairscan.app.Point +import org.fairscan.app.domain.Point import kotlin.math.abs import kotlin.math.acos import kotlin.math.sqrt diff --git a/app/src/main/java/org/fairscan/app/view/CameraPreview.kt b/app/src/main/java/org/fairscan/app/view/CameraPreview.kt index 402a2b4..513872e 100644 --- a/app/src/main/java/org/fairscan/app/view/CameraPreview.kt +++ b/app/src/main/java/org/fairscan/app/view/CameraPreview.kt @@ -55,8 +55,8 @@ import androidx.lifecycle.compose.LocalLifecycleOwner import com.google.common.util.concurrent.ListenableFuture import org.fairscan.app.CameraPermissionState import org.fairscan.app.LiveAnalysisState -import org.fairscan.app.Point -import org.fairscan.app.scaledTo +import org.fairscan.app.domain.Point +import org.fairscan.app.domain.scaledTo import java.util.concurrent.ExecutorService import java.util.concurrent.Executors diff --git a/app/src/test/java/org/fairscan/app/GeometryTest.kt b/app/src/test/java/org/fairscan/app/domain/GeometryTest.kt similarity index 98% rename from app/src/test/java/org/fairscan/app/GeometryTest.kt rename to app/src/test/java/org/fairscan/app/domain/GeometryTest.kt index 1242e42..a5dfc1c 100644 --- a/app/src/test/java/org/fairscan/app/GeometryTest.kt +++ b/app/src/test/java/org/fairscan/app/domain/GeometryTest.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.domain import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThatThrownBy