Merge branch 'notification-service'
[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.app.Notification;\r
22 import android.app.NotificationManager;\r
23 import android.content.Intent;\r
24 import android.os.Bundle;\r
25 import android.os.Handler;\r
26 import android.os.Message;\r
27 import android.support.v7.app.AppCompatActivity;\r
28 import android.util.Log;\r
29 import android.view.View;\r
30 import android.widget.Button;\r
31 import android.widget.EditText;\r
32 import android.widget.TextView;\r
33 import android.widget.Toast;\r
34 \r
35 public class MainActivity extends AppCompatActivity\r
36 {\r
37 \r
38     private final String TAG = "NS_MAIN_ACTIVITY";\r
39 \r
40     private Button btnStart;\r
41     private Button btnStop;\r
42     private Button btnRescan;\r
43     private static TextView TvLog;\r
44 \r
45     private boolean isStarted = false;\r
46     private String consumerId;\r
47 \r
48     private ConsumerProxy mConsumerProxy = null;\r
49 \r
50     private static final int PROVIDER_DISCOVERED = 1;\r
51     private static final int SUBSCRIPTION_ACCEPTED = 2;\r
52     private static final int MESSAGE_RECEIVED = 3;\r
53     private static final int SYNCINFO_RECEIVED = 4;\r
54 \r
55     public static Handler mHandler = new Handler()\r
56     {\r
57         @Override\r
58         public void handleMessage(Message msg)\r
59         {\r
60             switch (msg.what)\r
61             {\r
62                 case PROVIDER_DISCOVERED:\r
63                     {\r
64                         String providerId = (String) msg.obj;\r
65                         if (providerId != null)\r
66                         {\r
67                             TvLog.append("Discovered : ProviderID: " + providerId + "\n");\r
68                         }\r
69                         break;\r
70                     }\r
71                 case SUBSCRIPTION_ACCEPTED:\r
72                     {\r
73                         String providerId = (String) msg.obj;\r
74                         if (providerId != null)\r
75                         {\r
76                             TvLog.append("Subscription Accepted : ProviderID: " + providerId + "\n");\r
77                         }\r
78                         break;\r
79                     }\r
80                 case MESSAGE_RECEIVED:\r
81                     {\r
82                         String message = (String) msg.obj;\r
83                         if (message != null)\r
84                         {\r
85                             TvLog.append("Message Received : " + message + "\n");\r
86                         }\r
87                         break;\r
88                     }\r
89                 case SYNCINFO_RECEIVED:\r
90                     {\r
91                         String sync = (String) msg.obj;\r
92                         if (sync != null)\r
93                         {\r
94                             TvLog.append("SyncInfo Received : " + sync + "\n");\r
95                         }\r
96                         break;\r
97                     }\r
98                 default:\r
99                     break;\r
100             }\r
101         }\r
102     };\r
103 \r
104     public void showToast(final String toast)\r
105     {\r
106         runOnUiThread(new Runnable()\r
107         {\r
108             @Override\r
109             public void run()\r
110             {\r
111                 Toast.makeText(getApplicationContext(), toast, Toast.LENGTH_SHORT).show();\r
112             }\r
113         });\r
114     }\r
115 \r
116     @Override\r
117     protected void onCreate(Bundle savedInstanceState)\r
118     {\r
119         super.onCreate(savedInstanceState);\r
120         setContentView(R.layout.activity_main);\r
121 \r
122         btnStart = (Button) findViewById(R.id.BtnStart);\r
123         btnStop = (Button) findViewById(R.id.BtnStop);\r
124         btnRescan = (Button) findViewById(R.id.BtnRescan);\r
125 \r
126         TvLog = (TextView) findViewById(R.id.TvLog);\r
127 \r
128         btnStart.setOnClickListener(mClickListener);\r
129         btnStop.setOnClickListener(mClickListener);\r
130         btnRescan.setOnClickListener(mClickListener);\r
131 \r
132         mConsumerProxy = new ConsumerProxy(getApplicationContext());\r
133         mConsumerProxy.setHandler(mHandler);\r
134     }\r
135 \r
136     @Override\r
137     protected void onDestroy()\r
138     {\r
139         if(isStarted)\r
140             mConsumerProxy.stopNotificationConsumer();\r
141         super.onDestroy();\r
142     }\r
143 \r
144     public ConsumerProxy getProviderProxy()\r
145     {\r
146         return mConsumerProxy;\r
147     }\r
148 \r
149     Button.OnClickListener mClickListener = new View.OnClickListener()\r
150     {\r
151         public void onClick(View v)\r
152         {\r
153             switch (v.getId())\r
154             {\r
155 \r
156                 case R.id.BtnStart:\r
157                     {\r
158                         if (isStarted == false)\r
159                         {\r
160                             Log.i(TAG, "Start NS Consumer Service");\r
161 \r
162                             TvLog.setText("Start NS-Consumer\n");\r
163                             mConsumerProxy.startNotificationConsumer();\r
164                             isStarted = true;\r
165                         }\r
166                         else\r
167                         {\r
168                             Log.e(TAG, "NS Consumer Service had already started");\r
169                         }\r
170                     }\r
171                     break;\r
172 \r
173                 case R.id.BtnStop:\r
174                     {\r
175                         if (isStarted == false)\r
176                         {\r
177                             Log.e(TAG, "Fail to stop service");\r
178                             break;\r
179                         }\r
180 \r
181                         mConsumerProxy.stopNotificationConsumer();\r
182                         isStarted = false;\r
183 \r
184                         TvLog.append("Stop NS-Consumer\n");\r
185                     }\r
186                     break;\r
187                 case R.id.BtnRescan:\r
188                     {\r
189                         if (isStarted == false)\r
190                         {\r
191                             Log.e(TAG, "Fail to rescan");\r
192                             break;\r
193                         }\r
194 \r
195                         mConsumerProxy.rescanProvider();\r
196                         TvLog.append("Rescan NS-Consumer\n");\r
197                     }\r
198                     break;\r
199 \r
200             }\r
201         }\r
202     };\r
203 }\r