1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 18:29:23 +02:00

refactoring: platform-dependent classes have been moved to the android package; FBReader -> FBReaderActivity

This commit is contained in:
Nikolay Pultsin 2010-10-21 19:46:59 +01:00
parent 6ea4881643
commit 05ec6c3861
18 changed files with 96 additions and 69 deletions

View file

@ -8,7 +8,7 @@
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<application android:name="org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication" android:icon="@drawable/fbreader" android:label="FBReader"> <application android:name="org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication" android:icon="@drawable/fbreader" android:label="FBReader">
<activity android:name=".library.BugReportActivity" android:label="FBReader crash" android:configChanges="orientation|keyboardHidden" /> <activity android:name=".library.BugReportActivity" android:label="FBReader crash" android:configChanges="orientation|keyboardHidden" />
<activity android:name="org.geometerplus.android.fbreader.FBReader" android:launchMode="singleTask" android:icon="@drawable/fbreader" android:label="FBReader" android:configChanges="orientation|keyboardHidden"> <activity android:name="org.geometerplus.android.fbreader.FBReaderActivity" android:launchMode="singleTask" android:icon="@drawable/fbreader" android:label="FBReader" android:configChanges="orientation|keyboardHidden">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />

View file

@ -8,7 +8,7 @@
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
<application android:name="org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication" android:icon="@drawable/fbreader" android:label="FBReader"> <application android:name="org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication" android:icon="@drawable/fbreader" android:label="FBReader">
<activity android:name=".library.BugReportActivity" android:label="FBReader crash" android:configChanges="orientation|keyboardHidden" /> <activity android:name=".library.BugReportActivity" android:label="FBReader crash" android:configChanges="orientation|keyboardHidden" />
<activity android:name="org.geometerplus.android.fbreader.FBReader" android:launchMode="singleTask" android:icon="@drawable/fbreader" android:label="FBReader" android:configChanges="orientation|keyboardHidden"> <activity android:name="org.geometerplus.android.fbreader.FBReaderActivity" android:launchMode="singleTask" android:icon="@drawable/fbreader" android:label="FBReader" android:configChanges="orientation|keyboardHidden">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />

View file

