Merge pull request '変数とかの名前の修正' (#29) from hotfix-notification into main

Reviewed-on: #29
This commit is contained in:
asura146 2024-07-25 17:59:54 +00:00
commit 25879c4ad5
3 changed files with 41 additions and 42 deletions

View File

@ -139,14 +139,17 @@ public class HomeFragment extends Fragment implements OnEventListener {
return true;
}
/**
* Bluetoothの接続状態の画面を切り替える
*/
private boolean updateBluetoothSituation(Boolean BluetoothConnect) {
FrameLayout frameLayout;
TextView textView;
ImageView imageView;
try {
frameLayout = requireView().findViewById(R.id.situation_bg2);
textView = requireView().findViewById(R.id.Bluetoothsituation);
imageView = requireView().findViewById(R.id.Bluetoothsituationimage);
frameLayout = requireView().findViewById(R.id.situation_bg_bluetooth);
textView = requireView().findViewById(R.id.BluetoothSituation);
imageView = requireView().findViewById(R.id.BluetoothSituationImage);
} catch (NullPointerException e) {
Log.d("HomeFragment", "updateUiState: view is null");
return false;
@ -156,17 +159,17 @@ public class HomeFragment extends Fragment implements OnEventListener {
updateBluetoothSituation(BluetoothConnect);
return false;
}
String connect = "接続中";
String disconnect = "切断中";
final String CONNECT = "接続中";
final String DISCONNECT = "切断中";
if (BluetoothConnect) {
//接続状態にする
frameLayout.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.frame_style_orange, null));
textView.setText(connect);
textView.setText(CONNECT);
imageView.setVisibility(View.GONE);
} else {
//降車状態にする
frameLayout.setBackground(ResourcesCompat.getDrawable(getResources(), R.drawable.frame_style, null));
textView.setText(disconnect);
textView.setText(DISCONNECT);
imageView.setVisibility(View.VISIBLE);
}

View File

@ -52,7 +52,6 @@ public class MainActivity extends AppCompatActivity {
public static final String TAG = "InspirationQuote";
private final ActivityResultLauncher<ScanOptions> QrLauncher = registerForActivityResult(
new ScanContract(),
result -> {
@ -76,10 +75,9 @@ public class MainActivity extends AppCompatActivity {
setContentView(R.layout.activity_main);
//Bluetooth接続判定用
SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor e=pref.edit();
e.putBoolean("connection_status",false);
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor e = pref.edit();
e.putBoolean("connection_status", false);
if (!hasPermissions()) {
@ -149,7 +147,7 @@ public class MainActivity extends AppCompatActivity {
firebaseLink();
}
private void initNotification(DocumentReference mDocRef) {//サイト上で押されたボタンの管理
private void initNotification(DocumentReference mDocRef) {//サイト上で押されたボタンの管理
// 共有プリファレンス全体の準備
SharedPreferences sharedPreferences = getSharedPreferences("app_situation", MODE_PRIVATE);
@ -187,7 +185,6 @@ public class MainActivity extends AppCompatActivity {
}
}
});
}
private boolean hasPermissions() {
@ -229,18 +226,18 @@ public class MainActivity extends AppCompatActivity {
}
/**
* FireBaseのIDの取得
*/
public void firebaseLink() {//Firebaseのドキュメントの取得
//共有プリファレンス全体の準備
SharedPreferences sharedPreferences = getSharedPreferences("app_situation", MODE_PRIVATE);
String IdPref = sharedPreferences.getString("ID", null);////アプリに記録されているIDの取得
String IdPref = sharedPreferences.getString("ID", null);//アプリに記録されているIDの取得
if (IdPref == null) {//FireBaseのIDがアプリに登録されているとき
Log.d("onResume", "ID not initialized.");
} else {
mDocRef = FirebaseFirestore.getInstance().document("status/" + IdPref);//現在の位置を取得
initNotification(mDocRef);//現在の位置を引数に initNotification()を処理
}
}
@ -261,19 +258,20 @@ public class MainActivity extends AppCompatActivity {
//共有プリファレンス 書き込みの準備
SharedPreferences.Editor E = sharedPreferences.edit();
String IdPref = sharedPreferences.getString("ID", null);//アプリに記録されているIDの取得
Boolean change=sharedPreferences.getBoolean("change",false);
Boolean change = sharedPreferences.getBoolean("change", false);
db = FirebaseFirestore.getInstance();//Firebaseとの紐づけ
DocumentReference isReported = db.collection("status").document(IdPref);//更新するドキュメントとの紐づけ
Map<String, Boolean> DEFAULT_ITEM = new HashMap<>();//mapの宣言
if (!change) {
//isInCarをtrueに更新
E.putBoolean("change",true);
}else{
E.putBoolean("change",false);
E.putBoolean("change", true);
} else {
E.putBoolean("change", false);
}
isReported.update("isInCar", change).addOnSuccessListener(unused -> Log.d(TAG, "DocumentSnapshot successfully updated!")).addOnFailureListener(e -> Log.w(TAG, "Error updating document", e));
E.apply();
}
public void NotificationSetting() {//通知に関する設定の処理を行うメソッド
int importance = NotificationManager.IMPORTANCE_DEFAULT;
//通知チャネルの実装
@ -380,7 +378,7 @@ public class MainActivity extends AppCompatActivity {
}
NotificationManager notificationManager = (NotificationManager)context.getSystemService(context.NOTIFICATION_SERVICE);
NotificationManager notificationManager = (NotificationManager) context.getSystemService(context.NOTIFICATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
return;
}
@ -388,9 +386,6 @@ public class MainActivity extends AppCompatActivity {
}
public void Bluetooth_status() {
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
@ -413,8 +408,8 @@ public class MainActivity extends AppCompatActivity {
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences pref=getSharedPreferences("Bluetooth_situation",MODE_PRIVATE);
SharedPreferences.Editor e=pref.edit();
SharedPreferences pref = getSharedPreferences("Bluetooth_situation", MODE_PRIVATE);
SharedPreferences.Editor e = pref.edit();
String action = intent.getAction(); // may need to chain this to a recognizing function
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
Boolean isInCar = pref.getBoolean("isInCarPref", false);
@ -437,16 +432,16 @@ public class MainActivity extends AppCompatActivity {
if (deviceHardwareAddress.equals(registeredId)) {
//登録済みのデバイスだったときの処理
Log.d("BT_Judge", "登録済み");
e.putBoolean("connection_status",true);
e.putBoolean("connection_status", true);
} else{
} else {
//登録していないデバイスだったときの処理
Log.d("BT_Judge", "未登録");
e.putBoolean("connection_status",false);
e.putBoolean("connection_status", false);
}
e.apply();
} else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)&&!isInCar) {//bluetoothが切断されたときに乗車状態のとき
} else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action) && !isInCar) {//bluetoothが切断されたときに乗車状態のとき
//Do something if disconnected
//デバイスが切断されたときの処理
@ -457,20 +452,21 @@ public class MainActivity extends AppCompatActivity {
handler.postDelayed(new Runnable() {
@Override
public void run() {
if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)&&!isInCar) {//その後bluetoothを再接続したり降車状態になったりしていない置き去りが発生した可能性大
if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action) && !isInCar) {//その後bluetoothを再接続したり降車状態になったりしていない置き去りが発生した可能性大
NotificationBluetooth(getApplicationContext());//通知を行うメソッド
}}
}
}
}, 5 *60*1000); // 5分をミリ秒に変換
}, 5 * 1000); // 5分をミリ秒に変換
}
}else {
Log.d("BT", "Device disconnected");
} else {
Log.d("BT", " Device disconnected");
}
}
};
public void changeBluetooth(boolean actual){
getSharedPreferences("Bluetooth_situation",MODE_PRIVATE).edit().putBoolean("status",actual).apply();
public void changeBluetooth(boolean actual) {
getSharedPreferences("Bluetooth_situation", MODE_PRIVATE).edit().putBoolean("status", actual).apply();
}
}

View File

@ -49,7 +49,7 @@
</FrameLayout>
<FrameLayout
android:id="@+id/situation_bg2"
android:id="@+id/situation_bg_bluetooth"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
@ -58,7 +58,7 @@
android:background="@drawable/frame_style">
<TextView
android:id="@+id/Bluetoothsituation"
android:id="@+id/BluetoothSituation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
@ -75,7 +75,7 @@
android:textAlignment="center" />
<ImageView
android:id="@+id/Bluetoothsituationimage"
android:id="@+id/BluetoothSituationImage"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_marginTop="50dp"