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:
parent
392a131ccd
commit
c98b56d182
9 changed files with 38 additions and 73 deletions
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue