From b99aa2973d9886400163349e4cc053d83a921e3d Mon Sep 17 00:00:00 2001 From: nemukemo Date: Thu, 20 Jun 2024 13:06:20 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=AB=E3=83=BC=E3=83=88=E4=BD=9C=E6=88=90?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E3=81=AE=E9=81=B7=E7=A7=BB=E6=99=82=E3=81=AB?= =?UTF-8?q?form=E3=81=AB=E9=80=81=E3=82=89=E3=82=8C=E3=81=9F=E4=BA=BA?= =?UTF-8?q?=E6=95=B0=E3=81=8C=E8=B6=B3=E3=82=8A=E3=81=A6=E3=81=AA=E3=81=84?= =?UTF-8?q?=E5=A0=B4=E5=90=88=E3=80=81=E8=AD=A6=E5=91=8A=E3=81=AE=E3=83=80?= =?UTF-8?q?=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0=E3=82=92=E5=87=BA=E3=81=99?= =?UTF-8?q?=E3=82=88=E3=81=86=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../example/oplogy/FirestoreReception.java | 9 ++++ .../java/com/example/oplogy/MainActivity.java | 46 +++++++++++++++++-- .../com/example/oplogy/SetUpTableDao.java | 3 ++ 3 files changed, 53 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/example/oplogy/FirestoreReception.java b/app/src/main/java/com/example/oplogy/FirestoreReception.java index 8713d5c..1aef9a2 100644 --- a/app/src/main/java/com/example/oplogy/FirestoreReception.java +++ b/app/src/main/java/com/example/oplogy/FirestoreReception.java @@ -69,8 +69,17 @@ public class FirestoreReception { } else { Log.w("FirestoreReceptiond", "Error getting documents.", task.getException()); } + Log.i("FirestoreReceptiond", "data: " + myDataList.size()); } }); } + //Dataのリストのサイズを返す + public int getMyDataListSize(){ + return myDataList.size(); + } + //Dataのリストを返す + public List getMyDataList(){ + return myDataList; + } } diff --git a/app/src/main/java/com/example/oplogy/MainActivity.java b/app/src/main/java/com/example/oplogy/MainActivity.java index 1ed5e10..7d6b371 100644 --- a/app/src/main/java/com/example/oplogy/MainActivity.java +++ b/app/src/main/java/com/example/oplogy/MainActivity.java @@ -11,9 +11,13 @@ import android.widget.Toast; import androidx.appcompat.app.AlertDialog; import androidx.appcompat.app.AppCompatActivity; +import androidx.room.Room; import com.google.firebase.firestore.FirebaseFirestore; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + public class MainActivity extends AppCompatActivity implements View.OnClickListener{ // ID作成のTextViewとImageView @@ -67,9 +71,6 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe firestoreReception.getDocumentsByClassId(100); - - - } @@ -92,8 +93,43 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe // ルート作成のクリック処理 if(view == root){ imageRoot.setImageResource(R.drawable.pin); - Intent toRoot = new Intent(MainActivity.this,Maps.class); - startActivity(toRoot); + + ExecutorService executor = Executors.newSingleThreadExecutor(); + + executor.execute(() -> { + AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "SetUpTable").build(); + SetUpTableDao setUpTableDao = db.setUpTableDao(); + + // データベースに登録されている生徒の数、formにデータを送信した生徒の合計数をを取得 + int totalStudent = setUpTableDao.getTotalStudent(); + int myDataListSize = firestoreReception.myDataList.size(); + + runOnUiThread(() -> { + if (totalStudent != myDataListSize) { + // 値が一致しない場合、ダイアログを表示 + new AlertDialog.Builder(MainActivity.this) + .setTitle("警告") + .setMessage("人数が足りてませんがそれでもルート作成を行いますか?") + .setPositiveButton("OK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Intent toRoot = new Intent(MainActivity.this,Maps.class); + startActivity(toRoot); + } + }) + .setNegativeButton("Cancel", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.dismiss(); + } + }) + .show(); + } else { + Intent toRoot = new Intent(MainActivity.this,Maps.class); + startActivity(toRoot); + } + }); + }); } // 提出状況のクリック処理 if(view == submission){ diff --git a/app/src/main/java/com/example/oplogy/SetUpTableDao.java b/app/src/main/java/com/example/oplogy/SetUpTableDao.java index 0ebc1df..54f5f5d 100644 --- a/app/src/main/java/com/example/oplogy/SetUpTableDao.java +++ b/app/src/main/java/com/example/oplogy/SetUpTableDao.java @@ -16,4 +16,7 @@ public interface SetUpTableDao { //名前が一致しているかの確認 @Query("SELECT * FROM SetUpTable WHERE teacherName = :name LIMIT 1") SetUpTable findByName(String name); + + @Query("SELECT totalStudent FROM SetUpTable") + int getTotalStudent(); }