Skip to content

Commit

Permalink
Merge pull request #34 from ywang7/QuickChip
Browse files Browse the repository at this point in the history
Bluetooth device support added for AnywhereCommerce Walker C2X BT
  • Loading branch information
ptaneja committed Dec 6, 2017
2 parents 0922e5e + fa098f7 commit ca67ca5
Show file tree
Hide file tree
Showing 5 changed files with 70 additions and 16 deletions.
Binary file modified emv-anet-sdk.aar
Binary file not shown.
5 changes: 5 additions & 0 deletions sampleapp/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,42 +7,35 @@
import android.app.ProgressDialog;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.ColorStateList;
import android.graphics.Color;
import android.media.AudioManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.RelativeLayout;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import android.widget.ToggleButton;

import com.bbpos.bbdevice.BBDeviceController;

import net.authorize.ResponseReasonCode;
import net.authorize.aim.emv.EMVActivity;
import net.authorize.aim.emv.EMVDeviceConnectionType;
import net.authorize.aim.emv.EMVErrorCode;
import net.authorize.aim.emv.EMVTransaction;
import net.authorize.aim.emv.EMVTransactionManager;
import net.authorize.aim.emv.EMVTransactionType;
import net.authorize.aim.emv.EmvSdkUISettings;
import net.authorize.aim.emv.OTAUpdateHeadless;
import net.authorize.aim.emv.OTAUpdateManager;
import net.authorize.aim.emv.QuickChipTransactionSession;
import net.authorize.data.Order;
Expand All @@ -52,11 +45,8 @@
import net.authorize.util.StringUtils;
import net.authorize.xml.MessageType;

import org.w3c.dom.Text;

import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
Expand All @@ -81,6 +71,9 @@ public class MainActivity extends ActionBarActivity {
ToggleButton bluetoothToggleButton;
String spinnerAmountStr = "1";
RelativeLayout cvrLayout;
Button clearSavedBTDeviceButton;
Button startBTScanButton;
Button connectBTButton;
private Dialog dialog;

Handler myHandler = new Handler(){
Expand Down Expand Up @@ -125,6 +118,9 @@ protected void onCreate(Bundle savedInstanceState) {
tipAmount = (EditText) findViewById(R.id.tip_amount);
swipeOnlyToggleButton = (ToggleButton) findViewById(R.id.swipe_only_mode_toggle_button);
bluetoothToggleButton = (ToggleButton) findViewById(R.id.bluetooth_toggle_button);
clearSavedBTDeviceButton = (Button) findViewById(R.id.clearsavedbtdevice);
startBTScanButton = (Button) findViewById(R.id.start_bt_scan_button);
connectBTButton = (Button) findViewById(R.id.connect_bluetooth_button);

try {
emvButton.setOnClickListener(mListner);
Expand All @@ -135,6 +131,9 @@ protected void onCreate(Bundle savedInstanceState) {
quickChipTipAmountButton.setOnClickListener(mListner);
quickChipAuthOnlyButton.setOnClickListener(mListner);
lastTransactionButton.setOnClickListener(mListner);
clearSavedBTDeviceButton.setOnClickListener(mListner);
startBTScanButton.setOnClickListener(mListner);
connectBTButton.setOnClickListener(mListner);
} catch (NullPointerException e) {
e.printStackTrace();
}
Expand Down Expand Up @@ -211,6 +210,35 @@ private void checkRuntimePermissions() {


EMVTransactionManager.QuickChipTransactionSessionListener iemvTransaction = new EMVTransactionManager.QuickChipTransactionSessionListener() {
@Override
public void onReturnBluetoothDevices(final List<BluetoothDevice> bluetoothDeviceList) {
// setup the alert builder
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Bluetooth Devices");

String[] titles = new String[bluetoothDeviceList.size()];
for (int i=0;i<bluetoothDeviceList.size();i++) {
titles[i] = bluetoothDeviceList.get(i).getName();
}
builder.setItems(titles, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
EMVTransactionManager.connectBTDevice(MainActivity.this, bluetoothDeviceList.get(0), iemvTransaction);
}
});

// create and show the alert dialog
AlertDialog dialog = builder.create();
dialog.show();


}

@Override
public void onBluetoothDeviceConnected(BluetoothDevice bluetoothDevice) {
Log.d("Bluetooth device", "bluetooth device connected : " + bluetoothDevice.getName());
}

@Override
public void onTransactionStatusUpdate(String transactionStatus) {
statusTextView.setTextColor(Color.GREEN);
Expand Down Expand Up @@ -599,6 +627,8 @@ public void onClick(View view) {
EMVTransactionManager.prepareDataForQuickChipTransaction(context, iemvTransaction);
} else if (view == clearDataButton) {
EMVTransactionManager.clearStoredQuickChipData(iemvTransaction);
} else if (view == clearSavedBTDeviceButton) {
EMVTransactionManager.clearSavedBTDevice(context);
} else if (view == quickChipTipOptionButton) {
EMVTransactionManager.startQuickChipTransaction(emvTransaction, iemvTransaction, context, new EMVTransactionManager.TipOptions(15, 18, 20));
} else if (view == quickChipTipAmountButton) {
Expand All @@ -622,6 +652,13 @@ public void onClick(View view) {
} else if (view == lastTransactionButton) {
Intent i = new Intent(MainActivity.this, LastTransactionActivity.class);
MainActivity.this.startActivity(i);
}else if (view == startBTScanButton) {
EMVTransactionManager.setDeviceConnectionType(EMVDeviceConnectionType.BLUETOOTH);
bluetoothToggleButton.setChecked(true);
EMVTransactionManager.startBTScan(context, iemvTransaction);
} else if (view == connectBTButton) {
//will try to connect last used bluetooth device
EMVTransactionManager.connectBTDevice(MainActivity.this, null, iemvTransaction);
}
}
};
Expand Down
18 changes: 15 additions & 3 deletions sampleapp/app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,10 @@
android:id="@+id/swipe_only_mode_toggle_button"/>

<TextView
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bluetooth?"/>
<ToggleButton
android:visibility="gone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bluetooth_toggle_button"/>
Expand All @@ -84,7 +82,21 @@
android:layout_height="wrap_content"
android:text="Clear Saved Data"
android:id="@+id/clearsaveddatabutton"/>

<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Clear Saved BT Device"
android:id="@+id/clearsavedbtdevice"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Start BT Scan"
android:id="@+id/start_bt_scan_button"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Connect Bluetooth"
android:id="@+id/connect_bluetooth_button"/>
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
Expand Down
Binary file modified sampleapp/emv-anet-sdk/emv-anet-sdk.aar
Binary file not shown.

0 comments on commit ca67ca5

Please sign in to comment.