diff --git a/app/build.gradle b/app/build.gradle index 977979b86..0def8e889 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -32,7 +32,7 @@ dependencies { compile 'com.android.support:appcompat-v7:23.1.1' compile 'com.android.support:design:23.1.1' compile 'com.journeyapps:zxing-android-embedded:3.0.1@aar' - compile 'com.google.zxing:core:3.2.0' + compile 'com.google.zxing:core:3.2.1' testCompile 'junit:junit:4.12' testCompile "org.robolectric:robolectric:3.0" } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f722dfbed..fdc322e6b 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -35,6 +35,7 @@ android:name=".LoyaltyCardViewActivity" android:theme="@style/AppTheme.NoActionBar" android:configChanges="orientation|screenSize" + android:windowSoftInputMode="stateHidden" android:parentActivityName="protect.card_locker.MainActivity"/> diff --git a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java index 18c1cc55f..03fc6c548 100644 --- a/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java +++ b/app/src/main/java/protect/card_locker/LoyaltyCardViewActivity.java @@ -23,11 +23,32 @@ import com.google.zxing.common.BitMatrix; import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; + public class LoyaltyCardViewActivity extends AppCompatActivity { private static final String TAG = "CardLocker"; + // These are all the barcode types that the zxing library + // is able to generate a barcode for, and thus should be + // the only barcodes which we should attempt to scan. + Collection supportedBarcodeTypes = Collections.unmodifiableList(Arrays.asList( + BarcodeFormat.AZTEC.name(), + BarcodeFormat.CODE_39.name(), + BarcodeFormat.CODE_128.name(), + BarcodeFormat.CODABAR.name(), + BarcodeFormat.DATA_MATRIX.name(), + BarcodeFormat.EAN_8.name(), + BarcodeFormat.EAN_13.name(), + BarcodeFormat.ITF.name(), + BarcodeFormat.PDF_417.name(), + BarcodeFormat.QR_CODE.name(), + BarcodeFormat.UPC_A.name() + )); + @Override protected void onCreate(Bundle savedInstanceState) { @@ -126,11 +147,14 @@ public class LoyaltyCardViewActivity extends AppCompatActivity throw new IllegalArgumentException("Unrecognized barcode format: " + formatString); } + int generateWidth = 100; + int generateHeight = 100; + String cardIdString = cardIdField.getText().toString(); Log.i(TAG, "Card: " + cardIdString); - result = writer.encode(cardIdString, format, 1500, 400, null); + result = writer.encode(cardIdString, format, generateWidth, generateHeight, null); final int WHITE = 0xFFFFFFFF; final int BLACK = 0xFF000000; @@ -170,7 +194,7 @@ public class LoyaltyCardViewActivity extends AppCompatActivity public void onClick(View v) { IntentIntegrator integrator = new IntentIntegrator(LoyaltyCardViewActivity.this); - integrator.setDesiredBarcodeFormats(IntentIntegrator.ONE_D_CODE_TYPES); + integrator.setDesiredBarcodeFormats(supportedBarcodeTypes); String prompt = getResources().getString(R.string.scanCardBarcode); integrator.setPrompt(prompt); diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index d420afd39..fff462f02 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -6,5 +6,5 @@ 16sp 22dp - 50dp + 200dp