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

common base class for all android actions

This commit is contained in:
Nikolay Pultsin 2011-05-21 02:46:21 +01:00
parent 392a131ccd
commit c98b56d182
9 changed files with 38 additions and 73 deletions

View file

@ -27,7 +27,6 @@ import org.geometerplus.zlibrary.core.network.ZLNetworkException;
import org.geometerplus.zlibrary.text.view.*;
import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
import org.geometerplus.fbreader.bookmodel.FBHyperlinkType;
import org.geometerplus.fbreader.network.NetworkLibrary;
@ -36,14 +35,11 @@ import org.geometerplus.android.fbreader.network.BookDownloader;
import org.geometerplus.android.fbreader.network.BookDownloaderService;
import org.geometerplus.android.fbreader.image.ImageViewActivity;
class ProcessHyperlinkAction extends FBAction {
class ProcessHyperlinkAction extends FBAndroidAction {
private static final String ACTION_LINK_PREFIX = "fbreader-action://";
private final FBReader myBaseActivity;
ProcessHyperlinkAction(FBReader baseActivity, FBReaderApp fbreader) {
super(fbreader);
myBaseActivity = baseActivity;
super(baseActivity, fbreader);
}
public boolean isEnabled() {
@ -76,20 +72,20 @@ class ProcessHyperlinkAction extends FBAction {
if (uriString != null) {
try {
final Intent intent = new Intent();
intent.setClass(myBaseActivity, ImageViewActivity.class);
intent.setClass(BaseActivity, ImageViewActivity.class);
intent.setData(Uri.parse(uriString));
intent.putExtra(
ImageViewActivity.BACKGROUND_COLOR_KEY,
Reader.ImageViewBackgroundOption.getValue().getIntValue()
);
myBaseActivity.startActivity(intent);
BaseActivity.startActivity(intent);
} catch (Exception e) {
e.printStackTrace();
}
}
} else if (region instanceof ZLTextWordRegion) {
DictionaryUtil.openWordInDictionary(
myBaseActivity, (ZLTextWordRegion)region
BaseActivity, (ZLTextWordRegion)region
);
}
}
@ -98,7 +94,7 @@ class ProcessHyperlinkAction extends FBAction {
final Intent intent = new Intent(Intent.ACTION_VIEW);
boolean externalUrl = true;
if (BookDownloader.acceptsUri(Uri.parse(urlString))) {
intent.setClass(myBaseActivity, BookDownloader.class);
intent.setClass(BaseActivity, BookDownloader.class);
intent.putExtra(BookDownloaderService.SHOW_NOTIFICATIONS_KEY, BookDownloaderService.Notifications.ALL);
externalUrl = false;
}
@ -109,7 +105,7 @@ class ProcessHyperlinkAction extends FBAction {
}
intent.setData(Uri.parse(NetworkLibrary.Instance().rewriteUrl(urlString, externalUrl)));
try {
myBaseActivity.startActivity(intent);
BaseActivity.startActivity(intent);
} catch (ActivityNotFoundException e) {
// TODO: show an error message
}

View file

@ -21,20 +21,17 @@ package org.geometerplus.android.fbreader;
import android.content.Intent;
import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
abstract class RunActivityAction extends FBAction {
private final FBReader myBaseActivity;
abstract class RunActivityAction extends FBAndroidAction {
private final Class<?> myActivityClass;
RunActivityAction(FBReader baseActivity, FBReaderApp fbreader, Class<?> activityClass) {
super(fbreader);
myBaseActivity = baseActivity;
super(baseActivity, fbreader);
myActivityClass = activityClass;
}
public void run() {
myBaseActivity.startActivity(new Intent(myBaseActivity.getApplicationContext(), myActivityClass));
BaseActivity.startActivity(new Intent(BaseActivity.getApplicationContext(), myActivityClass));
}
}

View file

@ -20,14 +20,10 @@
package org.geometerplus.android.fbreader;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
import org.geometerplus.fbreader.fbreader.FBAction;
class SearchAction extends FBAction {
private final FBReader myActivity;
SearchAction(FBReader activity, FBReaderApp fbreader) {
super(fbreader);
myActivity = activity;
class SearchAction extends FBAndroidAction {
SearchAction(FBReader baseActivity, FBReaderApp fbreader) {
super(baseActivity, fbreader);
}
public boolean isVisible() {
@ -35,6 +31,6 @@ class SearchAction extends FBAction {
}
public void run() {
myActivity.onSearchRequested();
BaseActivity.onSearchRequested();
}
}

View file

@ -21,15 +21,11 @@ package org.geometerplus.android.fbreader;
import android.content.Intent;
import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
class ShowBookInfoAction extends FBAction {
private final FBReader myBaseActivity;
class ShowBookInfoAction extends FBAndroidAction {
ShowBookInfoAction(FBReader baseActivity, FBReaderApp fbreader) {
super(fbreader);
myBaseActivity = baseActivity;
super(baseActivity, fbreader);
}
public boolean isVisible() {
@ -37,8 +33,8 @@ class ShowBookInfoAction extends FBAction {
}
public void run() {
myBaseActivity.startActivityForResult(
new Intent(myBaseActivity.getApplicationContext(), BookInfoActivity.class)
BaseActivity.startActivityForResult(
new Intent(BaseActivity.getApplicationContext(), BookInfoActivity.class)
.putExtra(BookInfoActivity.CURRENT_BOOK_PATH_KEY, Reader.Model.Book.File.getPath())
.putExtra(BookInfoActivity.HIDE_OPEN_BUTTON_KEY, true),
FBReader.REPAINT_CODE

View file

@ -23,15 +23,11 @@ import java.util.List;
import android.content.Intent;
import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
class ShowCancelMenuAction extends FBAction {
private final FBReader myBaseActivity;
class ShowCancelMenuAction extends FBAndroidAction {
ShowCancelMenuAction(FBReader baseActivity, FBReaderApp fbreader) {
super(fbreader);
myBaseActivity = baseActivity;
super(baseActivity, fbreader);
}
public void run() {
@ -44,7 +40,7 @@ class ShowCancelMenuAction extends FBAction {
Reader.closeWindow();
} else {
final Intent intent = new Intent();
intent.setClass(myBaseActivity, CancelActivity.class);
intent.setClass(BaseActivity, CancelActivity.class);
intent.putExtra(CancelActivity.LIST_SIZE, descriptionList.size());
int index = 0;
for (FBReaderApp.CancelActionDescription description : descriptionList) {
@ -52,7 +48,7 @@ class ShowCancelMenuAction extends FBAction {
intent.putExtra(CancelActivity.ITEM_SUMMARY + index, description.Summary);
++index;
}
myBaseActivity.startActivityForResult(intent, FBReader.CANCEL_CODE);
BaseActivity.startActivityForResult(intent, FBReader.CANCEL_CODE);
}
}
}

View file

@ -21,26 +21,22 @@ package org.geometerplus.android.fbreader;
import android.content.Intent;
import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
import org.geometerplus.fbreader.bookmodel.BookModel;
import org.geometerplus.android.fbreader.library.LibraryTopLevelActivity;
class ShowLibraryAction extends FBAction {
private final FBReader myBaseActivity;
class ShowLibraryAction extends FBAndroidAction {
ShowLibraryAction(FBReader baseActivity, FBReaderApp fbreader) {
super(fbreader);
myBaseActivity = baseActivity;
super(baseActivity, fbreader);
}
public void run() {
final BookModel model = Reader.Model;
Intent intent = new Intent(myBaseActivity.getApplicationContext(), LibraryTopLevelActivity.class);
Intent intent = new Intent(BaseActivity.getApplicationContext(), LibraryTopLevelActivity.class);
if (model != null && model.Book != null) {
intent.putExtra(LibraryTopLevelActivity.SELECTED_BOOK_PATH_KEY, model.Book.File.getPath());
}
myBaseActivity.startActivity(intent);
BaseActivity.startActivity(intent);
}
}

View file

@ -19,18 +19,14 @@
package org.geometerplus.android.fbreader;
import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
class ShowMenuAction extends FBAction {
private final FBReader myActivity;
ShowMenuAction(FBReader activity, FBReaderApp fbreader) {
super(fbreader);
myActivity = activity;
class ShowMenuAction extends FBAndroidAction {
ShowMenuAction(FBReader baseActivity, FBReaderApp fbreader) {
super(baseActivity, fbreader);
}
public void run() {
myActivity.openOptionsMenu();
BaseActivity.openOptionsMenu();
}
}

View file

@ -22,15 +22,11 @@ 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.FBReaderApp;
class ShowNavigationAction extends FBAction {
private final FBReader myActivity;
ShowNavigationAction(FBReader activity, FBReaderApp fbreader) {
super(fbreader);
myActivity = activity;
class ShowNavigationAction extends FBAndroidAction {
ShowNavigationAction(FBReader baseActivity, FBReaderApp fbreader) {
super(baseActivity, fbreader);
}
@Override
@ -41,6 +37,6 @@ class ShowNavigationAction extends FBAction {
}
public void run() {
myActivity.navigate();
BaseActivity.navigate();
}
}

View file

@ -21,22 +21,18 @@ package org.geometerplus.android.fbreader;
import android.content.Intent;
import org.geometerplus.fbreader.fbreader.FBAction;
import org.geometerplus.fbreader.fbreader.FBReaderApp;
import org.geometerplus.android.fbreader.preferences.PreferenceActivity;
class ShowPreferencesAction extends FBAction {
private final FBReader myBaseActivity;
class ShowPreferencesAction extends FBAndroidAction {
ShowPreferencesAction(FBReader baseActivity, FBReaderApp fbreader) {
super(fbreader);
myBaseActivity = baseActivity;
super(baseActivity, fbreader);
}
public void run() {
myBaseActivity.startActivityForResult(
new Intent(myBaseActivity.getApplicationContext(), PreferenceActivity.class),
BaseActivity.startActivityForResult(
new Intent(BaseActivity.getApplicationContext(), PreferenceActivity.class),
FBReader.REPAINT_CODE
);
}