From 0119e703ff4a8f3201610c2866702f7f92da0b26 Mon Sep 17 00:00:00 2001 From: Javier Date: Sun, 26 Jul 2020 18:11:10 +0200 Subject: initial import --- .../autobluetether/BtConnectReceiver.java | 46 ++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 app/src/main/java/com/javispedro/autobluetether/BtConnectReceiver.java (limited to 'app/src/main/java/com/javispedro/autobluetether/BtConnectReceiver.java') 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 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()); + } + } + } + } +} -- cgit v1.2.3