Moved BillingActivity launcher to the ActFmPreferences activity, needs copy

pull/14/head
Sam Bosley 13 years ago
parent b29f8f5cc2
commit 0e3a71451e

@ -5,20 +5,27 @@
*/ */
package com.todoroo.astrid.actfm; package com.todoroo.astrid.actfm;
import android.content.ActivityNotFoundException;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.content.res.Resources; import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.preference.Preference; import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceCategory; import android.preference.PreferenceCategory;
import android.widget.Toast;
import com.timsu.astrid.R; import com.timsu.astrid.R;
import com.todoroo.andlib.service.Autowired; import com.todoroo.andlib.service.Autowired;
import com.todoroo.andlib.utility.DialogUtilities; import com.todoroo.andlib.utility.DialogUtilities;
import com.todoroo.astrid.actfm.sync.ActFmPreferenceService; import com.todoroo.astrid.actfm.sync.ActFmPreferenceService;
import com.todoroo.astrid.actfm.sync.ActFmSyncV2Provider; import com.todoroo.astrid.actfm.sync.ActFmSyncV2Provider;
import com.todoroo.astrid.billing.BillingActivity;
import com.todoroo.astrid.gtasks.GtasksPreferenceService; import com.todoroo.astrid.gtasks.GtasksPreferenceService;
import com.todoroo.astrid.sync.SyncProviderPreferences; import com.todoroo.astrid.sync.SyncProviderPreferences;
import com.todoroo.astrid.sync.SyncProviderUtilities; import com.todoroo.astrid.sync.SyncProviderUtilities;
import com.todoroo.astrid.utility.Constants;
/** /**
* Displays synchronization preferences and an action panel so users can * Displays synchronization preferences and an action panel so users can
@ -57,6 +64,19 @@ public class ActFmPreferences extends SyncProviderPreferences {
} }
} }
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
findPreference(getString(R.string.actfm_inapp_billing)).setOnPreferenceClickListener(new OnPreferenceClickListener() {
@Override
public boolean onPreferenceClick(Preference preference) {
handleInAppBillingClicked();
return true;
}
});
}
private void startLogin() { private void startLogin() {
Intent intent = new Intent(this, ActFmLoginActivity.class); Intent intent = new Intent(this, ActFmLoginActivity.class);
startActivityForResult(intent, REQUEST_LOGIN); startActivityForResult(intent, REQUEST_LOGIN);
@ -95,9 +115,26 @@ public class ActFmPreferences extends SyncProviderPreferences {
preference.setSummary(R.string.actfm_https_enabled); preference.setSummary(R.string.actfm_https_enabled);
else else
preference.setSummary(R.string.actfm_https_disabled); preference.setSummary(R.string.actfm_https_disabled);
} else if (r.getString(R.string.actfm_inapp_billing).equals(preference.getKey())) {
//
} else { } else {
super.updatePreferences(preference, value); super.updatePreferences(preference, value);
} }
} }
private void handleInAppBillingClicked() {
if (ActFmPreferenceService.isPremiumUser()) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse("market://details?id=" + Constants.PACKAGE)); //$NON-NLS-1$
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(this, R.string.market_unavailable, Toast.LENGTH_LONG).show();
}
} else {
Intent intent = new Intent(this, BillingActivity.class);
startActivity(intent);
}
}
} }

@ -303,7 +303,7 @@ public class FilesControlSet extends PopupControlSet {
activity.startActivity(marketIntent); activity.startActivity(marketIntent);
} catch (ActivityNotFoundException anf) { } catch (ActivityNotFoundException anf) {
DialogUtilities.okDialog(activity, DialogUtilities.okDialog(activity,
activity.getString(R.string.EPr_marketUnavailable_dlg), activity.getString(R.string.market_unavailable),
null); null);
} }
} }

@ -312,5 +312,7 @@
<string name="actfm_account_basic">Basic</string> <string name="actfm_account_basic">Basic</string>
<string name="actfm_account_none">None</string> <string name="actfm_account_none">None</string>
<string name="actfm_inapp_billing">In App Billing</string>
</resources> </resources>

@ -846,5 +846,7 @@ you get stuff done. It features reminders, tags, sync, Locale plug-in, a widget
If you see this error regularly, we suggest you clear all If you see this error regularly, we suggest you clear all
data (Settings->Manage All Tasks->Clear all data) and restore data (Settings->Manage All Tasks->Clear all data) and restore
your tasks from a backup (Settings->Backup->Import Tasks) in Astrid.</string> your tasks from a backup (Settings->Backup->Import Tasks) in Astrid.</string>
<string name="market_unavailable">Unfortunately the market is not available for your system.</string>
</resources> </resources>

@ -23,7 +23,11 @@
android:gravity="center"/> android:gravity="center"/>
</PreferenceCategory> </PreferenceCategory>
<PreferenceScreen
android:key="@string/actfm_inapp_billing"
android:title="@string/actfm_inapp_billing"/>
<PreferenceCategory <PreferenceCategory
android:key="@string/sync_SPr_key_options" android:key="@string/sync_SPr_key_options"
android:title="@string/sync_SPr_group_options"> android:title="@string/sync_SPr_group_options">

@ -20,7 +20,6 @@ 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.utility.Constants; import com.todoroo.astrid.utility.Constants;
@ -77,19 +76,13 @@ public class BillingActivity extends Activity {
super.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.okDialog(this, getString(R.string.premium_login_prompt),
@Override new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) { @Override
Intent login = new Intent(BillingActivity.this, ActFmLoginActivity.class); public void onClick(DialogInterface dialog, int which) {
startActivity(login); finish();
} }
}, });
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
} else if (!billingService.checkBillingSupported(BillingConstants.ITEM_TYPE_SUBSCRIPTION)) { } else if (!billingService.checkBillingSupported(BillingConstants.ITEM_TYPE_SUBSCRIPTION)) {
showDialog(DIALOG_SUBSCRIPTIONS_NOT_SUPPORTED_ID); showDialog(DIALOG_SUBSCRIPTIONS_NOT_SUPPORTED_ID);
} else if (ActFmPreferenceService.isPremiumUser()) { } else if (ActFmPreferenceService.isPremiumUser()) {

Loading…
Cancel
Save