diff --git a/app/src/googleplay/java/org/tasks/FlavorSetup.java b/app/src/googleplay/java/org/tasks/FlavorSetup.java index bf1c298c5..c610bb8d9 100644 --- a/app/src/googleplay/java/org/tasks/FlavorSetup.java +++ b/app/src/googleplay/java/org/tasks/FlavorSetup.java @@ -1,18 +1,11 @@ package org.tasks; import javax.inject.Inject; -import org.tasks.billing.BillingClient; public class FlavorSetup { - private final BillingClient billingClient; - @Inject - public FlavorSetup(BillingClient billingClient) { - this.billingClient = billingClient; - } + public FlavorSetup() {} - public void setup() { - billingClient.initialize(); - } + public void setup() {} } diff --git a/app/src/main/java/org/tasks/billing/BillingClient.java b/app/src/main/java/org/tasks/billing/BillingClient.java index 1e128436e..083d443d0 100644 --- a/app/src/main/java/org/tasks/billing/BillingClient.java +++ b/app/src/main/java/org/tasks/billing/BillingClient.java @@ -81,10 +81,6 @@ public class BillingClient implements PurchasesUpdatedListener { } } - public void initialize() { - startServiceConnection(this::queryPurchases); - } - /** * Query purchases across various use cases and deliver the result in a formalized way through a * listener diff --git a/app/src/main/java/org/tasks/preferences/BasicPreferences.java b/app/src/main/java/org/tasks/preferences/BasicPreferences.java index d87774696..6e51a6423 100644 --- a/app/src/main/java/org/tasks/preferences/BasicPreferences.java +++ b/app/src/main/java/org/tasks/preferences/BasicPreferences.java @@ -30,6 +30,7 @@ import org.tasks.analytics.Tracking; import org.tasks.analytics.Tracking.Events; import org.tasks.billing.BillingClient; import org.tasks.billing.Inventory; +import org.tasks.billing.PurchaseActivity; import org.tasks.dialogs.DialogBuilder; import org.tasks.drive.DriveLoginActivity; import org.tasks.files.FileHelper; @@ -188,6 +189,32 @@ public class BasicPreferences extends InjectingPreferenceActivity } }); + Preference upgradeToPro = findPreference(R.string.upgrade_to_pro); + if (inventory.hasPro()) { + upgradeToPro.setTitle(R.string.manage_subscription); + upgradeToPro.setOnPreferenceClickListener( + p -> { + startActivity( + new Intent( + Intent.ACTION_VIEW, + Uri.parse( + "https://play.google.com/store/account/subscriptions?sku=annual_499&package=org.tasks"))); + return false; + }); + } else { + upgradeToPro.setOnPreferenceClickListener( + p -> { + startActivity(new Intent(this, PurchaseActivity.class)); + return false; + }); + } + + findPreference(R.string.refresh_purchases).setOnPreferenceClickListener( + preference -> { + billingClient.queryPurchases(); + return false; + }); + requires( R.string.settings_localization, atLeastJellybeanMR1(), @@ -199,7 +226,12 @@ public class BasicPreferences extends InjectingPreferenceActivity //noinspection ConstantConditions if (!BuildConfig.FLAVOR.equals("googleplay")) { requires(R.string.backup_BPr_header, false, R.string.p_google_drive_backup); - requires(R.string.about, false, R.string.rate_tasks); + requires( + R.string.about, + false, + R.string.rate_tasks, + R.string.upgrade_to_pro, + R.string.refresh_purchases); requires(R.string.privacy, false, R.string.p_collect_statistics); } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7dc4a0211..84e62962a 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -843,6 +843,7 @@ File %1$s contained %2$s.\n\n Only on unmetered connections Upgrade Upgrade to pro + Manage subscription Refresh purchases Subscribed Subscribe diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 16edb7424..d90e04588 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -17,7 +17,7 @@ + android:title="@string/launcher_icon"/> @@ -74,9 +74,9 @@ android:title="@string/backup_directory"/> + android:defaultValue="false" + android:key="@string/p_google_drive_backup" + android:title="@string/google_drive_backup"/> + + + +