From 1ccb6377d1051c2f8df94a9564fd0a91791f3b23 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Mon, 16 Mar 2020 16:44:51 -0500 Subject: [PATCH] Make dashclock extension free --- .../org/tasks/preferences/fragments/Debug.kt | 1 - app/src/debug/res/values/keys.xml | 1 - app/src/debug/res/xml/preferences_debug.xml | 4 -- .../org/tasks/billing/BillingClientImpl.java | 4 +- .../java/org/tasks/billing/Inventory.java | 5 -- .../tasks/dashclock/DashClockExtension.java | 51 ++++++++----------- .../tasks/preferences/fragments/DashClock.kt | 13 ----- 7 files changed, 21 insertions(+), 58 deletions(-) diff --git a/app/src/debug/java/org/tasks/preferences/fragments/Debug.kt b/app/src/debug/java/org/tasks/preferences/fragments/Debug.kt index b127faf83..083bdb1b4 100644 --- a/app/src/debug/java/org/tasks/preferences/fragments/Debug.kt +++ b/app/src/debug/java/org/tasks/preferences/fragments/Debug.kt @@ -43,7 +43,6 @@ class Debug : InjectingPreferenceFragment() { setupIap(R.string.debug_themes, Inventory.SKU_THEMES) setupIap(R.string.debug_tasker, Inventory.SKU_TASKER) - setupIap(R.string.debug_dashclock, Inventory.SKU_DASHCLOCK) } private fun setupIap(@StringRes prefId: Int, sku: String) { diff --git a/app/src/debug/res/values/keys.xml b/app/src/debug/res/values/keys.xml index 99967f7f4..51aa9039c 100644 --- a/app/src/debug/res/values/keys.xml +++ b/app/src/debug/res/values/keys.xml @@ -12,6 +12,5 @@ Consume %s debug_themes debug_tasker - debug_dashclock Reset SSL certificates \ No newline at end of file diff --git a/app/src/debug/res/xml/preferences_debug.xml b/app/src/debug/res/xml/preferences_debug.xml index 600afca23..4676536f2 100644 --- a/app/src/debug/res/xml/preferences_debug.xml +++ b/app/src/debug/res/xml/preferences_debug.xml @@ -31,8 +31,4 @@ - - - \ No newline at end of file diff --git a/app/src/googleplay/java/org/tasks/billing/BillingClientImpl.java b/app/src/googleplay/java/org/tasks/billing/BillingClientImpl.java index a00e8b73d..1e5edd526 100644 --- a/app/src/googleplay/java/org/tasks/billing/BillingClientImpl.java +++ b/app/src/googleplay/java/org/tasks/billing/BillingClientImpl.java @@ -5,7 +5,6 @@ import static com.google.common.collect.Iterables.transform; import static com.google.common.collect.Lists.newArrayList; import static com.google.common.collect.Lists.transform; import static com.todoroo.andlib.utility.AndroidUtilities.assertMainThread; -import static org.tasks.billing.Inventory.SKU_DASHCLOCK; import static org.tasks.billing.Inventory.SKU_TASKER; import static org.tasks.billing.Inventory.SKU_THEMES; import static org.tasks.billing.Inventory.SKU_VIP; @@ -42,8 +41,7 @@ import timber.log.Timber; @SuppressWarnings("all") public class BillingClientImpl implements BillingClient, PurchasesUpdatedListener { - private static final List DEBUG_SKUS = - ImmutableList.of(SKU_THEMES, SKU_TASKER, SKU_DASHCLOCK, SKU_VIP); + private static final List DEBUG_SKUS = ImmutableList.of(SKU_THEMES, SKU_TASKER, SKU_VIP); private final MutableLiveData> skuDetails = new MutableLiveData<>(); private final Inventory inventory; diff --git a/app/src/main/java/org/tasks/billing/Inventory.java b/app/src/main/java/org/tasks/billing/Inventory.java index 090909fee..860de9260 100644 --- a/app/src/main/java/org/tasks/billing/Inventory.java +++ b/app/src/main/java/org/tasks/billing/Inventory.java @@ -20,7 +20,6 @@ public class Inventory { static final String SKU_VIP = "vip"; public static final String SKU_TASKER = "tasker"; public static final String SKU_THEMES = "themes"; - public static final String SKU_DASHCLOCK = "dashclock"; private final Preferences preferences; private final SignatureVerifier signatureVerifier; @@ -73,10 +72,6 @@ public class Inventory { return hasPro() || purchases.containsKey(SKU_TASKER); } - public boolean purchasedDashclock() { - return hasPro() || purchases.containsKey(SKU_DASHCLOCK); - } - public boolean purchasedThemes() { return hasPro() || purchases.containsKey(SKU_THEMES); } diff --git a/app/src/main/java/org/tasks/dashclock/DashClockExtension.java b/app/src/main/java/org/tasks/dashclock/DashClockExtension.java index 65019f8e8..bef982a6c 100644 --- a/app/src/main/java/org/tasks/dashclock/DashClockExtension.java +++ b/app/src/main/java/org/tasks/dashclock/DashClockExtension.java @@ -12,7 +12,6 @@ import java.util.List; import javax.inject.Inject; import org.tasks.LocalBroadcastManager; import org.tasks.R; -import org.tasks.billing.Inventory; import org.tasks.injection.InjectingApplication; import org.tasks.preferences.DefaultFilterProvider; import org.tasks.preferences.Preferences; @@ -24,7 +23,7 @@ public class DashClockExtension extends com.google.android.apps.dashclock.api.Da @Inject TaskDao taskDao; @Inject Preferences preferences; @Inject LocalBroadcastManager localBroadcastManager; - @Inject Inventory inventory; + private final BroadcastReceiver refreshReceiver = new BroadcastReceiver() { @Override @@ -55,41 +54,31 @@ public class DashClockExtension extends com.google.android.apps.dashclock.api.Da } private void refresh() { - if (inventory.purchasedDashclock()) { - final String filterPreference = preferences.getStringValue(R.string.p_dashclock_filter); - Filter filter = defaultFilterProvider.getFilterFromPreference(filterPreference); + final String filterPreference = preferences.getStringValue(R.string.p_dashclock_filter); + Filter filter = defaultFilterProvider.getFilterFromPreference(filterPreference); - int count = taskDao.count(filter); + int count = taskDao.count(filter); - if (count == 0) { - publish(null); - } else { - Intent clickIntent = new Intent(this, MainActivity.class); - clickIntent.putExtra(MainActivity.OPEN_FILTER, filter); - ExtensionData extensionData = - new ExtensionData() - .visible(true) - .icon(R.drawable.ic_check_white_24dp) - .status(Integer.toString(count)) - .expandedTitle(getResources().getQuantityString(R.plurals.task_count, count, count)) - .expandedBody(filter.listingTitle) - .clickIntent(clickIntent); - if (count == 1) { - List tasks = taskDao.fetchFiltered(filter); - if (!tasks.isEmpty()) { - extensionData.expandedTitle(tasks.get(0).getTitle()); - } - } - publish(extensionData); - } + if (count == 0) { + publish(null); } else { - publish( + Intent clickIntent = new Intent(this, MainActivity.class); + clickIntent.putExtra(MainActivity.OPEN_FILTER, filter); + ExtensionData extensionData = new ExtensionData() .visible(true) .icon(R.drawable.ic_check_white_24dp) - .status(getString(R.string.upgrade_to_pro)) - .expandedTitle(getString(R.string.upgrade_to_pro)) - .clickIntent(new Intent(this, DashClockSettings.class))); + .status(Integer.toString(count)) + .expandedTitle(getResources().getQuantityString(R.plurals.task_count, count, count)) + .expandedBody(filter.listingTitle) + .clickIntent(clickIntent); + if (count == 1) { + List tasks = taskDao.fetchFiltered(filter); + if (!tasks.isEmpty()) { + extensionData.expandedTitle(tasks.get(0).getTitle()); + } + } + publish(extensionData); } } diff --git a/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt b/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt index fa5a5f062..4bf091ef6 100644 --- a/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt +++ b/app/src/main/java/org/tasks/preferences/fragments/DashClock.kt @@ -15,13 +15,11 @@ import org.tasks.preferences.DefaultFilterProvider import javax.inject.Inject private const val REQUEST_SELECT_FILTER = 1005 -private const val REQUEST_SUBSCRIPTION = 1006 class DashClock : InjectingPreferenceFragment() { @Inject lateinit var defaultFilterProvider: DefaultFilterProvider @Inject lateinit var localBroadcastManager: LocalBroadcastManager - @Inject lateinit var inventory: Inventory override fun getPreferenceXml() = R.xml.preferences_dashclock @@ -38,13 +36,6 @@ class DashClock : InjectingPreferenceFragment() { } refreshPreferences() - - if (!inventory.purchasedDashclock()) { - startActivityForResult( - Intent(context, PurchaseActivity::class.java), - REQUEST_SUBSCRIPTION - ) - } } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { @@ -56,10 +47,6 @@ class DashClock : InjectingPreferenceFragment() { refreshPreferences() localBroadcastManager.broadcastRefresh() } - } else if (requestCode == REQUEST_SUBSCRIPTION) { - if (!inventory.purchasedDashclock()) { - activity!!.finish() - } } else { super.onActivityResult(requestCode, resultCode, data) }