Remove unused pkg dependancy
[platform/upstream/iotivity.git] / service / notification / examples / android / NotiConsumerExample / app / src / main / java / com / sec / noticonsumerexample / MainActivity.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.os.Bundle;\r
22 import android.os.Handler;\r
23 import android.os.Message;\r
24 import android.app.Activity;\r
25 import android.util.Log;\r
26 import android.view.View;\r
27 import android.widget.Button;\r
28 import android.widget.TextView;\r
29 import android.widget.Toast;\r
30 \r
31 import org.iotivity.service.ns.common.TopicsList;\r
32 import org.iotivity.service.ns.common.Topic;\r
33 \r
34 public class MainActivity extends Activity\r
35 {\r
36     private final String TAG = "NS_MAIN_ACTIVITY";\r
37 \r
38     private Button btnStart;\r
39     private Button btnStop;\r
40     private Button btnRescan;\r
41     private Button btnEnableRemoteService;\r
42     private Button btnGetTopicList;\r
43     private Button btnUpdateTopicList;\r
44     private Button btnClearLog;\r
45     private static TextView TvLog;\r
46 \r
47     private boolean isStarted = false;\r
48 \r
49     private ConsumerSample mConsumerSample = null;\r
50 \r
51     private static final int PROVIDER_DISCOVERED = 1;\r
52     private static final int STATE_CHANGED = 2;\r
53     private static final int MESSAGE_RECEIVED = 3;\r
54     private static final int SYNCINFO_RECEIVED = 4;\r
55     private static final int TOPICS_RECEIVED = 5;\r
56 \r
57     public static Handler mHandler = new Handler()\r
58     {\r
59         @Override\r
60         public void handleMessage(Message msg)\r
61         {\r
62             switch (msg.what)\r
63             {\r
64                 case PROVIDER_DISCOVERED:\r
65                     {\r
66                         String providerId = (String) msg.obj;\r
67                         if (providerId != null)\r
68                         {\r
69                             TvLog.append( providerId + "\n");\r
70                         }\r
71                         break;\r
72                     }\r
73                 case STATE_CHANGED:\r
74                     {\r
75                         String state = (String) msg.obj;\r
76                         if (state != null)\r
77                         {\r
78                             TvLog.append( state + "\n");\r
79                         }\r
80                         break;\r
81                     }\r
82                 case MESSAGE_RECEIVED:\r
83                     {\r
84                         String message = (String) msg.obj;\r
85                         if (message != null)\r
86                         {\r
87                             TvLog.append( message + "\n");\r
88                         }\r
89                         break;\r
90                     }\r
91                 case SYNCINFO_RECEIVED:\r
92                     {\r
93                         String sync = (String) msg.obj;\r
94                         if (sync != null)\r
95                         {\r
96                             TvLog.append( sync + "\n");\r
97                         }\r
98                         break;\r
99                     }\r
100                 case TOPICS_RECEIVED:\r
101                     {\r
102                         String topicList = (String) msg.obj;\r
103                         if (topicList != null)\r
104                         {\r
105                             TvLog.append( topicList + "\n");\r
106                         }\r
107                         break;\r
108                     }\r
109                 default:\r
110                     break;\r
111             }\r
112         }\r
113     };\r
114 \r
115     public void showToast(final String toast)\r
116     {\r
117         runOnUiThread(new Runnable()\r
118         {\r
119             @Override\r
120             public void run()\r
121             {\r
122                 Toast.makeText(getApplicationContext(), toast, Toast.LENGTH_SHORT).show();\r
123             }\r
124         });\r
125     }\r
126 \r
127     @Override\r
128     protected void onCreate(Bundle savedInstanceState)\r
129     {\r
130         super.onCreate(savedInstanceState);\r
131         setContentView(R.layout.activity_main);\r
132 \r
133         btnStart = (Button) findViewById(R.id.BtnStart);\r
134         btnStop = (Button) findViewById(R.id.BtnStop);\r
135         btnRescan = (Button) findViewById(R.id.BtnRescan);\r
136         btnEnableRemoteService = (Button) findViewById(R.id.BtnEnableRemoteService);\r
137         btnGetTopicList = (Button) findViewById(R.id.BtnGetTopicList);\r
138         btnUpdateTopicList = (Button) findViewById(R.id.BtnUpdateTopicList);\r
139         btnClearLog = (Button) findViewById(R.id.BtnClearLog);\r
140 \r
141         TvLog = (TextView) findViewById(R.id.TvLog);\r
142 \r
143         btnStart.setOnClickListener(mClickListener);\r
144         btnStop.setOnClickListener(mClickListener);\r
145         btnRescan.setOnClickListener(mClickListener);\r
146         btnEnableRemoteService.setOnClickListener(mClickListener);\r
147         btnGetTopicList.setOnClickListener(mClickListener);\r
148         btnUpdateTopicList.setOnClickListener(mClickListener);\r
149         btnClearLog.setOnClickListener(mClickListener);\r
150 \r
151         mConsumerSample = new ConsumerSample(getApplicationContext());\r
152         mConsumerSample.setHandler(mHandler);\r
153     }\r
154 \r
155     @Override\r
156     protected void onDestroy()\r
157     {\r
158         if (isStarted)\r
159             mConsumerSample.stopNotificationConsumer();\r
160         super.onDestroy();\r
161     }\r
162 \r
163     Button.OnClickListener mClickListener = new View.OnClickListener()\r
164     {\r
165         public void onClick(View v)\r
166         {\r
167             switch (v.getId())\r
168             {\r
169                 case R.id.BtnStart:\r
170                     {\r
171                         if (!isStarted)\r
172                         {\r
173                             Log.i(TAG, "Start NS Consumer Service");\r
174 \r
175                             TvLog.setText("Start NS-Consumer\n");\r
176                             mConsumerSample.startNotificationConsumer();\r
177                             isStarted = true;\r
178                         }\r
179                         else\r
180                         {\r
181                             Log.e(TAG, "NS Consumer Service has already started");\r
182                             showToast("Error : Service has already started");\r
183                         }\r
184                     }\r
185                     break;\r
186 \r
187                 case R.id.BtnStop:\r
188                     {\r
189                         if (!isStarted)\r
190                         {\r
191                             Log.e(TAG, "Fail to stop service. Service has not been started");\r
192                             showToast("Error : Service has not been started");\r
193                             break;\r
194                         }\r
195                         TvLog.append("Stop NS-Consumer\n");\r
196                         mConsumerSample.stopNotificationConsumer();\r
197                         isStarted = false;\r
198                     }\r
199                     break;\r
200                 case R.id.BtnRescan:\r
201                     {\r
202                         if (!isStarted)\r
203                         {\r
204                             Log.e(TAG, "Fail to rescan. Service has not been started");\r
205                             showToast("Error : Service has not been started");\r
206                             break;\r
207                         }\r
208                         TvLog.append("Rescan NS-Consumer\n");\r
209                         mConsumerSample.rescanProvider();\r
210                     }\r
211                     break;\r
212                 case R.id.BtnEnableRemoteService:\r
213                     {\r
214                         if (!isStarted)\r
215                         {\r
216                             Log.e(TAG, "Fail to Enable RemoteService. Service has not been started");\r
217                             showToast("Error : Service has not been started");\r
218                             break;\r
219                         }\r
220                         TvLog.append("EnableRemoteService NS-Consumer\n");\r
221 \r
222                         //TODO: Update to read the serverAddress from UI\r
223                         String serverAddress = new String();\r
224                         mConsumerSample.enableRemoteService(serverAddress);\r
225                     }\r
226                     break;\r
227                 case R.id.BtnGetTopicList:\r
228                     {\r
229                         if (!isStarted)\r
230                         {\r
231                             Log.e(TAG, "Fail to GetTopicList. Service has not been started");\r
232                             showToast("Error : Service has not been started");\r
233                             break;\r
234                         }\r
235                         TvLog.append("GetTopicList NS-Consumer\n");\r
236                         mConsumerSample.getTopicsList();\r
237                     }\r
238                     break;\r
239                 case R.id.BtnUpdateTopicList:\r
240                     {\r
241                         if (!isStarted)\r
242                         {\r
243                             Log.e(TAG, "Fail to UpdateTopicList. Service has not been started");\r
244                             showToast("Error : Service has not been started");\r
245                             break;\r
246                         }\r
247                         if(mConsumerSample.getAcceptor())\r
248                         {\r
249                             Log.e(TAG, "Operation Not Allowed. ProviderService Acceptor is not Consumer");\r
250                             showToast("Operation Not Allowed. ProviderService Acceptor is not Consumer");\r
251                             break;\r
252                         }\r
253                         TvLog.append("UpdateTopicList NS-Consumer\n");\r
254 \r
255                         TopicsList topicList = new TopicsList();\r
256                         topicList.addTopic("OCF_TOPIC1", Topic.TopicState.SUBSCRIBED);\r
257                         topicList.addTopic("OCF_TOPIC2", Topic.TopicState.SUBSCRIBED);\r
258                         topicList.addTopic("OCF_TOPIC3", Topic.TopicState.UNSUBSCRIBED);\r
259 \r
260                         mConsumerSample.updateTopicList(topicList);\r
261                     }\r
262                     break;\r
263                 case R.id.BtnClearLog:\r
264                 {\r
265                     TvLog.setText("");\r
266                 }\r
267                 break;\r
268             }\r
269         }\r
270     };\r
271 }\r