Created
August 11, 2013 16:54
-
-
Save evsinev/6205721 to your computer and use it in GitHub Desktop.
Adds support texet tb-138 to FBReader
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/org/geometerplus/fbreader/fbreader/ActionCode.java b/src/org/geometerplus/fbreader/fbreader/ActionCode.java | |
index 7cbf3b0..269d37f 100644 | |
--- a/src/org/geometerplus/fbreader/fbreader/ActionCode.java | |
+++ b/src/org/geometerplus/fbreader/fbreader/ActionCode.java | |
@@ -43,6 +43,8 @@ public interface ActionCode { | |
String TURN_PAGE_BACK = "previousPage"; | |
String TURN_PAGE_FORWARD = "nextPage"; | |
+ String EPD_REFRESH = "epdRefresh"; | |
+ | |
String MOVE_CURSOR_UP = "moveCursorUp"; | |
String MOVE_CURSOR_DOWN = "moveCursorDown"; | |
String MOVE_CURSOR_LEFT = "moveCursorLeft"; | |
diff --git a/src/org/geometerplus/fbreader/fbreader/EpdRefreshAction.java b/src/org/geometerplus/fbreader/fbreader/EpdRefreshAction.java | |
index de575ec..e683217 100644 | |
--- a/src/org/geometerplus/fbreader/fbreader/EpdRefreshAction.java | |
+++ b/src/org/geometerplus/fbreader/fbreader/EpdRefreshAction.java | |
+package org.geometerplus.fbreader.fbreader; | |
+ | |
+import android.util.Log; | |
+import android.view.View; | |
+ | |
+import java.lang.reflect.Method; | |
+ | |
+class EpdRefreshAction extends FBAction { | |
+ | |
+ public static final int EPD_FULL = 1; | |
+ | |
+ public static final String TAG = "EpdRefreshAction"; | |
+ | |
+ EpdRefreshAction(FBReaderApp fbreader) { | |
+ super(fbreader); | |
+ | |
+ // public boolean requestEpdMode(int i) | |
+ Method requestEpdModeMethod; | |
+ try { | |
+ requestEpdModeMethod = View.class.getMethod("requestEpdMode", int.class); | |
+ Log.d(TAG, "request epd method = " + requestEpdModeMethod); | |
+ } catch (NoSuchMethodException e) { | |
+ Log.d(TAG,"Method requestEpdMode(int) not found", e); | |
+ requestEpdModeMethod = null; | |
+ } | |
+ theRequestEpdModeMethod = requestEpdModeMethod; | |
+ | |
+ } | |
+ | |
+ private boolean requestEpdMode(View aView, int aMode) { | |
+ try { | |
+ return (Boolean)theRequestEpdModeMethod.invoke(aView, aMode); | |
+ } catch (Exception e) { | |
+ Log.d(TAG, "Can't invoke method: "+ theRequestEpdModeMethod, e); | |
+ return false; | |
+ } | |
+ } | |
+ | |
+ @Override | |
+ public boolean isEnabled() { | |
+ return true; | |
+ } | |
+ | |
+ @Override | |
+ protected void run(Object ... params) { | |
+ requestEpdMode((View) Reader.getViewWidget(), EPD_FULL); | |
+ Reader.getViewWidget().repaint(); | |
+ } | |
+ | |
+ private final Method theRequestEpdModeMethod; | |
} | |
diff --git a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java | |
index 63f964d..ca2f0c4 100644 | |
--- a/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java | |
+++ b/src/org/geometerplus/fbreader/fbreader/FBReaderApp.java | |
@@ -150,6 +150,8 @@ public final class FBReaderApp extends ZLApplication { | |
addAction(ActionCode.TURN_PAGE_FORWARD, new TurnPageAction(this, true)); | |
addAction(ActionCode.TURN_PAGE_BACK, new TurnPageAction(this, false)); | |
+ addAction(ActionCode.EPD_REFRESH, new EpdRefreshAction(this)); | |
+ | |
addAction(ActionCode.MOVE_CURSOR_UP, new MoveCursorAction(this, FBView.Direction.up)); | |
addAction(ActionCode.MOVE_CURSOR_DOWN, new MoveCursorAction(this, FBView.Direction.down)); | |
addAction(ActionCode.MOVE_CURSOR_LEFT, new MoveCursorAction(this, FBView.Direction.rightToLeft)); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment