TestServiceの全体的なリファクタリング #28
| 
						 | 
				
			
			@ -24,6 +24,7 @@ import androidx.core.app.NotificationCompat;
 | 
			
		|||
import androidx.core.app.NotificationManagerCompat;
 | 
			
		||||
 | 
			
		||||
import com.google.firebase.firestore.DocumentReference;
 | 
			
		||||
import com.google.firebase.firestore.DocumentSnapshot;
 | 
			
		||||
import com.google.firebase.firestore.FirebaseFirestore;
 | 
			
		||||
 | 
			
		||||
public class TestService extends Service {
 | 
			
		||||
| 
						 | 
				
			
			@ -151,35 +152,44 @@ public class TestService extends Service {
 | 
			
		|||
        registerReceiver(receiver, intentFilter);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void initNotification(DocumentReference mDocRef) {//サイト上で押されたボタンの管理
 | 
			
		||||
        // PeriodicTaskManagerのインスタンス化
 | 
			
		||||
    private void initNotification(DocumentReference mDocRef) {
 | 
			
		||||
        // 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);
 | 
			
		||||
        //車の乗り降りを管理するtrue=乗車、false=降車
 | 
			
		||||
        //exists()でdocumentSnapshotの中のファイルの存在の確認
 | 
			
		||||
 | 
			
		||||
        // Add a snapshot listener to the document reference
 | 
			
		||||
        mDocRef.addSnapshotListener((documentSnapshot, e) -> {
 | 
			
		||||
            if (e != null) {
 | 
			
		||||
                Log.w("nt", "Listen failed.", e);
 | 
			
		||||
                return;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if (documentSnapshot != null && documentSnapshot.exists()) {
 | 
			
		||||
                Log.d("nt", "イベント開始");
 | 
			
		||||
            //共有プリファレンス 書き込みの準備
 | 
			
		||||
            SharedPreferences.Editor E = sharedPreferences.edit();
 | 
			
		||||
            //車の乗り降りを管理するtrue=乗車、false=降車
 | 
			
		||||
            if (documentSnapshot.exists()) {//exists()でdocumentSnapshotの中のファイルの存在の確認
 | 
			
		||||
                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にする
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
                // 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");
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user