Prompt for login on premium page, toast successes

pull/14/head
Sam Bosley 13 years ago
parent c26dc76e91
commit d631bed3ce

@ -800,6 +800,9 @@ Astrid is open-source and proudly maintained by Todoroo, Inc.</string>
<!-- slide 30c: Title of "Forums" option in settings --> <!-- slide 30c: Title of "Forums" option in settings -->
<string name="p_forums">Forums</string> <string name="p_forums">Forums</string>
<!-- Title of "Premium" option in settings -->
<string name="p_premium">Premium</string>
<!-- ============================================================= Misc == --> <!-- ============================================================= Misc == -->
<!-- Displayed when task killer found. %s => name of the application --> <!-- Displayed when task killer found. %s => name of the application -->

@ -86,7 +86,7 @@
<string name="premium_description_1">Attach files to to-dos (pdfs, doc, ppt…)</string> <string name="premium_description_1">Attach files to to-dos (pdfs, doc, ppt…)</string>
<string name="premium_description_2">Syncs files with astrid.com</string> <string name="premium_description_2">Syncs files with astrid.com</string>
<string name="premium_description_3">Turn emails with attachments into tasks</string> <string name="premium_description_3">Turn emails with attachments into tasks</string>
<string name="premium_description_4">Save voice notes at audio files</string> <string name="premium_description_4">Save voice notes as audio files</string>
<string name="premium_description_5">Preview upcoming features</string> <string name="premium_description_5">Preview upcoming features</string>
<string name="premium_description_6">Support the Astrid Team!</string> <string name="premium_description_6">Support the Astrid Team!</string>
<string name="premium_already_subscribed">You are already subscribed to Astrid Premium!</string> <string name="premium_already_subscribed">You are already subscribed to Astrid Premium!</string>

@ -12,6 +12,7 @@
<PreferenceScreen android:title="@string/welcome_setting" android:key="@string/p_tutorial"/> <PreferenceScreen android:title="@string/welcome_setting" android:key="@string/p_tutorial"/>
<PreferenceScreen android:title="@string/p_help" android:key="@string/p_help"/> <PreferenceScreen android:title="@string/p_help" android:key="@string/p_help"/>
<PreferenceScreen android:title="@string/p_forums" android:key="@string/p_forums"/> <PreferenceScreen android:title="@string/p_forums" android:key="@string/p_forums"/>
<PreferenceScreen android:title="@string/p_premium" android:key="@string/p_premium"/>
<PreferenceCategory <PreferenceCategory
android:title="@string/EPr_appearance_header"> android:title="@string/EPr_appearance_header">

