Sconscript and Android sample app update
[platform/upstream/iotivity.git] / service / notification / examples / android / NotiConsumerExample / app / src / main / java / com / sec / noticonsumerexample / ConsumerProxy.java
1 /******************************************************************\r
2  * Copyright 2016 Samsung Electronics All Rights Reserved.\r
3  * <p>\r
4  * <p>\r
5  * <p>\r
6  * Licensed under the Apache License, Version 2.0 (the "License");\r
7  * you may not use this file except in compliance with the License.\r
8  * You may obtain a copy of the License at\r
9  * <p>\r
10  * http://www.apache.org/licenses/LICENSE-2.0\r
11  * <p>\r
12  * Unless required by applicable law or agreed to in writing, software\r
13  * distributed under the License is distributed on an "AS IS" BASIS,\r
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
15  * See the License for the specific language governing permissions and\r
16  * limitations under the License.\r
17  ******************************************************************/\r
18 \r
19 package com.sec.noticonsumerexample;\r
20 \r
21 import android.app.NotificationManager;\r
22 import android.content.Context;\r
23 import android.os.Handler;\r
24 import android.os.Message;\r
25 import android.util.Log;\r
26 import android.widget.Toast;\r
27 \r
28 import org.iotivity.base.ModeType;\r
29 import org.iotivity.base.OcPlatform;\r
30 import org.iotivity.base.OcResourceHandle;\r
31 import org.iotivity.base.PlatformConfig;\r
32 import org.iotivity.base.QualityOfService;\r
33 import org.iotivity.base.ServiceType;\r
34 import org.iotivity.service.ns.common.SyncInfo;\r
35 import org.iotivity.service.ns.consumer.ConsumerService;\r
36 import org.iotivity.service.ns.consumer.Provider;\r
37 \r
38 import java.util.HashMap;\r
39 \r
40 public class ConsumerProxy\r
41     implements ConsumerService.OnProviderDiscoveredListner,\r
42     ConsumerService.OnProviderChangedListener,\r
43     Provider.OnMessageReceivedListner, Provider.OnSyncInfoReceivedListner\r
44 {\r
45 \r
46     private static final String TAG = "NS_CONSUMER_PROXY";\r
47 \r
48     private Context mContext = null;\r
49     private ConsumerService consumerService = null;\r
50 \r
51     private Handler mHandler = null;\r
52 \r
53     private static final int PROVIDER_DISCOVERED = 1;\r
54     private static final int SUBSCRIPTION_ACCEPTED = 2;\r
55     private static final int MESSAGE_RECEIVED = 3;\r
56     private static final int SYNCINFO_RECEIVED = 4;\r
57 \r
58     public ConsumerProxy(Context context)\r
59     {\r
60         Log.i(TAG, "Create consumerProxy Instance");\r
61 \r
62         this.mContext = context;\r
63         consumerService = new ConsumerService();\r
64     }\r
65 \r
66     public void setHandler(Handler handler)\r
67     {\r
68         this.mHandler = handler;\r
69     }\r
70 \r
71     private void configurePlatform()\r
72     {\r
73 \r
74         PlatformConfig platformConfig = new PlatformConfig(\r
75             mContext,\r
76             ServiceType.IN_PROC,\r
77             ModeType.CLIENT_SERVER,\r
78             "0.0.0.0", // By setting to "0.0.0.0", it binds to all available interfaces\r
79             0,         // Uses randomly available port\r
80             QualityOfService.LOW\r
81         );\r
82 \r
83         Log.i(TAG, "Configuring platform.");\r
84         OcPlatform.Configure(platformConfig);\r
85         try\r
86         {\r
87             OcPlatform.stopPresence(); // Initialize OcPlatform\r
88         }\r
89         catch (Exception e)\r
90         {\r
91             Log.e(TAG, "Exception: stopping presence when configuration step: " + e);\r
92         }\r
93         Log.i(TAG, "Configuration done Successfully");\r
94     }\r
95 \r
96     public void startNotificationConsumer()\r
97     {\r
98         configurePlatform();\r
99         try\r
100         {\r
101             consumerService.Start(this, this);\r
102         }\r
103         catch (Exception e)\r
104         {\r
105             Log.e(TAG, "Exception: startNotificationConsumer : " + e);\r
106         }\r
107     }\r
108 \r
109     public void stopNotificationConsumer()\r
110     {\r
111         try\r
112         {\r
113             consumerService.Stop();\r
114         }\r
115         catch (Exception e)\r
116         {\r
117             Log.e(TAG, "Exception: stopNotificationConsumer : " + e);\r
118         }\r
119     }\r
120 \r
121     public void enableRemoteService(String serverAddress)\r
122     {\r
123         try\r
124         {\r
125             consumerService.EnableRemoteService(serverAddress);\r
126         }\r
127         catch (Exception e)\r
128         {\r
129             Log.e(TAG, "Exception: enableRemoteService : " + e);\r
130         }\r
131     }\r
132 \r
133     public void rescanProvider()\r
134     {\r
135         try\r
136         {\r
137             consumerService.RescanProvider();\r
138         }\r
139         catch (Exception e)\r
140         {\r
141             Log.e(TAG, "Exception: rescanProvider : " + e);\r
142         }\r
143     }\r
144 \r
145     public Provider getProvider(String providerId)\r
146     {\r
147         Provider provider = null;\r
148         try\r
149         {\r
150             provider = consumerService.GetProvider(providerId);\r
151         }\r
152         catch (Exception e)\r
153         {\r
154             Log.e(TAG, "Exception: getProvider : " + e);\r
155         }\r
156         return provider;\r
157     }\r
158 \r
159     public void subscribe(String providerId)\r
160     {\r
161         try\r
162         {\r
163             Provider provider = getProvider(providerId);\r
164             if (provider != null)\r
165                 provider.Subscribe();\r
166             else\r
167                 Log.e(TAG, "providerID is Null : ");\r
168         }\r
169         catch (Exception e)\r
170         {\r
171             Log.e(TAG, "Exception: Subscribe : " + e);\r
172         }\r
173     }\r
174 \r
175     public void unsubscribe(String providerId)\r
176     {\r
177         try\r
178         {\r
179             Provider provider = getProvider(providerId);\r
180             if (provider != null)\r
181                 provider.Unsubscribe();\r
182             else\r
183                 Log.e(TAG, "providerID is Null : ");\r
184         }\r
185         catch (Exception e)\r
186         {\r
187             Log.e(TAG, "Exception: Unsubscribe : " + e);\r
188         }\r
189     }\r
190 \r
191     public void sendSyncInfo(String providerId, long messageId, SyncInfo.SyncType syncType)\r
192     {\r
193         try\r
194         {\r
195             Provider provider = getProvider(providerId);\r
196             if (provider != null)\r
197                 provider.SendSyncInfo(messageId, syncType);\r
198             else\r
199                 Log.e(TAG, "providerID is Null : ");\r
200         }\r
201         catch (Exception e)\r
202         {\r
203             Log.e(TAG, "Exception: SendSyncInfo : " + e);\r
204         }\r
205     }\r
206 \r
207     public void setListener(String providerId)\r
208     {\r
209         try\r
210         {\r
211             Provider provider = getProvider(providerId);\r
212             if (provider != null)\r
213                 provider.SetListener(this, this);\r
214             else\r
215                 Log.e(TAG, "providerID is Null : ");\r
216         }\r
217         catch (Exception e)\r
218         {\r
219             Log.e(TAG, "Exception: SetListener : " + e);\r
220         }\r
221     }\r
222 \r
223     @Override\r
224     public void onProviderDiscovered(Provider provider)\r
225     {\r
226         Log.i(TAG, "onProviderDiscovered");\r
227 \r
228         Log.i(TAG, "Provider ID: " + provider.getProviderId() );\r
229         Message msg = mHandler.obtainMessage(PROVIDER_DISCOVERED, provider.getProviderId());\r
230         mHandler.sendMessage(msg);\r
231         subscribe(provider.getProviderId());\r
232     }\r
233 \r
234     @Override\r
235     public void onProviderChanged(Provider provider , ConsumerService.Response response)\r
236     {\r
237         Log.i(TAG, "onSubscriptionAccepted");\r
238 \r
239         Log.i(TAG, "Provider ID: " + provider.getProviderId() );\r
240         Message msg = mHandler.obtainMessage(SUBSCRIPTION_ACCEPTED, provider.getProviderId());\r
241         mHandler.sendMessage(msg);\r
242         setListener(provider.getProviderId());\r
243     }\r
244 \r
245     @Override\r
246     public void onMessageReceived(org.iotivity.service.ns.common.Message message)\r
247     {\r
248         Log.i(TAG, "onMessageReceived");\r
249 \r
250         Log.i(TAG, "Message Id: " + message.getMessageId());\r
251         Log.i(TAG, "Message title: " + message.getTitle());\r
252         Log.i(TAG, "Message Content: " + message.getContentText());\r
253         Log.i(TAG, "Message Source: " + message.getSourceName());\r
254 \r
255         Message msg = mHandler.obtainMessage(MESSAGE_RECEIVED,\r
256                                              "Message Id: " + message.getMessageId() +\r
257                                              " / Message title: " + message.getTitle() +\r
258                                              " / Message Content: " + message.getContentText() +\r
259                                              " / Message Source: " + message.getSourceName() );\r
260         mHandler.sendMessage(msg);\r
261     }\r
262 \r
263     @Override\r
264     public void onSyncInfoReceived(SyncInfo sync)\r
265     {\r
266         Log.i(TAG, "onSyncInfoReceived");\r
267 \r
268         Log.i(TAG, "Sync Id: " + sync.getMessageId());\r
269         Log.i(TAG, "Sync STATE: " + sync.getState());\r
270         Message msg = mHandler.obtainMessage(SYNCINFO_RECEIVED,\r
271                                              "Sync Id: " + sync.getMessageId() +\r
272                                              " / Sync STATE: " + sync.getState());\r
273         mHandler.sendMessage(msg);\r
274     }\r
275 }\r