diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaPurchaseVerifier.java b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaPurchaseVerifier.java index ceaea0d0d..e7b85279f 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaPurchaseVerifier.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/HabiticaPurchaseVerifier.java @@ -11,6 +11,7 @@ import org.solovyev.android.checkout.RequestListener; import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; +import android.support.annotation.NonNull; import java.io.IOException; import java.util.ArrayList; @@ -24,17 +25,20 @@ import java.util.Set; public class HabiticaPurchaseVerifier extends BasePurchaseVerifier { private static final String PURCHASED_PRODUCTS_KEY = "PURCHASED_PRODUCTS"; + private final APIHelper apiHelper; private Set purchasedOrderList = new HashSet<>(); private SharedPreferences preferences; - public HabiticaPurchaseVerifier(Context context) { + public HabiticaPurchaseVerifier(Context context, APIHelper apiHelper) { preferences = PreferenceManager.getDefaultSharedPreferences(context); preferences.getStringSet(PURCHASED_PRODUCTS_KEY, purchasedOrderList); + + this.apiHelper = apiHelper; } @Override - protected void doVerify(final List purchases, final RequestListener> requestListener) { + protected void doVerify(@NonNull final List purchases, @NonNull final RequestListener> requestListener) { final List verifiedPurchases = new ArrayList<>(purchases.size()); for (final Purchase purchase : purchases) { @@ -49,7 +53,7 @@ public class HabiticaPurchaseVerifier extends BasePurchaseVerifier { validationRequest.transaction.signature = purchase.signature; try { - PurchaseValidationResult purchaseValidationResult = HabiticaApplication.ApiHelper.validatePurchase(validationRequest); + PurchaseValidationResult purchaseValidationResult = apiHelper.validatePurchase(validationRequest); if (purchaseValidationResult.ok) { purchasedOrderList.add(purchase.orderId); diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.java b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.java index 9ae091d39..f1db9579b 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/modules/AppModule.java @@ -1,5 +1,6 @@ package com.habitrpg.android.habitica.modules; +import com.habitrpg.android.habitica.APIHelper; import com.habitrpg.android.habitica.HabiticaApplication; import com.habitrpg.android.habitica.HabiticaPurchaseVerifier; import com.habitrpg.android.habitica.R; @@ -61,7 +62,7 @@ public class AppModule { @Provides @Singleton - public Billing providesBilling() { + public Billing providesBilling(APIHelper apiHelper) { return new Billing(application, new Billing.DefaultConfiguration() { @NonNull @Override @@ -77,7 +78,7 @@ public class AppModule { @Override public PurchaseVerifier getPurchaseVerifier() { - return new HabiticaPurchaseVerifier(application); + return new HabiticaPurchaseVerifier(application, apiHelper); } }); } diff --git a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.java b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.java index 346daaa63..dae2bebb9 100644 --- a/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.java +++ b/Habitica/src/main/java/com/habitrpg/android/habitica/ui/fragments/tasks/TaskRecyclerViewFragment.java @@ -61,27 +61,29 @@ public class TaskRecyclerViewFragment extends BaseFragment implements View.OnCli // TODO needs a bit of cleanup public void setInnerAdapter() { int layoutOfType; - switch (this.classType) { - case Task.TYPE_HABIT: - layoutOfType = R.layout.habit_item_card; - this.recyclerAdapter = new HabitsRecyclerViewAdapter(Task.TYPE_HABIT, tagsHelper, layoutOfType, getContext(), userID); - break; - case Task.TYPE_DAILY: - layoutOfType = R.layout.daily_item_card; - int dailyResetOffset = 0; - if (user != null) { - dailyResetOffset = user.getPreferences().getDayStart(); - } - this.recyclerAdapter = new DailiesRecyclerViewHolder(Task.TYPE_DAILY, tagsHelper, layoutOfType, getContext(), userID, dailyResetOffset); - break; - case Task.TYPE_TODO: - layoutOfType = R.layout.todo_item_card; - this.recyclerAdapter = new TodosRecyclerViewAdapter(Task.TYPE_TODO, tagsHelper, layoutOfType, getContext(), userID); - return; - case Task.TYPE_REWARD: - layoutOfType = R.layout.reward_item_card; - this.recyclerAdapter = new RewardsRecyclerViewAdapter(Task.TYPE_REWARD, tagsHelper, layoutOfType, getContext(), user, apiHelper); - break; + if (this.classType != null) { + switch (this.classType) { + case Task.TYPE_HABIT: + layoutOfType = R.layout.habit_item_card; + this.recyclerAdapter = new HabitsRecyclerViewAdapter(Task.TYPE_HABIT, tagsHelper, layoutOfType, getContext(), userID); + break; + case Task.TYPE_DAILY: + layoutOfType = R.layout.daily_item_card; + int dailyResetOffset = 0; + if (user != null) { + dailyResetOffset = user.getPreferences().getDayStart(); + } + this.recyclerAdapter = new DailiesRecyclerViewHolder(Task.TYPE_DAILY, tagsHelper, layoutOfType, getContext(), userID, dailyResetOffset); + break; + case Task.TYPE_TODO: + layoutOfType = R.layout.todo_item_card; + this.recyclerAdapter = new TodosRecyclerViewAdapter(Task.TYPE_TODO, tagsHelper, layoutOfType, getContext(), userID); + return; + case Task.TYPE_REWARD: + layoutOfType = R.layout.reward_item_card; + this.recyclerAdapter = new RewardsRecyclerViewAdapter(Task.TYPE_REWARD, tagsHelper, layoutOfType, getContext(), user, apiHelper); + break; + } } }