diff --git a/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java b/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java index 80690127d..401bfe69c 100644 --- a/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java +++ b/astrid/plugin-src/com/todoroo/astrid/files/FilesControlSet.java @@ -298,6 +298,8 @@ public class FilesControlSet extends PopupControlSet { public void onClick(DialogInterface d, int which) { Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(packageName); try { + if (marketIntent == null) + throw new ActivityNotFoundException("No market link supplied"); //$NON-NLS-1$ activity.startActivity(marketIntent); } catch (ActivityNotFoundException anf) { DialogUtilities.okDialog(activity, diff --git a/astrid/src/com/todoroo/astrid/adapter/AddOnAdapter.java b/astrid/src/com/todoroo/astrid/adapter/AddOnAdapter.java index 32f8b512f..bfa0a2028 100644 --- a/astrid/src/com/todoroo/astrid/adapter/AddOnAdapter.java +++ b/astrid/src/com/todoroo/astrid/adapter/AddOnAdapter.java @@ -128,14 +128,19 @@ public class AddOnAdapter extends ArrayAdapter { viewHolder.market.setVisibility(View.VISIBLE); viewHolder.installedIcon.setVisibility(View.GONE); Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(item.getPackageName()); - viewHolder.market.setTag(new ButtonTag("market-" + item.getPackageName(), //$NON-NLS-1$ - marketIntent)); - Drawable icon = getIntentIcon(marketIntent); - if(icon == null) - viewHolder.market.setImageResource( - android.R.drawable.stat_sys_download); - else - viewHolder.market.setImageDrawable(icon); + if (marketIntent == null) { + convertView.setVisibility(View.GONE); + } else { + convertView.setVisibility(View.VISIBLE); + viewHolder.market.setTag(new ButtonTag("market-" + item.getPackageName(), //$NON-NLS-1$ + marketIntent)); + Drawable icon = getIntentIcon(marketIntent); + if(icon == null) + viewHolder.market.setImageResource( + android.R.drawable.stat_sys_download); + else + viewHolder.market.setImageDrawable(icon); + } } } diff --git a/astrid/src/com/todoroo/astrid/service/AddOnService.java b/astrid/src/com/todoroo/astrid/service/AddOnService.java index a672a7784..6a5c881f6 100644 --- a/astrid/src/com/todoroo/astrid/service/AddOnService.java +++ b/astrid/src/com/todoroo/astrid/service/AddOnService.java @@ -7,9 +7,7 @@ package com.todoroo.astrid.service; import java.util.ArrayList; -import android.app.Activity; import android.content.Context; -import android.content.DialogInterface; import android.content.res.Resources; import android.graphics.drawable.BitmapDrawable; @@ -59,29 +57,6 @@ public class AddOnService { return false; } - /** - * Takes users to the market - * - * @author Tim Su - * - */ - public static class MarketClickListener implements DialogInterface.OnClickListener { - private final Context context; - private final String packageName; - - public MarketClickListener(Context activity, String packageName) { - this.context = activity; - this.packageName = packageName; - } - - @Override - public void onClick(DialogInterface arg0, int arg1) { - context.startActivity(Constants.MARKET_STRATEGY.generateMarketLink(packageName)); - if(context instanceof Activity) - ((Activity)context).finish(); - } - }; - /** * Record that a version was an OEM install */ diff --git a/astrid/src/com/todoroo/astrid/service/MarketStrategy.java b/astrid/src/com/todoroo/astrid/service/MarketStrategy.java index bc360198d..bcdab647e 100644 --- a/astrid/src/com/todoroo/astrid/service/MarketStrategy.java +++ b/astrid/src/com/todoroo/astrid/service/MarketStrategy.java @@ -18,6 +18,8 @@ public abstract class MarketStrategy { */ abstract public Intent generateMarketLink(String packageName); + abstract public String strategyId(); + /** * @return if this market has power pack */ @@ -50,6 +52,18 @@ public abstract class MarketStrategy { return true; } + public static class NoMarketStrategy extends MarketStrategy { + @Override + public Intent generateMarketLink(String packageName) { + return null; + } + + @Override + public String strategyId() { + return "no_market"; //$NON-NLS-1$ + } + } + public static class AndroidMarketStrategy extends MarketStrategy { @Override @@ -59,6 +73,11 @@ public abstract class MarketStrategy { packageName)); } + @Override + public String strategyId() { + return "android_market"; //$NON-NLS-1$ + } + } public static class WebMarketStrategy extends MarketStrategy { @@ -69,6 +88,11 @@ public abstract class MarketStrategy { Uri.parse("http://weloveastrid.com/store")); //$NON-NLS-1$ } + @Override + public String strategyId() { + return "web_market"; //$NON-NLS-1$ + } + } public static class AmazonMarketStrategy extends MarketStrategy { @@ -109,6 +133,11 @@ public abstract class MarketStrategy { }; } + @Override + public String strategyId() { + return "amazon_market"; //$NON-NLS-1$ + } + } public static class NookMarketStrategy extends MarketStrategy { @@ -146,6 +175,11 @@ public abstract class MarketStrategy { }; } + @Override + public String strategyId() { + return "nook_market"; //$NON-NLS-1$ + } + } } diff --git a/astrid/src/com/todoroo/astrid/service/UpdateMessageService.java b/astrid/src/com/todoroo/astrid/service/UpdateMessageService.java index c6167110e..ac115e8cf 100644 --- a/astrid/src/com/todoroo/astrid/service/UpdateMessageService.java +++ b/astrid/src/com/todoroo/astrid/service/UpdateMessageService.java @@ -196,7 +196,8 @@ public class UpdateMessageService { PackageInfo pi = pm.getPackageInfo(Constants.PACKAGE, PackageManager.GET_META_DATA); int versionCode = pi.versionCode; String result = restClient.get(URL + "?version=" + versionCode + "&" + - "language=" + Locale.getDefault().getISO3Language()); //$NON-NLS-1$ + "language=" + Locale.getDefault().getISO3Language() + "&" + + "market=" + Constants.MARKET_STRATEGY.strategyId()); //$NON-NLS-1$ if(TextUtils.isEmpty(result)) return null; diff --git a/astrid/src/com/todoroo/astrid/voice/VoiceInputAssistant.java b/astrid/src/com/todoroo/astrid/voice/VoiceInputAssistant.java index 3d3b171b3..2f65a2dbe 100644 --- a/astrid/src/com/todoroo/astrid/voice/VoiceInputAssistant.java +++ b/astrid/src/com/todoroo/astrid/voice/VoiceInputAssistant.java @@ -296,6 +296,8 @@ public class VoiceInputAssistant { Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(packageName); if (activity != null) { try { + if (marketIntent == null) + throw new ActivityNotFoundException("No market link supplied"); //$NON-NLS-1$ activity.startActivity(marketIntent); } catch (ActivityNotFoundException ane) { DialogUtilities.okDialog(activity,