diff --git a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt
index aeeae3a12..e2eec73dd 100644
--- a/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt
+++ b/app/src/main/java/com/keylesspalace/tusky/components/compose/dialog/CaptionDialog.kt
@@ -25,6 +25,7 @@ import android.text.InputFilter
import android.view.View
import android.view.WindowManager
import android.widget.LinearLayout
+import androidx.appcompat.app.AlertDialog
import androidx.core.os.bundleOf
import androidx.fragment.app.DialogFragment
import com.bumptech.glide.Glide
@@ -139,6 +140,19 @@ class CaptionDialog : DialogFragment() {
)
window?.setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE)
}
+ (dialog as AlertDialog?)?.getButton(AlertDialog.BUTTON_NEGATIVE)?.setOnClickListener {
+ if (arguments?.getString(EXISTING_DESCRIPTION_ARG).orEmpty() != binding.imageDescriptionText.text.toString()) {
+ MaterialAlertDialogBuilder(requireContext())
+ .setMessage(R.string.confirm_dismiss_caption)
+ .setPositiveButton(R.string.yes) { _, _ ->
+ dialog?.dismiss()
+ }
+ .setNegativeButton(R.string.no, null)
+ .show()
+ } else {
+ dialog?.dismiss()
+ }
+ }
}
override fun onSaveInstanceState(outState: Bundle) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0e76353ea..23a55d1c2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -912,4 +912,8 @@
Private mention
Mention
Private reply
+
+ Yes
+ No
+ Discard caption changes?