ZATAC Scanner is Android Kotlin-based QR code scanner and parser which de-crypt TLV qr codes and parse them into their values.

Overview

ZATAC Scanner

Alt text

Alt text Alt text Alt text

ZATAC Scanner is kotlin-based QR code scanner and parser which de-crypt TLV qr codes and parse them into their values, provided by https://e-invoice.io

Preview

https://e-invoice.io

Features

  • Easy to use.
  • Theme customization.
  • Ability to use the scanner view itslef for more customization and ease of integration ,but you will need to check for camera persmission your self and also you will need to add listener for image picking .
  • Ability to use parsing method directly and Barcode scanner for low-level integration.

Download

  • add library aar file to you app/libs directory
  • then add the dependency to your app-level gradle build.gradle(:app)
implementation files('libs/ZATCA_scanner-v1.0-debug.aar')

How to use

To use the Scanner activity: define in onCreate:

val activityLauncher =
            registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
                if (result.resultCode == Activity.RESULT_OK) {
                   val scannedQRCode = result.data?.getSerializableExtra(ZATCAScannerActivity.ZATCA_BILL_INFO) as? ZATCAQRCode)
                   //Do something with scanned QR code
                }
            }

then launch the activity with:

activityLauncher.launch(ZATCAScannerActivity.newIntent(this)) //this refers to activity context

Note: you can use any normal intent to start the acivity but for customizations you have to use the provided intent with the activity

Customizations

you can customize the buttons ,scan indicator background color and text color.

Alt text

  • provide the prefered color resource id for the buttons, the text color and the separator color and visibilty via intent
activityLauncher.launch(
                ZATCAScannerActivity.newIntent(
                    this,//activity context
                   R.color.pick_img_btn_bk_color,
                   R.color.text_color,
                    R.color.separator_color
                )
            )
  • or if you want to use the view you can customize its theme via the following attributes
">
<com.enozom.poc.e_invoice.utils.customViews.ZATCAScannerView
        android:id="@+id/zatca_sv"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:zatca_btnBackgroundColor="@color/colorFAA712"
        app:zatca_separatorColor="@color/colorFAA712"
        app:zatca_textColor="@color/color398CFD" />

Android Permissions

The camera permission is required for QR code scanning to function. It is automatically requested by the scanning activity. On Android 6 it is requested at runtime when the barcode scanner is first opened.

When using ZATCAScannerView, you have to request the permission manually before calling ZATCAScannerView#resume(), otherwise the camera will fail to open.

License

Licensed under MIT License

Copyright (c) 2021 Enozom

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

You might also like...
A library which will save you a lot of time from writing the same intent creation code. it consist of many intent creation codes like Share, Contacts, Email and etc, which you can easily use.

Android-Intent-Library A library which will save you a lot of time from writing the same intent creation code. it consist of many intent creation code

D4rK QR & Bar Code Scanner Plus is a FOSS scanner app for every Android. 📷
D4rK QR & Bar Code Scanner Plus is a FOSS scanner app for every Android. 📷

📷 QR & Bar Code Scanner Plus 📷 ╔╦╦╦═╦╗╔═╦═╦══╦═╗ ║║║║╩╣╚╣═╣║║║║║╩╣ ╚══╩═╩═╩═╩═╩╩╩╩═╝ D4rK QR & Bar Code Scanner Plus is a FOSS scanner app for every

BluePass extracts two factor authentication codes (2FA) from SMS and sends them to a paired device via Bluetooth RFCOMM.
BluePass extracts two factor authentication codes (2FA) from SMS and sends them to a paired device via Bluetooth RFCOMM.

BluePass extracts two factor authentication codes (2FA) from SMS and sends them to a paired device via Bluetooth RFCOMM.

This app aims at helping people keep track of their job applications, and remind them regularly about the same.
This app aims at helping people keep track of their job applications, and remind them regularly about the same.

Applications Tracker Lately I have been applying for many roles, and it has become a hard task to keep track of all the applications. Spreadsheets are

A simple Android utils library to write any type of data into cache files and read them later.

CacheUtilsLibrary This is a simple Android utils library to write any type of data into cache files and then read them later, using Gson to serialize

Utility logger library for storing logs into database and push them to remote server for debugging
Utility logger library for storing logs into database and push them to remote server for debugging

HyperLog Android Overview Log format Download Initialize Usage Get Logs in a File Push Logs Files to Remote Server Sample Testing Endpoint using Reque

Plannr is an organizational platform, in the form of an Android app, that helps university students coordinate their everyday routine, from schoolwork and expenses to their personal life.

Plannr Plannr is an organizational platform, in the form of an Android app, that helps university students coordinate their everyday routine, from sch

Terminal Game. Black and White have only pawns. White wins if their pawn moved to 8th line. Black wins if their pawn moves to 1st line. If black or white haven't any move, then no one wins(stalemate))

Only-Pawns-Chess Terminal game for 2 players Regular chess but all sides have only pawns Rules This game extend all the rules of regular chess but it

