aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--main/src/cgeo/calendar/CalendarAddon.java2
-rw-r--r--main/src/cgeo/calendar/ICalendar.java1
-rw-r--r--main/src/cgeo/geocaching/AboutActivity.java2
-rw-r--r--main/src/cgeo/geocaching/UsefulAppsActivity.java17
-rw-r--r--main/src/cgeo/geocaching/utils/ProcessUtils.java6
5 files changed, 19 insertions, 9 deletions
diff --git a/main/src/cgeo/calendar/CalendarAddon.java b/main/src/cgeo/calendar/CalendarAddon.java
index fd96582..88c67a8 100644
--- a/main/src/cgeo/calendar/CalendarAddon.java
+++ b/main/src/cgeo/calendar/CalendarAddon.java
@@ -54,7 +54,7 @@ public class CalendarAddon {
.toString(), new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int id) {
- ProcessUtils.openMarket(activity, ICalendar.CALENDAR_ADDON_URI);
+ ProcessUtils.openMarket(activity, "cgeo.calendar");
}
});
}
diff --git a/main/src/cgeo/calendar/ICalendar.java b/main/src/cgeo/calendar/ICalendar.java
index 19089f0..9001198 100644
--- a/main/src/cgeo/calendar/ICalendar.java
+++ b/main/src/cgeo/calendar/ICalendar.java
@@ -3,6 +3,7 @@ package cgeo.calendar;
import org.eclipse.jdt.annotation.NonNull;
public interface ICalendar {
+ @Deprecated
@NonNull static final String CALENDAR_ADDON_URI = "market://details?id=cgeo.calendar";
@NonNull static final String INTENT = "cgeo.calendar.RESERVE";
diff --git a/main/src/cgeo/geocaching/AboutActivity.java b/main/src/cgeo/geocaching/AboutActivity.java
index 242e0a7..ffc4b35 100644
--- a/main/src/cgeo/geocaching/AboutActivity.java
+++ b/main/src/cgeo/geocaching/AboutActivity.java
@@ -128,7 +128,7 @@ public class AboutActivity extends AbstractViewPagerActivity<AboutActivity.Page>
@Override
public void onClick(final View v) {
- ProcessUtils.openMarket(AboutActivity.this, "market://details?id=" + getPackageName());
+ ProcessUtils.openMarket(AboutActivity.this, getPackageName());
}
});
return view;
diff --git a/main/src/cgeo/geocaching/UsefulAppsActivity.java b/main/src/cgeo/geocaching/UsefulAppsActivity.java
index 88dd3ca..d4517dc 100644
--- a/main/src/cgeo/geocaching/UsefulAppsActivity.java
+++ b/main/src/cgeo/geocaching/UsefulAppsActivity.java
@@ -7,6 +7,10 @@ import cgeo.geocaching.activity.AbstractActionBarActivity;
import cgeo.geocaching.ui.AbstractViewHolder;
import cgeo.geocaching.utils.ProcessUtils;
+import org.eclipse.jdt.annotation.NonNull;
+
+import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
import android.text.Html;
import android.view.View;
@@ -34,18 +38,16 @@ public class UsefulAppsActivity extends AbstractActionBarActivity {
private final int titleId;
private final int descriptionId;
private final int iconId;
+ @NonNull
private final String packageName;
- public HelperApp(final int title, final int description, final int icon, final String packageName) {
+ public HelperApp(final int title, final int description, final int icon, @NonNull final String packageName) {
this.titleId = title;
this.descriptionId = description;
this.iconId = icon;
this.packageName = packageName;
}
- public String getMarketUrl() {
- return (packageName.startsWith("http:")) ? packageName : "market://details?id=" + packageName;
- }
}
private static final HelperApp[] HELPER_APPS = {
@@ -95,7 +97,12 @@ 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];
- ProcessUtils.openMarket(UsefulAppsActivity.this, helperApp.getMarketUrl());
+ if (helperApp.packageName.startsWith("http")) {
+ startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(helperApp.packageName)));
+ }
+ else {
+ ProcessUtils.openMarket(UsefulAppsActivity.this, helperApp.packageName);
+ }
}
});
}
diff --git a/main/src/cgeo/geocaching/utils/ProcessUtils.java b/main/src/cgeo/geocaching/utils/ProcessUtils.java
index 9642794..37a1edf 100644
--- a/main/src/cgeo/geocaching/utils/ProcessUtils.java
+++ b/main/src/cgeo/geocaching/utils/ProcessUtils.java
@@ -108,15 +108,17 @@ public final class ProcessUtils {
}
@SuppressWarnings("deprecation")
- public static void openMarket(final Activity activity, final String url) {
+ public static void openMarket(final Activity activity, @NonNull final String packageName) {
try {
// allow also opening pure http URLs in addition to market packages
+ final String url = "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 | Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
activity.startActivity(marketIntent);
} catch (final RuntimeException ignored) {
- // market not available in standard emulator
+ // market not available, fall back to browser
+ activity.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://play.google.com/store/apps/details?id=" + packageName)));
}
}