diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 36162ddd1..1e2dd110a 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -8,7 +8,7 @@
-
+
diff --git a/AndroidManifest.xml.pattern b/AndroidManifest.xml.pattern
index 5ea22f591..f22ddaa0f 100644
--- a/AndroidManifest.xml.pattern
+++ b/AndroidManifest.xml.pattern
@@ -8,7 +8,7 @@
-
+
diff --git a/src/org/geometerplus/fbreader/fbreader/BookInfoAction.java b/src/org/geometerplus/android/fbreader/BookInfoAction.java
similarity index 81%
rename from src/org/geometerplus/fbreader/fbreader/BookInfoAction.java
rename to src/org/geometerplus/android/fbreader/BookInfoAction.java
index afdec8fd6..312046cb0 100644
--- a/src/org/geometerplus/fbreader/fbreader/BookInfoAction.java
+++ b/src/org/geometerplus/android/fbreader/BookInfoAction.java
@@ -17,13 +17,15 @@
* 02110-1301, USA.
*/
-package org.geometerplus.fbreader.fbreader;
+package org.geometerplus.android.fbreader;
+
+import org.geometerplus.fbreader.fbreader.FBReader;
import org.geometerplus.android.fbreader.preferences.BookInfoActivity;
class BookInfoAction extends RunActivityAction {
- BookInfoAction(FBReader fbreader) {
- super(fbreader, BookInfoActivity.class);
+ BookInfoAction(FBReaderActivity baseActivity, FBReader fbreader) {
+ super(baseActivity, fbreader, BookInfoActivity.class);
}
public boolean isVisible() {
diff --git a/src/org/geometerplus/android/fbreader/FBReader.java b/src/org/geometerplus/android/fbreader/FBReaderActivity.java
similarity index 88%
rename from src/org/geometerplus/android/fbreader/FBReader.java
rename to src/org/geometerplus/android/fbreader/FBReaderActivity.java
index b3b03e3ed..394711de5 100644
--- a/src/org/geometerplus/android/fbreader/FBReader.java
+++ b/src/org/geometerplus/android/fbreader/FBReaderActivity.java
@@ -43,11 +43,12 @@ import org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication;
import org.geometerplus.zlibrary.ui.android.R;
import org.geometerplus.fbreader.bookmodel.BookModel;
+import org.geometerplus.fbreader.fbreader.FBReader;
import org.geometerplus.fbreader.fbreader.ActionCode;
import org.geometerplus.fbreader.library.Library;
-public final class FBReader extends ZLAndroidActivity {
- public static FBReader Instance;
+public final class FBReaderActivity extends ZLAndroidActivity {
+ static FBReaderActivity Instance;
private int myFullScreenFlag;
@@ -57,16 +58,16 @@ public final class FBReader extends ZLAndroidActivity {
@Override
public void onShow() {
- if (FBReader.Instance != null && myControlPanel != null) {
- FBReader.Instance.setupNavigation(myControlPanel);
+ if (Instance != null && myControlPanel != null) {
+ Instance.setupNavigation(myControlPanel);
}
}
@Override
public void updateStates() {
super.updateStates();
- if (!NavigateDragging && FBReader.Instance != null && myControlPanel != null) {
- FBReader.Instance.setupNavigation(myControlPanel);
+ if (!NavigateDragging && Instance != null && myControlPanel != null) {
+ Instance.setupNavigation(myControlPanel);
}
}
}
@@ -124,7 +125,7 @@ public final class FBReader extends ZLAndroidActivity {
startActivity(new Intent(this, this.getClass()));
}
- final RelativeLayout root = (RelativeLayout)FBReader.this.findViewById(R.id.root_view);
+ final RelativeLayout root = (RelativeLayout)findViewById(R.id.root_view);
if (!myTextSearchPanel.hasControlPanel()) {
final ControlPanel panel = new ControlPanel(this);
@@ -181,8 +182,20 @@ public final class FBReader extends ZLAndroidActivity {
protected ZLApplication createApplication(String fileName) {
new SQLiteBooksDatabase();
- String[] args = (fileName != null) ? new String[] { fileName } : new String[0];
- return new org.geometerplus.fbreader.fbreader.FBReader(args);
+ final String[] args = (fileName != null) ? new String[] { fileName } : new String[0];
+
+ final FBReader fbReader = new FBReader(args);
+
+ fbReader.addAction(ActionCode.SHOW_LIBRARY, new ShowLibraryAction(this, fbReader));
+ fbReader.addAction(ActionCode.SHOW_PREFERENCES, new PreferencesAction(this, fbReader));
+ fbReader.addAction(ActionCode.SHOW_BOOK_INFO, new BookInfoAction(this, fbReader));
+ fbReader.addAction(ActionCode.SHOW_CONTENTS, new ShowTOCAction(this, fbReader));
+ fbReader.addAction(ActionCode.SHOW_BOOKMARKS, new ShowBookmarksAction(this, fbReader));
+ fbReader.addAction(ActionCode.SHOW_NETWORK_LIBRARY, new ShowNetworkLibraryAction(this, fbReader));
+
+ fbReader.addAction(ActionCode.SHOW_NAVIGATION, new ShowNavigationAction(this, fbReader));
+
+ return fbReader;
}
@Override
diff --git a/src/org/geometerplus/android/fbreader/LibraryTabActivity.java b/src/org/geometerplus/android/fbreader/LibraryTabActivity.java
index 60a89b4c3..4d54ebca3 100644
--- a/src/org/geometerplus/android/fbreader/LibraryTabActivity.java
+++ b/src/org/geometerplus/android/fbreader/LibraryTabActivity.java
@@ -258,7 +258,7 @@ public class LibraryTabActivity extends TabActivity implements MenuItem.OnMenuIt
}
private Intent getFBReaderIntent(final File file) {
- final Intent intent = new Intent(getApplicationContext(), org.geometerplus.android.fbreader.FBReader.class);
+ final Intent intent = new Intent(getApplicationContext(), FBReaderActivity.class);
intent.setAction(Intent.ACTION_VIEW);
if (file != null) {
intent.setData(Uri.fromFile(file));
diff --git a/src/org/geometerplus/fbreader/fbreader/PreferencesAction.java b/src/org/geometerplus/android/fbreader/PreferencesAction.java
similarity index 80%
rename from src/org/geometerplus/fbreader/fbreader/PreferencesAction.java
rename to src/org/geometerplus/android/fbreader/PreferencesAction.java
index 9180505ad..96c85a7f5 100644
--- a/src/org/geometerplus/fbreader/fbreader/PreferencesAction.java
+++ b/src/org/geometerplus/android/fbreader/PreferencesAction.java
@@ -17,12 +17,14 @@
* 02110-1301, USA.
*/
-package org.geometerplus.fbreader.fbreader;
+package org.geometerplus.android.fbreader;
+
+import org.geometerplus.fbreader.fbreader.FBReader;
import org.geometerplus.android.fbreader.preferences.PreferenceActivity;
class PreferencesAction extends RunActivityAction {
- PreferencesAction(FBReader fbreader) {
- super(fbreader, PreferenceActivity.class);
+ PreferencesAction(FBReaderActivity baseActivity, FBReader fbreader) {
+ super(baseActivity, fbreader, PreferenceActivity.class);
}
}
diff --git a/src/org/geometerplus/fbreader/fbreader/RunActivityAction.java b/src/org/geometerplus/android/fbreader/RunActivityAction.java
similarity index 68%
rename from src/org/geometerplus/fbreader/fbreader/RunActivityAction.java
rename to src/org/geometerplus/android/fbreader/RunActivityAction.java
index 81e6d82d5..dd3f771b9 100644
--- a/src/org/geometerplus/fbreader/fbreader/RunActivityAction.java
+++ b/src/org/geometerplus/android/fbreader/RunActivityAction.java
@@ -17,21 +17,24 @@
* 02110-1301, USA.
*/
-package org.geometerplus.fbreader.fbreader;
+package org.geometerplus.android.fbreader;
-import org.geometerplus.zlibrary.ui.android.dialogs.ZLAndroidDialogManager;
+import android.content.Intent;
+
+import org.geometerplus.fbreader.fbreader.FBAction;
+import org.geometerplus.fbreader.fbreader.FBReader;
abstract class RunActivityAction extends FBAction {
+ private final FBReaderActivity myBaseActivity;
private final Class> myActivityClass;
- RunActivityAction(FBReader fbreader, Class> activityClass) {
+ RunActivityAction(FBReaderActivity baseActivity, FBReader fbreader, Class> activityClass) {
super(fbreader);
+ myBaseActivity = baseActivity;
myActivityClass = activityClass;
}
public void run() {
- final ZLAndroidDialogManager dialogManager =
- (ZLAndroidDialogManager)ZLAndroidDialogManager.Instance();
- dialogManager.runActivity(myActivityClass);
+ myBaseActivity.startActivity(new Intent(myBaseActivity.getApplicationContext(), myActivityClass));
}
}
diff --git a/src/org/geometerplus/fbreader/fbreader/ShowBookmarks.java b/src/org/geometerplus/android/fbreader/ShowBookmarks.java
similarity index 79%
rename from src/org/geometerplus/fbreader/fbreader/ShowBookmarks.java
rename to src/org/geometerplus/android/fbreader/ShowBookmarks.java
index 084b156f9..5c6a77bcc 100644
--- a/src/org/geometerplus/fbreader/fbreader/ShowBookmarks.java
+++ b/src/org/geometerplus/android/fbreader/ShowBookmarks.java
@@ -17,12 +17,12 @@
* 02110-1301, USA.
*/
-package org.geometerplus.fbreader.fbreader;
+package org.geometerplus.android.fbreader;
-import org.geometerplus.android.fbreader.BookmarksActivity;
+import org.geometerplus.fbreader.fbreader.FBReader;
class ShowBookmarksAction extends RunActivityAction {
- ShowBookmarksAction(FBReader fbreader) {
- super(fbreader, BookmarksActivity.class);
+ ShowBookmarksAction(FBReaderActivity baseActivity, FBReader fbreader) {
+ super(baseActivity, fbreader, BookmarksActivity.class);
}
}
diff --git a/src/org/geometerplus/fbreader/fbreader/ShowLibraryAction.java b/src/org/geometerplus/android/fbreader/ShowLibraryAction.java
similarity index 69%
rename from src/org/geometerplus/fbreader/fbreader/ShowLibraryAction.java
rename to src/org/geometerplus/android/fbreader/ShowLibraryAction.java
index da113a4ef..112ea8088 100644
--- a/src/org/geometerplus/fbreader/fbreader/ShowLibraryAction.java
+++ b/src/org/geometerplus/android/fbreader/ShowLibraryAction.java
@@ -17,19 +17,24 @@
* 02110-1301, USA.
*/
-package org.geometerplus.fbreader.fbreader;
+package org.geometerplus.android.fbreader;
import java.util.HashMap;
-import org.geometerplus.fbreader.bookmodel.BookModel;
+import android.content.Intent;
-import org.geometerplus.android.fbreader.LibraryTabActivity;
+import org.geometerplus.fbreader.fbreader.FBAction;
+import org.geometerplus.fbreader.fbreader.FBReader;
+import org.geometerplus.fbreader.bookmodel.BookModel;
import org.geometerplus.zlibrary.ui.android.dialogs.ZLAndroidDialogManager;
class ShowLibraryAction extends FBAction {
- ShowLibraryAction(FBReader fbreader) {
+ private final FBReaderActivity myBaseActivity;
+
+ ShowLibraryAction(FBReaderActivity baseActivity, FBReader fbreader) {
super(fbreader);
+ myBaseActivity = baseActivity;
}
public void run() {
@@ -37,12 +42,13 @@ class ShowLibraryAction extends FBAction {
(ZLAndroidDialogManager)ZLAndroidDialogManager.Instance();
final HashMap data = new HashMap();
final BookModel model = Reader.Model;
- if (model != null) {
- data.put(LibraryTabActivity.CURRENT_BOOK_PATH_KEY, model.Book.File.getPath());
- }
Runnable action = new Runnable() {
public void run() {
- dialogManager.runActivity(LibraryTabActivity.class, data);
+ Intent intent = new Intent(myBaseActivity.getApplicationContext(), LibraryTabActivity.class);
+ if (model != null && model.Book != null) {
+ intent.putExtra(LibraryTabActivity.CURRENT_BOOK_PATH_KEY, model.Book.File.getPath());
+ }
+ myBaseActivity.startActivity(intent);
}
};
dialogManager.wait("loadingBookList", action);
diff --git a/src/org/geometerplus/fbreader/fbreader/ShowNavigationAction.java b/src/org/geometerplus/android/fbreader/ShowNavigationAction.java
similarity index 79%
rename from src/org/geometerplus/fbreader/fbreader/ShowNavigationAction.java
rename to src/org/geometerplus/android/fbreader/ShowNavigationAction.java
index 9f98092c1..c28c63601 100644
--- a/src/org/geometerplus/fbreader/fbreader/ShowNavigationAction.java
+++ b/src/org/geometerplus/android/fbreader/ShowNavigationAction.java
@@ -17,14 +17,20 @@
* 02110-1301, USA.
*/
-package org.geometerplus.fbreader.fbreader;
+package org.geometerplus.android.fbreader;
import org.geometerplus.zlibrary.text.model.ZLTextModel;
import org.geometerplus.zlibrary.text.view.ZLTextView;
+import org.geometerplus.fbreader.fbreader.FBAction;
+import org.geometerplus.fbreader.fbreader.FBReader;
+
class ShowNavigationAction extends FBAction {
- ShowNavigationAction(FBReader fbreader) {
+ private final FBReaderActivity myActivity;
+
+ ShowNavigationAction(FBReaderActivity activity, FBReader fbreader) {
super(fbreader);
+ myActivity = activity;
}
@Override
@@ -35,6 +41,6 @@ class ShowNavigationAction extends FBAction {
}
public void run() {
- org.geometerplus.android.fbreader.FBReader.Instance.navigate();
+ myActivity.navigate();
}
}
diff --git a/src/org/geometerplus/fbreader/fbreader/ShowNetworkLibraryAction.java b/src/org/geometerplus/android/fbreader/ShowNetworkLibraryAction.java
similarity index 79%
rename from src/org/geometerplus/fbreader/fbreader/ShowNetworkLibraryAction.java
rename to src/org/geometerplus/android/fbreader/ShowNetworkLibraryAction.java
index 94ada90ce..ca8e0822b 100644
--- a/src/org/geometerplus/fbreader/fbreader/ShowNetworkLibraryAction.java
+++ b/src/org/geometerplus/android/fbreader/ShowNetworkLibraryAction.java
@@ -17,12 +17,14 @@
* 02110-1301, USA.
*/
-package org.geometerplus.fbreader.fbreader;
+package org.geometerplus.android.fbreader;
+
+import org.geometerplus.fbreader.fbreader.FBReader;
import org.geometerplus.android.fbreader.network.NetworkLibraryActivity;
class ShowNetworkLibraryAction extends RunActivityAction {
- ShowNetworkLibraryAction(FBReader fbreader) {
- super(fbreader, NetworkLibraryActivity.class);
+ ShowNetworkLibraryAction(FBReaderActivity baseActivity, FBReader fbreader) {
+ super(baseActivity, fbreader, NetworkLibraryActivity.class);
}
}
diff --git a/src/org/geometerplus/fbreader/fbreader/ShowTOCAction.java b/src/org/geometerplus/android/fbreader/ShowTOCAction.java
similarity index 81%
rename from src/org/geometerplus/fbreader/fbreader/ShowTOCAction.java
rename to src/org/geometerplus/android/fbreader/ShowTOCAction.java
index 6456630c3..bf6632421 100644
--- a/src/org/geometerplus/fbreader/fbreader/ShowTOCAction.java
+++ b/src/org/geometerplus/android/fbreader/ShowTOCAction.java
@@ -17,13 +17,13 @@
* 02110-1301, USA.
*/
-package org.geometerplus.fbreader.fbreader;
+package org.geometerplus.android.fbreader;
-import org.geometerplus.android.fbreader.TOCActivity;
+import org.geometerplus.fbreader.fbreader.FBReader;
class ShowTOCAction extends RunActivityAction {
- ShowTOCAction(FBReader fbreader) {
- super(fbreader, TOCActivity.class);
+ ShowTOCAction(FBReaderActivity baseActivity, FBReader fbreader) {
+ super(baseActivity, fbreader, TOCActivity.class);
}
public boolean isVisible() {
diff --git a/src/org/geometerplus/android/fbreader/TextSearchActivity.java b/src/org/geometerplus/android/fbreader/TextSearchActivity.java
index 31f197be1..40a9d8ee7 100644
--- a/src/org/geometerplus/android/fbreader/TextSearchActivity.java
+++ b/src/org/geometerplus/android/fbreader/TextSearchActivity.java
@@ -21,15 +21,17 @@ package org.geometerplus.android.fbreader;
import android.app.Activity;
+import org.geometerplus.fbreader.fbreader.FBReader;
+
public class TextSearchActivity extends SearchActivity {
@Override
void onSuccess() {
- FBReader.Instance.showTextSearchControls(true);
+ FBReaderActivity.Instance.showTextSearchControls(true);
}
/*@Override
void onFailure() {
- FBReader.Instance.showTextSearchControls(false);
+ FBReaderActivity.Instance.showTextSearchControls(false);
}*/
@Override
@@ -44,14 +46,13 @@ public class TextSearchActivity extends SearchActivity {
@Override
boolean runSearch(final String pattern) {
- final org.geometerplus.fbreader.fbreader.FBReader fbreader =
- (org.geometerplus.fbreader.fbreader.FBReader)org.geometerplus.fbreader.fbreader.FBReader.Instance();
- fbreader.TextSearchPatternOption.setValue(pattern);
- return fbreader.getTextView().search(pattern, true, false, false, false) != 0;
+ final FBReader fbReader = (FBReader)FBReader.Instance();
+ fbReader.TextSearchPatternOption.setValue(pattern);
+ return fbReader.getTextView().search(pattern, true, false, false, false) != 0;
}
@Override
Activity getParentActivity() {
- return FBReader.Instance;
+ return FBReaderActivity.Instance;
}
}
diff --git a/src/org/geometerplus/android/fbreader/network/BookDownloaderService.java b/src/org/geometerplus/android/fbreader/network/BookDownloaderService.java
index 25e9232cb..6bc3519af 100644
--- a/src/org/geometerplus/android/fbreader/network/BookDownloaderService.java
+++ b/src/org/geometerplus/android/fbreader/network/BookDownloaderService.java
@@ -42,9 +42,9 @@ import org.geometerplus.zlibrary.core.network.*;
import org.geometerplus.fbreader.network.BookReference;
+import org.geometerplus.android.fbreader.FBReaderActivity;
public class BookDownloaderService extends Service {
-
public static final String BOOK_FORMAT_KEY = "org.geometerplus.android.fbreader.network.BookFormat";
public static final String REFERENCE_TYPE_KEY = "org.geometerplus.android.fbreader.network.ReferenceType";
public static final String CLEAN_URL_KEY = "org.geometerplus.android.fbreader.network.CleanURL";
@@ -191,7 +191,7 @@ public class BookDownloaderService extends Service {
}
private Intent getFBReaderIntent(final File file) {
- final Intent intent = new Intent(getApplicationContext(), org.geometerplus.android.fbreader.FBReader.class);
+ final Intent intent = new Intent(getApplicationContext(), FBReaderActivity.class);
if (file != null) {
intent.setAction(Intent.ACTION_VIEW).setData(Uri.fromFile(file));
}
diff --git a/src/org/geometerplus/android/fbreader/network/NetworkBookActions.java b/src/org/geometerplus/android/fbreader/network/NetworkBookActions.java
index 6f5b94111..60113ba63 100644
--- a/src/org/geometerplus/android/fbreader/network/NetworkBookActions.java
+++ b/src/org/geometerplus/android/fbreader/network/NetworkBookActions.java
@@ -39,6 +39,7 @@ import org.geometerplus.zlibrary.core.network.ZLNetworkException;
import org.geometerplus.zlibrary.ui.android.R;
import org.geometerplus.android.util.AndroidUtil;
+import org.geometerplus.android.fbreader.FBReaderActivity;
import org.geometerplus.fbreader.network.*;
import org.geometerplus.fbreader.network.tree.NetworkBookTree;
@@ -48,7 +49,6 @@ import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationMan
class NetworkBookActions extends NetworkTreeActions {
-
private static final String PACKAGE = "org.geometerplus.android.fbreader.network";
public static final int DOWNLOAD_BOOK_ITEM_ID = 0;
@@ -307,7 +307,7 @@ class NetworkBookActions extends NetworkTreeActions {
new Intent(Intent.ACTION_VIEW,
Uri.fromFile(new File(local)),
activity.getApplicationContext(),
- org.geometerplus.android.fbreader.FBReader.class
+ FBReaderActivity.class
).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
);
}
diff --git a/src/org/geometerplus/fbreader/fbreader/FBAction.java b/src/org/geometerplus/fbreader/fbreader/FBAction.java
index bfd1d1f5d..dd48f05d7 100644
--- a/src/org/geometerplus/fbreader/fbreader/FBAction.java
+++ b/src/org/geometerplus/fbreader/fbreader/FBAction.java
@@ -21,10 +21,10 @@ package org.geometerplus.fbreader.fbreader;
import org.geometerplus.zlibrary.core.application.ZLApplication;
-abstract class FBAction extends ZLApplication.ZLAction {
+public abstract class FBAction extends ZLApplication.ZLAction {
protected final FBReader Reader;
- FBAction(FBReader fbreader) {
+ public FBAction(FBReader fbreader) {
Reader = fbreader;
}
}
diff --git a/src/org/geometerplus/fbreader/fbreader/FBReader.java b/src/org/geometerplus/fbreader/fbreader/FBReader.java
index 9433d6675..69d304f5e 100644
--- a/src/org/geometerplus/fbreader/fbreader/FBReader.java
+++ b/src/org/geometerplus/fbreader/fbreader/FBReader.java
@@ -75,20 +75,12 @@ public final class FBReader extends ZLApplication {
addAction(ActionCode.INCREASE_FONT, new ChangeFontSizeAction(this, +2));
addAction(ActionCode.DECREASE_FONT, new ChangeFontSizeAction(this, -2));
addAction(ActionCode.ROTATE, new RotateAction(this));
-
- addAction(ActionCode.SHOW_LIBRARY, new ShowLibraryAction(this));
- addAction(ActionCode.SHOW_PREFERENCES, new PreferencesAction(this));
- addAction(ActionCode.SHOW_BOOK_INFO, new BookInfoAction(this));
- addAction(ActionCode.SHOW_CONTENTS, new ShowTOCAction(this));
- addAction(ActionCode.SHOW_BOOKMARKS, new ShowBookmarksAction(this));
- addAction(ActionCode.SHOW_NETWORK_LIBRARY, new ShowNetworkLibraryAction(this));
addAction(ActionCode.SEARCH, new SearchAction(this));
addAction(ActionCode.FIND_NEXT, new FindNextAction(this));
addAction(ActionCode.FIND_PREVIOUS, new FindPreviousAction(this));
addAction(ActionCode.CLEAR_FIND_RESULTS, new ClearFindResultsAction(this));
-
- addAction(ActionCode.SHOW_NAVIGATION, new ShowNavigationAction(this));
+
addAction(ActionCode.VOLUME_KEY_SCROLL_FORWARD, new VolumeKeyScrollingAction(this, true));
addAction(ActionCode.VOLUME_KEY_SCROLL_BACKWARD, new VolumeKeyScrollingAction(this, false));
addAction(ActionCode.TRACKBALL_SCROLL_FORWARD, new TrackballScrollingAction(this, true));
diff --git a/src/org/geometerplus/zlibrary/core/application/ZLApplication.java b/src/org/geometerplus/zlibrary/core/application/ZLApplication.java
index 9ef81d5ed..a2e4bc7d9 100644
--- a/src/org/geometerplus/zlibrary/core/application/ZLApplication.java
+++ b/src/org/geometerplus/zlibrary/core/application/ZLApplication.java
@@ -111,7 +111,7 @@ public abstract class ZLApplication {
hideAllPanels();
}
- protected final void addAction(String actionId, ZLAction action) {
+ public final void addAction(String actionId, ZLAction action) {
myIdToActionMap.put(actionId, action);
}