Skip to content

Instantly share code, notes, and snippets.

@evsinev
Created August 11, 2013 16:54
Show Gist options
  • Save evsinev/6205721 to your computer and use it in GitHub Desktop.
Save evsinev/6205721 to your computer and use it in GitHub Desktop.
Adds support texet tb-138 to FBReader
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