summaryrefslogtreecommitdiff
path: root/app/src/main/java/com/javispedro/autobluetether/BtConnectReceiver.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/javispedro/autobluetether/BtConnectReceiver.java')
-rw-r--r--app/src/main/java/com/javispedro/autobluetether/BtConnectReceiver.java46
1 files changed, 46 insertions, 0 deletions
diff --git a/app/src/main/java/com/javispedro/autobluetether/BtConnectReceiver.java b/app/src/main/java/com/javispedro/autobluetether/BtConnectReceiver.java
new file mode 100644
index 0000000..680f4fc
--- /dev/null
+++ b/app/src/main/java/com/javispedro/autobluetether/BtConnectReceiver.java
@@ -0,0 +1,46 @@
+package com.javispedro.autobluetether;
+
+import android.bluetooth.BluetoothDevice;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.preference.PreferenceManager;
+import android.util.Log;
+
+import java.util.Set;
+
+public class BtConnectReceiver extends BroadcastReceiver {
+ private static final String TAG = "BtConnectReceiver";
+
+ private boolean isDeviceEnabled(Context context, BluetoothDevice device) {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+ Set<String> enabledAddresses = prefs.getStringSet(context.getString(R.string.prefs_key_device_list), null);
+ if (enabledAddresses == null) return false;
+ Log.d(TAG, "enabled devices in prefs: " + enabledAddresses);
+ return enabledAddresses.contains(device.getAddress());
+ }
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ final String action = intent.getAction();
+ if (action == null) return;
+
+ if (action.equals(BluetoothDevice.ACTION_ACL_CONNECTED)) {
+ BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
+ if (device == null) return;
+
+ Log.d(TAG, "ACL connected: " + device.getName());
+
+ if (isDeviceEnabled(context, device)) {
+ Log.d(TAG, "trying to enable tethering");
+ try {
+ new BtTetherEnabler(context).startTethering();
+ } catch (BtTetherEnabler.EnableException e) {
+ e.printStackTrace();
+ Log.e(TAG, "Can't enable tethering: " + e.getMessage());
+ }
+ }
+ }
+ }
+}