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

lingvo api

This commit is contained in:
dlmv 2013-09-09 14:09:54 +04:00
parent 5f451143c5
commit 37da206ab8
3 changed files with 30 additions and 6 deletions

View file

@ -35,6 +35,11 @@
pattern="%s" pattern="%s"
list="always" list="always"
/> />
<dictionaryNotTranslator
id="ABBYY Lingvo"
package="com.abbyy.mobile.lingvo.market"
list="always"
/>
<dictionary <dictionary
id="Lingo Quiz Lite" id="Lingo Quiz Lite"
package="mnm.lite.lingoquiz" package="mnm.lite.lingoquiz"

Binary file not shown.

View file

@ -27,6 +27,8 @@ import android.net.Uri;
import android.util.DisplayMetrics; import android.util.DisplayMetrics;
import android.util.Log; import android.util.Log;
import com.abbyy.mobile.lingvo.api.MinicardContract;
import com.paragon.dictionary.fbreader.OpenDictionaryFlyout; import com.paragon.dictionary.fbreader.OpenDictionaryFlyout;
import com.paragon.open.dictionary.api.*; import com.paragon.open.dictionary.api.*;
import com.paragon.open.dictionary.api.Dictionary; import com.paragon.open.dictionary.api.Dictionary;
@ -64,11 +66,11 @@ public abstract class DictionaryUtil {
@Override @Override
public boolean startElementHandler(String tag, ZLStringMap attributes) { public boolean startElementHandler(String tag, ZLStringMap attributes) {
if ("dictionary".equals(tag)) { if ("dictionary".equals(tag) || "dictionaryNotTranslator".equals(tag)) {
final String id = attributes.getValue("id"); final String id = attributes.getValue("id");
final String title = attributes.getValue("title"); final String title = attributes.getValue("title");
int flags = FLAG_SHOW_AS_DICTIONARY | FLAG_SHOW_AS_TRANSLATOR; int flags = "dictionary".equals(tag) ? (FLAG_SHOW_AS_DICTIONARY | FLAG_SHOW_AS_TRANSLATOR) : FLAG_SHOW_AS_DICTIONARY;
if (!"always".equals(attributes.getValue("list"))) { if (!"always".equals(attributes.getValue("list"))) {
flags |= FLAG_INSTALLED_ONLY; flags |= FLAG_INSTALLED_ONLY;
} }
@ -300,7 +302,7 @@ public abstract class DictionaryUtil {
} }
} }
public static void openTextInDictionary(Activity activity, String text, boolean singleWord, int selectionTop, int selectionBottom) { public static void openTextInDictionary(final Activity activity, String text, boolean singleWord, int selectionTop, int selectionBottom) {
Log.d("FBReader", "DictionaryUtil:openTextInDictionary"); Log.d("FBReader", "DictionaryUtil:openTextInDictionary");
if (singleWord) { if (singleWord) {
int start = 0; int start = 0;
@ -326,6 +328,23 @@ public abstract class DictionaryUtil {
openDictionary.myFlyout.showTranslation(activity, text, frameMetrics); openDictionary.myFlyout.showTranslation(activity, text, frameMetrics);
return; return;
} }
if ("ABBYY Lingvo".equals(info.Id)) {
final Intent intent = new Intent(MinicardContract.MINICARD_ACTION);
intent.putExtra( MinicardContract.EXTRA_TEXT, text);
intent.putExtra( MinicardContract.EXTRA_GRAVITY, frameMetrics.gravity);
intent.putExtra( MinicardContract.EXTRA_HEIGHT, frameMetrics.height);
intent.putExtra( MinicardContract.EXTRA_FORCE_LEMMATIZATION, true);
intent.putExtra( MinicardContract.EXTRA_TRANSLATE_VARIANTS, true);
intent.putExtra( MinicardContract.EXTRA_LIGHT_THEME, true);
try {
activity.startActivity(intent);
} catch (ActivityNotFoundException e) {
DictionaryUtil.installDictionaryIfNotInstalled(activity, singleWord, true);
}
return;
}
final Intent intent = getDictionaryIntent(info, text); final Intent intent = getDictionaryIntent(info, text);
try { try {
@ -337,7 +356,7 @@ public abstract class DictionaryUtil {
} }
activity.startActivity(intent); activity.startActivity(intent);
} catch (ActivityNotFoundException e) { } catch (ActivityNotFoundException e) {
DictionaryUtil.installDictionaryIfNotInstalled(activity, singleWord); DictionaryUtil.installDictionaryIfNotInstalled(activity, singleWord, false);
} }
} }
@ -347,8 +366,8 @@ public abstract class DictionaryUtil {
); );
} }
public static void installDictionaryIfNotInstalled(final Activity activity, boolean singleWord) { public static void installDictionaryIfNotInstalled(final Activity activity, boolean singleWord, boolean forceNotCheck) {
if (PackageUtil.canBeStarted(activity, getDictionaryIntent("test", singleWord), false)) { if ((!forceNotCheck) && PackageUtil.canBeStarted(activity, getDictionaryIntent("test", singleWord), false)) {
return; return;
} }
final PackageInfo dictionaryInfo = getCurrentDictionaryInfo(singleWord); final PackageInfo dictionaryInfo = getCurrentDictionaryInfo(singleWord);