diff options
Diffstat (limited to 'OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java')
-rw-r--r-- | OpenPGP-Keychain/src/org/sufficientlysecure/keychain/ui/ImportKeysQrCodeFragment.java | 42 |
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); |