diff options
| author | Bananeweizen <bananeweizen@gmx.de> | 2015-01-31 08:18:13 +0100 |
|---|---|---|
| committer | Bananeweizen <bananeweizen@gmx.de> | 2015-01-31 08:18:13 +0100 |
| commit | ffbb13bdca8f69bb6db7664d1f3e18ebb6492e0d (patch) | |
| tree | 11b79ed180c0b6fd5303f6334f0d5e8f6bab0037 /main/src | |
| parent | a29ffa627fb26d2838fb85de27f479c8b1c22f2c (diff) | |
| download | cgeo-ffbb13bdca8f69bb6db7664d1f3e18ebb6492e0d.zip cgeo-ffbb13bdca8f69bb6db7664d1f3e18ebb6492e0d.tar.gz cgeo-ffbb13bdca8f69bb6db7664d1f3e18ebb6492e0d.tar.bz2 | |
market links crash in emulator
Diffstat (limited to 'main/src')
| -rw-r--r-- | main/src/cgeo/calendar/CalendarAddon.java | 4 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/AboutActivity.java | 10 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/UsefulAppsActivity.java | 20 | ||||
| -rw-r--r-- | main/src/cgeo/geocaching/utils/ProcessUtils.java | 14 |
4 files changed, 21 insertions, 27 deletions
diff --git a/main/src/cgeo/calendar/CalendarAddon.java b/main/src/cgeo/calendar/CalendarAddon.java index cce6bf7..fd96582 100644 --- a/main/src/cgeo/calendar/CalendarAddon.java +++ b/main/src/cgeo/calendar/CalendarAddon.java @@ -54,9 +54,7 @@ public class CalendarAddon { .toString(), new DialogInterface.OnClickListener() { @Override public void onClick(final DialogInterface dialog, final int id) { - final Intent intent = new Intent(Intent.ACTION_VIEW); - intent.setData(Uri.parse(ICalendar.CALENDAR_ADDON_URI)); - activity.startActivity(intent); + ProcessUtils.openMarket(activity, ICalendar.CALENDAR_ADDON_URI); } }); } diff --git a/main/src/cgeo/geocaching/AboutActivity.java b/main/src/cgeo/geocaching/AboutActivity.java index d964b3c..242e0a7 100644 --- a/main/src/cgeo/geocaching/AboutActivity.java +++ b/main/src/cgeo/geocaching/AboutActivity.java @@ -11,6 +11,7 @@ import cgeo.geocaching.sensors.Sensors; import cgeo.geocaching.settings.Settings; import cgeo.geocaching.ui.AbstractCachingPageViewCreator; import cgeo.geocaching.ui.AnchorAwareLinkMovementMethod; +import cgeo.geocaching.utils.ProcessUtils; import cgeo.geocaching.utils.Version; import org.apache.commons.io.IOUtils; @@ -127,7 +128,7 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> @Override public void onClick(final View v) { - market(); + ProcessUtils.openMarket(AboutActivity.this, "market://details?id=" + getPackageName()); } }); return view; @@ -192,13 +193,6 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page> startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url))); } - @SuppressWarnings("deprecation") - final void market() { - final Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + getPackageName())); - marketIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - startActivity(marketIntent); - } - @Override protected final cgeo.geocaching.activity.AbstractViewPagerActivity.PageViewCreator createViewCreator(final Page page) { switch (page) { diff --git a/main/src/cgeo/geocaching/UsefulAppsActivity.java b/main/src/cgeo/geocaching/UsefulAppsActivity.java index b218c84..88dd3ca 100644 --- a/main/src/cgeo/geocaching/UsefulAppsActivity.java +++ b/main/src/cgeo/geocaching/UsefulAppsActivity.java @@ -5,10 +5,8 @@ import butterknife.InjectView; import cgeo.geocaching.activity.AbstractActionBarActivity; import cgeo.geocaching.ui.AbstractViewHolder; +import cgeo.geocaching.utils.ProcessUtils; -import android.app.Activity; -import android.content.Intent; -import android.net.Uri; import android.os.Bundle; import android.text.Html; import android.view.View; @@ -45,18 +43,8 @@ public class UsefulAppsActivity extends AbstractActionBarActivity { this.packageName = packageName; } - @SuppressWarnings("deprecation") - private void installFromMarket(final Activity activity) { - try { - // allow also opening pure http URLs in addition to market packages - final String url = (packageName.startsWith("http:")) ? packageName : "market://details?id=" + packageName; - final Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); - marketIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); - activity.startActivity(marketIntent); - - } catch (final RuntimeException ignored) { - // market not available in standard emulator - } + public String getMarketUrl() { + return (packageName.startsWith("http:")) ? packageName : "market://details?id=" + packageName; } } @@ -107,7 +95,7 @@ public class UsefulAppsActivity extends AbstractActionBarActivity { @Override public void onItemClick(final AdapterView<?> parent, final View view, final int position, final long id) { final HelperApp helperApp = HELPER_APPS[position]; - helperApp.installFromMarket(UsefulAppsActivity.this); + ProcessUtils.openMarket(UsefulAppsActivity.this, helperApp.getMarketUrl()); } }); } diff --git a/main/src/cgeo/geocaching/utils/ProcessUtils.java b/main/src/cgeo/geocaching/utils/ProcessUtils.java index 4d45485..9642794 100644 --- a/main/src/cgeo/geocaching/utils/ProcessUtils.java +++ b/main/src/cgeo/geocaching/utils/ProcessUtils.java @@ -6,6 +6,7 @@ import org.apache.commons.collections4.CollectionUtils; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; +import android.app.Activity; import android.content.Intent; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; @@ -106,4 +107,17 @@ public final class ProcessUtils { return CollectionUtils.isNotEmpty(list) || CollectionUtils.isNotEmpty(servicesList); } + @SuppressWarnings("deprecation") + public static void openMarket(final Activity activity, final String url) { + try { + // allow also opening pure http URLs in addition to market packages + final Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); + marketIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + activity.startActivity(marketIntent); + + } catch (final RuntimeException ignored) { + // market not available in standard emulator + } + } + } |
