From 98578291ea5b1089ebf7f23530e1b2a3dca30f07 Mon Sep 17 00:00:00 2001 From: it232115 Date: Tue, 16 Jan 2024 10:51:13 +0900 Subject: [PATCH] =?UTF-8?q?FIreBase=E3=81=B8=E3=81=AE=E7=99=BB=E9=8C=B2?= =?UTF-8?q?=E3=81=A8FireBase=E3=81=AB=E3=82=88=E3=81=A3=E3=81=A6=E7=94=9F?= =?UTF-8?q?=E6=88=90=E3=81=95=E3=82=8C=E3=81=9FID=E3=82=92=E7=94=A8?= =?UTF-8?q?=E3=81=84=E3=81=9FQR=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE?= =?UTF-8?q?=E7=94=9F=E6=88=90=E3=80=81=E7=99=BB=E9=8C=B2=E6=B8=88=E3=81=BF?= =?UTF-8?q?=E3=81=AE=E5=A0=B4=E5=90=88=E3=81=AF=E9=87=8D=E8=A4=87=E3=81=AE?= =?UTF-8?q?=E7=99=BB=E9=8C=B2=E3=81=AF=E8=A1=8C=E3=82=8F=E3=81=AA=E3=81=84?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E3=81=99=E3=82=8B=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/childguard/HomeFragment.java | 39 ++++++++++++------- .../main/java/com/example/childguard/QR.java | 26 ++++++------- .../com/example/childguard/QRFragment.java | 3 -- .../example/childguard/QrPrintFragment.java | 35 +++++++++++++---- app/src/main/res/layout/fragment_qr.xml | 7 ---- 5 files changed, 65 insertions(+), 45 deletions(-) diff --git a/app/src/main/java/com/example/childguard/HomeFragment.java b/app/src/main/java/com/example/childguard/HomeFragment.java index 03dea26..0446eb4 100644 --- a/app/src/main/java/com/example/childguard/HomeFragment.java +++ b/app/src/main/java/com/example/childguard/HomeFragment.java @@ -3,6 +3,7 @@ package com.example.childguard; import static android.content.ContentValues.TAG; import android.content.SharedPreferences; +import android.graphics.Bitmap; import android.os.Bundle; import android.preference.PreferenceManager; import android.util.Log; @@ -11,6 +12,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.FrameLayout; +import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; @@ -34,7 +36,6 @@ import java.util.Map; * create an instance of this fragment. */ public class HomeFragment extends Fragment { - FirebaseFirestore db = FirebaseFirestore.getInstance();//Firebaseとの紐づけ // TODO: Rename parameter arguments, choose names that match @@ -43,7 +44,7 @@ public class HomeFragment extends Fragment { private static final String ARG_PARAM2 = "param2"; // TODO: Rename and change types of parameters - private String mParam1; + private String str_key; private String mParam2; public HomeFragment() { @@ -72,7 +73,7 @@ public class HomeFragment extends Fragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { - mParam1 = getArguments().getString(ARG_PARAM1); + // mParam1 = getArguments().getString(ARG_PARAM1); mParam2 = getArguments().getString(ARG_PARAM2); } } @@ -92,13 +93,17 @@ public class HomeFragment extends Fragment { @Override public void onClick(View v) { //初回起動かを保存する変数 -// int i = Integer.parseInt(preferences.getString("kidoukaisuu", "1")); boolean alreadySaved = preferences.getBoolean("alreadySaved", false); //ボタン変数の宣言 Button parent = view.findViewById(R.id.QRprinting); Button born = view.findViewById(R.id.QRprinting); - if (alreadySaved) { + //falseのときにFirebaseへの登録 + if (!alreadySaved) { Log.d("HomeFragment", "already printed"); + //画面遷移&ID受け渡し + Toast.makeText(getActivity(),"再印刷",Toast.LENGTH_SHORT).show(); + QrPrintFragment qrPrintFragment = new QrPrintFragment(); + replaceFragment(qrPrintFragment); return; } else Log.d("HomeFragment", "not printed yet"); // debug @@ -118,12 +123,23 @@ public class HomeFragment extends Fragment { @Override public void onSuccess(DocumentReference documentReference) { //成功したら + //documentReference.getId()でID取得 Log.d(TAG, "DocumentSnapshot added with ID: " + documentReference.getId()); SharedPreferences.Editor e = preferences.edit(); - e.putBoolean("alreadySaved", true); + // キー"alreadySaved"の値をtrueにする + e.putBoolean("alreadySaved", false); + //確定処理 e.apply(); - //画面遷移 - replaceFragment(new QrPrintFragment()); + //画面遷移&ID受け渡し + str_key = "" + documentReference.getId(); + Toast.makeText(getActivity(),"初回登録",Toast.LENGTH_SHORT).show(); + QrPrintFragment qrPrintFragment = new QrPrintFragment(); + Bundle bundle = new Bundle(); + bundle.putString("STR_KEY",str_key); + //値を書き込む + qrPrintFragment.setArguments(bundle); + replaceFragment(qrPrintFragment); + } }) .addOnFailureListener(new OnFailureListener() { @@ -134,11 +150,7 @@ public class HomeFragment extends Fragment { } }); -// -// SharedPreferences.Editor e = preferences.edit(); -// e.putString("kidoukiroku", "2"); -// e.apply(); - replaceFragment(new QrPrintFragment()); + } }); //bluetooth設定ボタンの処理 @@ -160,7 +172,6 @@ public class HomeFragment extends Fragment { FrameLayout situation_bg = getView().findViewById(R.id.situation_bg); updateInCarStatus(situationTextView, situation_bg); } - public void updateInCarStatus(TextView situationTextView, FrameLayout situation_bg) { SharedPreferences sharedPreferences = getActivity().getSharedPreferences("default", 0); diff --git a/app/src/main/java/com/example/childguard/QR.java b/app/src/main/java/com/example/childguard/QR.java index ebdf156..1d4e862 100644 --- a/app/src/main/java/com/example/childguard/QR.java +++ b/app/src/main/java/com/example/childguard/QR.java @@ -15,19 +15,19 @@ public class QR extends AppCompatActivity { protected void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.fragment_qr); - - findViewById(R.id.camera).setOnClickListener( - v -> { - if(get_on.equals(tv.getText().toString())){ - tv.setText(get_off); - findViewById(R.id.situation_bg).setBackgroundColor(Color.parseColor("#dcdcdc")); - } - else { - tv.setText(get_on); - findViewById(R.id.situation_bg).setBackgroundColor(Color.parseColor("#ff4500")); - } - } - ); + //多分いらないコード +// findViewById(R.id.camera).setOnClickListener( +// v -> { +// if(get_on.equals(tv.getText().toString())){ +// tv.setText(get_off); +// findViewById(R.id.situation_bg).setBackgroundColor(Color.parseColor("#dcdcdc")); +// } +// else { +// tv.setText(get_on); +// findViewById(R.id.situation_bg).setBackgroundColor(Color.parseColor("#ff4500")); +// } +// } +// ); } } diff --git a/app/src/main/java/com/example/childguard/QRFragment.java b/app/src/main/java/com/example/childguard/QRFragment.java index fc0e0a8..f97a174 100644 --- a/app/src/main/java/com/example/childguard/QRFragment.java +++ b/app/src/main/java/com/example/childguard/QRFragment.java @@ -97,13 +97,10 @@ public class QRFragment extends Fragment { // Inflate the layout for this fragment View view = inflater.inflate(R.layout.fragment_qr, container, false); - Button cameraButton = view.findViewById(R.id.camera); - cameraButton.setOnClickListener(v -> { Log.d("QRFragment", "onClick: called"); //QRリーダ起動 fragmentLauncher.launch(new ScanOptions()); - }); return view; } diff --git a/app/src/main/java/com/example/childguard/QrPrintFragment.java b/app/src/main/java/com/example/childguard/QrPrintFragment.java index d31ac6e..21c7646 100644 --- a/app/src/main/java/com/example/childguard/QrPrintFragment.java +++ b/app/src/main/java/com/example/childguard/QrPrintFragment.java @@ -1,5 +1,6 @@ package com.example.childguard; +import android.content.SharedPreferences; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; @@ -10,6 +11,7 @@ import android.os.Bundle; import androidx.fragment.app.Fragment; import androidx.print.PrintHelper; +import android.preference.PreferenceManager; import android.util.AndroidRuntimeException; import android.view.LayoutInflater; import android.view.View; @@ -59,7 +61,7 @@ public class QrPrintFragment extends Fragment { } @Override - public void onCreate(Bundle savedInstanceState) { + public void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getArguments() != null) { mParam1 = getArguments().getString(ARG_PARAM1); @@ -68,18 +70,34 @@ public class QrPrintFragment extends Fragment { } } - @Override + // @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { + //共有プリファレンス 全体の準備 + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); + //User毎のドメインを保存する + String IdPref=preferences.getString("ID",null); // Inflate the layout for this fragment - View view=inflater.inflate(R.layout.fragment_qr_print, container, false); - + View view=inflater.inflate(R.layout.fragment_qr_print, container, false);; //固定のドメイン String KoteiURL = "https://practicefirestore1-8808c.web.app/?id="; - //User毎のドメイン - String userURL="YKjFsZgJBlZmcyvdZ3Ap"; - //二つのドメインを合成する - String AllURL=KoteiURL+userURL; + //すべてのドメイン + String AllURL; + //IdPrefにの値が初期値の場合 + if(IdPref==null) { + //User毎のドメイン + String userURL = getArguments().getString("STR_KEY"); + //キー"ID"の値をuserURLの値にする + SharedPreferences.Editor e = preferences.edit(); + e.putString("ID", userURL); + //確定処理 + e.apply(); + //二つのドメインを合成する + AllURL=KoteiURL+userURL; + }else{ + //二つのドメインを合成する + AllURL=KoteiURL+IdPref; + } int size = 2500; ImageView imageViewQrCode; @@ -96,6 +114,7 @@ public class QrPrintFragment extends Fragment { throw new AndroidRuntimeException("Barcode Error.", e); } // 画像合成の準備 + // ここのエラーは直すと何故か動かなくなる。このままで動くので放置 Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.a_group_qr_sos); Bitmap bitmap1 = ((BitmapDrawable) imageViewQrCode.getDrawable()).getBitmap(); int width = bitmap.getWidth(); // 元ファイルの幅取得 diff --git a/app/src/main/res/layout/fragment_qr.xml b/app/src/main/res/layout/fragment_qr.xml index b66b029..1509787 100644 --- a/app/src/main/res/layout/fragment_qr.xml +++ b/app/src/main/res/layout/fragment_qr.xml @@ -5,13 +5,6 @@ android:layout_height="match_parent" tools:context=".QRFragment"> - -