qml: replace Send/ScanDialog with java bases zxing qr scan activity.
This commit is contained in:
committed by
Sander van Grieken
parent
c33ee87544
commit
5c3e14d8de
@@ -5,7 +5,16 @@ import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.content.Intent;
|
||||
import android.Manifest;
|
||||
import android.content.ClipData;
|
||||
import android.content.ClipDescription;
|
||||
import android.content.ClipboardManager;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.core.app.ActivityCompat;
|
||||
|
||||
@@ -16,18 +25,53 @@ import me.dm7.barcodescanner.zxing.ZXingScannerView;
|
||||
import com.google.zxing.Result;
|
||||
import com.google.zxing.BarcodeFormat;
|
||||
|
||||
import org.electrum.testnet.electrum.R; // TODO
|
||||
|
||||
public class SimpleScannerActivity extends Activity implements ZXingScannerView.ResultHandler {
|
||||
private static final int MY_PERMISSIONS_CAMERA = 1002;
|
||||
|
||||
private ZXingScannerView mScannerView = null;
|
||||
final String TAG = "org.electrum.SimpleScannerActivity";
|
||||
|
||||
private boolean mAlreadyRequestedPermissions = false;
|
||||
|
||||
@Override
|
||||
public void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.scanner_layout);
|
||||
|
||||
// change top text
|
||||
Intent intent = getIntent();
|
||||
String text = intent.getStringExtra(intent.EXTRA_TEXT);
|
||||
TextView hintTextView = (TextView) findViewById(R.id.hint);
|
||||
hintTextView.setText(text);
|
||||
|
||||
// bind "paste" button
|
||||
Button btn = (Button) findViewById(R.id.paste_btn);
|
||||
btn.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
|
||||
if (clipboard.hasPrimaryClip()
|
||||
&& (clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)
|
||||
|| clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_HTML))) {
|
||||
ClipData.Item item = clipboard.getPrimaryClip().getItemAt(0);
|
||||
String clipboardText = item.getText().toString();
|
||||
SimpleScannerActivity.this.setResultAndClose(clipboardText);
|
||||
} else {
|
||||
Toast.makeText(SimpleScannerActivity.this, "Clipboard is empty.", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
if (this.hasPermission()) {
|
||||
this.startCamera();
|
||||
} else {
|
||||
} else if (!mAlreadyRequestedPermissions) {
|
||||
mAlreadyRequestedPermissions = true;
|
||||
this.requestPermission();
|
||||
}
|
||||
}
|
||||
@@ -41,18 +85,23 @@ public class SimpleScannerActivity extends Activity implements ZXingScannerView.
|
||||
}
|
||||
|
||||
private void startCamera() {
|
||||
mScannerView = new ZXingScannerView(this); // Programmatically initialize the scanner view
|
||||
mScannerView = new ZXingScannerView(this);
|
||||
mScannerView.setFormats(Arrays.asList(BarcodeFormat.QR_CODE));
|
||||
setContentView(mScannerView); // Set the scanner view as the content view
|
||||
ViewGroup contentFrame = (ViewGroup) findViewById(R.id.content_frame);
|
||||
contentFrame.addView(mScannerView);
|
||||
mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
|
||||
mScannerView.startCamera(); // Start camera on resume
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleResult(Result rawResult) {
|
||||
//resultIntent.putExtra("format", rawResult.getBarcodeFormat().toString());
|
||||
this.setResultAndClose(rawResult.getText());
|
||||
}
|
||||
|
||||
private void setResultAndClose(String resultText) {
|
||||
Intent resultIntent = new Intent();
|
||||
resultIntent.putExtra("text", rawResult.getText());
|
||||
resultIntent.putExtra("format", rawResult.getBarcodeFormat().toString());
|
||||
resultIntent.putExtra("text", resultText);
|
||||
setResult(Activity.RESULT_OK, resultIntent);
|
||||
this.finish();
|
||||
}
|
||||
@@ -80,7 +129,7 @@ public class SimpleScannerActivity extends Activity implements ZXingScannerView.
|
||||
this.startCamera();
|
||||
} else {
|
||||
// permission denied
|
||||
this.finish();
|
||||
//this.finish();
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user