summaryrefslogtreecommitdiff
path: root/android/src/com/artifex
diff options
context:
space:
mode:
authorPaul Gardiner <paulg.artifex@glidos.net>2012-11-26 16:05:50 +0000
committerPaul Gardiner <paulg.artifex@glidos.net>2012-11-27 10:40:24 +0000
commit60a541fce201f6c195fb4131f7a45c2b24243eaf (patch)
treef9789d25fea3d759cfaf0f0cd1008b8d91d4af00 /android/src/com/artifex
parent4c2e89d670317b898ece971c7b4d111e473c9575 (diff)
downloadmupdf-60a541fce201f6c195fb4131f7a45c2b24243eaf.tar.xz
Android: implement saving of form data
Diffstat (limited to 'android/src/com/artifex')
-rw-r--r--android/src/com/artifex/mupdf/MuPDFActivity.java22
-rw-r--r--android/src/com/artifex/mupdf/MuPDFCore.java10
2 files changed, 32 insertions, 0 deletions
diff --git a/android/src/com/artifex/mupdf/MuPDFActivity.java b/android/src/com/artifex/mupdf/MuPDFActivity.java
index 194bc3d9..a177d092 100644
--- a/android/src/com/artifex/mupdf/MuPDFActivity.java
+++ b/android/src/com/artifex/mupdf/MuPDFActivity.java
@@ -919,4 +919,26 @@ public class MuPDFActivity extends Activity
super.onStop();
}
+
+ @Override
+ public void onBackPressed() {
+ if (core.hasChanges()) {
+ DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() {
+ public void onClick(DialogInterface dialog, int which) {
+ if (which == AlertDialog.BUTTON_POSITIVE)
+ core.save();
+
+ finish();
+ }
+ };
+ AlertDialog alert = mAlertBuilder.create();
+ alert.setTitle("MuPDF");
+ alert.setMessage("Document has changes. Save them?");
+ alert.setButton(AlertDialog.BUTTON_POSITIVE, "Yes", listener);
+ alert.setButton(AlertDialog.BUTTON_NEGATIVE, "No", listener);
+ alert.show();
+ } else {
+ super.onBackPressed();
+ }
+ }
}
diff --git a/android/src/com/artifex/mupdf/MuPDFCore.java b/android/src/com/artifex/mupdf/MuPDFCore.java
index 98413504..13718508 100644
--- a/android/src/com/artifex/mupdf/MuPDFCore.java
+++ b/android/src/com/artifex/mupdf/MuPDFCore.java
@@ -48,6 +48,8 @@ public class MuPDFCore
private static native void startAlertsInternal();
private static native void stopAlertsInternal();
private static native void destroying();
+ private static native boolean hasChangesInternal();
+ private static native void saveInternal();
public static native boolean javascriptSupported();
@@ -196,4 +198,12 @@ public class MuPDFCore
public synchronized boolean authenticatePassword(String password) {
return authenticatePasswordInternal(password);
}
+
+ public synchronized boolean hasChanges() {
+ return hasChangesInternal();
+ }
+
+ public synchronized void save() {
+ saveInternal();
+ }
}