HomeFragment以外でBluetoothの状態が変化するとクラッシュする不具合を修正 #25

Merged
asura146 merged 2 commits from improve/fix_bt into main 2024-07-11 06:29:51 +00:00
2 changed files with 10 additions and 12 deletions

View File

@ -80,6 +80,12 @@ public class HomeFragment extends Fragment implements OnEventListener {
super.onResume();
Log.d("HomeFragment", "onResume: called");
this.updateUiState(getIsInCarLocal());
this.updateBluetoothSituation(isBluetoothConnected());
}
private boolean isBluetoothConnected() {
SharedPreferences pref = requireActivity().getSharedPreferences("Bluetooth_situation", requireActivity().MODE_PRIVATE);
return pref.getBoolean("status", false);
}
private boolean getIsInCarLocal() {

View File

@ -427,9 +427,7 @@ public class MainActivity extends AppCompatActivity {
if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
//Do something if connected
//Bluetoothデバイスが接続されたときの処理
e.putBoolean("change", true);
e.apply();
changeBluetooth();//HomeFragmentの表示を接続にする
changeBluetooth(true);
Log.d("BT", "Device connected");
Log.d("BT_Judge", "Registered: " + registeredId);
@ -450,9 +448,7 @@ public class MainActivity extends AppCompatActivity {
//Do something if disconnected
//デバイスが切断されたときの処理
e.putBoolean("change", false);
e.apply();
changeBluetooth();//HomeFragmentの表示を切断にする
changeBluetooth(false);
if (deviceHardwareAddress.equals(registeredId)) {
// 5分待機する
Handler handler = new Handler();
@ -471,12 +467,8 @@ public class MainActivity extends AppCompatActivity {
}
};
public void changeBluetooth(){
SharedPreferences pref=getSharedPreferences("Bluetooth_situation",MODE_PRIVATE);
SharedPreferences.Editor e=pref.edit();
Boolean BluetoothConnect = pref.getBoolean("change", false);
Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.fragmentContainerView);
((HomeFragment) fragment).onEvent2(BluetoothConnect);
public void changeBluetooth(boolean actual){
getSharedPreferences("Bluetooth_situation",MODE_PRIVATE).edit().putBoolean("status",actual).apply();
}
}