package me.ccrama.redditslide.Activities;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TextView;
import com.afollestad.materialdialogs.AlertDialogWrapper;
import com.rey.material.widget.Slider;
import me.ccrama.redditslide.Authentication;
import me.ccrama.redditslide.R;
import me.ccrama.redditslide.Reddit;
import me.ccrama.redditslide.SettingValues;
import me.ccrama.redditslide.Visuals.Palette;
import me.ccrama.redditslide.util.IabHelper;
import me.ccrama.redditslide.util.IabResult;
import me.ccrama.redditslide.util.Inventory;
import me.ccrama.redditslide.util.LogUtil;
import me.ccrama.redditslide.util.Purchase;
import me.ccrama.redditslide.util.SkuDetails;
/**
* Created by carlo_000 on 5/26/2015.
* Allows a user to donate to Slide using Google Play's IabHelper
*/
public class DonateView extends BaseActivityAnim {
private final IabHelper.OnConsumeFinishedListener mPurchaseFinishedListener =
new IabHelper.OnConsumeFinishedListener() {
@Override
public void onConsumeFinished(Purchase purchase, IabResult result) {
if (result.isFailure()) {
Log.d(LogUtil.getTag(), "Error purchasing: " + result);
AlertDialog.Builder builder = new AlertDialog.Builder(DonateView.this);
builder.setTitle(R.string.donate_err_title);
builder.setMessage(R.string.donate_err_msg);
builder.setNeutralButton(R.string.btn_ok, null);
builder.show();
} else if (purchase.getSku().contains("donation")) {
runOnUiThread(new Runnable() {
@Override
public void run() {
AlertDialog.Builder builder =
new AlertDialog.Builder(DonateView.this);
builder.setTitle(R.string.donate_success_title);
builder.setMessage(R.string.donate_success_msg);
builder.setPositiveButton(R.string.donate_success_btn,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
DonateView.this.finish();
}
});
builder.show();
}
});
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
disableSwipeBackLayout();
super.onCreate(savedInstanceState);
applyColorTheme();
setContentView(R.layout.activity_donate);
Toolbar t = (Toolbar) findViewById(R.id.toolbar);
t.setTitle(R.string.settings_title_support);
setRecentBar(getString(R.string.settings_title_support), Palette.getDarkerColor(
ContextCompat.getColor(DonateView.this, R.color.md_light_green_500)));
setSupportActionBar(t);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = this.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Palette.getDarkerColor(
ContextCompat.getColor(DonateView.this, R.color.md_light_green_500)));
if (SettingValues.colorNavBar) {
window.setNavigationBarColor(Palette.getDarkerColor(
ContextCompat.getColor(DonateView.this, R.color.md_light_green_500)));
}
}
final Slider slider = (Slider) findViewById(R.id.slider_sl_discrete);
slider.setValue(4, false);
final TextView ads = (TextView) findViewById(R.id.ads);
final TextView hours = (TextView) findViewById(R.id.hours);
final TextView money = (TextView) findViewById(R.id.money);
slider.setOnPositionChangeListener(new Slider.OnPositionChangeListener() {
@Override
public void onPositionChanged(Slider view, boolean fromUser, float oldPos, float newPos,
int oldValue, int newValue) {
ads.setText(" " + newValue * 330 + " ");
hours.setText(" " + String.valueOf((double) newValue / 10) + " ");
money.setText("$" + newValue);
}
});
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
ads.setText(" " + 4 * 330 + " ");
hours.setText(" " + String.valueOf((double) 4 / 10) + " ");
money.setText("$" + 4);
findViewById(R.id.donate).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String name = "";
if (Authentication.isLoggedIn) {
name = Authentication.name;
}
if (Reddit.mHelper != null) {
Reddit.mHelper.flagEndAsync();
}
Reddit.mHelper.queryInventoryAsync(new IabHelper.QueryInventoryFinishedListener() {
@Override
public void onQueryInventoryFinished(IabResult result, Inventory inv) {
if(inv != null) {
SkuDetails donation = inv.getSkuDetails("donation_" + slider.getValue());
LogUtil.v("Trying to get donation_" + slider.getValue());
if (donation != null) {
LogUtil.v("Not null");
Reddit.mHelper.launchPurchaseFlow(DonateView.this, donation.getSku(),
4000, new IabHelper.OnIabPurchaseFinishedListener() {
@Override
public void onIabPurchaseFinished(IabResult result,
Purchase info) {
if(result.isSuccess()){
new AlertDialogWrapper.Builder(DonateView.this).setTitle("Thank you!").setMessage("Thank you very much for your support :)").setPositiveButton(R.string.btn_done, null).show();
} else {
new AlertDialogWrapper.Builder(DonateView.this).setTitle("Uh oh, something went wrong.").setMessage("Please try again soon! Sorry for the inconvenience.").setPositiveButton("Ok", null).show();
}
}
});
} else {
LogUtil.v("Null");
}
} else {
new AlertDialogWrapper.Builder(DonateView.this).setTitle("Uh oh, something went wrong.").setMessage("Please try again soon! Sorry for the inconvenience.").setPositiveButton("Ok", null).show();
}
}
});
}
});
}
}