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"/>
+
+
+
+