diff --git a/README.md b/README.md
index d0a5dc4c3..f0cb88111 100644
--- a/README.md
+++ b/README.md
@@ -6,9 +6,6 @@ Astrid was a popular cross-platform productivity service that was [acquired](htt
[](https://f-droid.org/packages/org.tasks)
-[](https://www.amazon.com/Tasks-Astrid-To-Do-List-Clone/dp/B00QHGTL7O)
Please visit [tasks.org](https://tasks.org) for end user documentation and support
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 5216effa6..e2f2fad20 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -102,9 +102,6 @@ android {
create("googleplay") {
setDimension("store")
}
- create("amazon") {
- setDimension("store")
- }
}
viewBinding {
@@ -135,7 +132,6 @@ configurations.all {
}
val googleplayImplementation by configurations
-val amazonImplementation by configurations
dependencies {
implementation("com.gitlab.bitfireAT:dav4jvm:1.0.1")
@@ -205,10 +201,6 @@ dependencies {
googleplayImplementation("com.google.android.libraries.places:places:2.2.0")
googleplayImplementation("com.android.billingclient:billing:1.2.2")
- amazonImplementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
- amazonImplementation("com.crashlytics.sdk.android:crashlytics:${Versions.crashlytics}")
- amazonImplementation("com.google.firebase:firebase-core:${Versions.firebase}")
-
kaptAndroidTest("com.google.dagger:dagger-compiler:${Versions.dagger}")
kaptAndroidTest("com.jakewharton:butterknife-compiler:${Versions.butterknife}")
androidTestImplementation("com.google.dexmaker:dexmaker-mockito:1.2")
diff --git a/app/libs/in-app-purchasing-2.0.76.jar b/app/libs/in-app-purchasing-2.0.76.jar
deleted file mode 100644
index cd590eb9b..000000000
Binary files a/app/libs/in-app-purchasing-2.0.76.jar and /dev/null differ
diff --git a/app/proguard.pro b/app/proguard.pro
index 41cfd20b7..e0cdf6c7f 100644
--- a/app/proguard.pro
+++ b/app/proguard.pro
@@ -59,11 +59,6 @@
-keep class org.threeten.bp.** { *; } # keep ThreeTen (for time zone processing)
-keep class at.bitfire.** { *; } # all DAVdroid code is required
-# https://developer.amazon.com/docs/in-app-purchasing/iap-obfuscate-the-code.html#proguard
--dontwarn com.amazon.**
--keep class com.amazon.** {*;}
--keepattributes *Annotation*
-
# https://github.com/google/google-api-java-client-samples/blob/34c3b43cb15f4ee1b636a0e01521cc81a2451dcd/tasks-android-sample/proguard-google-api-client.txt
-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault
-keepclassmembers class * {
diff --git a/app/src/amazon/AndroidManifest.xml b/app/src/amazon/AndroidManifest.xml
deleted file mode 100644
index 6bd025938..000000000
--- a/app/src/amazon/AndroidManifest.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/src/amazon/java/org/tasks/analytics/Tracker.java b/app/src/amazon/java/org/tasks/analytics/Tracker.java
deleted file mode 100644
index 1202646c8..000000000
--- a/app/src/amazon/java/org/tasks/analytics/Tracker.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.tasks.analytics;
-
-import android.content.Context;
-import com.crashlytics.android.Crashlytics;
-import com.google.firebase.analytics.FirebaseAnalytics;
-import io.fabric.sdk.android.Fabric;
-import javax.inject.Inject;
-import org.tasks.injection.ApplicationScope;
-import org.tasks.injection.ForApplication;
-import org.tasks.preferences.Preferences;
-import timber.log.Timber;
-
-@ApplicationScope
-public class Tracker {
-
- private static boolean enabled;
-
- @Inject
- public Tracker(@ForApplication Context context, Preferences preferences) {
- enabled = preferences.isTrackingEnabled();
- if (enabled) {
- FirebaseAnalytics analytics = FirebaseAnalytics.getInstance(context);
- analytics.setAnalyticsCollectionEnabled(true);
- Fabric.with(context, new Crashlytics());
- }
- }
-
- public void reportException(Throwable t) {
- Timber.e(t);
- if (enabled) {
- Crashlytics.logException(t);
- }
- }
-}
diff --git a/app/src/amazon/java/org/tasks/billing/BillingClientImpl.java b/app/src/amazon/java/org/tasks/billing/BillingClientImpl.java
deleted file mode 100644
index d34b9c0c3..000000000
--- a/app/src/amazon/java/org/tasks/billing/BillingClientImpl.java
+++ /dev/null
@@ -1,110 +0,0 @@
-package org.tasks.billing;
-
-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.google.common.collect.Sets.newHashSet;
-
-import android.app.Activity;
-import android.content.Context;
-import androidx.annotation.Nullable;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.lifecycle.MutableLiveData;
-import androidx.lifecycle.Observer;
-import com.amazon.device.iap.PurchasingListener;
-import com.amazon.device.iap.PurchasingService;
-import com.amazon.device.iap.model.FulfillmentResult;
-import com.amazon.device.iap.model.ProductDataResponse;
-import com.amazon.device.iap.model.PurchaseResponse;
-import com.amazon.device.iap.model.PurchaseUpdatesResponse;
-import com.amazon.device.iap.model.PurchaseUpdatesResponse.RequestStatus;
-import com.amazon.device.iap.model.UserDataResponse;
-import java.util.List;
-import javax.inject.Inject;
-import org.tasks.analytics.Tracker;
-import org.tasks.injection.ForApplication;
-import timber.log.Timber;
-
-public class BillingClientImpl implements BillingClient, PurchasingListener {
-
- private final MutableLiveData> skuDetails = new MutableLiveData<>();
- private final Inventory inventory;
-
- @Inject
- public BillingClientImpl(@ForApplication Context context, Inventory inventory, Tracker tracker) {
- this.inventory = inventory;
- PurchasingService.registerListener(context, this);
- }
-
- @Override
- public void observeSkuDetails(
- LifecycleOwner owner,
- Observer> subscriptionObserver,
- Observer> iapObserver) {
- skuDetails.observe(owner, subscriptionObserver);
- }
-
- @Override
- public void queryPurchases() {
- PurchasingService.getPurchaseUpdates(true);
- }
-
- @Override
- public void querySkuDetails() {
- PurchasingService.getProductData(newHashSet(SkuDetails.SKU_PRO));
- }
-
- @Override
- public void consume(String sku) {
- throw new UnsupportedOperationException();
- }
-
- @Override
- public void initiatePurchaseFlow(
- Activity activity, String sku, String skuType, @Nullable String oldSku) {
- PurchasingService.purchase(sku);
- }
-
- @Override
- public void addPurchaseCallback(OnPurchasesUpdated onPurchasesUpdated) {
-
- }
-
- @Override
- public int getErrorMessage() {
- return 0;
- }
-
- @Override
- public void onUserDataResponse(UserDataResponse userDataResponse) {
- Timber.d("onUserDataResponse(%s)", userDataResponse);
- }
-
- @Override
- public void onProductDataResponse(ProductDataResponse productDataResponse) {
- Timber.d("onProductDataResponse(%s)", productDataResponse);
- if (productDataResponse.getRequestStatus() == ProductDataResponse.RequestStatus.SUCCESSFUL) {
- skuDetails.setValue(
- newArrayList(transform(productDataResponse.getProductData().values(), SkuDetails::new)));
- }
- }
-
- @Override
- public void onPurchaseResponse(PurchaseResponse purchaseResponse) {
- Timber.d("onPurchaseResponse(%s)", purchaseResponse);
- if (purchaseResponse.getRequestStatus() == PurchaseResponse.RequestStatus.SUCCESSFUL) {
- inventory.add(new Purchase(purchaseResponse.getReceipt()));
- PurchasingService.notifyFulfillment(
- purchaseResponse.getReceipt().getReceiptId(), FulfillmentResult.FULFILLED);
- }
- }
-
- @Override
- public void onPurchaseUpdatesResponse(PurchaseUpdatesResponse purchaseUpdatesResponse) {
- Timber.d("onPurchaseUpdatesResponse(%s)", purchaseUpdatesResponse);
- if (purchaseUpdatesResponse.getRequestStatus() == RequestStatus.SUCCESSFUL) {
- inventory.clear();
- inventory.add(transform(purchaseUpdatesResponse.getReceipts(), Purchase::new));
- }
- }
-}
diff --git a/app/src/amazon/java/org/tasks/billing/Purchase.java b/app/src/amazon/java/org/tasks/billing/Purchase.java
deleted file mode 100644
index 5131f4e73..000000000
--- a/app/src/amazon/java/org/tasks/billing/Purchase.java
+++ /dev/null
@@ -1,46 +0,0 @@
-package org.tasks.billing;
-
-import com.amazon.device.iap.model.Receipt;
-import com.google.gson.GsonBuilder;
-
-public class Purchase {
-
- private final Receipt receipt;
-
- public Purchase(String json) {
- this(new GsonBuilder().create().fromJson(json, Receipt.class));
- }
-
- public Purchase(Receipt receipt) {
- this.receipt = receipt;
- }
-
- public String getSku() {
- return receipt.getSku();
- }
-
- public String toJson() {
- return new GsonBuilder().create().toJson(receipt);
- }
-
- @Override
- public String toString() {
- return "Purchase{" + "receipt=" + receipt + '}';
- }
-
- public boolean isCanceled() {
- return false;
- }
-
- public int getSubscriptionPrice() {
- return 0;
- }
-
- public boolean isMonthly() {
- return false;
- }
-
- public boolean isProSubscription() {
- return true;
- }
-}
diff --git a/app/src/amazon/java/org/tasks/billing/SignatureVerifier.java b/app/src/amazon/java/org/tasks/billing/SignatureVerifier.java
deleted file mode 100644
index e5b3c2781..000000000
--- a/app/src/amazon/java/org/tasks/billing/SignatureVerifier.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.tasks.billing;
-
-import javax.inject.Inject;
-
-public class SignatureVerifier {
- @Inject
- public SignatureVerifier() {}
-
- public boolean verifySignature(Purchase purchase) {
- return true;
- }
-}
diff --git a/app/src/amazon/java/org/tasks/billing/SkuDetails.java b/app/src/amazon/java/org/tasks/billing/SkuDetails.java
deleted file mode 100644
index 5bf2dc447..000000000
--- a/app/src/amazon/java/org/tasks/billing/SkuDetails.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package org.tasks.billing;
-
-import com.amazon.device.iap.model.Product;
-import com.amazon.device.iap.model.ProductType;
-
-public class SkuDetails {
-
- static final String SKU_PRO = "tasks_pro";
-
- static final String TYPE_INAPP = ProductType.CONSUMABLE.name();
- static final String TYPE_SUBS = ProductType.SUBSCRIPTION.name();
-
- private final Product product;
-
- public SkuDetails(Product product) {
- this.product = product;
- }
-
- public String getSku() {
- return product.getSku();
- }
-
- public String getTitle() {
- return product.getTitle();
- }
-
- public String getPrice() {
- return product.getPrice();
- }
-
- public String getDescription() {
- return product.getDescription();
- }
-
- public String getSkuType() {
- return product.getProductType().name();
- }
-}
diff --git a/app/src/amazon/java/org/tasks/gtasks/PlayServices.java b/app/src/amazon/java/org/tasks/gtasks/PlayServices.java
deleted file mode 100644
index 4dc82729e..000000000
--- a/app/src/amazon/java/org/tasks/gtasks/PlayServices.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package org.tasks.gtasks;
-
-import android.app.Activity;
-import android.content.Context;
-import com.todoroo.astrid.activity.MainActivity;
-import io.reactivex.disposables.Disposable;
-import io.reactivex.disposables.Disposables;
-import javax.inject.Inject;
-
-public class PlayServices {
-
- @Inject
- public PlayServices() {}
-
- public boolean isPlayServicesAvailable() {
- return false;
- }
-
- public boolean refreshAndCheck() {
- return false;
- }
-
- public void resolve(Activity activity) {}
-
- public String getStatus() {
- return null;
- }
-
- public Disposable check(MainActivity mainActivity) {
- return Disposables.empty();
- }
-
- public void updateSecurityProvider(Context context) {}
-}
diff --git a/app/src/amazon/java/org/tasks/injection/LocationModule.java b/app/src/amazon/java/org/tasks/injection/LocationModule.java
deleted file mode 100644
index d84908115..000000000
--- a/app/src/amazon/java/org/tasks/injection/LocationModule.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.tasks.injection;
-
-import android.content.Context;
-import dagger.Module;
-import dagger.Provides;
-import org.tasks.location.MapFragment;
-import org.tasks.location.MapboxMapFragment;
-import org.tasks.location.MapboxSearchProvider;
-import org.tasks.location.PlaceSearchProvider;
-
-@Module
-public class LocationModule {
- @Provides
- @ActivityScope
- public PlaceSearchProvider getPlaceSearchProvider(@ForApplication Context context) {
- return new MapboxSearchProvider(context);
- }
-
- @Provides
- @ActivityScope
- public MapFragment getMapFragment(@ForApplication Context context) {
- return new MapboxMapFragment(context);
- }
-}
diff --git a/app/src/amazon/java/org/tasks/location/GeofenceApi.java b/app/src/amazon/java/org/tasks/location/GeofenceApi.java
deleted file mode 100644
index df276cad0..000000000
--- a/app/src/amazon/java/org/tasks/location/GeofenceApi.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package org.tasks.location;
-
-import java.util.List;
-import javax.inject.Inject;
-import org.tasks.data.Location;
-
-@SuppressWarnings("EmptyMethod")
-public class GeofenceApi {
-
- @Inject
- public GeofenceApi() {}
-
- public void register(List activeGeofences) {}
-
- public void cancel(Location geofence) {}
-
- public void cancel(List geofences) {}
-
- public void cancel(long taskId) {}
-
- public void register(long taskId) {}
-
- public void registerAll() {}
-}
diff --git a/app/src/amazon/java/org/tasks/location/GeofenceTransitionsIntentService.java b/app/src/amazon/java/org/tasks/location/GeofenceTransitionsIntentService.java
deleted file mode 100644
index 3c177f2a9..000000000
--- a/app/src/amazon/java/org/tasks/location/GeofenceTransitionsIntentService.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.tasks.location;
-
-import android.app.IntentService;
-import android.content.BroadcastReceiver;
-import android.content.Context;
-import android.content.Intent;
-import androidx.annotation.Nullable;
-
-public class GeofenceTransitionsIntentService extends IntentService {
-
- public GeofenceTransitionsIntentService() {
- super("GeofenceTransitionsIntentService");
- }
-
- @Override
- protected void onHandleIntent(@Nullable Intent intent) {}
-
- public static class Broadcast extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {}
- }
-}
diff --git a/app/src/amazon/res/values/bools.xml b/app/src/amazon/res/values/bools.xml
deleted file mode 100644
index 30b01d340..000000000
--- a/app/src/amazon/res/values/bools.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
- false
-
\ No newline at end of file
diff --git a/app/src/amazon/res/values/keys.xml b/app/src/amazon/res/values/keys.xml
deleted file mode 100644
index 03d6b74d3..000000000
--- a/app/src/amazon/res/values/keys.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
- Google Play services error
- amzn://apps/android?p=org.tasks
- purchases_amazon
- https://www.amazon.com/gp/mas/your-account/myapps/yoursubscriptions/ref=d2_ss_app_sb_myas
- amazon-support@tasks.org
-
\ No newline at end of file