Skip to content

Commit 3d2024a

Browse files
authored
WIP: feat: Show my QR code (#5)
feat: Show my QR code
1 parent cdc3510 commit 3d2024a

File tree

9 files changed

+89
-6
lines changed

9 files changed

+89
-6
lines changed

.idea/misc.xml

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,4 +49,7 @@ dependencies {
4949

5050
// Test helpers for Room
5151
testImplementation "android.arch.persistence.room:testing:1.0.0"
52+
53+
//QR generation
54+
compile 'com.journeyapps:zxing-android-embedded:3.5.0'
5255
}

app/src/main/AndroidManifest.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
package="com.aros.naufal.qrreader">
44

5+
<uses-permission android:name="android.permission.CAMERA" />
6+
57
<application
68
android:allowBackup="true"
79
android:icon="@mipmap/ic_launcher"
@@ -16,7 +18,7 @@
1618
<category android:name="android.intent.category.LAUNCHER" />
1719
</intent-filter>
1820
</activity>
21+
<activity android:name=".ui.activities.ShowQRActivity"></activity>
1922
</application>
20-
<uses-permission android:name="android.permission.CAMERA" />
2123

2224
</manifest>

app/src/main/java/com/aros/naufal/qrreader/data/CardRepository.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public LiveData<List<Card>> getAllCards() {
2525
return mAllCards;
2626
}
2727

28+
2829
public void insert(Card card) {
2930
new insertAsyncTask(mCardDao).execute(card);
3031
}

app/src/main/java/com/aros/naufal/qrreader/data/database/entities/Card.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,5 @@ public Card(String name) {
2020
public String getName() {
2121
return this.name;
2222
}
23+
2324
}

app/src/main/java/com/aros/naufal/qrreader/ui/activities/MainActivity.java

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.arch.lifecycle.Observer;
44
import android.arch.lifecycle.ViewModelProviders;
55
import android.content.DialogInterface;
6+
import android.content.Intent;
67
import android.support.annotation.Nullable;
78
import android.support.design.internal.NavigationMenu;
89
import android.support.v7.app.AlertDialog;
@@ -12,6 +13,7 @@
1213
import android.support.v7.widget.RecyclerView;
1314
import android.util.Log;
1415
import android.view.MenuItem;
16+
import android.view.View;
1517
import android.widget.Toast;
1618

1719
import com.aros.naufal.qrreader.R;
@@ -58,6 +60,10 @@ public boolean onMenuItemSelected(MenuItem menuItem) {
5860
mScannerView.startCamera();
5961
}
6062

63+
if (menuItem.getTitle().equals("Show my QR")) {
64+
clickBtnGenerateQR(findViewById(android.R.id.content));
65+
return true;
66+
}
6167
Toast.makeText(MainActivity.this, "" + menuItem.getTitle(), Toast.LENGTH_SHORT).show();
6268
return true;
6369
}
@@ -106,4 +112,12 @@ public void handleResult(final Result result) {
106112
finish();
107113
startActivity(getIntent());
108114
}
115+
116+
public void clickBtnGenerateQR(View v) {
117+
Intent intent = new Intent(MainActivity.this, ShowQRActivity.class);
118+
Bundle b = new Bundle();
119+
b.putString("TEXT", "Joaquín Adiego");
120+
intent.putExtras(b);
121+
startActivity(intent);
122+
}
109123
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.aros.naufal.qrreader.ui.activities;
2+
3+
import android.content.Intent;
4+
import android.graphics.Bitmap;
5+
import android.os.Bundle;
6+
import android.support.v7.app.AppCompatActivity;
7+
import android.widget.ImageView;
8+
import android.widget.TextView;
9+
10+
import com.aros.naufal.qrreader.R;
11+
import com.google.zxing.BarcodeFormat;
12+
import com.google.zxing.MultiFormatWriter;
13+
import com.google.zxing.WriterException;
14+
import com.google.zxing.common.BitMatrix;
15+
import com.journeyapps.barcodescanner.BarcodeEncoder;
16+
17+
public class ShowQRActivity extends AppCompatActivity {
18+
19+
private TextView txtSend;
20+
ImageView qrCode;
21+
22+
@Override
23+
protected void onCreate(Bundle savedInstanceState) {
24+
super.onCreate(savedInstanceState);
25+
setContentView(R.layout.activity_show_qr);
26+
txtSend = (TextView) findViewById(R.id.TxtRead);
27+
Bundle bundle = this.getIntent().getExtras();
28+
String textToQr = bundle.getString("TEXT");
29+
qrCode = (ImageView) findViewById(R.id.imageQRcode);
30+
int width = getWindowManager().getDefaultDisplay().getWidth();
31+
MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
32+
33+
try {
34+
BitMatrix bitMatrix = multiFormatWriter.encode(textToQr, BarcodeFormat.QR_CODE, width, width);
35+
BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
36+
Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
37+
qrCode.setImageBitmap(bitmap);
38+
} catch (WriterException e) {
39+
e.printStackTrace();
40+
}
41+
}
42+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
3+
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
4+
xmlns:app="http://schemas.android.com/apk/res-auto"
5+
xmlns:tools="http://schemas.android.com/tools"
6+
android:layout_width="match_parent"
7+
android:layout_height="match_parent"
8+
tools:context="com.aros.naufal.qrreader.ui.activities.ShowQRActivity">
9+
10+
<TextView
11+
android:id="@+id/TxtRead"
12+
android:layout_width="wrap_content"
13+
android:layout_height="wrap_content"
14+
android:text="" />
15+
16+
<ImageView
17+
android:id="@+id/imageQRcode"
18+
android:layout_width="wrap_content"
19+
android:layout_height="wrap_content" />
20+
21+
</LinearLayout>

app/src/main/res/menu/main_menu.xml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,13 @@
55
android:id="@+id/show_qr"
66
android:icon="@drawable/ic_show_qr"
77
android:iconTint="@android:color/white"
8-
android:title="Show my QR"
9-
/>
8+
android:title="Show my QR" />
9+
/>
1010

1111
<item
1212
android:id="@+id/capture_qr"
1313
android:icon="@drawable/ic_capture_qr"
1414
android:iconTint="@android:color/white"
15-
android:title="Capture QR"
16-
/>
15+
android:title="Capture QR" />
1716

1817
</menu>

0 commit comments

Comments
 (0)