package me.pagar;
import android.content.Context;
import java.io.InputStream;
import me.pagar.interfaces.CheckoutListener;
import me.pagar.model.CreditCard;
import me.pagar.runnable.CheckoutManager;
import me.pagar.runnable.CheckoutTask;
public class PagarMe {
public static volatile PagarMe singleton = null;
private Context context;
private CreditCard creditCard;
private CheckoutTask checkoutTask;
public PagarMe(Context context) {
this.context = context;
}
public static PagarMe with(Context context) {
if (singleton == null) {
synchronized (PagarMe.class) {
if (singleton == null) {
singleton = new Builder(context).build();
}
}
}
return singleton;
}
public PagarMe checkout(CreditCard creditCard) {
this.creditCard = creditCard;
return singleton;
}
public PagarMe callback(CheckoutListener checkoutListener) {
this.checkoutListener = checkoutListener;
return singleton;
}
public void execute() {
checkoutTask = CheckoutManager.startCheckout(checkoutListener);
}
private CheckoutListener checkoutListener = new CheckoutListener() {
@Override public void onCheckoutSuccess(InputStream inputStream) {
System.out.println("teste!");
}
@Override public void onCheckoutFail() {
}
};
/** Fluent API for creating {@link PagarMe} instances. */
@SuppressWarnings("UnusedDeclaration") // Public API.
public static class Builder {
private final Context context;
/** Start building a new {@link PagarMe} instance. */
public Builder(Context context) {
if (context == null) {
throw new IllegalArgumentException("Context must not be null.");
}
this.context = context.getApplicationContext();
}
/** Create the {@link PagarMe} instance. */
public PagarMe build() {
Context context = this.context;
return new PagarMe(context);
}
}
}