package com.novoda.spikes.paypalmpl;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.Toast;
import com.paypal.android.MEP.CheckoutButton;
import com.paypal.android.MEP.PayPal;
import com.paypal.android.MEP.PayPalActivity;
public class PayPalFragment extends Fragment {
private static final String PREAPPROVAL_KEY = "PREAPPROVAL_KEY";
private static final int PREAPPROVAL_REQUEST_CODE = 0;
private PayPalHelper payPalHelper;
public PayPalFragment() {
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
payPalHelper = new PayPalHelper(getActivity());
payPalHelper.init();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
LinearLayout rootView = (LinearLayout) inflater.inflate(R.layout.fragment_main, container, false);
setupView(rootView);
return rootView;
}
private void setupView(ViewGroup rootView) {
PayPal payPal = PayPal.getInstance();
CheckoutButton preapprovalButton = payPal.getCheckoutButton(getActivity(), PayPal.BUTTON_194x37, CheckoutButton.TEXT_PAY);
preapprovalButton.setOnClickListener(preapprovalClickListener);
rootView.addView(preapprovalButton);
}
private View.OnClickListener preapprovalClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent preapprovalIntent = payPalHelper.getPreapprovalIntent(PREAPPROVAL_KEY);
startActivityForResult(preapprovalIntent, PREAPPROVAL_REQUEST_CODE);
}
};
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode != PREAPPROVAL_REQUEST_CODE) {
return;
}
String resultTitle = "";
String resultInfo = "";
String resultExtra = "";
switch (resultCode) {
case Activity.RESULT_OK:
resultTitle = "SUCCESS";
resultInfo = "You have successfully completed this preapproval.";
resultExtra = "Transaction ID: " + data.getStringExtra(PayPalActivity.EXTRA_PAY_KEY);
break;
case Activity.RESULT_CANCELED:
resultTitle = "CANCELED";
resultInfo = "The transaction has been cancelled.";
resultExtra = "";
break;
case PayPalActivity.RESULT_FAILURE:
resultTitle = "FAILURE";
resultInfo = data.getStringExtra(PayPalActivity.EXTRA_ERROR_MESSAGE);
resultExtra = "Error ID: " + data.getStringExtra(PayPalActivity.EXTRA_ERROR_ID);
}
Log.v("PayPalFragment", resultTitle + " " + resultInfo + " " + resultExtra);
Toast.makeText(getActivity(), resultTitle + " " + resultInfo, Toast.LENGTH_SHORT).show();
}
}