Merge branch 'upstream' into tizen
[platform/upstream/iotivity.git] / service / resource-container / examples / android / AndroidBundle / app / src / main / java / org / iotivity / service / sample / androidbundle / SampleActivator.java
1 //******************************************************************
2 //
3 // Copyright 2015 Samsung Electronics All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
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
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
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.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 package org.iotivity.service.sample.androidbundle;
22
23 import android.content.Context;
24 import android.util.Log;
25
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;
35
36 import java.util.List;
37 import java.util.Vector;
38
39 public class SampleActivator extends BundleActivator {
40     private List<BundleResource> resources = new Vector<BundleResource>();
41
42     public SampleActivator(RcsResourceContainerBundleAPI bundleAPI, Context appContext){
43         super(bundleAPI, appContext);
44         Log.d(SampleActivator.class.getName(), "Created activator instance " + bundleAPI
45                 + "," + appContext);
46     }
47
48     @Override
49     public void activateBundle() {
50         Log.d(SampleActivator.class.getName(), "Activate bundle called");
51
52         Log.d(SampleActivator.class.getName(), "requesting configured bundle resources");
53
54         Log.d(SampleActivator.class.getName(), "Bundle API: " + this.bundleAPI);
55         if(this.bundleAPI != null)
56         {
57             List<ResourceConfig> configuredBundleResources = this.bundleAPI.
58                     getConfiguredBundleResources("oic.android.sample");
59
60             if(configuredBundleResources !=null) {
61                 Log.d(SampleActivator.class.getName(), "configured bundle resources: " +
62                         configuredBundleResources.size());
63
64                 for (ResourceConfig config : configuredBundleResources) {
65                     BundleResource resource = null;
66                     Log.d(SampleActivator.class.getName(), "Creating " +
67                         config.getResourceType());
68
69                     if ("oic.r.lightsensor".equals(config.getResourceType())) {
70                         resource =
71                                 new LightIntensityResource(this.appContext);
72                     } else if ("oic.r.temperature".equals(config.getResourceType())) {
73                         resource =
74                                 new TemperatureResource(this.appContext);
75
76                     } else if ("oic.r.gyroscope".equals(config.getResourceType())) {
77                         resource =
78                                 new GyroscopeResource(this.appContext);
79                     } else if ("oic.r.discomfortindex".equals(config.getResourceType())) {
80                         resource =
81                                 new DiscomfortIndexResource(this.appContext);
82                     } else if ("oic.r.humidity".equals(config.getResourceType())) {
83                         resource =
84                                 new HumidityResource(this.appContext);
85                     }
86
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 " +
93                                 config.getURI());
94                     }
95                 }
96                 Log.d(SampleActivator.class.getName(), "Activate bundle finished");
97             }
98             else{
99                 Log.d(SampleActivator.class.getName(), "configured bundle resources is null");
100             }
101         }
102         else{
103             Log.d(SampleActivator.class.getName(), "Bundle API is null");
104         }
105
106
107     }
108
109     @Override
110     public void deactivateBundle() {
111         Log.d(SampleActivator.class.getName(), "De-activate bundle called.");
112         for(BundleResource resource : resources){
113             bundleAPI.unregisterResource(resource);
114         }
115     }
116
117     @Override
118     public void createResource(ResourceConfig config) {
119         BundleResource resource = null;
120
121         if("oic.r.lightsensor".equals(config.getResourceType())){
122             resource =
123                     new LightIntensityResource(this.appContext);
124         } else if("oic.r.temperature".equals(config.getResourceType())){
125             resource =
126                     new TemperatureResource(this.appContext);
127         } else if("oic.r.discomfortindex".equals(config.getResourceType())){
128             resource =
129                     new DiscomfortIndexResource(this.appContext);
130         } else if("oic.r.gyroscope".equals(config.getResourceType())){
131             resource =
132                     new GyroscopeResource(this.appContext);
133         } else if ("oic.r.humidity".equals(config.getResourceType())) {
134             resource =
135                     new HumidityResource(this.appContext);
136         }
137
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);
143         }
144     }
145
146     @Override
147     public void destroyResource(BundleResource androidBundleResource) {
148         Log.d(SampleActivator.class.getName(), "Destroy resource called.");
149         bundleAPI.unregisterResource(androidBundleResource);
150     }
151 }