AptiBit is an android application that uses Firebase firestore to store the questions and categorize different types of aptitude questions into their categories
AptiBit is an android application that uses Firebase firestore to store the questions and categorize different types of aptitude questions into their categories

AptiBit is an android application that uses Firebase firestore to store the questions and categorize different types of aptitude questions into their categories. It also uses firebase authentication service that allows you to sign in to the app using your custom credentials.

Danger-kotlin plugin to parse and report Detekt violations
Danger-kotlin plugin to parse and report Detekt violations

Detekt Plugin for Danger Kotlin Plugin for danger/kotlin which helps to parse and report detekt violations from its XML report files. How it looks lik

A flexible view for providing a limited rect window into a large data set,just like a two-dimensional RecyclerView.  It different from RecyclerView is that it's two-dimensional(just like a Panel) and it pin the itemView of first row and first column in their original location.
Xoxo is a simple wrapper around org.w3c.dom to parse XML using nice Kotlin APIs

Xoxo 😘 Xoxo is a simple wrapper around org.w3c.dom to parse XML using nice Kotlin APIs. No more NodeList, .item(), etc... just use .children, .filter

MachOParser is a Kotlin library to parse Mach-O files

MachOParser MachOParser is a Kotlin library to parse Mach-O files Mach-O is a file format for executables, shared libraries and related binaries. This

Adds loveable red pandas into Minecraft! Who doesn't love a Red Panda in their world?

🧧 Akali Adds loveable red pandas into Minecraft! Who doesn't love a Red Panda in their world? :3 This is a Forge and Fabric mod under their respected

Multi Lingual Chat app - A modern chat application that allows users to translate text messages into their preferred language
Multi Lingual Chat app - A modern chat application that allows users to translate text messages into their preferred language

Multi Lingual Chat app - A modern chat application that allows users to translate text messages into their preferred language

A small plugin which loads an additional properties file for secret values.

Gradle Secrets Plugin A small plugin which loads an additional properties file for secret values. Why Using this plugin, you can have an additional fi

A IntelliJ plugin to provide check on 'value type' which is limited to numerical constant values

ValueType A IntelliJ plugin to provide check on 'value type' which is limited to

A IntelliJ plugin to provide check on 'value type' which is limited to numerical constant values

ValueDef A IntelliJ plugin to provide check on 'value type' which is limited to

DrawRoute wraps Google Directions API (https://developers.google.com/maps/documentation/directions/) using RxJava for Android so developers can download, parse and draw path on the map in very fast and flexible way (For now only JSON support).
Owner
Enozom
Web and Mobile Development Software Company
Enozom
Barcode scanner library for Android, based on the ZXing decoder

ZXing Android Embedded Barcode scanning library for Android, using ZXing for decoding. The project is loosely based on the ZXing Android Barcode Scann

JourneyApps 5.3k Jan 4, 2023
Android library for creating QR-codes with logo, custom pixel/eyes shapes, background image. Powered by ZXing.

custom-qr-generator Android library for creating QR-codes with logo, custom pixel/eyes shapes, background image. Powerd by ZXing. Installation To get

Alexander Zhirkevich 34 Dec 17, 2022
Qart is Android App that's based on CuteR project. App generate QR code that merge a picture. So the QR code looks more beautiful.

Qart is Android App that's based on CuteR project. App generate QR code that merge a picture. So the QR code looks more beautiful.

scola 1k Dec 16, 2022
Barcode Scanner Libraries for Android

Project Archived July 1 2020 This project is no longer maintained. When I first started this project in late 2013 there were very few libraries to hel

Dushyanth 5.4k Jan 3, 2023
QRAlarm - an Android alarm clock application lets the user turn off alarms by scanning the QR Code.

QRAlarm is an Android alarm clock application that does not only wake You up, but also makes You get up to disable the alarm by scanning the QR Code.

null 39 Jan 8, 2023
⭐️ Quick and easy QR Code scanning app created using Jetpack Compose. ☘️

QR-Code-Scanner Scan your QR codes easily and quickly. ⭐️ Google Play Store : Screenshots of the app : ?? Libraries Used in The Project : // Jetpa

Nisa Efendioğlu 12 Oct 8, 2022
MyQRScanner - Simple app for reading QR Code

My QRCode Scanner Simple app for reading QR Code Technologies Jetpack Compose Ca

Joselaine Aparecida dos Santos 4 Feb 17, 2022
Generate Qr Code using ZXING with a logo if needed

QrGeneratorWithLogo Generate Qr Code using ZXING with a logo if needed Download the Helper file and use it 1- add zxing lib into your project implem

null 0 Mar 14, 2022
QRCode Generator implemented in pure Kotlin

Creating QRCodes in Kotlin and Java is harder than it should be. QRCode-Kotlin aims to bring a simple, straightforward and customizable way to create QRCodes into the JVM domain, especially in the backend.

Rafael Lins 42 Dec 28, 2022
Secret Codes is an Open Source application that allows you to browse through hidden codes of your Android phone.

####Secret Codes is an Open Source application that allows you to browse through hidden codes of your Android phone. This application will scan throug

Simon Marquis 251 Jan 6, 2023