diff --git a/app/src/main/java/com/example/oplogy/FirestoreReception.java b/app/src/main/java/com/example/oplogy/FirestoreReception.java index 835ee53..8713d5c 100644 --- a/app/src/main/java/com/example/oplogy/FirestoreReception.java +++ b/app/src/main/java/com/example/oplogy/FirestoreReception.java @@ -27,7 +27,7 @@ public class FirestoreReception { public ListmyDataList = new ArrayList<>(); //ClassIdを引数にデータの作成を行う - public void getDocumentsByClassId(int classId, MainActivity context) { + public void getDocumentsByClassId(int classId) { CollectionReference collectionRef = db.collection("QuestionnaireForms"); // classIdが引数のものを取得する diff --git a/app/src/main/java/com/example/oplogy/MainActivity.java b/app/src/main/java/com/example/oplogy/MainActivity.java index 3506cf6..1ed5e10 100644 --- a/app/src/main/java/com/example/oplogy/MainActivity.java +++ b/app/src/main/java/com/example/oplogy/MainActivity.java @@ -65,7 +65,7 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe db = FirebaseFirestore.getInstance(); firestoreReception = new FirestoreReception(); - firestoreReception.getDocumentsByClassId(100,MainActivity.this); + firestoreReception.getDocumentsByClassId(100); diff --git a/app/src/main/java/com/example/oplogy/SetUpActivity.java b/app/src/main/java/com/example/oplogy/SetUpActivity.java index 98b85b7..3ce761b 100644 --- a/app/src/main/java/com/example/oplogy/SetUpActivity.java +++ b/app/src/main/java/com/example/oplogy/SetUpActivity.java @@ -12,12 +12,16 @@ import android.widget.Button; import android.widget.RadioButton; import android.widget.TextView; import android.widget.TimePicker; +import android.widget.Toast; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentActivity; +import androidx.room.Room; import java.util.Locale; import java.util.Set; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; public class SetUpActivity extends FragmentActivity @@ -47,6 +51,9 @@ public class SetUpActivity extends FragmentActivity Button startTimeSetButton; Button endTimeSetButton; + + + @SuppressLint("MissingInflatedId") @Override protected void onCreate(Bundle savedInstanceState) { @@ -108,6 +115,47 @@ public class SetUpActivity extends FragmentActivity Log.d(TAG, "Total Student" + totalStudent); Log.d(TAG, "onClick: できてるよ"); + + // データベースへの登録処理 + ExecutorService executor = Executors.newSingleThreadExecutor(); + + executor.execute(() -> { + //roomのインスタンスを作成 + AppDatabase db = Room.databaseBuilder( + getApplicationContext(), + AppDatabase.class, + "SetUpTable" + ).build(); + SetUpTableDao setUpTableDao = db.setUpTableDao(); + // Roomの操作を行う + SetUpTable setUpTable = new SetUpTable( + teacherName, + startPoint, + startTime, + endTime, + intervalTime, + startBreakTime, + endBreakTime, + totalStudent + ); + + // 同じ名前のエントリが存在するかどうかを確認 + SetUpTable existingSetUpTable = setUpTableDao.findByName(teacherName); + if (existingSetUpTable != null) { + // エントリが存在する場合は、そのエントリを更新 + setUpTable.setId(existingSetUpTable.getId()); // 既存のIDを設定 + setUpTableDao.update(setUpTable); + + runOnUiThread(() -> Toast.makeText(SetUpActivity.this, "更新しました", Toast.LENGTH_SHORT).show()); + } else { + // エントリが存在しない場合は、新しいエントリを挿入 + setUpTableDao.insertAll(setUpTable); + runOnUiThread(() -> Toast.makeText(SetUpActivity.this, "登録しました", Toast.LENGTH_SHORT).show()); + } + + }); + + }); startTimeSetButton.setOnClickListener(v -> { isStartTimeSelected = 1; //ボタンの判別 diff --git a/app/src/main/java/com/example/oplogy/SetUpTableDao.java b/app/src/main/java/com/example/oplogy/SetUpTableDao.java index e92a008..0ebc1df 100644 --- a/app/src/main/java/com/example/oplogy/SetUpTableDao.java +++ b/app/src/main/java/com/example/oplogy/SetUpTableDao.java @@ -2,6 +2,7 @@ package com.example.oplogy; import androidx.room.Dao; import androidx.room.Insert; import androidx.room.Query; +import androidx.room.Update; import java.util.List; @@ -9,4 +10,10 @@ import java.util.List; public interface SetUpTableDao { @Insert void insertAll(SetUpTable... setUpTables); + //更新処理 + @Update + void update(SetUpTable setUpTable); + //名前が一致しているかの確認 + @Query("SELECT * FROM SetUpTable WHERE teacherName = :name LIMIT 1") + SetUpTable findByName(String name); }