import
android.content.pm.PackageManager;
import
android.os.Bundle;
import
android.widget.TextView;
import
android.widget.Toast;
import
androidx.appcompat.app.AppCompatActivity;
import
androidx.core.app.ActivityCompat;
import
androidx.core.content.ContextCompat;
import
eu.livotov.labs.android.camview.ScannerLiveView;
import
eu.livotov.labs.android.camview.scanner.decoder.zxing.ZXDecoder;
import
static
android.Manifest.permission.CAMERA;
import
static
android.Manifest.permission.VIBRATE;
public
class
MainActivity
extends
AppCompatActivity {
private
ScannerLiveView camera;
private
TextView scannedTV;
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if
(checkPermission()) {
Toast.makeText(
this
,
"Permission Granted.."
, Toast.LENGTH_SHORT).show();
}
else
{
requestPermission();
}
scannedTV = findViewById(R.id.idTVscanned);
camera = (ScannerLiveView) findViewById(R.id.camview);
camera.setScannerViewEventListener(
new
ScannerLiveView.ScannerViewEventListener() {
@Override
public
void
onScannerStarted(ScannerLiveView scanner) {
Toast.makeText(MainActivity.
this
,
"Scanner Started"
, Toast.LENGTH_SHORT).show();
}
@Override
public
void
onScannerStopped(ScannerLiveView scanner) {
Toast.makeText(MainActivity.
this
,
"Scanner Stopped"
, Toast.LENGTH_SHORT).show();
}
@Override
public
void
onScannerError(Throwable err) {
Toast.makeText(MainActivity.
this
,
"Scanner Error: "
+ err.getMessage(), Toast.LENGTH_SHORT).show();
}
@Override
public
void
onCodeScanned(String data) {
scannedTV.setText(data);
}
});
}
@Override
protected
void
onResume() {
super
.onResume();
ZXDecoder decoder =
new
ZXDecoder();
decoder.setScanAreaPercent(
0.8
);
camera.setDecoder(decoder);
camera.startScanner();
}
@Override
protected
void
onPause() {
camera.stopScanner();
super
.onPause();
}
private
boolean
checkPermission() {
int
camera_permission = ContextCompat.checkSelfPermission(getApplicationContext(), CAMERA);
int
vibrate_permission = ContextCompat.checkSelfPermission(getApplicationContext(), VIBRATE);
return
camera_permission == PackageManager.PERMISSION_GRANTED && vibrate_permission == PackageManager.PERMISSION_GRANTED;
}
private
void
requestPermission() {
int
PERMISSION_REQUEST_CODE =
200
;
ActivityCompat.requestPermissions(
this
,
new
String[]{CAMERA, VIBRATE}, PERMISSION_REQUEST_CODE);
}
@Override
public
void
onRequestPermissionsResult(
int
requestCode, String permissions[],
int
[] grantResults) {
if
(grantResults.length >
0
) {
boolean
cameraaccepted = grantResults[
0
] == PackageManager.PERMISSION_GRANTED;
boolean
vibrateaccepted = grantResults[
1
] == PackageManager.PERMISSION_GRANTED;
if
(cameraaccepted && vibrateaccepted) {
Toast.makeText(
this
,
"Permission granted.."
, Toast.LENGTH_SHORT).show();
}
else
{
Toast.makeText(
this
,
"Permission Denied \n You cannot use app without providing permission"
, Toast.LENGTH_SHORT).show();
}
}
}
}