@ -45,7 +45,9 @@ import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.andlib.utility.TodorooPreferenceActivity; import com.todoroo.andlib.utility.TodorooPreferenceActivity;
import com.todoroo.astrid.actfm.ActFmLoginActivity; import com.todoroo.astrid.actfm.ActFmLoginActivity;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.api.AstridApiConstants; import com.todoroo.astrid.api.AstridApiConstants;
import com.todoroo.astrid.billing.BillingActivity;
import com.todoroo.astrid.core.LabsPreferences; import com.todoroo.astrid.core.LabsPreferences;
import com.todoroo.astrid.dao.Database; import com.todoroo.astrid.dao.Database;
import com.todoroo.astrid.data.Task; import com.todoroo.astrid.data.Task;
@ -81,8 +83,8 @@ public class EditPreferences extends TodorooPreferenceActivity {
private static final String SUPPORT_URL = "http://blog.astrid.com/topics/support/android"; //$NON-NLS-1$ private static final String SUPPORT_URL = "http://blog.astrid.com/topics/support/android"; //$NON-NLS-1$
private static final int APPEARANCE_PREFERENCE = 4; private static final int APPEARANCE_PREFERENCE = 5;
private static final int POWER_PACK_PREFERENCE = 5; private static final int POWER_PACK_PREFERENCE = 6;
private static final int REQUEST_CODE_SYNC = 0; private static final int REQUEST_CODE_SYNC = 0;
private static final int REQUEST_CODE_LABS = 1; private static final int REQUEST_CODE_LABS = 1;
@ -164,6 +166,19 @@ public class EditPreferences extends TodorooPreferenceActivity {
} }
}); });
preference = screen.findPreference(getString(R.string.p_premium));
if (ActFmPreferenceService.isPremiumUser())
screen.removePreference(preference);
else
preference.setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference p) {
showPremium();
return true;
}
});
PreferenceCategory appearance = (PreferenceCategory) screen.getPreference(APPEARANCE_PREFERENCE); PreferenceCategory appearance = (PreferenceCategory) screen.getPreference(APPEARANCE_PREFERENCE);
Preference beastMode = appearance.getPreference(1); Preference beastMode = appearance.getPreference(1);
beastMode.setTitle(r.getString(R.string.EPr_beastMode_title)); beastMode.setTitle(r.getString(R.string.EPr_beastMode_title));
@ -250,6 +265,11 @@ public class EditPreferences extends TodorooPreferenceActivity {
startActivity(intent); startActivity(intent);
} }
private void showPremium() {
Intent intent = new Intent(this, BillingActivity.class);
startActivity(intent);
}
private static final HashMap<Class<?>, Integer> PREFERENCE_REQUEST_CODES = new HashMap<Class<?>, Integer>(); private static final HashMap<Class<?>, Integer> PREFERENCE_REQUEST_CODES = new HashMap<Class<?>, Integer>();
static { static {
PREFERENCE_REQUEST_CODES.put(SyncProviderPreferences.class, REQUEST_CODE_SYNC); PREFERENCE_REQUEST_CODES.put(SyncProviderPreferences.class, REQUEST_CODE_SYNC);

@ -21,6 +21,7 @@ import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.service.DependencyInjectionService; import com.todoroo.andlib.service.DependencyInjectionService;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.andlib.utility.Preferences; import com.todoroo.andlib.utility.Preferences;
import com.todoroo.astrid.actfm.ActFmLoginActivity;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.ActFmSyncService; import com.todoroo.astrid.actfm.sync.ActFmSyncService;
import com.todoroo.astrid.billing.BillingConstants.PurchaseState; import com.todoroo.astrid.billing.BillingConstants.PurchaseState;
@ -61,18 +62,21 @@ public class BillingActivity extends Activity {
purchaseObserver = new AstridPurchaseObserver(handler); purchaseObserver = new AstridPurchaseObserver(handler);
ResponseHandler.register(purchaseObserver); ResponseHandler.register(purchaseObserver);
}
// Enforce logged in here? If so, barrier to subscribing, if not, has the possibility of double subscribing. @Override
protected void onResume() {
super.onResume();
if (!actFmPreferenceService.isLoggedIn()) { if (!actFmPreferenceService.isLoggedIn()) {
// Prompt to log in // Prompt to log in
DialogUtilities.okCancelDialog(this, getString(R.string.premium_login_prompt), new DialogInterface.OnClickListener() { DialogUtilities.okCancelDialog(this, getString(R.string.premium_login_prompt), new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
// Set result, finish, use callback to prompt for login Intent login = new Intent(BillingActivity.this, ActFmLoginActivity.class);
startActivity(login);
} }
}, },
new DialogInterface.OnClickListener() { new DialogInterface.OnClickListener() {
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
finish(); finish();
@ -181,7 +185,6 @@ public class BillingActivity extends Activity {
boolean initialized = Preferences.getBoolean(TRANSACTIONS_INITIALIZED, false); boolean initialized = Preferences.getBoolean(TRANSACTIONS_INITIALIZED, false);
if (!initialized) { if (!initialized) {
billingService.restoreTransactions(); billingService.restoreTransactions();
Toast.makeText(this, R.string.restoring_transactions, Toast.LENGTH_LONG).show();
} }
} }
@ -232,6 +235,7 @@ public class BillingActivity extends Activity {
@Override @Override
public void run() { public void run() {
Preferences.setBoolean(ActFmPreferenceService.PREF_PREMIUM, true); Preferences.setBoolean(ActFmPreferenceService.PREF_PREMIUM, true);
Toast.makeText(BillingActivity.this, R.string.premium_success, Toast.LENGTH_LONG).show();
} }
}, new Runnable() { }, new Runnable() {
@Override @Override

Loading…
Cancel
Save