1 //******************************************************************
3 // Copyright 2015 Samsung Electronics All Rights Reserved.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
11 // http://www.apache.org/licenses/LICENSE-2.0
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
21 package org.iotivity.service.sample.androidbundle;
23 import android.content.Context;
24 import android.util.Log;
26 import org.iotivity.service.resourcecontainer.BundleActivator;
27 import org.iotivity.service.resourcecontainer.BundleResource;
28 import org.iotivity.service.resourcecontainer.RcsResourceContainerBundleAPI;
29 import org.iotivity.service.resourcecontainer.ResourceConfig;
30 import org.iotivity.service.sample.androidbundle.resources.DiscomfortIndexResource;
31 import org.iotivity.service.sample.androidbundle.resources.GyroscopeResource;
32 import org.iotivity.service.sample.androidbundle.resources.HumidityResource;
33 import org.iotivity.service.sample.androidbundle.resources.LightIntensityResource;
34 import org.iotivity.service.sample.androidbundle.resources.TemperatureResource;
36 import java.util.List;
37 import java.util.Vector;
39 public class SampleActivator extends BundleActivator {
40 private List<BundleResource> resources = new Vector<BundleResource>();
42 public SampleActivator(RcsResourceContainerBundleAPI bundleAPI, Context appContext){
43 super(bundleAPI, appContext);
44 Log.d(SampleActivator.class.getName(), "Created activator instance " + bundleAPI
49 public void activateBundle() {
50 Log.d(SampleActivator.class.getName(), "Activate bundle called");
52 Log.d(SampleActivator.class.getName(), "requesting configured bundle resources");
54 Log.d(SampleActivator.class.getName(), "Bundle API: " + this.bundleAPI);
55 if(this.bundleAPI != null)
57 List<ResourceConfig> configuredBundleResources = this.bundleAPI.
58 getConfiguredBundleResources("oic.android.sample");
60 if(configuredBundleResources !=null) {
61 Log.d(SampleActivator.class.getName(), "configured bundle resources: " +
62 configuredBundleResources.size());
64 for (ResourceConfig config : configuredBundleResources) {
65 BundleResource resource = null;
66 Log.d(SampleActivator.class.getName(), "Creating " +
67 config.getResourceType());
69 if ("oic.r.lightsensor".equals(config.getResourceType())) {
71 new LightIntensityResource(this.appContext);
72 } else if ("oic.r.temperature".equals(config.getResourceType())) {
74 new TemperatureResource(this.appContext);
76 } else if ("oic.r.gyroscope".equals(config.getResourceType())) {
78 new GyroscopeResource(this.appContext);
79 } else if ("oic.r.discomfortindex".equals(config.getResourceType())) {
81 new DiscomfortIndexResource(this.appContext);
82 } else if ("oic.r.humidity".equals(config.getResourceType())) {
84 new HumidityResource(this.appContext);
87 if (resource != null) {
88 resource.setURI(config.getURI());
89 resource.setName(config.getName());
90 bundleAPI.registerResource("oic.android.sample", resource);
91 resources.add(resource);
92 Log.d(SampleActivator.class.getName(), "Registering resource " +
96 Log.d(SampleActivator.class.getName(), "Activate bundle finished");
99 Log.d(SampleActivator.class.getName(), "configured bundle resources is null");
103 Log.d(SampleActivator.class.getName(), "Bundle API is null");
110 public void deactivateBundle() {
111 Log.d(SampleActivator.class.getName(), "De-activate bundle called.");
112 for(BundleResource resource : resources){
113 bundleAPI.unregisterResource(resource);
118 public void createResource(ResourceConfig config) {
119 BundleResource resource = null;
121 if("oic.r.lightsensor".equals(config.getResourceType())){
123 new LightIntensityResource(this.appContext);
124 } else if("oic.r.temperature".equals(config.getResourceType())){
126 new TemperatureResource(this.appContext);
127 } else if("oic.r.discomfortindex".equals(config.getResourceType())){
129 new DiscomfortIndexResource(this.appContext);
130 } else if("oic.r.gyroscope".equals(config.getResourceType())){
132 new GyroscopeResource(this.appContext);
133 } else if ("oic.r.humidity".equals(config.getResourceType())) {
135 new HumidityResource(this.appContext);
138 if(resource != null) {
139 resource.setURI(config.getURI());
140 resource.setName(config.getName());
141 bundleAPI.registerResource("oic.android.sample", resource);
142 resources.add(resource);
147 public void destroyResource(BundleResource androidBundleResource) {
148 Log.d(SampleActivator.class.getName(), "Destroy resource called.");
149 bundleAPI.unregisterResource(androidBundleResource);