Skip to content

Instantly share code, notes, and snippets.

@sproctor
sproctor / DriverLicense.kt
Created September 30, 2021 13:02
AAMVA barcode parser
fun parseAAMVA(barcodeData: String): DriverLicense? {
// first character must be @
if (barcodeData[0] != '@') return null
var familyName: String? = null
var firstName: String? = null
var middleNames: String? = null
var issueDate: String? = null
var expirationDate: String? = null
var birthDate: String? = null
var gender: String? = null
@sproctor
sproctor / MainActivity.kt
Created September 30, 2021 03:11
Request permission
val permissionState =
rememberPermissionState(permission = Manifest.permission.ACCESS_FINE_LOCATION)
PermissionRequired(
permissionState = permissionState,
permissionNotGrantedContent = {
LaunchedEffect(Unit) {
permissionState.launchPermissionRequest()
}
},
permissionNotAvailableContent = {
@sproctor
sproctor / PairingDialog.kt
Created September 30, 2021 03:05
Pairing dialog
@Composable
fun PairDialog(sdkHandler: SDKHandler, hideDialog: () -> Unit) {
AlertDialog(
onDismissRequest = hideDialog,
confirmButton = {
Button(onClick = hideDialog) {
Text("CANCEL")
}
},
text = {
@sproctor
sproctor / MainActivity.kt
Created September 30, 2021 02:36
Set operation mode
// Allow our scanner to be discovered (when scanning the pairing barcode)
sdkHandler.dcssdkSetOperationalMode(DCSSDKDefs.DCSSDK_MODE.DCSSDK_OPMODE_BT_LE)
sdkHandler.dcssdkSetOperationalMode(DCSSDKDefs.DCSSDK_MODE.DCSSDK_OPMODE_USB_CDC)
@sproctor
sproctor / MainActivity.kt
Created September 30, 2021 02:24
Set scanner listener
LaunchedEffect(Unit) {
// Set scanner/barcode listener
sdkHandler.dcssdkSetDelegate(object : IDcsSdkApiDelegate {
override fun dcssdkEventBarcode(
barcodeData: ByteArray?,
barcodeType: Int,
scannerId: Int
) {
// handle the barcode
}
@sproctor
sproctor / MainActivity.kt
Created September 29, 2021 21:57
Initialize SDKHandler
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val sdkHandler = SDKHandler(this, true)
setContent {
ScannerComposeTheme {
ScannerContent(sdkHandler)
}
}
}
@sproctor
sproctor / build.gradle
Created September 29, 2021 21:39
Include Zebra Android Scanner SDK dependency
dependencies {
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
// ...
}
I/ExoPlayerImpl: Init d4f7070 [ExoPlayerLib/2.15.0] [gtowifi, SM-T290, samsung, 30]
W/AudioCapabilities: Unsupported mime audio/x-ima
W/VideoCapabilities: Unsupported mime video/mp43
W/VideoCapabilities: Unsupported mime video/wvc1
W/VideoCapabilities: Unsupported mime video/x-ms-wmv
W/AudioCapabilities: Unsupported mime audio/x-ms-wma
W/VideoCapabilities: Unsupported mime video/x-ms-wmv7
W/VideoCapabilities: Unsupported mime video/x-ms-wmv8
W/AudioCapabilities: Unsupported mime audio/x-ima
W/AudioCapabilities: Unsupported mime audio/mpeg-L1
@sproctor
sproctor / output.txt
Created August 15, 2020 15:17
terraform error
➜ Infrastructure git:(master) ✗ terraform plan
Backend reinitialization required. Please run "terraform init".
Reason: Initial configuration of the requested backend "s3"
The "backend" is the interface that Terraform uses to store state,
perform operations, etc. If this message is showing up, it means that the
Terraform configuration you're using is using a custom configuration for
the Terraform backend.
Changes to backend configurations require reinitialization. This allows
sproctor@nickel:~/Code/ScrapReceipts$ elm-package install elm-community/list-extra
To install elm-community/list-extra I would like to add the following
dependency to elm-package.json:
"elm-community/list-extra": "7.1.0 <= v < 8.0.0"
May I add that to elm-package.json for you? [Y/n] y
Error: I cannot find a set of packages that works with your constraints.