aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/utils
diff options
context:
space:
mode:
Diffstat (limited to 'main/src/cgeo/geocaching/utils')
-rw-r--r--main/src/cgeo/geocaching/utils/ProcessUtils.java20
-rw-r--r--main/src/cgeo/geocaching/utils/TranslationUtils.java2
2 files changed, 20 insertions, 2 deletions
diff --git a/main/src/cgeo/geocaching/utils/ProcessUtils.java b/main/src/cgeo/geocaching/utils/ProcessUtils.java
index 1c05e84..85cedc5 100644
--- a/main/src/cgeo/geocaching/utils/ProcessUtils.java
+++ b/main/src/cgeo/geocaching/utils/ProcessUtils.java
@@ -14,8 +14,26 @@ public final class ProcessUtils {
// utility class
}
+ /**
+ * Preferred method to detect the availability of an external app
+ *
+ * @param packageName
+ * @return
+ */
+ public static boolean isLaunchable(final String packageName) {
+ return getLaunchIntent(packageName) != null;
+ }
+
+ /**
+ * Checks whether a launch intent is available or if the package is just installed
+ * This function is relatively costly, so if you know that the package in question has
+ * a launch intent, use isLaunchable() instead.
+ *
+ * @param packageName
+ * @return
+ */
public static boolean isInstalled(final String packageName) {
- return (getLaunchIntent(packageName) != null) || hasPackageInstalled(packageName);
+ return isLaunchable(packageName) || hasPackageInstalled(packageName);
}
/**
diff --git a/main/src/cgeo/geocaching/utils/TranslationUtils.java b/main/src/cgeo/geocaching/utils/TranslationUtils.java
index 05045ee..1224f7e 100644
--- a/main/src/cgeo/geocaching/utils/TranslationUtils.java
+++ b/main/src/cgeo/geocaching/utils/TranslationUtils.java
@@ -35,7 +35,7 @@ public final class TranslationUtils {
private static String buildTranslationURI(final String toLang, final String text) {
String content = Network.encode(text);
// the app works better without the "+", the website works better with "+", therefore assume using the app if installed
- if (ProcessUtils.isInstalled(TRANSLATION_APP)) {
+ if (ProcessUtils.isLaunchable(TRANSLATION_APP)) {
content = content.replace("+", "%20");
}
return translationWebsite + translationForceClassicMode + translationAutoSelect + translationFieldSeparator + toLang + translationFieldSeparator + content;