diff --git a/AndroidManifest.xml b/AndroidManifest.xml index 8f3e276da..696d0c729 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -162,6 +162,16 @@ - + + + + + + + + + + + diff --git a/src/org/geometerplus/android/fbreader/FBReader.java b/src/org/geometerplus/android/fbreader/FBReader.java index ea912c31d..0614b4e51 100644 --- a/src/org/geometerplus/android/fbreader/FBReader.java +++ b/src/org/geometerplus/android/fbreader/FBReader.java @@ -106,7 +106,7 @@ public final class FBReader extends ZLAndroidActivity { fbReader.addAction(ActionCode.PROCESS_HYPERLINK, new ProcessHyperlinkAction(this, fbReader)); - fbReader.addAction(ActionCode.SPEAK, new SpeakAction(this, fbReader)); + fbReader.addAction(ActionCode.SPEAK, new RunPluginAction(this, fbReader, Uri.parse("http://data.fbreader.org/plugin/tts"))); fbReader.addAction(ActionCode.SHOW_CANCEL_MENU, new ShowCancelMenuAction(this, fbReader)); } diff --git a/src/org/geometerplus/android/fbreader/SpeakAction.java b/src/org/geometerplus/android/fbreader/RunPluginAction.java similarity index 65% rename from src/org/geometerplus/android/fbreader/SpeakAction.java rename to src/org/geometerplus/android/fbreader/RunPluginAction.java index d789755ce..f730e67ba 100644 --- a/src/org/geometerplus/android/fbreader/SpeakAction.java +++ b/src/org/geometerplus/android/fbreader/RunPluginAction.java @@ -19,10 +19,24 @@ package org.geometerplus.android.fbreader; +import android.content.Intent; +import android.content.ActivityNotFoundException; +import android.net.Uri; + import org.geometerplus.fbreader.fbreader.FBReaderApp; -class SpeakAction extends RunActivityAction { - SpeakAction(FBReader baseActivity, FBReaderApp fbreader) { - super(baseActivity, fbreader, SpeakActivity.class); +class RunPluginAction extends FBAndroidAction { + private final Uri myUri; + + RunPluginAction(FBReader baseActivity, FBReaderApp fbreader, Uri uri) { + super(baseActivity, fbreader); + myUri = uri; + } + + public void run() { + try { + BaseActivity.startActivity(new Intent("android.fbreader.action.plugin.RUN", myUri)); + } catch (ActivityNotFoundException e) { + } } }