From b99aa2973d9886400163349e4cc053d83a921e3d Mon Sep 17 00:00:00 2001 From: nemukemo Date: Thu, 20 Jun 2024 13:06:20 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E3=83=AB=E3=83=BC=E3=83=88=E4=BD=9C?= =?UTF-8?q?=E6=88=90=E7=94=BB=E9=9D=A2=E3=81=AE=E9=81=B7=E7=A7=BB=E6=99=82?= =?UTF-8?q?=E3=81=ABform=E3=81=AB=E9=80=81=E3=82=89=E3=82=8C=E3=81=9F?= =?UTF-8?q?=E4=BA=BA=E6=95=B0=E3=81=8C=E8=B6=B3=E3=82=8A=E3=81=A6=E3=81=AA?= =?UTF-8?q?=E3=81=84=E5=A0=B4=E5=90=88=E3=80=81=E8=AD=A6=E5=91=8A=E3=81=AE?= =?UTF-8?q?=E3=83=80=E3=82=A4=E3=82=A2=E3=83=AD=E3=82=B0=E3=82=92=E5=87=BA?= =?UTF-8?q?=E3=81=99=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(); } -- 2.45.1 From 410d4f2402484cae5e82e4b6b4d23a7e4e033e52 Mon Sep 17 00:00:00 2001 From: nemukemo Date: Thu, 20 Jun 2024 18:27:17 +0900 Subject: [PATCH 2/2] =?UTF-8?q?=E5=89=8A=E9=99=A4=E6=A9=9F=E8=83=BD?= =?UTF-8?q?=E3=81=AE=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/oplogy/MainActivity.java | 38 ++++++++++--------- .../com/example/oplogy/SetUpActivity.java | 9 +++++ .../com/example/oplogy/SetUpTableDao.java | 10 +++++ 3 files changed, 40 insertions(+), 17 deletions(-) diff --git a/app/src/main/java/com/example/oplogy/MainActivity.java b/app/src/main/java/com/example/oplogy/MainActivity.java index 7d6b371..e77a193 100644 --- a/app/src/main/java/com/example/oplogy/MainActivity.java +++ b/app/src/main/java/com/example/oplogy/MainActivity.java @@ -107,23 +107,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe 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(); + showRouteCreationDialog(); } else { Intent toRoot = new Intent(MainActivity.this,Maps.class); startActivity(toRoot); @@ -160,4 +144,24 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe }); builder.show(); } + //ルート作成のダイアログ + private void showRouteCreationDialog() { + 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(); + } } \ No newline at end of file diff --git a/app/src/main/java/com/example/oplogy/SetUpActivity.java b/app/src/main/java/com/example/oplogy/SetUpActivity.java index 3ce761b..b71c82d 100644 --- a/app/src/main/java/com/example/oplogy/SetUpActivity.java +++ b/app/src/main/java/com/example/oplogy/SetUpActivity.java @@ -177,6 +177,8 @@ public class SetUpActivity extends FragmentActivity showTimePickerDialog(); }); + //リセットボタンの処理 + reset.setOnClickListener(v -> { //テキストとラジオボタンの選択を消去 setTeacherName.setText(""); setStartPoint.setText(""); @@ -188,6 +190,13 @@ public class SetUpActivity extends FragmentActivity setStartBreakTime.setText(""); setEndBreakTime.setText(""); setTotalStudent.setText(""); + + ExecutorService executor = Executors.newSingleThreadExecutor(); + executor.execute(() -> { + AppDatabase db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "SetUpTable").build(); + SetUpTableDao setUpTableDao = db.setUpTableDao(); + setUpTableDao.deleteAll(); + }); }); } diff --git a/app/src/main/java/com/example/oplogy/SetUpTableDao.java b/app/src/main/java/com/example/oplogy/SetUpTableDao.java index 54f5f5d..e236116 100644 --- a/app/src/main/java/com/example/oplogy/SetUpTableDao.java +++ b/app/src/main/java/com/example/oplogy/SetUpTableDao.java @@ -14,9 +14,19 @@ public interface SetUpTableDao { @Update void update(SetUpTable setUpTable); //名前が一致しているかの確認 + + //削除処理 + @Query("DELETE FROM SetUpTable") + void deleteAll(); + @Query("SELECT * FROM SetUpTable WHERE teacherName = :name LIMIT 1") SetUpTable findByName(String name); @Query("SELECT totalStudent FROM SetUpTable") int getTotalStudent(); + //開始時間と終了時間の取得 + @Query("SELECT startTime FROM SetUpTable") + String getStartTime(); + @Query("SELECT endTime FROM SetUpTable") + String getEndTime(); } -- 2.45.1