Adding caldav account requires subscription

pull/699/head
Alex Baker 6 years ago
parent d302ccea75
commit 9c0ba990ae

@ -20,6 +20,8 @@ import javax.inject.Inject;
import org.tasks.R;
import org.tasks.analytics.Tracker;
import org.tasks.analytics.Tracking;
import org.tasks.billing.Inventory;
import org.tasks.billing.PurchaseActivity;
import org.tasks.caldav.CaldavAccountSettingsActivity;
import org.tasks.data.CaldavAccount;
import org.tasks.data.CaldavDao;
@ -40,6 +42,7 @@ public class SynchronizationPreferences extends InjectingPreferenceActivity {
private static final int REQUEST_LOGIN = 0;
private static final int REQUEST_CALDAV_SETTINGS = 101;
private static final int REQUEST_CALDAV_SUBSCRIBE = 102;
@Inject GtasksPreferenceService gtasksPreferenceService;
@Inject ActivityPermissionRequestor permissionRequestor;
@ -54,6 +57,7 @@ public class SynchronizationPreferences extends InjectingPreferenceActivity {
@Inject Preferences preferences;
@Inject JobManager jobManager;
@Inject CaldavDao caldavDao;
@Inject Inventory inventory;
@Override
public void onCreate(Bundle savedInstanceState) {
@ -75,12 +79,8 @@ public class SynchronizationPreferences extends InjectingPreferenceActivity {
caldavPreferences.addPreference(accountPreferences);
}
Preference addCaldavAccount = new Preference(this);
addCaldavAccount.setKey(getString(R.string.add_account));
addCaldavAccount.setTitle(R.string.add_account);
addCaldavAccount.setOnPreferenceClickListener(preference -> {
startActivityForResult(new Intent(this, CaldavAccountSettingsActivity.class),
REQUEST_CALDAV_SETTINGS);
return false;
});
caldavPreferences.addPreference(addCaldavAccount);
final CheckBoxPreference gtaskPreference =
@ -149,11 +149,30 @@ public class SynchronizationPreferences extends InjectingPreferenceActivity {
protected void onResume() {
super.onResume();
Preference addCaldavAccount = findPreference(R.string.add_account);
if (inventory.hasPro()) {
addCaldavAccount.setSummary(null);
addCaldavAccount.setOnPreferenceClickListener(preference -> {
addCaldavAccount();
return false;
});
} else {
addCaldavAccount.setSummary(R.string.requires_pro_subscription);
addCaldavAccount.setOnPreferenceClickListener(preference -> {
startActivityForResult(new Intent(this, PurchaseActivity.class), REQUEST_CALDAV_SUBSCRIBE);
return false;
});
}
if (!permissionChecker.canAccessAccounts()) {
((CheckBoxPreference) findPreference(getString(R.string.sync_gtasks))).setChecked(false);
}
}
private void addCaldavAccount() {
startActivityForResult(new Intent(this, CaldavAccountSettingsActivity.class), REQUEST_CALDAV_SETTINGS);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_LOGIN) {
@ -170,6 +189,10 @@ public class SynchronizationPreferences extends InjectingPreferenceActivity {
finish();
startActivity(intent);
}
} else if (requestCode == REQUEST_CALDAV_SUBSCRIBE) {
if (inventory.hasPro()) {
addCaldavAccount();
}
} else {
super.onActivityResult(requestCode, resultCode, data);
}

@ -901,5 +901,6 @@ File %1$s contained %2$s.\n\n
<string name="pro_tasker_plugins">Tasker plugins</string>
<string name="pro_dashclock_extension">Dashclock extension</string>
<string name="caldav_create_new_collection">Create new collection</string>
<string name="requires_pro_subscription">Requires pro subscription</string>
</resources>

Loading…
Cancel
Save