diff --git a/app/src/apkFlavor/AndroidManifest.xml b/app/src/apkFlavor/AndroidManifest.xml
index 1cc2eee..dbcb92f 100644
--- a/app/src/apkFlavor/AndroidManifest.xml
+++ b/app/src/apkFlavor/AndroidManifest.xml
@@ -73,6 +73,7 @@
+
diff --git a/app/src/fdroidFlavor/AndroidManifest.xml b/app/src/fdroidFlavor/AndroidManifest.xml
index 0ff6096..4e589db 100644
--- a/app/src/fdroidFlavor/AndroidManifest.xml
+++ b/app/src/fdroidFlavor/AndroidManifest.xml
@@ -71,6 +71,7 @@
+
diff --git a/app/src/googlePlayFlavor/AndroidManifest.xml b/app/src/googlePlayFlavor/AndroidManifest.xml
index efc0c7a..e3ac22c 100644
--- a/app/src/googlePlayFlavor/AndroidManifest.xml
+++ b/app/src/googlePlayFlavor/AndroidManifest.xml
@@ -67,6 +67,7 @@
+
diff --git a/app/src/main/java/com/jens/automation2/ActivityManageTriggerBluetooth.java b/app/src/main/java/com/jens/automation2/ActivityManageTriggerBluetooth.java
index 973c0b4..01b2d29 100644
--- a/app/src/main/java/com/jens/automation2/ActivityManageTriggerBluetooth.java
+++ b/app/src/main/java/com/jens/automation2/ActivityManageTriggerBluetooth.java
@@ -1,8 +1,10 @@
package com.jens.automation2;
+import android.Manifest;
import android.app.Activity;
import android.bluetooth.BluetoothDevice;
import android.content.pm.PackageManager;
+import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
@@ -16,17 +18,20 @@ import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
+import androidx.annotation.NonNull;
+
import com.jens.automation2.receivers.BluetoothReceiver;
public class ActivityManageTriggerBluetooth extends Activity
{
+ final static int requestPermissionCodeBluetoothConnect = 4711;
protected static Trigger editedBluetoothTrigger;
RadioButton radioAnyBluetoothDevice, radioNoDevice, radioDeviceFromList, radioBluetoothConnected, radioBluetoothDisconnected, radioBluetoothInRange, radioBluetoothOutRange;
Button bSaveBluetoothTrigger;
Spinner spinnerBluetoothDevices;
TextView tvBluetoothNotPresentNotice;
- ArrayAdapter bluetoothDevicesSpinnerAdapter;
+ ArrayAdapter bluetoothDevicesSpinnerAdapter = null;
@Override
protected void onCreate(Bundle savedInstanceState)
@@ -46,8 +51,6 @@ public class ActivityManageTriggerBluetooth extends Activity
bSaveBluetoothTrigger = (Button)findViewById(R.id.bSaveBluetoothTrigger);
spinnerBluetoothDevices = (Spinner)findViewById(R.id.spinnerBluetoothDevices);
tvBluetoothNotPresentNotice = (TextView)findViewById(R.id.tvBluetoothNotPresentNotice);
-
- bluetoothDevicesSpinnerAdapter = new ArrayAdapter(this, R.layout.text_view_for_poi_listview_mediumtextsize, BluetoothReceiver.getAllPairedBluetoothDevicesStrings());
if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_BLUETOOTH))
tvBluetoothNotPresentNotice.setVisibility(View.VISIBLE);
@@ -75,17 +78,37 @@ public class ActivityManageTriggerBluetooth extends Activity
}
}
});
-
- refreshBluetoothDeviceSpinner();
- spinnerBluetoothDevices.setEnabled(false);
+
+ if(Miscellaneous.getTargetSDK(ActivityManageTriggerBluetooth.this) >= 31 && !ActivityPermissions.havePermission(Manifest.permission.BLUETOOTH_CONNECT, ActivityManageTriggerBluetooth.this))
+ requestPermissions(new String[] {Manifest.permission.BLUETOOTH_CONNECT }, requestPermissionCodeBluetoothConnect);
+ else
+ refreshBluetoothDeviceSpinner();
+
+ spinnerBluetoothDevices.setEnabled(false);
if(editedBluetoothTrigger.getBluetoothDeviceAddress() != null && editedBluetoothTrigger.getBluetoothDeviceAddress().length() > 0)
loadVariableIntoGui();
}
-
- protected void refreshBluetoothDeviceSpinner()
+
+ @Override
+ public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)
+ {
+ super.onRequestPermissionsResult(requestCode, permissions, grantResults);
+
+ if(requestCode == requestPermissionCodeBluetoothConnect)
+ {
+ if(permissions[0].equals(Manifest.permission.BLUETOOTH_CONNECT) && grantResults[0] == PackageManager.PERMISSION_GRANTED)
+ refreshBluetoothDeviceSpinner();
+ }
+ }
+
+ protected void refreshBluetoothDeviceSpinner()
{
Miscellaneous.logEvent("i", "Spinner", "Attempting to update spinnerBluetoothDevices", 4);
+
+ if(bluetoothDevicesSpinnerAdapter == null)
+ bluetoothDevicesSpinnerAdapter = new ArrayAdapter(this, R.layout.text_view_for_poi_listview_mediumtextsize, BluetoothReceiver.getAllPairedBluetoothDevicesStrings());
+
if(spinnerBluetoothDevices.getAdapter() == null)
{
spinnerBluetoothDevices.setAdapter(bluetoothDevicesSpinnerAdapter);
diff --git a/app/src/main/java/com/jens/automation2/ActivityManageTriggerProximity.java b/app/src/main/java/com/jens/automation2/ActivityManageTriggerProximity.java
index 2c6fd73..2c2e657 100644
--- a/app/src/main/java/com/jens/automation2/ActivityManageTriggerProximity.java
+++ b/app/src/main/java/com/jens/automation2/ActivityManageTriggerProximity.java
@@ -149,17 +149,17 @@ public class ActivityManageTriggerProximity extends Activity
sbProximityTest.setProgress((int)sensorEvent.values[0]);
tvProximityCurrentValue.setText((String.valueOf(sensorEvent.values[0])));
- if (sensorEvent.values[0] == 0)
- {
+// if (sensorEvent.values[0] == 0)
+// {
// here we are setting our status to our textview..
// if sensor event return 0 then object is closed
// to sensor else object is away from sensor.
// sensorStatusTV.setText("Near");
- }
- else
- {
+// }
+// else
+// {
// sensorStatusTV.setText("Away");
- }
+// }
}
}
diff --git a/fastlane/metadata/android/en-US/changelogs/145.txt b/fastlane/metadata/android/en-US/changelogs/145.txt
index 386a25d..1932c23 100644
--- a/fastlane/metadata/android/en-US/changelogs/145.txt
+++ b/fastlane/metadata/android/en-US/changelogs/145.txt
@@ -1,4 +1,5 @@
* Fixed: Crash in Play Store version when starting the service
* Fixed: trigger url result was not stored correctly in a variable
* Fixed: Crash when clicking +/- when creating/editing TimeFrame trigger
+* Fixed: Permission BLUETOOTH_CONNECT requested for Bluetooth trigger editor in Google Play version
* Added Possibility to select UI theme, hence enabling modern UI designs
\ No newline at end of file