ms_olin

Untitled

Mar 21st, 2017
854
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.21 KB | None | 0 0
  1. package com.panelic.cardio;
  2.  
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.content.Intent;
  5. import android.graphics.Bitmap;
  6. import android.graphics.Color;
  7. import android.os.Bundle;
  8. import android.os.Handler;
  9. import android.util.Log;
  10. import android.view.View;
  11. import android.widget.CheckBox;
  12. import android.widget.ImageView;
  13. import android.widget.TextView;
  14.  
  15. import io.card.payment.CardIOActivity;
  16. import io.card.payment.CardType;
  17. import io.card.payment.CreditCard;
  18.  
  19. public class MainActivity extends AppCompatActivity {
  20.  
  21.     protected static final String TAG = MainActivity.class.getSimpleName();
  22.  
  23.     private static final int REQUEST_SCAN = 100;
  24.     private static final int REQUEST_AUTOTEST = 200;
  25.  
  26.     private CheckBox mEnableExpiryToggle;
  27.     private CheckBox mScanExpiryToggle;
  28.     private CheckBox mCvvToggle;
  29.     private CheckBox mPostalCodeToggle;
  30.     private CheckBox mCardholderNameToggle;
  31.  
  32.     private TextView mResultLabel;
  33.     private ImageView mResultImage;
  34.     private ImageView mResultCardTypeImage;
  35.  
  36.     private boolean autotestMode;
  37.     private int numAutotestsPassed;
  38.  
  39.     @Override
  40.     protected void onCreate(Bundle savedInstanceState) {
  41.         super.onCreate(savedInstanceState);
  42.         setContentView(R.layout.activity_main);
  43.  
  44.         mEnableExpiryToggle = (CheckBox) findViewById(R.id.gather_expiry);
  45.         mScanExpiryToggle = (CheckBox) findViewById(R.id.scan_expiry);
  46.         mCvvToggle = (CheckBox) findViewById(R.id.gather_cvv);
  47.         mPostalCodeToggle = (CheckBox) findViewById(R.id.gather_postal_code);
  48.         mCardholderNameToggle = (CheckBox) findViewById(R.id.gather_cardholder_name);
  49.  
  50.         mResultLabel = (TextView) findViewById(R.id.result);
  51.         mResultImage = (ImageView) findViewById(R.id.result_image);
  52.         mResultCardTypeImage = (ImageView) findViewById(R.id.result_card_type_image);
  53.  
  54.         TextView version = (TextView) findViewById(R.id.version);
  55.         version.setText("card.io library: " + CardIOActivity.sdkVersion() + "\n" +
  56.                 "Build date: " + CardIOActivity.sdkBuildDate());
  57.  
  58.         setScanExpiryEnabled();
  59.     }
  60.  
  61.     private void setScanExpiryEnabled() {
  62.         mScanExpiryToggle.setEnabled(mEnableExpiryToggle.isChecked());
  63.     }
  64.  
  65.     public void onExpiryToggle(View v) {
  66.         setScanExpiryEnabled();
  67.     }
  68.  
  69.     public void onScan(View pressed) {
  70.         Intent intent = new Intent(this, CardIOActivity.class)
  71.                 .putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, mEnableExpiryToggle.isChecked())
  72.                 .putExtra(CardIOActivity.EXTRA_SCAN_EXPIRY, mScanExpiryToggle.isChecked())
  73.                 .putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, mCvvToggle.isChecked())
  74.                 .putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, mPostalCodeToggle.isChecked())
  75.                 .putExtra(CardIOActivity.EXTRA_REQUIRE_CARDHOLDER_NAME, mCardholderNameToggle.isChecked())
  76.                 .putExtra(CardIOActivity.EXTRA_GUIDE_COLOR, Color.GREEN)
  77.                 .putExtra(CardIOActivity.EXTRA_RETURN_CARD_IMAGE, true);
  78.  
  79.         startActivityForResult(intent, REQUEST_SCAN);
  80.     }
  81.  
  82.     public void onAutotest(View v) {
  83.         Log.i(TAG, "\n\n\n ============================== \n" + "successfully completed "
  84.                 + numAutotestsPassed + " tests\n" + "beginning new test run\n");
  85.  
  86.         Intent intent = new Intent(this, CardIOActivity.class)
  87.                 .putExtra(CardIOActivity.EXTRA_REQUIRE_EXPIRY, false)
  88.                 .putExtra(CardIOActivity.EXTRA_REQUIRE_CVV, false)
  89.                 .putExtra(CardIOActivity.EXTRA_REQUIRE_POSTAL_CODE, false)
  90.                 .putExtra(CardIOActivity.EXTRA_REQUIRE_CARDHOLDER_NAME, false)
  91.                 .putExtra("debug_autoAcceptResult", true);
  92.  
  93.         startActivityForResult(intent, REQUEST_AUTOTEST);
  94.  
  95.         autotestMode = true;
  96.     }
  97.  
  98.     @Override
  99.     public void onStop() {
  100.         super.onStop();
  101.  
  102.         mResultLabel.setText("");
  103.     }
  104.  
  105.     @Override
  106.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  107.         super.onActivityResult(requestCode, resultCode, data);
  108.         Log.v(TAG, "onActivityResult(" + requestCode + ", " + resultCode + ", " + data + ")");
  109.  
  110.         String outStr = new String();
  111.         Bitmap cardTypeImage = null;
  112.  
  113.         if ((requestCode == REQUEST_SCAN || requestCode == REQUEST_AUTOTEST) && data != null
  114.                 && data.hasExtra(CardIOActivity.EXTRA_SCAN_RESULT)) {
  115.             CreditCard result = data.getParcelableExtra(CardIOActivity.EXTRA_SCAN_RESULT);
  116.             if (result != null) {
  117.                 outStr += "Card number: " + result.getRedactedCardNumber() + "\n";
  118.  
  119.                 CardType cardType = result.getCardType();
  120.                 cardTypeImage = cardType.imageBitmap(this);
  121.                 outStr += "Card type: " + cardType.name() + " cardType.getDisplayName(null)="
  122.                         + cardType.getDisplayName(null) + "\n";
  123.  
  124.                 if (mEnableExpiryToggle.isChecked()) {
  125.                     outStr += "Expiry: " + result.expiryMonth + "/" + result.expiryYear + "\n";
  126.                 }
  127.  
  128.                 if (mCvvToggle.isChecked()) {
  129.                     outStr += "CVV: " + result.cvv + "\n";
  130.                 }
  131.  
  132.                 if (mPostalCodeToggle.isChecked()) {
  133.                     outStr += "Postal Code: " + result.postalCode + "\n";
  134.                 }
  135.  
  136.                 if (mCardholderNameToggle.isChecked()) {
  137.                     outStr += "Cardholder Name: " + result.cardholderName + "\n";
  138.                 }
  139.             }
  140.  
  141.             if (autotestMode) {
  142.                 numAutotestsPassed++;
  143.                 new Handler().postDelayed(new Runnable() {
  144.                     @Override
  145.                     public void run() {
  146.                         onAutotest(null);
  147.                     }
  148.                 }, 500);
  149.             }
  150.         } else if (resultCode == AppCompatActivity.RESULT_CANCELED) {
  151.             autotestMode = false;
  152.         }
  153.  
  154.         Bitmap card = CardIOActivity.getCapturedCardImage(data);
  155.         mResultImage.setImageBitmap(card);
  156.         mResultCardTypeImage.setImageBitmap(cardTypeImage);
  157.  
  158.         Log.i(TAG, "Set result: " + outStr);
  159.  
  160.         mResultLabel.setText(outStr);
  161.     }
  162. }
Add Comment
Please, Sign In to add comment