@ -17,13 +17,15 @@
* 02110-1301, USA. * 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; import org.geometerplus.android.fbreader.preferences.BookInfoActivity;
class BookInfoAction extends RunActivityAction { class BookInfoAction extends RunActivityAction {
BookInfoAction(FBReader fbreader) { BookInfoAction(FBReaderActivity baseActivity, FBReader fbreader) {
super(fbreader, BookInfoActivity.class); super(baseActivity, fbreader, BookInfoActivity.class);
} }
public boolean isVisible() { public boolean isVisible() {

View file

@ -43,11 +43,12 @@ import org.geometerplus.zlibrary.ui.android.library.ZLAndroidApplication;
import org.geometerplus.zlibrary.ui.android.R; import org.geometerplus.zlibrary.ui.android.R;
import org.geometerplus.fbreader.bookmodel.BookModel; import org.geometerplus.fbreader.bookmodel.BookModel;
import org.geometerplus.fbreader.fbreader.FBReader;
import org.geometerplus.fbreader.fbreader.ActionCode; import org.geometerplus.fbreader.fbreader.ActionCode;
import org.geometerplus.fbreader.library.Library; import org.geometerplus.fbreader.library.Library;
public final class FBReader extends ZLAndroidActivity { public final class FBReaderActivity extends ZLAndroidActivity {
public static FBReader Instance; static FBReaderActivity Instance;
private int myFullScreenFlag; private int myFullScreenFlag;
@ -57,16 +58,16 @@ public final class FBReader extends ZLAndroidActivity {
@Override @Override
public void onShow() { public void onShow() {
if (FBReader.Instance != null && myControlPanel != null) { if (Instance != null && myControlPanel != null) {
FBReader.Instance.setupNavigation(myControlPanel); Instance.setupNavigation(myControlPanel);
} }
} }
@Override @Override
public void updateStates() { public void updateStates() {
super.updateStates(); super.updateStates();
if (!NavigateDragging && FBReader.Instance != null && myControlPanel != null) { if (!NavigateDragging && Instance != null && myControlPanel != null) {
FBReader.Instance.setupNavigation(myControlPanel); Instance.setupNavigation(myControlPanel);
} }
} }
} }
@ -124,7 +125,7 @@ public final class FBReader extends ZLAndroidActivity {
startActivity(new Intent(this, this.getClass())); 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()) { if (!myTextSearchPanel.hasControlPanel()) {
final ControlPanel panel = new ControlPanel(this); final ControlPanel panel = new ControlPanel(this);
@ -181,8 +182,20 @@ public final class FBReader extends ZLAndroidActivity {
protected ZLApplication createApplication(String fileName) { protected ZLApplication createApplication(String fileName) {
new SQLiteBooksDatabase(); new SQLiteBooksDatabase();
String[] args = (fileName != null) ? new String[] { fileName } : new String[0]; final String[] args = (fileName != null) ? new String[] { fileName } : new String[0];
return new org.geometerplus.fbreader.fbreader.FBReader(args);
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 @Override

View file

@ -258,7 +258,7 @@ public class LibraryTabActivity extends TabActivity implements MenuItem.OnMenuIt
} }
private Intent getFBReaderIntent(final File file) { 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); intent.setAction(Intent.ACTION_VIEW);
if (file != null) { if (file != null) {
intent.setData(Uri.fromFile(file)); intent.setData(Uri.fromFile(file));

View file

@ -17,12 +17,14 @@
* 02110-1301, USA. * 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; import org.geometerplus.android.fbreader.preferences.PreferenceActivity;
class PreferencesAction extends RunActivityAction { class PreferencesAction extends RunActivityAction {
PreferencesAction(FBReader fbreader) { PreferencesAction(FBReaderActivity baseActivity, FBReader fbreader) {
super(fbreader, PreferenceActivity.class); super(baseActivity, fbreader, PreferenceActivity.class);
} }
} }

View file

@ -17,21 +17,24 @@
* 02110-1301, USA. * 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 { abstract class RunActivityAction extends FBAction {
private final FBReaderActivity myBaseActivity;
private final Class<?> myActivityClass; private final Class<?> myActivityClass;
RunActivityAction(FBReader fbreader, Class<?> activityClass) { RunActivityAction(FBReaderActivity baseActivity, FBReader fbreader, Class<?> activityClass) {
super(fbreader); super(fbreader);
myBaseActivity = baseActivity;
myActivityClass = activityClass; myActivityClass = activityClass;
} }
public void run() { public void run() {
final ZLAndroidDialogManager dialogManager = myBaseActivity.startActivity(new Intent(myBaseActivity.getApplicationContext(), myActivityClass));
(ZLAndroidDialogManager)ZLAndroidDialogManager.Instance();
dialogManager.runActivity(myActivityClass);
} }
} }

View file

@ -17,12 +17,12 @@
* 02110-1301, USA. * 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 { class ShowBookmarksAction extends RunActivityAction {
ShowBookmarksAction(FBReader fbreader) { ShowBookmarksAction(FBReaderActivity baseActivity, FBReader fbreader) {
super(fbreader, BookmarksActivity.class); super(baseActivity, fbreader, BookmarksActivity.class);
} }
} }

View file

@ -17,19 +17,24 @@
* 02110-1301, USA. * 02110-1301, USA.
*/ */
package org.geometerplus.fbreader.fbreader; package org.geometerplus.android.fbreader;
import java.util.HashMap; 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; import org.geometerplus.zlibrary.ui.android.dialogs.ZLAndroidDialogManager;
class ShowLibraryAction extends FBAction { class ShowLibraryAction extends FBAction {
ShowLibraryAction(FBReader fbreader) { private final FBReaderActivity myBaseActivity;
ShowLibraryAction(FBReaderActivity baseActivity, FBReader fbreader) {
super(fbreader); super(fbreader);
myBaseActivity = baseActivity;
} }
public void run() { public void run() {
@ -37,12 +42,13 @@ class ShowLibraryAction extends FBAction {
(ZLAndroidDialogManager)ZLAndroidDialogManager.Instance(); (ZLAndroidDialogManager)ZLAndroidDialogManager.Instance();
final HashMap<String,String> data = new HashMap<String,String>(); final HashMap<String,String> data = new HashMap<String,String>();
final BookModel model = Reader.Model; final BookModel model = Reader.Model;
if (model != null) {
data.put(LibraryTabActivity.CURRENT_BOOK_PATH_KEY, model.Book.File.getPath());
}
Runnable action = new Runnable() { Runnable action = new Runnable() {
public void run() { 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); dialogManager.wait("loadingBookList", action);

View file

@ -17,14 +17,20 @@
* 02110-1301, USA. * 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.model.ZLTextModel;
import org.geometerplus.zlibrary.text.view.ZLTextView; import org.geometerplus.zlibrary.text.view.ZLTextView;
import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReader;
class ShowNavigationAction extends FBAction { class ShowNavigationAction extends FBAction {
ShowNavigationAction(FBReader fbreader) { private final FBReaderActivity myActivity;
ShowNavigationAction(FBReaderActivity activity, FBReader fbreader) {
super(fbreader); super(fbreader);
myActivity = activity;
} }
@Override @Override
@ -35,6 +41,6 @@ class ShowNavigationAction extends FBAction {
} }
public void run() { public void run() {
org.geometerplus.android.fbreader.FBReader.Instance.navigate(); myActivity.navigate();
} }
} }

View file

@ -17,12 +17,14 @@
* 02110-1301, USA. * 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; import org.geometerplus.android.fbreader.network.NetworkLibraryActivity;
class ShowNetworkLibraryAction extends RunActivityAction { class ShowNetworkLibraryAction extends RunActivityAction {
ShowNetworkLibraryAction(FBReader fbreader) { ShowNetworkLibraryAction(FBReaderActivity baseActivity, FBReader fbreader) {
super(fbreader, NetworkLibraryActivity.class); super(baseActivity, fbreader, NetworkLibraryActivity.class);
} }
} }

View file

@ -17,13 +17,13 @@
* 02110-1301, USA. * 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 { class ShowTOCAction extends RunActivityAction {
ShowTOCAction(FBReader fbreader) { ShowTOCAction(FBReaderActivity baseActivity, FBReader fbreader) {
super(fbreader, TOCActivity.class); super(baseActivity, fbreader, TOCActivity.class);
} }
public boolean isVisible() { public boolean isVisible() {

View file

@ -21,15 +21,17 @@ package org.geometerplus.android.fbreader;
import android.app.Activity; import android.app.Activity;
import org.geometerplus.fbreader.fbreader.FBReader;
public class TextSearchActivity extends SearchActivity { public class TextSearchActivity extends SearchActivity {
@Override @Override
void onSuccess() { void onSuccess() {
FBReader.Instance.showTextSearchControls(true); FBReaderActivity.Instance.showTextSearchControls(true);
} }
/*@Override /*@Override
void onFailure() { void onFailure() {
FBReader.Instance.showTextSearchControls(false); FBReaderActivity.Instance.showTextSearchControls(false);
}*/ }*/
@Override @Override
@ -44,14 +46,13 @@ public class TextSearchActivity extends SearchActivity {
@Override @Override
boolean runSearch(final String pattern) { boolean runSearch(final String pattern) {
final org.geometerplus.fbreader.fbreader.FBReader fbreader = final FBReader fbReader = (FBReader)FBReader.Instance();
(org.geometerplus.fbreader.fbreader.FBReader)org.geometerplus.fbreader.fbreader.FBReader.Instance(); fbReader.TextSearchPatternOption.setValue(pattern);
fbreader.TextSearchPatternOption.setValue(pattern); return fbReader.getTextView().search(pattern, true, false, false, false) != 0;
return fbreader.getTextView().search(pattern, true, false, false, false) != 0;
} }
@Override @Override
Activity getParentActivity() { Activity getParentActivity() {
return FBReader.Instance; return FBReaderActivity.Instance;
} }
} }

View file

@ -42,9 +42,9 @@ import org.geometerplus.zlibrary.core.network.*;
import org.geometerplus.fbreader.network.BookReference; import org.geometerplus.fbreader.network.BookReference;
import org.geometerplus.android.fbreader.FBReaderActivity;
public class BookDownloaderService extends Service { public class BookDownloaderService extends Service {
public static final String BOOK_FORMAT_KEY = "org.geometerplus.android.fbreader.network.BookFormat"; 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 REFERENCE_TYPE_KEY = "org.geometerplus.android.fbreader.network.ReferenceType";
public static final String CLEAN_URL_KEY = "org.geometerplus.android.fbreader.network.CleanURL"; 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) { 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) { if (file != null) {
intent.setAction(Intent.ACTION_VIEW).setData(Uri.fromFile(file)); intent.setAction(Intent.ACTION_VIEW).setData(Uri.fromFile(file));
} }

View file

@ -39,6 +39,7 @@ import org.geometerplus.zlibrary.core.network.ZLNetworkException;
import org.geometerplus.zlibrary.ui.android.R; import org.geometerplus.zlibrary.ui.android.R;
import org.geometerplus.android.util.AndroidUtil; import org.geometerplus.android.util.AndroidUtil;
import org.geometerplus.android.fbreader.FBReaderActivity;
import org.geometerplus.fbreader.network.*; import org.geometerplus.fbreader.network.*;
import org.geometerplus.fbreader.network.tree.NetworkBookTree; import org.geometerplus.fbreader.network.tree.NetworkBookTree;
@ -48,7 +49,6 @@ import org.geometerplus.fbreader.network.authentication.NetworkAuthenticationMan
class NetworkBookActions extends NetworkTreeActions { class NetworkBookActions extends NetworkTreeActions {
private static final String PACKAGE = "org.geometerplus.android.fbreader.network"; private static final String PACKAGE = "org.geometerplus.android.fbreader.network";
public static final int DOWNLOAD_BOOK_ITEM_ID = 0; public static final int DOWNLOAD_BOOK_ITEM_ID = 0;
@ -307,7 +307,7 @@ class NetworkBookActions extends NetworkTreeActions {
new Intent(Intent.ACTION_VIEW, new Intent(Intent.ACTION_VIEW,
Uri.fromFile(new File(local)), Uri.fromFile(new File(local)),
activity.getApplicationContext(), activity.getApplicationContext(),
org.geometerplus.android.fbreader.FBReader.class FBReaderActivity.class
).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP) ).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
); );
} }

View file

@ -21,10 +21,10 @@ package org.geometerplus.fbreader.fbreader;
import org.geometerplus.zlibrary.core.application.ZLApplication; import org.geometerplus.zlibrary.core.application.ZLApplication;
abstract class FBAction extends ZLApplication.ZLAction { public abstract class FBAction extends ZLApplication.ZLAction {
protected final FBReader Reader; protected final FBReader Reader;
FBAction(FBReader fbreader) { public FBAction(FBReader fbreader) {
Reader = fbreader; Reader = fbreader;
} }
} }

View file

@ -76,19 +76,11 @@ public final class FBReader extends ZLApplication {
addAction(ActionCode.DECREASE_FONT, new ChangeFontSizeAction(this, -2)); addAction(ActionCode.DECREASE_FONT, new ChangeFontSizeAction(this, -2));
addAction(ActionCode.ROTATE, new RotateAction(this)); 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.SEARCH, new SearchAction(this));
addAction(ActionCode.FIND_NEXT, new FindNextAction(this)); addAction(ActionCode.FIND_NEXT, new FindNextAction(this));
addAction(ActionCode.FIND_PREVIOUS, new FindPreviousAction(this)); addAction(ActionCode.FIND_PREVIOUS, new FindPreviousAction(this));
addAction(ActionCode.CLEAR_FIND_RESULTS, new ClearFindResultsAction(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_FORWARD, new VolumeKeyScrollingAction(this, true));
addAction(ActionCode.VOLUME_KEY_SCROLL_BACKWARD, new VolumeKeyScrollingAction(this, false)); addAction(ActionCode.VOLUME_KEY_SCROLL_BACKWARD, new VolumeKeyScrollingAction(this, false));
addAction(ActionCode.TRACKBALL_SCROLL_FORWARD, new TrackballScrollingAction(this, true)); addAction(ActionCode.TRACKBALL_SCROLL_FORWARD, new TrackballScrollingAction(this, true));

View file

@ -111,7 +111,7 @@ public abstract class ZLApplication {
hideAllPanels(); hideAllPanels();
} }
protected final void addAction(String actionId, ZLAction action) { public final void addAction(String actionId, ZLAction action) {
myIdToActionMap.put(actionId, action); myIdToActionMap.put(actionId, action);
} }