Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.panelic.cardio;
- import android.support.v7.app.AppCompatActivity;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.Color;
- import android.os.Bundle;
- import android.os.Handler;
- import android.util.Log;
- import android.view.View;
- import android.widget.CheckBox;
- import android.widget.ImageView;
- import android.widget.TextView;
- import io.card.payment.CardIOActivity;
- import io.card.payment.CardType;
- import io.card.payment.CreditCard;
- public class MainActivity extends AppCompatActivity {
- protected static final String TAG = MainActivity.class.getSimpleName();
- private static final int REQUEST_SCAN = 100;
- private static final int REQUEST_AUTOTEST = 200;
- private CheckBox mEnableExpiryToggle;
- private CheckBox mScanExpiryToggle;
- private CheckBox mCvvToggle;
- private CheckBox mPostalCodeToggle;
- private CheckBox mCardholderNameToggle;
- private TextView mResultLabel;
- private ImageView mResultImage;
- private ImageView mResultCardTypeImage;
- private boolean autotestMode;
- private int numAutotestsPassed;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- mEnableExpiryToggle = (CheckBox) findViewById(R.id.gather_expiry);
- mScanExpiryToggle = (CheckBox) findViewById(R.id.scan_expiry);
- mCvvToggle = (CheckBox) findViewById(R.id.gather_cvv);
- mPostalCodeToggle = (CheckBox) findViewById(R.id.gather_postal_code);
- mCardholderNameToggle = (CheckBox) findViewById(R.id.gather_cardholder_name);
- mResultLabel = (TextView) findViewById(R.id.result);
- mResultImage = (ImageView) findViewById(R.id.result_image);
- mResultCardTypeImage = (ImageView) findViewById(R.id.result_card_type_image);
- TextView version = (TextView) findViewById(R.id.version);
- version.setText("card.io library: " + CardIOActivity.sdkVersion() + "\n" +
- "Build date: " + CardIOActivity.sdkBuildDate());
- setScanExpiryEnabled();
- }
- private void setScanExpiryEnabled() {
- mScanExpiryToggle.setEnabled(mEnableExpiryToggle.isChecked());
- }
- public void onExpiryToggle(View v) {
- setScanExpiryEnabled();
- }
- public void onScan(View pressed) {
- Intent intent = new Intent(this, CardIOActivity.class)
- .putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, mEnableExpiryToggle.isChecked())
- .putExtra(CardIOActivity.EXTRA_SCAN_EXPIRY, mScanExpiryToggle.isChecked())
- .putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, mCvvToggle.isChecked())
- .putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, mPostalCodeToggle.isChecked())
- .putExtra(CardIOActivity.EXTRA_REQUIRE_CARDHOLDER_NAME, mCardholderNameToggle.isChecked())
- .putExtra(CardIOActivity.EXTRA_GUIDE_COLOR, Color.GREEN)
- .putExtra(CardIOActivity.EXTRA_RETURN_CARD_IMAGE, true);
- startActivityForResult(intent, REQUEST_SCAN);
- }
- public void onAutotest(View v) {
- Log.i(TAG, "\n\n\n ============================== \n" + "successfully completed "
- + numAutotestsPassed + " tests\n" + "beginning new test run\n");
- Intent intent = new Intent(this, CardIOActivity.class)
- .putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, false)
- .putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, false)
- .putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, false)
- .putExtra(CardIOActivity.EXTRA_REQUIRE_CARDHOLDER_NAME, false)
- .putExtra("debug_autoAcceptResult", true);
- startActivityForResult(intent, REQUEST_AUTOTEST);
- autotestMode = true;
- }
- @Override
- public void onStop() {
- super.onStop();
- mResultLabel.setText("");
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- Log.v(TAG, "onActivityResult(" + requestCode + ", " + resultCode + ", " + data + ")");
- String outStr = new String();
- Bitmap cardTypeImage = null;
- if ((requestCode == REQUEST_SCAN || requestCode == REQUEST_AUTOTEST) && data != null
- && data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) {
- CreditCard result = data.getParcelableExtra(CardIOActivity.EXTRA_SCAN_RESULT);
- if (result != null) {
- outStr += "Card number: " + result.getRedactedCardNumber() + "\n";
- CardType cardType = result.getCardType();
- cardTypeImage = cardType.imageBitmap(this);
- outStr += "Card type: " + cardType.name() + " cardType.getDisplayName(null)="
- + cardType.getDisplayName(null) + "\n";
- if (mEnableExpiryToggle.isChecked()) {
- outStr += "Expiry: " + result.expiryMonth + "/" + result.expiryYear + "\n";
- }
- if (mCvvToggle.isChecked()) {
- outStr += "CVV: " + result.cvv + "\n";
- }
- if (mPostalCodeToggle.isChecked()) {
- outStr += "Postal Code: " + result.postalCode + "\n";
- }
- if (mCardholderNameToggle.isChecked()) {
- outStr += "Cardholder Name: " + result.cardholderName + "\n";
- }
- }
- if (autotestMode) {
- numAutotestsPassed++;
- new Handler().postDelayed(new Runnable() {
- @Override
- public void run() {
- onAutotest(null);
- }
- }, 500);
- }
- } else if (resultCode == AppCompatActivity.RESULT_CANCELED) {
- autotestMode = false;
- }
- Bitmap card = CardIOActivity.getCapturedCardImage(data);
- mResultImage.setImageBitmap(card);
- mResultCardTypeImage.setImageBitmap(cardTypeImage);
- Log.i(TAG, "Set result: " + outStr);
- mResultLabel.setText(outStr);
- }
- }
Add Comment
Please, Sign In to add comment