TestServiceの全体的なリファクタリング #28

Merged
asura146 merged 73 commits from improve/refactor_service into main 2024-07-12 02:17:26 +00:00
Showing only changes of commit dfb6649a3b - Show all commits

View File

@ -24,6 +24,7 @@ import androidx.core.app.NotificationCompat;
import androidx.core.app.NotificationManagerCompat; import androidx.core.app.NotificationManagerCompat;
import com.google.firebase.firestore.DocumentReference; import com.google.firebase.firestore.DocumentReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore; import com.google.firebase.firestore.FirebaseFirestore;
public class TestService extends Service { public class TestService extends Service {
@ -151,35 +152,44 @@ public class TestService extends Service {
registerReceiver(receiver, intentFilter); registerReceiver(receiver, intentFilter);
} }
private void initNotification(DocumentReference mDocRef) {//サイト上で押されたボタンの管理 private void initNotification(DocumentReference mDocRef) {
// PeriodicTaskManagerのインスタンス化 // Initialize the PeriodicTaskManager
// (Assuming it's done elsewhere as it's not shown in the original code)
// 共有プリファレンス全体の準備 // Prepare SharedPreferences
SharedPreferences sharedPreferences = getSharedPreferences("app_situation", MODE_PRIVATE); SharedPreferences sharedPreferences = getSharedPreferences("app_situation", MODE_PRIVATE);
//車の乗り降りを管理するtrue=乗車false=降車
//exists()でdocumentSnapshotの中のファイルの存在の確認
mDocRef.addSnapshotListener((documentSnapshot, e) -> {
Log.d("nt", "イベント開始"); // Add a snapshot listener to the document reference
//共有プリファレンス 書き込みの準備 mDocRef.addSnapshotListener((documentSnapshot, e) -> {
SharedPreferences.Editor E = sharedPreferences.edit(); if (e != null) {
//車の乗り降りを管理するtrue=乗車false=降車 Log.w("nt", "Listen failed.", e);
if (documentSnapshot.exists()) {//exists()でdocumentSnapshotの中のファイルの存在の確認 return;
Boolean isInCar = sharedPreferences.getBoolean("isInCarPref", false);//現在の乗降状態を保存する共有プリファレンス
E.putBoolean("isInCarPref", documentSnapshot.getBoolean("isInCar"));//乗降状態の判定
E.apply();//確定処理
Log.d("nt", "レスポンスを検知しました1");
if (isInCar) {//isReportedがtrue=サイト上で乗車状態のとき
if (documentSnapshot.getBoolean("isReported")) {
//ここスタートリサイクル
resetReported();// ResetReported();を処理FireBaseのisReportedをfalseにする
sendNotification(getApplicationContext(), REPORTED_NOTIFICATION);//通知を行うメソッド
}
} else {//isReportedがfalse=サイト上で降車状態のとき
resetReported();//ResetReported();を処理FireBaseのisReportedをfalseにする
}
} }
if (documentSnapshot != null && documentSnapshot.exists()) {
Log.d("nt", "イベント開始");
// Handle document snapshot
SharedPreferences.Editor editor = sharedPreferences.edit();
boolean isInCar = sharedPreferences.getBoolean("isInCarPref", false);
boolean newIsInCarState = Boolean.TRUE.equals(documentSnapshot.getBoolean("isInCar"));
editor.putBoolean("isInCarPref", newIsInCarState);
editor.apply();
Log.d("nt", "レスポンスを検知しました1");
if (isInCar) {
if (Boolean.TRUE.equals(documentSnapshot.getBoolean("isReported"))) {
resetReported();
sendNotification(getApplicationContext(), REPORTED_NOTIFICATION);
}
} else {
resetReported();
}
} else {
Log.d("nt", "Current data: null");
}
}); });
} }