diff --git a/app/src/main/java/com/example/childguard/QrUtils.java b/app/src/main/java/com/example/childguard/QrUtils.java index 48b6460..056ab6e 100644 --- a/app/src/main/java/com/example/childguard/QrUtils.java +++ b/app/src/main/java/com/example/childguard/QrUtils.java @@ -36,14 +36,14 @@ public class QrUtils { //IdPrefにの値が初期値の場合 AllURL=KoteiURL+key; - int size = 1500; + int qrCodeSize = calculateQRCodeSize(); // 画面密度に応じてサイズを計算 Bitmap QRGazou; Bitmap bitmapqr; try { //QRコード生成 BarcodeEncoder barcodeEncoder = new BarcodeEncoder(); - bitmapqr = barcodeEncoder.encodeBitmap(AllURL, BarcodeFormat.QR_CODE, size, size); + bitmapqr = barcodeEncoder.encodeBitmap(AllURL, BarcodeFormat.QR_CODE, qrCodeSize, qrCodeSize); } catch (WriterException e) { throw new AndroidRuntimeException("Barcode Error.", e); } @@ -58,7 +58,7 @@ public class QrUtils { // 画像のサイズの調整 int disWidth = (width - bitmapqr.getWidth()) / 2; - int disHeight = (int) ((height - bitmapqr.getHeight()) / 1.4); + int disHeight = (int) ((height - bitmapqr.getHeight()) / 1.5); canvas.drawBitmap(bitmap, 0, 0, (Paint) null); canvas.drawBitmap(bitmapqr, disWidth, disHeight, (Paint) null); // 画像合成 //Androidからプリンターへ印刷指示を出すサポートライブラリ @@ -72,7 +72,7 @@ public class QrUtils { // 画面密度に基づいてQRコードのサイズを計算 float density = context.getResources().getDisplayMetrics().density; - return (int) (1500 * density); + return (int) (800 * density); } } diff --git a/app/src/main/java/com/example/childguard/TestService.java b/app/src/main/java/com/example/childguard/TestService.java index 3f3da6a..28ed5a2 100644 --- a/app/src/main/java/com/example/childguard/TestService.java +++ b/app/src/main/java/com/example/childguard/TestService.java @@ -73,26 +73,16 @@ public class TestService extends Service { E.putBoolean("isInCarPref", documentSnapshot.getBoolean("isInCar"));//乗降状態の判定 E.apply();//確定処理 Log.d("nt", "レスポンスを検知しました1"); - if (documentSnapshot.getBoolean("isReported") == true && isInCar) {//isReportedがtrueかつisInCarがtrueのとき=サイト上で第三者ボタンが押されたときに乗車状態のとき - ResetReported();// ResetReported();を処理→FireBaseのisReportedをfalseにする - int importance = NotificationManager.IMPORTANCE_DEFAULT; - NotificationChannel channel = new NotificationChannel("CHANNEL_ID", "通報通知", importance); - channel.setDescription("第3者からの通報を検知しました"); - NotificationManager notificationManager = getSystemService(NotificationManager.class); - notificationManager.createNotificationChannel(channel); - Log.d("nt", "レスポンスを検知しました2"); - NotificationSetting();//通知に関する設定のメソッド - Notification(getApplicationContext());//通知を行うメソッド - } else if(isInCar){//Bluetoothの切断後5分以上乗車状態のままのとき→QRコード読み取りを忘れているとき→置き去り発生 + if (isInCar) {//isReportedがtrue=サイト上で乗車状態のとき + if (documentSnapshot.getBoolean("isReported")) { + ResetReported();// ResetReported();を処理→FireBaseのisReportedをfalseにする + NotificationSetting();//通知に関する設定のメソッド + Notification(getApplicationContext());//通知を行うメソッド + } + } else if(!isInCar){//isReportedがfalse=サイト上で降車状態のとき ResetReported();//ResetReported();を処理→FireBaseのisReportedをfalseにする - periodicTaskManager.startPeriodicTask();//通知のループをストップする - E.putBoolean("isInCarPref", !documentSnapshot.getBoolean("isInCar"));//乗降状態の判定 - E.apply();//確定処理 }else { ResetReported();//ResetReported();を処理→FireBaseのisReportedをfalseにする - periodicTaskManager.stopPeriodicTask();//5分毎に通知を行う - E.putBoolean("isInCarPref", documentSnapshot.getBoolean("isInCar"));//乗降状態の判定 - E.apply();//確定処理 } }