diff --git a/app/src/main/java/org/fairscan/app/MainActivity.kt b/app/src/main/java/org/fairscan/app/MainActivity.kt
index 1d3dc9f..a73e1f5 100644
--- a/app/src/main/java/org/fairscan/app/MainActivity.kt
+++ b/app/src/main/java/org/fairscan/app/MainActivity.kt
@@ -55,7 +55,7 @@ import org.fairscan.app.ui.Navigation
import org.fairscan.app.ui.Screen
import org.fairscan.app.ui.components.rememberCameraPermissionState
import org.fairscan.app.ui.screens.document.DocumentScreen
-import org.fairscan.app.ui.screens.edit.EditPageScreen
+import org.fairscan.app.ui.screens.crop.CropScreen
import org.fairscan.app.ui.screens.LibrariesScreen
import org.fairscan.app.ui.screens.about.AboutEvent
import org.fairscan.app.ui.screens.about.AboutScreen
@@ -180,7 +180,7 @@ class MainActivity : ComponentActivity() {
)
}
is Screen.Main.EditImage -> {
- EditPageScreen(
+ CropScreen(
pageId = documentUiState.currentPage?.key?.pageId ?: "",
initState = cropInitialState,
navigation = navigation,
diff --git a/app/src/main/java/org/fairscan/app/MainViewModel.kt b/app/src/main/java/org/fairscan/app/MainViewModel.kt
index b27d424..730e826 100644
--- a/app/src/main/java/org/fairscan/app/MainViewModel.kt
+++ b/app/src/main/java/org/fairscan/app/MainViewModel.kt
@@ -44,7 +44,7 @@ import org.fairscan.app.ui.NavigationState
import org.fairscan.app.ui.Screen
import org.fairscan.app.ui.screens.document.CurrentPageUiState
import org.fairscan.app.ui.screens.document.DocumentUiState
-import org.fairscan.app.ui.screens.edit.CropInitState
+import org.fairscan.app.ui.screens.crop.CropInitState
import org.fairscan.app.ui.state.DocumentUiModel
import org.fairscan.app.ui.state.PageThumbnail
import org.fairscan.imageprocessing.ColorMode
diff --git a/app/src/main/java/org/fairscan/app/ui/screens/edit/EditPageScreen.kt b/app/src/main/java/org/fairscan/app/ui/screens/crop/CropScreen.kt
similarity index 97%
rename from app/src/main/java/org/fairscan/app/ui/screens/edit/EditPageScreen.kt
rename to app/src/main/java/org/fairscan/app/ui/screens/crop/CropScreen.kt
index 46f552f..4f3781a 100644
--- a/app/src/main/java/org/fairscan/app/ui/screens/edit/EditPageScreen.kt
+++ b/app/src/main/java/org/fairscan/app/ui/screens/crop/CropScreen.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import android.annotation.SuppressLint
import android.content.res.Configuration
@@ -64,13 +64,13 @@ import org.fairscan.imageprocessing.Quad
@SuppressLint("UnusedMaterial3ScaffoldPaddingParameter")
@OptIn(ExperimentalMaterial3Api::class)
@Composable
-fun EditPageScreen(
+fun CropScreen(
pageId: String,
initState: CropInitState,
navigation: Navigation,
onUpdatePageQuad: (Quad) -> Unit,
) {
- val state = remember(pageId) { EditPageScreenState() }
+ val state = remember(pageId) { CropScreenState() }
val quadHandler = remember { QuadEditingHandler() }
if (initState is CropInitState.Ready && initState.pageId == pageId && state.bitmap == null) {
@@ -145,7 +145,7 @@ private fun ActionButtons(
@Composable
private fun DragQuadOverlay(
- state: EditPageScreenState,
+ state: CropScreenState,
quadHandler: QuadEditingHandler,
bmp: Bitmap
) {
@@ -154,7 +154,7 @@ private fun DragQuadOverlay(
val containerSize = state.containerSize!!
val displaySize = QuadCoordinateUtils.calculateDisplaySize(bmp.width, bmp.height, containerSize)
val liftWiggleThresholdPx = with(LocalDensity.current) {
- EditPageScreenState.LIFT_WIGGLE_MAX_DISTANCE.toPx()
+ CropScreenState.LIFT_WIGGLE_MAX_DISTANCE.toPx()
}
QuadOverlay(
@@ -238,7 +238,7 @@ private fun DragQuadOverlay(
}
@Composable
-private fun DragMagnifyingGlass(state: EditPageScreenState) {
+private fun DragMagnifyingGlass(state: CropScreenState) {
// showLoupe becomes true immediately on touch-down and stays true for
// one additional second after the finger is lifted.
val showLoupe = remember { mutableStateOf(false) }
@@ -314,7 +314,7 @@ fun EditPageScreenPreview() {
BitmapFactory.decodeStream(input)
}
val quad = Quad(Point(.1, .1), Point(.9, .1), Point(.9, .9), Point(.1, .9))
- EditPageScreen(
+ CropScreen(
pageId = "123",
initState = CropInitState.Ready("123",dummyImage, quad),
navigation = dummyNavigation(),
diff --git a/app/src/main/java/org/fairscan/app/ui/screens/edit/EditPageScreenState.kt b/app/src/main/java/org/fairscan/app/ui/screens/crop/CropScreenState.kt
similarity index 98%
rename from app/src/main/java/org/fairscan/app/ui/screens/edit/EditPageScreenState.kt
rename to app/src/main/java/org/fairscan/app/ui/screens/crop/CropScreenState.kt
index 509da2a..b3969fe 100644
--- a/app/src/main/java/org/fairscan/app/ui/screens/edit/EditPageScreenState.kt
+++ b/app/src/main/java/org/fairscan/app/ui/screens/crop/CropScreenState.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import android.graphics.Bitmap
import androidx.compose.runtime.getValue
@@ -34,7 +34,7 @@ sealed interface CropInitState {
) : CropInitState
}
-class EditPageScreenState {
+class CropScreenState {
companion object {
val LIFT_WIGGLE_MAX_DISTANCE = 8.dp
const val LIFT_WIGGLE_WINDOW_MS = 70L
diff --git a/app/src/main/java/org/fairscan/app/ui/screens/edit/MagnifyingGlass.kt b/app/src/main/java/org/fairscan/app/ui/screens/crop/MagnifyingGlass.kt
similarity index 99%
rename from app/src/main/java/org/fairscan/app/ui/screens/edit/MagnifyingGlass.kt
rename to app/src/main/java/org/fairscan/app/ui/screens/crop/MagnifyingGlass.kt
index a3d6404..2dcbca6 100644
--- a/app/src/main/java/org/fairscan/app/ui/screens/edit/MagnifyingGlass.kt
+++ b/app/src/main/java/org/fairscan/app/ui/screens/crop/MagnifyingGlass.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import android.graphics.Bitmap
import androidx.compose.foundation.Canvas
diff --git a/app/src/main/java/org/fairscan/app/ui/screens/edit/QuadCoordinateUtils.kt b/app/src/main/java/org/fairscan/app/ui/screens/crop/QuadCoordinateUtils.kt
similarity index 98%
rename from app/src/main/java/org/fairscan/app/ui/screens/edit/QuadCoordinateUtils.kt
rename to app/src/main/java/org/fairscan/app/ui/screens/crop/QuadCoordinateUtils.kt
index f0720f8..c5cf499 100644
--- a/app/src/main/java/org/fairscan/app/ui/screens/edit/QuadCoordinateUtils.kt
+++ b/app/src/main/java/org/fairscan/app/ui/screens/crop/QuadCoordinateUtils.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.unit.IntSize
diff --git a/app/src/main/java/org/fairscan/app/ui/screens/edit/QuadEditingHandler.kt b/app/src/main/java/org/fairscan/app/ui/screens/crop/QuadEditingHandler.kt
similarity index 98%
rename from app/src/main/java/org/fairscan/app/ui/screens/edit/QuadEditingHandler.kt
rename to app/src/main/java/org/fairscan/app/ui/screens/crop/QuadEditingHandler.kt
index 61a0c90..350fbd6 100644
--- a/app/src/main/java/org/fairscan/app/ui/screens/edit/QuadEditingHandler.kt
+++ b/app/src/main/java/org/fairscan/app/ui/screens/crop/QuadEditingHandler.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.unit.IntSize
diff --git a/app/src/main/java/org/fairscan/app/ui/screens/edit/QuadOverlay.kt b/app/src/main/java/org/fairscan/app/ui/screens/crop/QuadOverlay.kt
similarity index 98%
rename from app/src/main/java/org/fairscan/app/ui/screens/edit/QuadOverlay.kt
rename to app/src/main/java/org/fairscan/app/ui/screens/crop/QuadOverlay.kt
index 1bd8339..c14fb10 100644
--- a/app/src/main/java/org/fairscan/app/ui/screens/edit/QuadOverlay.kt
+++ b/app/src/main/java/org/fairscan/app/ui/screens/crop/QuadOverlay.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import androidx.compose.foundation.Canvas
import androidx.compose.foundation.layout.fillMaxSize
diff --git a/app/src/test/java/org/fairscan/app/ui/screens/edit/EditPageScreenStateTest.kt b/app/src/test/java/org/fairscan/app/ui/screens/crop/EditPageScreenStateTest.kt
similarity index 92%
rename from app/src/test/java/org/fairscan/app/ui/screens/edit/EditPageScreenStateTest.kt
rename to app/src/test/java/org/fairscan/app/ui/screens/crop/EditPageScreenStateTest.kt
index a1e6be6..4114f93 100644
--- a/app/src/test/java/org/fairscan/app/ui/screens/edit/EditPageScreenStateTest.kt
+++ b/app/src/test/java/org/fairscan/app/ui/screens/crop/EditPageScreenStateTest.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import androidx.compose.ui.geometry.Offset
import org.assertj.core.api.Assertions.assertThat
@@ -42,7 +42,7 @@ class EditPageScreenStateTest {
@Test
fun initialState_hasCorrectDefaults() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
assertThat(state.bitmap).isNull()
assertThat(state.containerSize).isNull()
@@ -57,7 +57,7 @@ class EditPageScreenStateTest {
@Test
fun quadUpdates_workCorrectly() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.updateQuad(testQuad)
assertThat(state.editableQuad).isEqualTo(testQuad)
@@ -68,7 +68,7 @@ class EditPageScreenStateTest {
@Test
fun cornerDragging_managesStateCorrectly() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
// Corner drag starts correctly
for (i in 0 until 4) {
@@ -91,7 +91,7 @@ class EditPageScreenStateTest {
@Test
fun fullDragCycle_preservesQuadAfterDragEnds() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
assertThat(state.isDragging()).isFalse()
state.startCornerDrag(1)
@@ -108,7 +108,7 @@ class EditPageScreenStateTest {
@Test
fun onTouchDown_setsIsTouchingAndDragPosition() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
val pos = Offset(100f, 200f)
state.onTouchDown(pos)
@@ -120,7 +120,7 @@ class EditPageScreenStateTest {
@Test
fun onTouchDown_withCornerIndex_storesCornerIndex() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.onTouchDown(Offset(50f, 50f), cornerIndex = 2)
@@ -131,7 +131,7 @@ class EditPageScreenStateTest {
@Test
fun onTouchDown_withEdgeIndex_storesEdgeIndex() {
// Edge index no longer exists; onTouchDown with no corner index leaves touchDownCornerIndex as -1.
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.onTouchDown(Offset(50f, 50f))
@@ -141,7 +141,7 @@ class EditPageScreenStateTest {
@Test
fun onTouchDown_overwritesPreviousTouchDown() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.onTouchDown(Offset(10f, 10f), cornerIndex = 0)
state.onTouchDown(Offset(50f, 50f), cornerIndex = 3)
@@ -154,7 +154,7 @@ class EditPageScreenStateTest {
@Test
fun onTouchUp_clearsIsTouchingAndTouchDownIndices() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.onTouchDown(Offset(100f, 200f), cornerIndex = 1)
state.onTouchUp()
@@ -165,7 +165,7 @@ class EditPageScreenStateTest {
@Test
fun onTouchUp_preservesDragPosition() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
val pos = Offset(100f, 200f)
state.onTouchDown(pos, cornerIndex = 1)
@@ -177,7 +177,7 @@ class EditPageScreenStateTest {
@Test
fun onTouchUp_whenNotTouching_isIdempotent() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.onTouchUp()
@@ -189,7 +189,7 @@ class EditPageScreenStateTest {
@Test
fun endDrag_preservesDragPosition() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.setInitialQuad(testQuad)
val pos = Offset(100f, 200f)
state.onTouchDown(pos, cornerIndex = 0)
@@ -205,7 +205,7 @@ class EditPageScreenStateTest {
@Test
fun endDrag_doesNotResetTouchDownIndices() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.setInitialQuad(testQuad)
state.onTouchDown(Offset(100f, 200f), cornerIndex = 2)
state.startCornerDrag(2)
@@ -218,7 +218,7 @@ class EditPageScreenStateTest {
@Test
fun rollbackLastDragStepIfLikelyLiftWiggle_revertsRecentSmallStep() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.updateQuad(testQuad)
state.startCornerDrag(0)
@@ -232,7 +232,7 @@ class EditPageScreenStateTest {
@Test
fun rollbackLastDragStepIfLikelyLiftWiggle_keepsLargeStep() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.updateQuad(testQuad)
state.startCornerDrag(0)
@@ -246,7 +246,7 @@ class EditPageScreenStateTest {
@Test
fun rollbackLastDragStepIfLikelyLiftWiggle_keepsOldSmallStep() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.updateQuad(testQuad)
state.startCornerDrag(0)
@@ -260,7 +260,7 @@ class EditPageScreenStateTest {
@Test
fun endDrag_clearsLastDragStepTracking() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.updateQuad(testQuad)
state.startCornerDrag(0)
@@ -277,7 +277,7 @@ class EditPageScreenStateTest {
@Test
fun tapCycle_leavesStateConsistent() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
val pos = Offset(100f, 200f)
state.onTouchDown(pos, cornerIndex = 3)
@@ -294,7 +294,7 @@ class EditPageScreenStateTest {
@Test
fun dragCycle_corner_leavesStateConsistent() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.setInitialQuad(testQuad)
val pos = Offset(100f, 200f)
@@ -321,7 +321,7 @@ class EditPageScreenStateTest {
fun dragCycle_edge_leavesStateConsistent() {
// Edge dragging is no longer supported; this test verifies that a touch
// without a valid corner index simply does not trigger a drag.
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.setInitialQuad(testQuad)
val pos = Offset(150f, 80f)
@@ -339,7 +339,7 @@ class EditPageScreenStateTest {
@Test
fun consecutiveTaps_eachSetsCorrectTouchDownIndex() {
- val state = EditPageScreenState()
+ val state = CropScreenState()
state.onTouchDown(Offset(10f, 10f), cornerIndex = 0)
assertThat(state.touchDownCornerIndex).isEqualTo(0)
diff --git a/app/src/test/java/org/fairscan/app/ui/screens/edit/MagnifyingGlassTest.kt b/app/src/test/java/org/fairscan/app/ui/screens/crop/MagnifyingGlassTest.kt
similarity index 99%
rename from app/src/test/java/org/fairscan/app/ui/screens/edit/MagnifyingGlassTest.kt
rename to app/src/test/java/org/fairscan/app/ui/screens/crop/MagnifyingGlassTest.kt
index 2ae3237..82a5356 100644
--- a/app/src/test/java/org/fairscan/app/ui/screens/edit/MagnifyingGlassTest.kt
+++ b/app/src/test/java/org/fairscan/app/ui/screens/crop/MagnifyingGlassTest.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import androidx.compose.ui.geometry.Offset
import org.assertj.core.api.Assertions.assertThat
diff --git a/app/src/test/java/org/fairscan/app/ui/screens/edit/QuadCoordinateUtilsTest.kt b/app/src/test/java/org/fairscan/app/ui/screens/crop/QuadCoordinateUtilsTest.kt
similarity index 99%
rename from app/src/test/java/org/fairscan/app/ui/screens/edit/QuadCoordinateUtilsTest.kt
rename to app/src/test/java/org/fairscan/app/ui/screens/crop/QuadCoordinateUtilsTest.kt
index 45762a7..bc09fb4 100644
--- a/app/src/test/java/org/fairscan/app/ui/screens/edit/QuadCoordinateUtilsTest.kt
+++ b/app/src/test/java/org/fairscan/app/ui/screens/crop/QuadCoordinateUtilsTest.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.unit.IntSize
diff --git a/app/src/test/java/org/fairscan/app/ui/screens/edit/QuadEditingHandlerTest.kt b/app/src/test/java/org/fairscan/app/ui/screens/crop/QuadEditingHandlerTest.kt
similarity index 99%
rename from app/src/test/java/org/fairscan/app/ui/screens/edit/QuadEditingHandlerTest.kt
rename to app/src/test/java/org/fairscan/app/ui/screens/crop/QuadEditingHandlerTest.kt
index 3fdb094..cb8dd77 100644
--- a/app/src/test/java/org/fairscan/app/ui/screens/edit/QuadEditingHandlerTest.kt
+++ b/app/src/test/java/org/fairscan/app/ui/screens/crop/QuadEditingHandlerTest.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.screens.edit
+package org.fairscan.app.ui.screens.crop
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.unit.IntSize