From: Markus Jung Date: Thu, 17 Dec 2015 06:13:37 +0000 (+0900) Subject: API for retrieving resoure configuration X-Git-Tag: 1.2.0+RC1~634^2^2~12 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d48604b085ec0e08363c3dcd125c7fed3ce8b093;p=platform%2Fupstream%2Fiotivity.git API for retrieving resoure configuration Added an API to access the bundle configuration within an Android resource bundle. Change-Id: I332d47076669b23eba4fc70f5c4b4777a9d92ded Signed-off-by: Markus Jung Reviewed-on: https://gerrit.iotivity.org/gerrit/4637 Reviewed-by: Markus Jung Tested-by: jenkins-iotivity Reviewed-by: Madan Lanka Reviewed-by: Uze Choi --- diff --git a/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/AndroidBundleActivator.java b/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/AndroidBundleActivator.java index 9b212fb..06c997a 100644 --- a/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/AndroidBundleActivator.java +++ b/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/AndroidBundleActivator.java @@ -52,9 +52,4 @@ public abstract class AndroidBundleActivator { */ public abstract void destroyResource(AndroidBundleResource resource); - /** - * List the configuration of the bundle resources. - * @return List of configuration for each resource - */ - public abstract List getConfiguredBundleResources(); } \ No newline at end of file diff --git a/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/RcsResourceContainer.java b/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/RcsResourceContainer.java index 39c1b94..06cd652 100644 --- a/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/RcsResourceContainer.java +++ b/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/RcsResourceContainer.java @@ -29,6 +29,7 @@ import java.util.Map; import java.util.Enumeration; import android.util.Log; import android.content.Context; +import java.util.Vector; import dalvik.system.DexFile; import android.content.pm.ApplicationInfo; @@ -280,6 +281,20 @@ public class RcsResourceContainer implements RcsResourceContainerBundleAPI { resource.getURI(), resource.getResourceType(), resource.getName()); } + + public List getConfiguredBundleResources(String bundleId) { + int configuredResources = getNumberOfConfiguredResources(bundleId); + + Vector configs = new Vector(); + + for (int i = 0; i < configuredResources; i++) { + String[] resourceParams = getConfiguredResourceParams(bundleId, i); + ResourceConfig config = new ResourceConfig(resourceParams); + configs.add(config); + + } + return configs; + } public void unregisterResource(AndroidBundleResource resource){ diff --git a/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/RcsResourceContainerBundleAPI.java b/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/RcsResourceContainerBundleAPI.java index e95ffae..075c39d 100644 --- a/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/RcsResourceContainerBundleAPI.java +++ b/service/resource-container/android/resource-container/src/main/java/org/iotivity/service/resourcecontainer/RcsResourceContainerBundleAPI.java @@ -26,6 +26,7 @@ package org.iotivity.service.resourcecontainer; import java.util.List; import java.util.Map; +import java.util.Vector; // TODO null check for parameters /** @@ -33,13 +34,10 @@ import java.util.Map; * container. */ public interface RcsResourceContainerBundleAPI{ - + public void registerResource(String bundleId, AndroidBundleResource resource); - + public void unregisterResource(AndroidBundleResource resource); - - public int getNumberOfConfiguredResources(String bundleId); - - public String[] getConfiguredResourceParams(String bundleId, - int resId); + + public List getConfiguredBundleResources(String bundleId); } diff --git a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/DummyActivity.java b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/DummyActivity.java index 36083c0..283db78 100755 --- a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/DummyActivity.java +++ b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/DummyActivity.java @@ -18,7 +18,6 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - package org.iotivity.service.sample.androidbundle; import android.app.Activity; diff --git a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/SampleActivator.java b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/SampleActivator.java index 83c9ef7..5f5cb9f 100755 --- a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/SampleActivator.java +++ b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/SampleActivator.java @@ -18,7 +18,6 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - package org.iotivity.service.sample.androidbundle; import android.content.Context; @@ -34,11 +33,10 @@ import org.iotivity.service.sample.androidbundle.resources.LightIntensityResourc import org.iotivity.service.sample.androidbundle.resources.TemperatureResource; import java.util.List; +import java.util.Vector; -/** - * Created by markus.jung on 11/7/2015. - */ public class SampleActivator extends AndroidBundleActivator { + private List resources = new Vector(); public SampleActivator(RcsResourceContainerBundleAPI bundleAPI, Context appContext){ super(bundleAPI, appContext); @@ -49,40 +47,70 @@ public class SampleActivator extends AndroidBundleActivator { public void activateBundle() { Log.d(SampleActivator.class.getName(), "Activate bundle called"); - LightIntensityResource lightIntensityResource = new LightIntensityResource(this.appContext); - lightIntensityResource.setURI("/lightsensor/1"); - bundleAPI.registerResource("oic.android.sample", lightIntensityResource); - - HumidityResource humidityResource = new HumidityResource(this.appContext); - humidityResource.setURI("/humidity/1"); - bundleAPI.registerResource("oic.android.sample", humidityResource); - - TemperatureResource tempResource = new TemperatureResource(this.appContext); - tempResource.setURI("/temperature/1"); - bundleAPI.registerResource("oic.android.sample", tempResource); - - DiscomfortIndexResource diResource = new DiscomfortIndexResource(this.appContext); - diResource.setURI("/android/discomfortindex/1"); - bundleAPI.registerResource("oic.android.sample", diResource); + List configuredBundleResources = this.bundleAPI. + getConfiguredBundleResources("oic.android.sample"); + + for(ResourceConfig config : configuredBundleResources){ + AndroidBundleResource resource = null; + + if("oic.r.lightsensor".equals(config.getResourceType())){ + resource = + new LightIntensityResource(this.appContext); + } else if("oic.r.temperature".equals(config.getResourceType())){ + resource = + new TemperatureResource(this.appContext); + } else if("oic.r.discomfortindex".equals(config.getResourceType())){ + resource = + new DiscomfortIndexResource(this.appContext); + } else if ("oic.r.humidity".equals(config.getResourceType())) { + resource = + new HumidityResource(this.appContext); + } + + if(resource != null) { + resource.setURI(config.getURI()); + resource.setName(config.getName()); + bundleAPI.registerResource("oic.android.sample", resource); + resources.add(resource); + } + } } @Override public void deactivateBundle() { - + for(AndroidBundleResource resource : resources){ + bundleAPI.unregisterResource(resource); + } } @Override - public void createResource(ResourceConfig resourceConfig) { - + public void createResource(ResourceConfig config) { + AndroidBundleResource resource = null; + + if("oic.r.lightsensor".equals(config.getResourceType())){ + resource = + new LightIntensityResource(this.appContext); + } else if("oic.r.temperature".equals(config.getResourceType())){ + resource = + new TemperatureResource(this.appContext); + } else if("oic.r.discomfortindex".equals(config.getResourceType())){ + resource = + new DiscomfortIndexResource(this.appContext); + } else if ("oic.r.humidity".equals(config.getResourceType())) { + resource = + new HumidityResource(this.appContext); + } + + if(resource != null) { + resource.setURI(config.getURI()); + resource.setName(config.getName()); + bundleAPI.registerResource("oic.android.sample", resource); + resources.add(resource); + } } @Override public void destroyResource(AndroidBundleResource androidBundleResource) { - - } - - @Override - public List getConfiguredBundleResources() { - return null; + bundleAPI.unregisterResource(androidBundleResource); } } diff --git a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/HumidityResource.java b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/HumidityResource.java index 811f406..36345c9 100755 --- a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/HumidityResource.java +++ b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/HumidityResource.java @@ -18,7 +18,6 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - package org.iotivity.service.sample.androidbundle.resources; import android.content.Context; diff --git a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/LightIntensityResource.java b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/LightIntensityResource.java index f240134..441feaa 100755 --- a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/LightIntensityResource.java +++ b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/LightIntensityResource.java @@ -18,7 +18,6 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - package org.iotivity.service.sample.androidbundle.resources; import android.content.Context; @@ -32,6 +31,7 @@ import org.iotivity.service.resourcecontainer.AndroidBundleResource; import org.iotivity.service.resourcecontainer.RcsResourceAttributes; import org.iotivity.service.resourcecontainer.RcsValue; + public class LightIntensityResource extends AndroidBundleResource implements SensorEventListener { private static final String LOG_TAG = LightIntensityResource.class.getSimpleName(); private final SensorManager mSensorManager; diff --git a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/TemperatureResource.java b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/TemperatureResource.java index c2a499f..05d8a34 100755 --- a/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/TemperatureResource.java +++ b/service/resource-container/examples/android/AndroidBundle/app/src/main/java/org/iotivity/service/sample/androidbundle/resources/TemperatureResource.java @@ -18,7 +18,6 @@ // //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= - package org.iotivity.service.sample.androidbundle.resources; import android.content.Context; @@ -40,9 +39,9 @@ public class TemperatureResource extends AndroidBundleResource implements Senso public TemperatureResource(Context context){ super(context); this.setResourceType("oic.r.temperature"); - this.setName("humiditySensor"); + this.setName("temperatureSensor"); mSensorManager = (SensorManager) context.getApplicationContext().getSystemService(Context.SENSOR_SERVICE); - temperatureSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_RELATIVE_HUMIDITY); + temperatureSensor = mSensorManager.getDefaultSensor(Sensor.TYPE_AMBIENT_TEMPERATURE); mSensorManager.registerListener(this, temperatureSensor, SensorManager.SENSOR_DELAY_NORMAL); }