Added a no market strategy option devoid of market links (Sam)

pull/14/head
Jon Paris 14 years ago
parent 1445e06b86
commit df5abaeeab

@ -298,6 +298,8 @@ public class FilesControlSet extends PopupControlSet {
public void onClick(DialogInterface d, int which) { public void onClick(DialogInterface d, int which) {
Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(packageName); Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(packageName);
try { try {
if (marketIntent == null)
throw new ActivityNotFoundException("No market link supplied"); //$NON-NLS-1$
activity.startActivity(marketIntent); activity.startActivity(marketIntent);
} catch (ActivityNotFoundException anf) { } catch (ActivityNotFoundException anf) {
DialogUtilities.okDialog(activity, DialogUtilities.okDialog(activity,

@ -128,6 +128,10 @@ public class AddOnAdapter extends ArrayAdapter<AddOn> {
viewHolder.market.setVisibility(View.VISIBLE); viewHolder.market.setVisibility(View.VISIBLE);
viewHolder.installedIcon.setVisibility(View.GONE); viewHolder.installedIcon.setVisibility(View.GONE);
Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(item.getPackageName()); Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(item.getPackageName());
if (marketIntent == null) {
convertView.setVisibility(View.GONE);
} else {
convertView.setVisibility(View.VISIBLE);
viewHolder.market.setTag(new ButtonTag("market-" + item.getPackageName(), //$NON-NLS-1$ viewHolder.market.setTag(new ButtonTag("market-" + item.getPackageName(), //$NON-NLS-1$
marketIntent)); marketIntent));
Drawable icon = getIntentIcon(marketIntent); Drawable icon = getIntentIcon(marketIntent);
@ -138,6 +142,7 @@ public class AddOnAdapter extends ArrayAdapter<AddOn> {
viewHolder.market.setImageDrawable(icon); viewHolder.market.setImageDrawable(icon);
} }
} }
}
public Drawable getIntentIcon(Intent intent) { public Drawable getIntentIcon(Intent intent) {
PackageManager pm = activity.getPackageManager(); PackageManager pm = activity.getPackageManager();

@ -7,9 +7,7 @@ package com.todoroo.astrid.service;
import java.util.ArrayList; import java.util.ArrayList;
import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface;
import android.content.res.Resources; import android.content.res.Resources;
import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.BitmapDrawable;
@ -59,29 +57,6 @@ public class AddOnService {
return false; return false;
} }
/**
* Takes users to the market
*
* @author Tim Su <tim@todoroo.com>
*
*/
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 * Record that a version was an OEM install
*/ */

@ -18,6 +18,8 @@ public abstract class MarketStrategy {
*/ */
abstract public Intent generateMarketLink(String packageName); abstract public Intent generateMarketLink(String packageName);
abstract public String strategyId();
/** /**
* @return if this market has power pack * @return if this market has power pack
*/ */
@ -50,6 +52,18 @@ public abstract class MarketStrategy {
return true; 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 { public static class AndroidMarketStrategy extends MarketStrategy {
@Override @Override
@ -59,6 +73,11 @@ public abstract class MarketStrategy {
packageName)); packageName));
} }
@Override
public String strategyId() {
return "android_market"; //$NON-NLS-1$
}
} }
public static class WebMarketStrategy extends MarketStrategy { public static class WebMarketStrategy extends MarketStrategy {
@ -69,6 +88,11 @@ public abstract class MarketStrategy {
Uri.parse("http://weloveastrid.com/store")); //$NON-NLS-1$ 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 { 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 { public static class NookMarketStrategy extends MarketStrategy {
@ -146,6 +175,11 @@ public abstract class MarketStrategy {
}; };
} }
@Override
public String strategyId() {
return "nook_market"; //$NON-NLS-1$
}
} }
} }

@ -196,7 +196,8 @@ public class UpdateMessageService {
PackageInfo pi = pm.getPackageInfo(Constants.PACKAGE, PackageManager.GET_META_DATA); PackageInfo pi = pm.getPackageInfo(Constants.PACKAGE, PackageManager.GET_META_DATA);
int versionCode = pi.versionCode; int versionCode = pi.versionCode;
String result = restClient.get(URL + "?version=" + 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)) if(TextUtils.isEmpty(result))
return null; return null;

@ -296,6 +296,8 @@ public class VoiceInputAssistant {
Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(packageName); Intent marketIntent = Constants.MARKET_STRATEGY.generateMarketLink(packageName);
if (activity != null) { if (activity != null) {
try { try {
if (marketIntent == null)
throw new ActivityNotFoundException("No market link supplied"); //$NON-NLS-1$
activity.startActivity(marketIntent); activity.startActivity(marketIntent);
} catch (ActivityNotFoundException ane) { } catch (ActivityNotFoundException ane) {
DialogUtilities.okDialog(activity, DialogUtilities.okDialog(activity,

Loading…
Cancel
Save