mirror of
https://github.com/sudoxnym/habitica-android.git
synced 2026-07-17 19:42:04 +00:00
Fix some crashes
This commit is contained in:
parent
f375e419a6
commit
0f156c2bcf
3 changed files with 33 additions and 26 deletions
|
|
@ -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<String> 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<Purchase> purchases, final RequestListener<List<Purchase>> requestListener) {
|
||||
protected void doVerify(@NonNull final List<Purchase> purchases, @NonNull final RequestListener<List<Purchase>> requestListener) {
|
||||
final List<Purchase> 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);
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue