No longer consume purchases. Also strike through bought items.

This commit is contained in:
Karim Abou Zeid 2015-08-29 23:32:06 +02:00
commit c3ae8e9081
2 changed files with 38 additions and 5 deletions

View file

@ -31,12 +31,18 @@
<li><b>FIX:</b> Album image loading delay (white album covers which took ages to load).</li>
<li><b>FIX:</b> Song detail dialog padding.</li>
<li><b>FIX:</b> Sleep timer dialog retains its current time on rotate.</li>
<li><b>IMPROVEMENT:</b> No longer "consume" purchases. This means that your donations are saved
from now on. I made this, so that just in case I make a paid version onetime in future, I
know who has already donated before so I can unlock the paid version for them.
</li>
</ol>
<h3>Version 0.9.44 beta4</h3>
<ol>
<li><b>NEW:</b> Support for light colors. The appbar will now automatically change its text and icon color to be visible on light theme colors.</li>
<li><b>NEW:</b> Support for light colors. The appbar will now automatically change its text and
icon color to be visible on light theme colors.
</li>
<li><b>FIX:</b> Play/pause button offset too far to the right in landscape mode.</li>
</ol>

View file

@ -2,12 +2,12 @@ package com.kabouzeid.gramophone.ui.activities;
import android.annotation.SuppressLint;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.graphics.Paint;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
@ -30,6 +30,7 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.SubMenu;
import android.view.View;
import android.view.ViewGroup;
@ -603,8 +604,8 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
@LayoutRes
private static int LAYOUT_RES_ID = R.layout.item_donation_option;
public SkuDetailsAdapter(@NonNull Context context, @NonNull List<SkuDetails> objects) {
super(context, LAYOUT_RES_ID, objects);
public SkuDetailsAdapter(@NonNull MainActivity mainActivity, @NonNull List<SkuDetails> objects) {
super(mainActivity, LAYOUT_RES_ID, objects);
}
@Override
@ -620,9 +621,33 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
viewHolder.text.setText(skuDetails.description);
viewHolder.price.setText(skuDetails.priceText);
final boolean purchased = ((MainActivity) getContext()).billingProcessor.isPurchased(skuDetails.productId);
int titleTextColor = purchased ? ColorUtil.resolveColor(getContext(), android.R.attr.textColorHint) : ColorUtil.resolveColor(getContext(), android.R.attr.textColorPrimary);
int contentTextColor = purchased ? titleTextColor : ColorUtil.resolveColor(getContext(), android.R.attr.textColorSecondary);
viewHolder.title.setTextColor(titleTextColor);
viewHolder.text.setTextColor(contentTextColor);
viewHolder.price.setTextColor(titleTextColor);
strikeThrough(viewHolder.title, purchased);
strikeThrough(viewHolder.text, purchased);
strikeThrough(viewHolder.price, purchased);
convertView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return purchased;
}
});
return convertView;
}
private static void strikeThrough(TextView textView, boolean strikeThrough) {
textView.setPaintFlags(strikeThrough ? textView.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG : textView.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
}
static class ViewHolder {
@Bind(R.id.title)
TextView title;
@ -638,6 +663,8 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
}
private void showDonationDialog() {
billingProcessor.loadOwnedPurchasesFromGoogle();
final String[] ids = getResources().getStringArray(R.array.donation_ids);
List<SkuDetails> skuDetailsList = billingProcessor.getPurchaseListingDetails(new ArrayList<>(Arrays.asList(ids)));
if (skuDetailsList == null) return;
@ -647,6 +674,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
.adapter(new SkuDetailsAdapter(this, skuDetailsList), new MaterialDialog.ListCallback() {
@Override
public void onSelection(MaterialDialog materialDialog, View view, int i, CharSequence charSequence) {
materialDialog.dismiss();
donate(i);
}
}).show();
@ -659,7 +687,6 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
@Override
public void onProductPurchased(String productId, TransactionDetails details) {
billingProcessor.consumePurchase(productId);
Toast.makeText(this, R.string.thank_you, Toast.LENGTH_SHORT).show();
}