summaryrefslogtreecommitdiff
path: root/android/src/com/artifex/mupdfdemo/MuPDFActivity.java
diff options
context:
space:
mode:
authorPaul Gardiner <paulg.artifex@glidos.net>2013-03-25 12:59:54 +0000
committerPaul Gardiner <paulg.artifex@glidos.net>2013-03-25 12:59:54 +0000
commit199abe0069381d79fc34c86268e408083ad18397 (patch)
tree0dbefb3a08a5d44dae2d5e98635241a7224b231d /android/src/com/artifex/mupdfdemo/MuPDFActivity.java
parent41f10c71dbae05fb538f51a495ef7aaa1861fd5d (diff)
downloadmupdf-199abe0069381d79fc34c86268e408083ad18397.tar.xz
Android: add support for Ink annotation creation
Diffstat (limited to 'android/src/com/artifex/mupdfdemo/MuPDFActivity.java')
-rw-r--r--android/src/com/artifex/mupdfdemo/MuPDFActivity.java78
1 files changed, 75 insertions, 3 deletions
diff --git a/android/src/com/artifex/mupdfdemo/MuPDFActivity.java b/android/src/com/artifex/mupdfdemo/MuPDFActivity.java
index 01783ede..90e55887 100644
--- a/android/src/com/artifex/mupdfdemo/MuPDFActivity.java
+++ b/android/src/com/artifex/mupdfdemo/MuPDFActivity.java
@@ -28,6 +28,7 @@ import android.view.animation.Animation;
import android.view.animation.TranslateAnimation;
import android.view.inputmethod.EditorInfo;
import android.view.inputmethod.InputMethodManager;
+import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
@@ -44,7 +45,7 @@ class ThreadPerTaskExecutor implements Executor {
public class MuPDFActivity extends Activity
{
/* The core rendering instance */
- enum TopBarMode {Main, Search, Text, Annotation};
+ enum TopBarMode {Main, Search, Text, AnnotSelect, AnnotCreate, InkCreate};
private MuPDFCore core;
private String mFileName;
@@ -68,6 +69,12 @@ public class MuPDFActivity extends Activity
private ImageButton mCancelButton;
private ImageButton mOutlineButton;
private ImageButton mDeleteButton;
+ private ImageButton mCancelDeleteButton;
+ private ImageButton mAnnotButton;
+ private ImageButton mCancelAnnotButton;
+ private ImageButton mInkButton;
+ private Button mSaveInkButton;
+ private ImageButton mCancelInkButton;
private ViewAnimator mTopBarSwitcher;
private ImageButton mLinkButton;
private TopBarMode mTopBarMode;
@@ -402,12 +409,12 @@ public class MuPDFActivity extends Activity
switch (item) {
case Annotation:
showButtons();
- mTopBarMode = TopBarMode.Annotation;
+ mTopBarMode = TopBarMode.AnnotSelect;
mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
break;
case Widget:
case Nothing:
- if (mTopBarMode == TopBarMode.Annotation) {
+ if (mTopBarMode == TopBarMode.AnnotSelect) {
mTopBarMode = TopBarMode.Main;
mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
}
@@ -468,6 +475,13 @@ public class MuPDFActivity extends Activity
}
});
+ mAnnotButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ mTopBarMode = TopBarMode.AnnotCreate;
+ mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
+ }
+ });
+
// Activate the select button
mSelectButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
@@ -483,6 +497,58 @@ public class MuPDFActivity extends Activity
if (pageView != null)
pageView.deselectText();
mDocView.setMode(MuPDFReaderView.Mode.Viewing);
+ mTopBarMode = TopBarMode.AnnotCreate;
+ mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
+ }
+ });
+
+ mInkButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ mDocView.setMode(MuPDFReaderView.Mode.Drawing);
+ mTopBarMode = TopBarMode.InkCreate;
+ mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
+ }
+ });
+
+ mCancelInkButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ MuPDFView pageView = (MuPDFView) mDocView.getDisplayedView();
+ if (pageView != null)
+ pageView.cancelDraw();
+ mDocView.setMode(MuPDFReaderView.Mode.Viewing);
+ mTopBarMode = TopBarMode.AnnotCreate;
+ mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
+ }
+ });
+
+ mSaveInkButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ MuPDFView pageView = (MuPDFView) mDocView.getDisplayedView();
+ if (pageView != null)
+ pageView.saveDraw();
+ mDocView.setMode(MuPDFReaderView.Mode.Viewing);
+ mTopBarMode = TopBarMode.Main;
+ mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
+ }
+ });
+
+ mCancelDeleteButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ MuPDFView pageView = (MuPDFView) mDocView.getDisplayedView();
+ if (pageView != null)
+ pageView.deselectAnnotation();
+ mDocView.setMode(MuPDFReaderView.Mode.Viewing);
+ mTopBarMode = TopBarMode.Main;
+ mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
+ }
+ });
+
+ mCancelAnnotButton.setOnClickListener(new View.OnClickListener() {
+ public void onClick(View v) {
+ MuPDFView pageView = (MuPDFView) mDocView.getDisplayedView();
+ if (pageView != null)
+ pageView.deselectText();
+ mDocView.setMode(MuPDFReaderView.Mode.Viewing);
mTopBarMode = TopBarMode.Main;
mTopBarSwitcher.setDisplayedChild(mTopBarMode.ordinal());
}
@@ -897,6 +963,12 @@ public class MuPDFActivity extends Activity
mCancelButton = (ImageButton)mButtonsView.findViewById(R.id.cancel);
mOutlineButton = (ImageButton)mButtonsView.findViewById(R.id.outlineButton);
mDeleteButton = (ImageButton)mButtonsView.findViewById(R.id.deleteButton);
+ mCancelDeleteButton = (ImageButton)mButtonsView.findViewById(R.id.cancelDeleteButton);
+ mAnnotButton = (ImageButton)mButtonsView.findViewById(R.id.annotButton);
+ mCancelAnnotButton = (ImageButton)mButtonsView.findViewById(R.id.cancelAnnotButton);
+ mInkButton = (ImageButton)mButtonsView.findViewById(R.id.inkButton);
+ mSaveInkButton = (Button)mButtonsView.findViewById(R.id.saveInkButton);
+ mCancelInkButton = (ImageButton)mButtonsView.findViewById(R.id.cancelInkButton);
mTopBarSwitcher = (ViewAnimator)mButtonsView.findViewById(R.id.switcher);
mSearchBack = (ImageButton)mButtonsView.findViewById(R.id.searchBack);
mSearchFwd = (ImageButton)mButtonsView.findViewById(R.id.searchForward);