diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2013-07-21 15:22:34 +0200 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2013-07-21 15:22:34 +0200 |
| commit | 2fd63f0d3ddc3e367aff18cca3d6a362710f9b11 (patch) | |
| tree | 4ae435e56f5f4e7fafe1b8d046a3186416893f36 | |
| parent | e7d10a127b677b082b9bfcf468016f57295dbe9f (diff) | |
| download | cgeo-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.java | 15 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/apps/AbstractApp.java | 3 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/ProcessUtils.java | 15 |
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); + } } |
