2015-03-17 21:41:58 +01:00
|
|
|
package nodomain.freeyourgadget.gadgetbridge;
|
|
|
|
|
|
|
|
import android.bluetooth.BluetoothAdapter;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
|
|
import android.content.Context;
|
|
|
|
import android.content.Intent;
|
|
|
|
import android.content.SharedPreferences;
|
|
|
|
import android.preference.PreferenceManager;
|
2015-03-27 10:56:08 +01:00
|
|
|
import android.support.v4.content.LocalBroadcastManager;
|
2015-03-17 21:41:58 +01:00
|
|
|
|
|
|
|
public class BluetoothStateChangeReceiver extends BroadcastReceiver {
|
|
|
|
@Override
|
|
|
|
public void onReceive(Context context, Intent intent) {
|
|
|
|
String action = intent.getAction();
|
|
|
|
|
|
|
|
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
|
|
|
|
if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) == BluetoothAdapter.STATE_ON) {
|
2015-03-22 12:46:28 +01:00
|
|
|
|
|
|
|
Intent refreshIntent = new Intent(ControlCenter.ACTION_REFRESH_DEVICELIST);
|
|
|
|
context.sendBroadcast(refreshIntent);
|
|
|
|
|
2015-03-17 21:41:58 +01:00
|
|
|
SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
if (!sharedPrefs.getBoolean("general_autoconnectonbluetooth", false)) {
|
|
|
|
return;
|
|
|
|
}
|
2015-03-21 18:18:07 +01:00
|
|
|
|
|
|
|
String deviceAddress = sharedPrefs.getString("last_device_address", null);
|
2015-03-17 21:41:58 +01:00
|
|
|
Intent startIntent = new Intent(context, BluetoothCommunicationService.class);
|
|
|
|
startIntent.setAction(BluetoothCommunicationService.ACTION_START);
|
|
|
|
context.startService(startIntent);
|
2015-03-21 18:18:07 +01:00
|
|
|
if (deviceAddress != null) {
|
|
|
|
Intent connectIntent = new Intent(context, BluetoothCommunicationService.class);
|
|
|
|
connectIntent.setAction(BluetoothCommunicationService.ACTION_CONNECT);
|
|
|
|
connectIntent.putExtra("device_address", deviceAddress);
|
|
|
|
context.startService(connectIntent);
|
|
|
|
}
|
2015-03-17 22:03:54 +01:00
|
|
|
} else if (intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, -1) == BluetoothAdapter.STATE_OFF) {
|
|
|
|
Intent stopIntent = new Intent(context, BluetoothCommunicationService.class);
|
|
|
|
context.stopService(stopIntent);
|
|
|
|
|
|
|
|
Intent quitIntent = new Intent(ControlCenter.ACTION_QUIT);
|
2015-03-27 10:56:08 +01:00
|
|
|
|
|
|
|
LocalBroadcastManager.getInstance(context).sendBroadcast(quitIntent);
|
2015-03-17 21:41:58 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|