diff --git a/app/src/main/java/com/jens/automation2/Action.java b/app/src/main/java/com/jens/automation2/Action.java index 215a085..57a92ef 100644 --- a/app/src/main/java/com/jens/automation2/Action.java +++ b/app/src/main/java/com/jens/automation2/Action.java @@ -24,6 +24,7 @@ public class Action setBluetooth, setUsbTethering, setWifiTethering, + setBluetoothTethering, setDisplayRotation, turnWifiOn,turnWifiOff, turnBluetoothOn,turnBluetoothOff, @@ -31,7 +32,7 @@ public class Action changeSoundProfile, turnUsbTetheringOn,turnUsbTetheringOff, turnWifiTetheringOn,turnWifiTetheringOff, - enableScreenRotation, disableScreenRotation, + enableScreenRotation,disableScreenRotation, startOtherActivity, waitBeforeNextAction, wakeupDevice, @@ -54,6 +55,8 @@ public class Action return context.getResources().getString(R.string.actionSetBluetooth); case setWifiTethering: return context.getResources().getString(R.string.actionSetWifiTethering); + case setBluetoothTethering: + return context.getResources().getString(R.string.actionSetBluetoothTethering); case setUsbTethering: return context.getResources().getString(R.string.actionSetUsbTethering); case setDisplayRotation: @@ -178,6 +181,13 @@ public class Action else returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnWifiTetheringOff)); } + else if(this.getAction().equals(Action_Enum.setBluetoothTethering)) + { + if(this.getParameter1()) + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothTetheringOn)); + else + returnString.append(Miscellaneous.getAnyContext().getResources().getString(R.string.actionTurnBluetoothTetheringOff)); + } else if(this.getAction().equals(Action_Enum.setDisplayRotation)) { if(this.getParameter1()) @@ -382,6 +392,9 @@ public class Action case setWifiTethering: Actions.setWifiTethering(context, getParameter1(), toggleActionIfPossible); break; + case setBluetoothTethering: + Actions.BluetoothTetheringClass.setBluetoothTethering(context, getParameter1(), toggleActionIfPossible); + break; case setDisplayRotation: Actions.setDisplayRotation(context, getParameter1(), toggleActionIfPossible); break; diff --git a/app/src/main/java/com/jens/automation2/Actions.java b/app/src/main/java/com/jens/automation2/Actions.java index f25a1f6..09150bb 100644 --- a/app/src/main/java/com/jens/automation2/Actions.java +++ b/app/src/main/java/com/jens/automation2/Actions.java @@ -321,16 +321,16 @@ public class Actions { Miscellaneous.logEvent("i", "Bluetooth Tethering", "Changing Bluetooth Tethering to " + String.valueOf(desiredState), 4); - boolean state = Actions.isWifiApEnabled(context); +// boolean state = isTetheringOn(context); - if (toggleActionIfPossible) - { - Miscellaneous.logEvent("i", "Bluetooth Tethering", context.getResources().getString(R.string.toggling), 2); - desiredState = !state; - } +// if (toggleActionIfPossible) +// { +// Miscellaneous.logEvent("i", "Bluetooth Tethering", context.getResources().getString(R.string.toggling), 2); +// desiredState = !state; +// } - if (((state && !desiredState) || (!state && desiredState))) - { +// if (((state && !desiredState) || (!state && desiredState))) +// { BluetoothAdapter mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); Class classBluetoothPan = null; Constructor BTPanCtor = null; @@ -372,7 +372,7 @@ public class Actions } } } - } +// } return true; } diff --git a/app/src/main/java/com/jens/automation2/ActivityManageRule.java b/app/src/main/java/com/jens/automation2/ActivityManageRule.java index c69d9e8..0f6d0d8 100644 --- a/app/src/main/java/com/jens/automation2/ActivityManageRule.java +++ b/app/src/main/java/com/jens/automation2/ActivityManageRule.java @@ -1361,6 +1361,8 @@ public class ActivityManageRule extends Activity items.add(new Item(typesLong[i].toString(), R.drawable.router)); else if(types[i].toString().equals(Action_Enum.setWifiTethering.toString())) items.add(new Item(typesLong[i].toString(), R.drawable.router)); + else if(types[i].toString().equals(Action_Enum.setBluetoothTethering.toString())) + items.add(new Item(typesLong[i].toString(), R.drawable.router)); else if(types[i].toString().equals(Action_Enum.setDisplayRotation.toString())) items.add(new Item(typesLong[i].toString(), R.drawable.displayrotation)); else if(types[i].toString().equals(Action_Enum.waitBeforeNextAction.toString())) @@ -1461,6 +1463,11 @@ public class ActivityManageRule extends Activity newAction.setAction(Action_Enum.setWifiTethering); getActionParameter1Dialog(ActivityManageRule.this).show(); } + else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.setBluetoothTethering.toString())) + { + newAction.setAction(Action_Enum.setBluetoothTethering); + getActionParameter1Dialog(ActivityManageRule.this).show(); + } else if(Action.getActionTypesAsArray()[which].toString().equals(Action_Enum.setDisplayRotation.toString())) { newAction.setAction(Action_Enum.setDisplayRotation); diff --git a/app/src/main/java/com/jens/automation2/ActivityPermissions.java b/app/src/main/java/com/jens/automation2/ActivityPermissions.java index 76738cb..90a529f 100644 --- a/app/src/main/java/com/jens/automation2/ActivityPermissions.java +++ b/app/src/main/java/com/jens/automation2/ActivityPermissions.java @@ -531,6 +531,12 @@ public class ActivityPermissions extends Activity // https://stackoverflow.com/questions/32185628/connectivitymanager-requestnetwork-in-android-6-0 // addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions); break; + case setBluetoothTethering: + //addToArrayListUnique(Manifest.permission.CHANGE_NETWORK_STATE, requiredPermissions); + addToArrayListUnique(Manifest.permission.BLUETOOTH, requiredPermissions); + addToArrayListUnique(Manifest.permission.BLUETOOTH_ADMIN, requiredPermissions); + addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); + break; case setWifi: addToArrayListUnique(Manifest.permission.WRITE_SETTINGS, requiredPermissions); // https://stackoverflow.com/questions/32185628/connectivitymanager-requestnetwork-in-android-6-0 diff --git a/app/src/main/java/com/jens/automation2/XmlFileInterface.java b/app/src/main/java/com/jens/automation2/XmlFileInterface.java index 5c46930..b015e30 100644 --- a/app/src/main/java/com/jens/automation2/XmlFileInterface.java +++ b/app/src/main/java/com/jens/automation2/XmlFileInterface.java @@ -830,7 +830,6 @@ public class XmlFileInterface return (triggerCollection); } - private static Trigger readTrigger(XmlPullParser parser) throws IOException, XmlPullParserException { diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6d9f0d3..e412a85 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -158,6 +158,7 @@ Bluetooth USB Tethering Wifi Tethering + Bluetooth Tethering Display rotation turn Wifi on turn Wifi off @@ -169,6 +170,8 @@ turn USB Tethering off turn Wifi Tethering on turn Wifi Tethering off + turn Bluetooth Tethering on + turn Bluetooth Tethering off turn airplane mode on turn airplane mode off enable screen rotation