diff --git a/nymea-app/nymea-app.pro b/nymea-app/nymea-app.pro
index a832a44d..480a2503 100644
--- a/nymea-app/nymea-app.pro
+++ b/nymea-app/nymea-app.pro
@@ -77,6 +77,7 @@ android {
$$ANDROID_PACKAGE_SOURCE_DIR/gradlew.bat \
$$ANDROID_PACKAGE_SOURCE_DIR/src/io/guh/nymeaapp/NymeaAppActivity.java \
$$ANDROID_PACKAGE_SOURCE_DIR/src/io/guh/nymeaapp/NymeaAppNotificationService.java \
+ $$ANDROID_PACKAGE_SOURCE_DIR/src/io/guh/nymeaapp/NymeaAppControlService.java \
$$ANDROID_PACKAGE_SOURCE_DIR/LICENSE
# https://bugreports.qt.io/browse/QTBUG-83165
diff --git a/packaging/android/AndroidManifest.xml b/packaging/android/AndroidManifest.xml
index d6469ea1..33c84d4d 100644
--- a/packaging/android/AndroidManifest.xml
+++ b/packaging/android/AndroidManifest.xml
@@ -73,12 +73,11 @@
-
-
-
-
-
-
+
+
+
+
+
diff --git a/packaging/android/src/io/guh/nymeaapp/NymeaAppHomeControlsService.java b/packaging/android/src/io/guh/nymeaapp/NymeaAppControlService.java
similarity index 65%
rename from packaging/android/src/io/guh/nymeaapp/NymeaAppHomeControlsService.java
rename to packaging/android/src/io/guh/nymeaapp/NymeaAppControlService.java
index bb31d2b0..e5727f07 100644
--- a/packaging/android/src/io/guh/nymeaapp/NymeaAppHomeControlsService.java
+++ b/packaging/android/src/io/guh/nymeaapp/NymeaAppControlService.java
@@ -5,15 +5,12 @@ import android.content.Intent;
import android.app.PendingIntent;
import android.net.Uri;
import android.content.Context;
-import android.provider.Settings.System;
-import android.os.Build;
import android.service.controls.ControlsProviderService;
import android.service.controls.actions.ControlAction;
import android.service.controls.actions.BooleanAction;
import android.service.controls.Control;
import android.service.controls.DeviceTypes;
-import java.util.Random;
import java.util.concurrent.Flow.Publisher;
import java.util.function.Consumer;
import java.util.List;
@@ -22,19 +19,20 @@ import io.reactivex.Flowable;
import io.reactivex.processors.ReplayProcessor;
import org.reactivestreams.FlowAdapters;
-public class NymeaAppHomeControlsService extends ControlsProviderService {
+public class NymeaAppControlService extends ControlsProviderService {
private ReplayProcessor updatePublisher;
- private PendingIntent pi;
@Override
public Publisher createPublisherForAllAvailable() {
+ Log.d("********************************* Creating publishers for all ****************************", "fff");
+
Context context = getBaseContext();
Intent i = new Intent();
-// PendingIntent pi = PendingIntent.getActivity(context, 1, i, PendingIntent.FLAG_UPDATE_CURRENT);
- pi = PendingIntent.getActivity(context, 1, i, PendingIntent.FLAG_UPDATE_CURRENT);
+ PendingIntent pi = PendingIntent.getActivity(context, 1, i, PendingIntent.FLAG_UPDATE_CURRENT);
+// pi = PendingIntent.getActivity(context, 1, i, PendingIntent.FLAG_UPDATE_CURRENT);
List controls = new ArrayList<>();
- Control control = new Control.StatelessBuilder("123", pi)
+ Control control = new Control.StatelessBuilder("e24b0d95-9982-4f9b-ad8b-2aa6b9aba8fd", pi)
// Required: The name of the control
.setTitle("TestControl")
// Required: Usually the room where the control is located
@@ -42,7 +40,7 @@ public class NymeaAppHomeControlsService extends ControlsProviderService {
// Optional: Structure where the control is located, an example would be a house
.setStructure("TestLocation")
// Required: Type of device, i.e., thermostat, light, switch
- .setDeviceType(DeviceTypes.TYPE_LIGHT) // For example, DeviceTypes.TYPE_THERMOSTAT
+ .setDeviceType(DeviceTypes.TYPE_GENERIC_ON_OFF) // For example, DeviceTypes.TYPE_THERMOSTAT
.build();
controls.add(control);
// Create more controls here if needed and add it to the ArrayList
@@ -54,6 +52,10 @@ public class NymeaAppHomeControlsService extends ControlsProviderService {
@Override
public Publisher createPublisherFor(List controlIds) {
+ Log.d("********************************* Creating publishers for one ****************************", "..");
+// for(int i = 0; i < controlIds.size(); i++) {
+// Log.d("requested control id:", controlIds.get(i));
+// }
Context context = getBaseContext();
/* Fill in details for the activity related to this device. On long press,
* this Intent will be launched in a bottomsheet. Please design the activity
@@ -66,8 +68,9 @@ public class NymeaAppHomeControlsService extends ControlsProviderService {
// For each controlId in controlIds
- if (controlIds.contains(123)) {
- Control control = new Control.StatefulBuilder("123", pi)
+ if (controlIds.contains("e24b0d95-9982-4f9b-ad8b-2aa6b9aba8fd")) {
+ Log.d("**", "control asked");
+ Control control = new Control.StatefulBuilder("e24b0d95-9982-4f9b-ad8b-2aa6b9aba8fd", pi)
// Required: The name of the control
.setTitle("TestTitle")
// Required: Usually the room where the control is located
@@ -75,7 +78,7 @@ public class NymeaAppHomeControlsService extends ControlsProviderService {
// Optional: Structure where the control is located, an example would be a house
.setStructure("TestStructure")
// Required: Type of device, i.e., thermostat, light, switch
- .setDeviceType(DeviceTypes.TYPE_LIGHT) // For example, DeviceTypes.TYPE_THERMOSTAT
+ .setDeviceType(DeviceTypes.TYPE_GENERIC_ON_OFF) // For example, DeviceTypes.TYPE_THERMOSTAT
// Required: Current status of the device
.setStatus(Control.STATUS_OK) // For example, Control.STATUS_OK
.build();
@@ -107,21 +110,21 @@ public class NymeaAppHomeControlsService extends ControlsProviderService {
* After updating, the application should use the publisher to update SystemUI with the new
* state.
*/
- Control control = new Control.StatefulBuilder("123", pi)
- // Required: The name of the control
- .setTitle("TestControl")
- // Required: Usually the room where the control is located
- .setSubtitle("TestSubTitle")
- // Optional: Structure where the control is located, an example would be a house
- .setStructure("TestStructure")
- // Required: Type of device, i.e., thermostat, light, switch
- .setDeviceType(DeviceTypes.TYPE_LIGHT) // For example, DeviceTypes.TYPE_THERMOSTAT
- // Required: Current status of the device
- .setStatus(Control.STATUS_OK) // For example, Control.STATUS_OK
- .build();
+// Control control = new Control.StatefulBuilder("123", pi)
+// // Required: The name of the control
+// .setTitle("TestControl")
+// // Required: Usually the room where the control is located
+// .setSubtitle("TestSubTitle")
+// // Optional: Structure where the control is located, an example would be a house
+// .setStructure("TestStructure")
+// // Required: Type of device, i.e., thermostat, light, switch
+// .setDeviceType(DeviceTypes.TYPE_GENERIC_ON_OFF) // For example, DeviceTypes.TYPE_THERMOSTAT
+// // Required: Current status of the device
+// .setStatus(Control.STATUS_OK) // For example, Control.STATUS_OK
+// .build();
- // This is the publisher the application created during the call to createPublisherFor()
- updatePublisher.onNext(control);
+// // This is the publisher the application created during the call to createPublisherFor()
+// updatePublisher.onNext(control);
}
}
}