aboutsummaryrefslogtreecommitdiffstats
path: root/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java')
-rw-r--r--OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java42
1 files changed, 28 insertions, 14 deletions
diff --git a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java
index f9ead3a94..bdedbec0a 100644
--- a/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java
+++ b/OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java
@@ -35,7 +35,7 @@ import android.widget.TextView;
import android.widget.Toast;
import com.beardedhen.androidbootstrap.BootstrapButton;
-import com.google.zxing.integration.android.IntentIntegratorSupportV4;
+import com.google.zxing.integration.android.IntentIntegrator;
import com.google.zxing.integration.android.IntentResult;
public class ImportKeysQrCodeFragment extends Fragment {
@@ -45,7 +45,7 @@ public class ImportKeysQrCodeFragment extends Fragment {
private TextView mText;
private ProgressBar mProgress;
- private String[] scannedContent;
+ private String[] mScannedContent;
/**
* Creates new instance of this fragment
@@ -75,7 +75,7 @@ public class ImportKeysQrCodeFragment extends Fragment {
@Override
public void onClick(View v) {
// scan using xzing's Barcode Scanner
- new IntentIntegratorSupportV4(ImportKeysQrCodeFragment.this).initiateScan();
+ new IntentIntegrator(getActivity()).initiateScan();
}
});
@@ -92,9 +92,9 @@ public class ImportKeysQrCodeFragment extends Fragment {
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
- case IntentIntegratorSupportV4.REQUEST_CODE: {
- IntentResult scanResult = IntentIntegratorSupportV4.parseActivityResult(requestCode,
- resultCode, data);
+ case IntentIntegrator.REQUEST_CODE: {
+ IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode,
+ data);
if (scanResult != null && scanResult.getFormatName() != null) {
Log.d(Constants.TAG, scanResult.getContents());
@@ -117,36 +117,50 @@ public class ImportKeysQrCodeFragment extends Fragment {
// first qr code -> setup
if (counter == 0) {
- scannedContent = new String[size];
+ mScannedContent = new String[size];
mProgress.setMax(size);
+ mProgress.setVisibility(View.VISIBLE);
+ mText.setVisibility(View.VISIBLE);
+ }
+
+ if (mScannedContent == null || counter > mScannedContent.length) {
+ Toast.makeText(getActivity(), R.string.import_qr_code_start_with_one,
+ Toast.LENGTH_LONG).show();
+ return;
}
// save scanned content
- scannedContent[counter] = content;
+ mScannedContent[counter] = content;
// get missing numbers
ArrayList<Integer> missing = new ArrayList<Integer>();
- for (int i = 0; i < scannedContent.length; i++) {
- if (scannedContent[i] == null) {
+ for (int i = 0; i < mScannedContent.length; i++) {
+ if (mScannedContent[i] == null) {
missing.add(i);
}
}
// update progress and text
- mProgress.setProgress(scannedContent.length - missing.size());
+ int alreadyScanned = mScannedContent.length - missing.size();
+ mProgress.setProgress(alreadyScanned);
+
String missingString = "";
for (int m : missing) {
- if (!missingString.equals(""))
+ if (!missingString.equals("")) {
missingString += ", ";
+ }
missingString += String.valueOf(m + 1);
}
- mText.setText(getString(R.string.import_qr_code_missing, missingString));
+
+ String missingText = getResources().getQuantityString(
+ R.plurals.import_qr_code_missing, missing.size(), missingString);
+ mText.setText(missingText);
// finished!
if (missing.size() == 0) {
mText.setText(R.string.import_qr_code_finished);
String result = "";
- for (String in : scannedContent) {
+ for (String in : mScannedContent) {
result += in;
}
mImportActivity.loadCallback(result.getBytes(), null);