diff --git a/app/src/main/java/dev/arkbuilders/arkretouch/presentation/edit/EditScreen.kt b/app/src/main/java/dev/arkbuilders/arkretouch/presentation/edit/EditScreen.kt
index e201480..789308b 100644
--- a/app/src/main/java/dev/arkbuilders/arkretouch/presentation/edit/EditScreen.kt
+++ b/app/src/main/java/dev/arkbuilders/arkretouch/presentation/edit/EditScreen.kt
@@ -76,6 +76,7 @@ import dev.arkbuilders.arkretouch.presentation.theme.Gray
import dev.arkbuilders.arkretouch.presentation.utils.askWritePermissions
import dev.arkbuilders.arkretouch.presentation.utils.getActivity
import dev.arkbuilders.arkretouch.presentation.utils.isWritePermGranted
+import dev.arkbuilders.arkretouch.presentation.utils.toast
import java.nio.file.Path
@Composable
@@ -364,6 +365,9 @@ private fun BoxScope.TopMenu(
SavePathDialog(
initialImagePath = imagePath,
fragmentManager = fragmentManager,
+ onEmptyFileName = {
+ context.toast(R.string.ark_retouch_file_name_missing)
+ },
onDismissClick = { viewModel.showSavePathDialog = false },
onPositiveClick = { savePath ->
viewModel.saveImage(savePath)
diff --git a/app/src/main/java/dev/arkbuilders/arkretouch/presentation/edit/SavePathDialog.kt b/app/src/main/java/dev/arkbuilders/arkretouch/presentation/edit/SavePathDialog.kt
index 5dc3df8..9dee1ef 100644
--- a/app/src/main/java/dev/arkbuilders/arkretouch/presentation/edit/SavePathDialog.kt
+++ b/app/src/main/java/dev/arkbuilders/arkretouch/presentation/edit/SavePathDialog.kt
@@ -52,6 +52,7 @@ import kotlin.streams.toList
fun SavePathDialog(
initialImagePath: Path?,
fragmentManager: FragmentManager,
+ onEmptyFileName: () -> Unit,
onDismissClick: () -> Unit,
onPositiveClick: (Path) -> Unit
) {
@@ -128,6 +129,10 @@ fun SavePathDialog(
value = name,
onValueChange = {
name = it
+ if (name.isEmpty()) {
+ onEmptyFileName()
+ return@OutlinedTextField
+ }
currentPath?.let { path ->
imagePath = path.resolve(name)
showOverwriteCheckbox.value = Files.list(path).toList()
@@ -175,7 +180,11 @@ fun SavePathDialog(
Button(
modifier = Modifier.padding(5.dp),
onClick = {
- if (currentPath != null && name != null)
+ if (name.isEmpty()) {
+ onEmptyFileName()
+ return@Button
+ }
+ if (currentPath != null)
onPositiveClick(currentPath!!.resolve(name))
}
) {
diff --git a/app/src/main/java/dev/arkbuilders/arkretouch/presentation/utils/Utils.kt b/app/src/main/java/dev/arkbuilders/arkretouch/presentation/utils/Utils.kt
index 6f8a5d6..480f7ab 100644
--- a/app/src/main/java/dev/arkbuilders/arkretouch/presentation/utils/Utils.kt
+++ b/app/src/main/java/dev/arkbuilders/arkretouch/presentation/utils/Utils.kt
@@ -9,6 +9,8 @@ import android.net.Uri
import android.os.Build
import android.os.Environment
import android.provider.Settings
+import android.widget.Toast
+import androidx.annotation.StringRes
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.ui.geometry.Offset
import androidx.compose.ui.input.pointer.PointerEvent
@@ -98,3 +100,7 @@ fun PointerEvent.calculateRotationFromOneFingerGesture(
}
return angleDelta.toFloat()
}
+
+fun Context.toast(@StringRes stringId: Int) {
+ Toast.makeText(this, getString(stringId), Toast.LENGTH_SHORT).show()
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0ece549..987935c 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -36,4 +36,5 @@
Please enter height
Intensity
Size
+ Please provide file name