aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBananeweizen <bananeweizen@gmx.de>2013-07-21 15:22:34 +0200
committerBananeweizen <bananeweizen@gmx.de>2013-07-21 15:22:34 +0200
commit2fd63f0d3ddc3e367aff18cca3d6a362710f9b11 (patch)
tree4ae435e56f5f4e7fafe1b8d046a3186416893f36
parente7d10a127b677b082b9bfcf468016f57295dbe9f (diff)
downloadcgeo-2fd63f0d3ddc3e367aff18cca3d6a362710f9b11.zip
cgeo-2fd63f0d3ddc3e367aff18cca3d6a362710f9b11.tar.gz
cgeo-2fd63f0d3ddc3e367aff18cca3d6a362710f9b11.tar.bz2
refactoring: move intent based check to ProcessUtils
-rw-r--r--main/src/cgeo/geocaching/MainActivity.java15
-rw-r--r--main/src/cgeo/geocaching/apps/AbstractApp.java3
-rw-r--r--main/src/cgeo/geocaching/utils/ProcessUtils.java15
3 files changed, 17 insertions, 16 deletions
diff --git a/main/src/cgeo/geocaching/MainActivity.java b/main/src/cgeo/geocaching/MainActivity.java
index 85ebe05..7c7251c 100644
--- a/main/src/cgeo/geocaching/MainActivity.java
+++ b/main/src/cgeo/geocaching/MainActivity.java
@@ -11,11 +11,12 @@ import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.geopoint.Units;
import cgeo.geocaching.maps.CGeoMap;
-import cgeo.geocaching.settings.SettingsActivity;
import cgeo.geocaching.settings.Settings;
+import cgeo.geocaching.settings.SettingsActivity;
import cgeo.geocaching.ui.Formatter;
import cgeo.geocaching.utils.GeoDirHandler;
import cgeo.geocaching.utils.Log;
+import cgeo.geocaching.utils.ProcessUtils;
import cgeo.geocaching.utils.RunnableWithArgument;
import cgeo.geocaching.utils.Version;
@@ -30,8 +31,6 @@ import android.app.AlertDialog.Builder;
import android.app.SearchManager;
import android.content.DialogInterface;
import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
import android.location.Address;
import android.location.Geocoder;
@@ -268,19 +267,11 @@ public class MainActivity extends AbstractActivity {
super.onPrepareOptionsMenu(menu);
MenuItem item = menu.findItem(R.id.menu_scan);
if (item != null) {
- item.setEnabled(isIntentAvailable(SCAN_INTENT));
+ item.setEnabled(ProcessUtils.isIntentAvailable(SCAN_INTENT));
}
return true;
}
- public static boolean isIntentAvailable(String intent) {
- final PackageManager packageManager = cgeoapplication.getInstance().getPackageManager();
- final List<ResolveInfo> list = packageManager.queryIntentActivities(
- new Intent(intent), PackageManager.MATCH_DEFAULT_ONLY);
-
- return CollectionUtils.isNotEmpty(list);
- }
-
@Override
public boolean onOptionsItemSelected(MenuItem item) {
final int id = item.getItemId();
diff --git a/main/src/cgeo/geocaching/apps/AbstractApp.java b/main/src/cgeo/geocaching/apps/AbstractApp.java
index 4d7abde..7b6b3d9 100644
--- a/main/src/cgeo/geocaching/apps/AbstractApp.java
+++ b/main/src/cgeo/geocaching/apps/AbstractApp.java
@@ -1,7 +1,6 @@
package cgeo.geocaching.apps;
import cgeo.geocaching.Geocache;
-import cgeo.geocaching.MainActivity;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.utils.ProcessUtils;
@@ -31,7 +30,7 @@ public abstract class AbstractApp implements App {
if (StringUtils.isNotEmpty(packageName) && ProcessUtils.isLaunchable(packageName)) {
return true;
}
- return MainActivity.isIntentAvailable(intent);
+ return ProcessUtils.isIntentAvailable(intent);
}
protected Intent getLaunchIntent() {
diff --git a/main/src/cgeo/geocaching/utils/ProcessUtils.java b/main/src/cgeo/geocaching/utils/ProcessUtils.java
index 85cedc5..3345ff1 100644
--- a/main/src/cgeo/geocaching/utils/ProcessUtils.java
+++ b/main/src/cgeo/geocaching/utils/ProcessUtils.java
@@ -2,9 +2,12 @@ package cgeo.geocaching.utils;
import cgeo.geocaching.cgeoapplication;
+import org.apache.commons.collections.CollectionUtils;
+
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import java.util.List;
@@ -16,7 +19,7 @@ public final class ProcessUtils {
/**
* Preferred method to detect the availability of an external app
- *
+ *
* @param packageName
* @return
*/
@@ -28,7 +31,7 @@ public final class ProcessUtils {
* 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
*/
@@ -65,4 +68,12 @@ public final class ProcessUtils {
return null;
}
}
+
+ public static boolean isIntentAvailable(final String intent) {
+ final PackageManager packageManager = cgeoapplication.getInstance().getPackageManager();
+ final List<ResolveInfo> list = packageManager.queryIntentActivities(
+ new Intent(intent), PackageManager.MATCH_DEFAULT_ONLY);
+
+ return CollectionUtils.isNotEmpty(list);
+ }
}