Added Consumer Sample app changes for Notification.
authorabitha.s <abitha.s@samsung.com>
Mon, 12 Sep 2016 12:08:18 +0000 (17:38 +0530)
committerUze Choi <uzchoi@samsung.com>
Tue, 13 Sep 2016 04:51:33 +0000 (04:51 +0000)
1. Updated to call latest Android APIs
2. Added Topics API calls

Change-Id: Id2ceab934c4a1527911b5e25e6a4f522d8fed9cc
Signed-off-by: abitha.s <abitha.s@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/11691
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: Uze Choi <uzchoi@samsung.com>
service/notification/examples/android/NotiConsumerExample/app/build.gradle
service/notification/examples/android/NotiConsumerExample/app/src/main/java/com/sec/noticonsumerexample/ConsumerProxy.java
service/notification/examples/android/NotiConsumerExample/app/src/main/java/com/sec/noticonsumerexample/MainActivity.java
service/notification/examples/android/NotiConsumerExample/app/src/main/res/layout/activity_main.xml
service/notification/examples/android/NotiConsumerExample/iotivity-armeabi-notification-service-release/build.gradle [moved from service/notification/examples/android/NotiConsumerExample/iotivity-armeabi-notification-service-debug/build.gradle with 84% similarity]
service/notification/examples/android/NotiConsumerExample/iotivity-base-armeabi-debug/build.gradle [deleted file]
service/notification/examples/android/NotiConsumerExample/iotivity-base-armeabi-release/build.gradle [new file with mode: 0755]
service/notification/examples/android/NotiConsumerExample/settings.gradle

index 373dbf2..9023618 100755 (executable)
@@ -16,6 +16,6 @@ android {
 dependencies {\r
     compile fileTree(include: ['*.jar'], dir: 'libs')\r
     compile 'com.android.support:appcompat-v7:23.0.1'\r
-    compile project(':iotivity-base-armeabi-debug')\r
-    compile project(':iotivity-armeabi-notification-service-debug')\r
+    compile project(':iotivity-base-armeabi-release')\r
+    compile project(':iotivity-armeabi-notification-service-release')\r
 }\r
index eb0a6cb..175356d 100755 (executable)
@@ -31,29 +31,33 @@ import org.iotivity.base.OcResourceHandle;
 import org.iotivity.base.PlatformConfig;\r
 import org.iotivity.base.QualityOfService;\r
 import org.iotivity.base.ServiceType;\r
+import org.iotivity.service.ns.common.NSException;\r
 import org.iotivity.service.ns.common.SyncInfo;\r
+import org.iotivity.service.ns.common.TopicsList;\r
 import org.iotivity.service.ns.consumer.ConsumerService;\r
 import org.iotivity.service.ns.consumer.Provider;\r
 \r
 import java.util.HashMap;\r
 \r
 public class ConsumerProxy\r
-    implements ConsumerService.OnProviderDiscoveredListner,\r
-    ConsumerService.OnProviderChangedListener,\r
+    implements ConsumerService.OnProviderDiscoveredListener,\r
+    Provider.OnProviderStateListener,\r
     Provider.OnMessageReceivedListner, Provider.OnSyncInfoReceivedListner\r
 {\r
-\r
     private static final String TAG = "NS_CONSUMER_PROXY";\r
 \r
     private Context mContext = null;\r
     private ConsumerService consumerService = null;\r
+    private boolean mAcceptor = false;\r
+    private Provider mProvider = null;\r
 \r
     private Handler mHandler = null;\r
 \r
     private static final int PROVIDER_DISCOVERED = 1;\r
-    private static final int SUBSCRIPTION_ACCEPTED = 2;\r
+    private static final int STATE_CHANGED = 2;\r
     private static final int MESSAGE_RECEIVED = 3;\r
     private static final int SYNCINFO_RECEIVED = 4;\r
+    private static final int TOPICS_RECEIVED = 5;\r
 \r
     public ConsumerProxy(Context context)\r
     {\r
@@ -68,6 +72,11 @@ public class ConsumerProxy
         this.mHandler = handler;\r
     }\r
 \r
+    public boolean getAcceptor()\r
+    {\r
+        return mAcceptor;\r
+    }\r
+\r
     private void configurePlatform()\r
     {\r
 \r
@@ -98,7 +107,7 @@ public class ConsumerProxy
         configurePlatform();\r
         try\r
         {\r
-            consumerService.Start(this, this);\r
+            consumerService.start(this);\r
         }\r
         catch (Exception e)\r
         {\r
@@ -110,7 +119,8 @@ public class ConsumerProxy
     {\r
         try\r
         {\r
-            consumerService.Stop();\r
+            consumerService.stop();\r
+            mProvider = null;\r
         }\r
         catch (Exception e)\r
         {\r
@@ -122,7 +132,7 @@ public class ConsumerProxy
     {\r
         try\r
         {\r
-            consumerService.EnableRemoteService(serverAddress);\r
+            consumerService.enableRemoteService(serverAddress);\r
         }\r
         catch (Exception e)\r
         {\r
@@ -134,112 +144,94 @@ public class ConsumerProxy
     {\r
         try\r
         {\r
-            consumerService.RescanProvider();\r
+            consumerService.rescanProvider();\r
         }\r
         catch (Exception e)\r
         {\r
             Log.e(TAG, "Exception: rescanProvider : " + e);\r
         }\r
     }\r
-\r
-    public Provider getProvider(String providerId)\r
-    {\r
-        Provider provider = null;\r
-        try\r
-        {\r
-            provider = consumerService.GetProvider(providerId);\r
-        }\r
-        catch (Exception e)\r
-        {\r
-            Log.e(TAG, "Exception: getProvider : " + e);\r
-        }\r
-        return provider;\r
-    }\r
-\r
-    public void subscribe(String providerId)\r
+    public void getTopicsList()\r
     {\r
-        try\r
+        if (mProvider != null)\r
         {\r
-            Provider provider = getProvider(providerId);\r
-            if (provider != null)\r
-                provider.Subscribe();\r
-            else\r
-                Log.e(TAG, "providerID is Null : ");\r
+            try\r
+            {\r
+                TopicsList topicsList = mProvider.getTopicList();\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                Log.e(TAG, "Exception: getTopicsList : " + e);\r
+            }\r
         }\r
-        catch (Exception e)\r
+        else\r
         {\r
-            Log.e(TAG, "Exception: Subscribe : " + e);\r
+            Log.e(TAG, "getTopicsList Provider NULL");\r
         }\r
     }\r
-\r
-    public void unsubscribe(String providerId)\r
+    public void updateTopicList(TopicsList topicsList)\r
     {\r
-        try\r
+        if (mProvider != null)\r
         {\r
-            Provider provider = getProvider(providerId);\r
-            if (provider != null)\r
-                provider.Unsubscribe();\r
-            else\r
-                Log.e(TAG, "providerID is Null : ");\r
+            try\r
+            {\r
+                mProvider.updateTopicList(topicsList);\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                Log.e(TAG, "Exception: updateTopicList : " + e);\r
+            }\r
         }\r
-        catch (Exception e)\r
+        else\r
         {\r
-            Log.e(TAG, "Exception: Unsubscribe : " + e);\r
+            Log.e(TAG, "updateTopicList Provider NULL");\r
         }\r
     }\r
-\r
-    public void sendSyncInfo(String providerId, long messageId, SyncInfo.SyncType syncType)\r
+    @Override\r
+    public void onProviderDiscovered(Provider provider)\r
     {\r
-        try\r
-        {\r
-            Provider provider = getProvider(providerId);\r
-            if (provider != null)\r
-                provider.SendSyncInfo(messageId, syncType);\r
-            else\r
-                Log.e(TAG, "providerID is Null : ");\r
-        }\r
-        catch (Exception e)\r
+        Log.i(TAG, "onProviderDiscovered");\r
+        if (provider == null)\r
         {\r
-            Log.e(TAG, "Exception: SendSyncInfo : " + e);\r
+            Log.e(TAG, "providerID is Null  ");\r
+            return;\r
         }\r
-    }\r
-\r
-    public void setListener(String providerId)\r
-    {\r
+        mProvider = provider;\r
+        Log.i(TAG, "Provider ID: " + provider.getProviderId() );\r
+        Message msg = mHandler.obtainMessage(PROVIDER_DISCOVERED,\r
+                                             "Provider Discovered Id: " + provider.getProviderId());\r
+        mHandler.sendMessage(msg);\r
         try\r
         {\r
-            Provider provider = getProvider(providerId);\r
-            if (provider != null)\r
-                provider.SetListener(this, this);\r
+            Log.i(TAG, "setListeners to Discovered Provider");\r
+            provider.setListener(this, this, this);\r
+            Log.i(TAG, "setListeners done");\r
+            if (! provider.isSubscribed())\r
+            {\r
+                Log.i(TAG, "Provider not subscribed. Acceptor is Consumer");\r
+                mAcceptor = false;\r
+                provider.subscribe();\r
+            }\r
             else\r
-                Log.e(TAG, "providerID is Null : ");\r
+            {\r
+                Log.i(TAG, "Provider is already subscribed. Acceptor is Provider");\r
+                mAcceptor = true;\r
+            }\r
         }\r
         catch (Exception e)\r
         {\r
-            Log.e(TAG, "Exception: SetListener : " + e);\r
+            Log.e(TAG, "Exception : " + e);\r
         }\r
     }\r
 \r
     @Override\r
-    public void onProviderDiscovered(Provider provider)\r
+    public void onProviderStateReceived(Provider.ProviderState state)\r
     {\r
-        Log.i(TAG, "onProviderDiscovered");\r
+        Log.i(TAG, "onProviderStateReceived");\r
 \r
-        Log.i(TAG, "Provider ID: " + provider.getProviderId() );\r
-        Message msg = mHandler.obtainMessage(PROVIDER_DISCOVERED, provider.getProviderId());\r
+        Log.i(TAG, "Provider state: " + state );\r
+        Message msg = mHandler.obtainMessage(STATE_CHANGED, "Provider state: " + state);\r
         mHandler.sendMessage(msg);\r
-        subscribe(provider.getProviderId());\r
-    }\r
-\r
-    @Override\r
-    public void onProviderChanged(Provider provider , ConsumerService.Response response)\r
-    {\r
-        Log.i(TAG, "onSubscriptionAccepted");\r
-\r
-        Log.i(TAG, "Provider ID: " + provider.getProviderId() );\r
-        Message msg = mHandler.obtainMessage(SUBSCRIPTION_ACCEPTED, provider.getProviderId());\r
-        mHandler.sendMessage(msg);\r
-        setListener(provider.getProviderId());\r
     }\r
 \r
     @Override\r
@@ -250,14 +242,25 @@ public class ConsumerProxy
         Log.i(TAG, "Message Id: " + message.getMessageId());\r
         Log.i(TAG, "Message title: " + message.getTitle());\r
         Log.i(TAG, "Message Content: " + message.getContentText());\r
+        Log.i(TAG, "Message Topic: " + message.getTopic());\r
         Log.i(TAG, "Message Source: " + message.getSourceName());\r
 \r
         Message msg = mHandler.obtainMessage(MESSAGE_RECEIVED,\r
-                                             "Message Id: " + message.getMessageId() +\r
-                                             " / Message title: " + message.getTitle() +\r
-                                             " / Message Content: " + message.getContentText() +\r
-                                             " / Message Source: " + message.getSourceName() );\r
+                                             "Message Id: " + message.getMessageId() + "\n" +\r
+                                             "Message title: " + message.getTitle() + "\n" +\r
+                                             "Message Content: " + message.getContentText() + "\n" +\r
+                                             "Message Topic: " + message.getTopic() + "\n" +\r
+                                             "Message Source: " + message.getSourceName() );\r
         mHandler.sendMessage(msg);\r
+        try\r
+        {\r
+            Log.i(TAG, "send READ syncInfo");\r
+            mProvider.sendSyncInfo(message.getMessageId(), SyncInfo.SyncType.READ);\r
+        }\r
+        catch (Exception e)\r
+        {\r
+            Log.e(TAG, "Exception : " + e);\r
+        }\r
     }\r
 \r
     @Override\r
@@ -268,8 +271,8 @@ public class ConsumerProxy
         Log.i(TAG, "Sync Id: " + sync.getMessageId());\r
         Log.i(TAG, "Sync STATE: " + sync.getState());\r
         Message msg = mHandler.obtainMessage(SYNCINFO_RECEIVED,\r
-                                             "Sync Id: " + sync.getMessageId() +\r
-                                             " / Sync STATE: " + sync.getState());\r
+                                             "Sync Id: " + sync.getMessageId() + "\n" +\r
+                                             "Sync STATE: " + sync.getState());\r
         mHandler.sendMessage(msg);\r
     }\r
 }\r
index 01e2a99..7d9e463 100755 (executable)
@@ -32,14 +32,18 @@ import android.widget.EditText;
 import android.widget.TextView;\r
 import android.widget.Toast;\r
 \r
+import org.iotivity.service.ns.common.TopicsList;\r
+\r
 public class MainActivity extends AppCompatActivity\r
 {\r
-\r
     private final String TAG = "NS_MAIN_ACTIVITY";\r
 \r
     private Button btnStart;\r
     private Button btnStop;\r
     private Button btnRescan;\r
+    private Button btnEnableRemoteService;\r
+    private Button btnGetTopicList;\r
+    private Button btnUpdateTopicList;\r
     private static TextView TvLog;\r
 \r
     private boolean isStarted = false;\r
@@ -48,9 +52,10 @@ public class MainActivity extends AppCompatActivity
     private ConsumerProxy mConsumerProxy = null;\r
 \r
     private static final int PROVIDER_DISCOVERED = 1;\r
-    private static final int SUBSCRIPTION_ACCEPTED = 2;\r
+    private static final int STATE_CHANGED = 2;\r
     private static final int MESSAGE_RECEIVED = 3;\r
     private static final int SYNCINFO_RECEIVED = 4;\r
+    private static final int TOPICS_RECEIVED = 5;\r
 \r
     public static Handler mHandler = new Handler()\r
     {\r
@@ -64,16 +69,16 @@ public class MainActivity extends AppCompatActivity
                         String providerId = (String) msg.obj;\r
                         if (providerId != null)\r
                         {\r
-                            TvLog.append("Discovered : ProviderID: " + providerId + "\n");\r
+                            TvLog.append( providerId + "\n");\r
                         }\r
                         break;\r
                     }\r
-                case SUBSCRIPTION_ACCEPTED:\r
+                case STATE_CHANGED:\r
                     {\r
-                        String providerId = (String) msg.obj;\r
-                        if (providerId != null)\r
+                        String state = (String) msg.obj;\r
+                        if (state != null)\r
                         {\r
-                            TvLog.append("Subscription Accepted : ProviderID: " + providerId + "\n");\r
+                            TvLog.append( state + "\n");\r
                         }\r
                         break;\r
                     }\r
@@ -82,7 +87,7 @@ public class MainActivity extends AppCompatActivity
                         String message = (String) msg.obj;\r
                         if (message != null)\r
                         {\r
-                            TvLog.append("Message Received : " + message + "\n");\r
+                            TvLog.append( message + "\n");\r
                         }\r
                         break;\r
                     }\r
@@ -91,7 +96,7 @@ public class MainActivity extends AppCompatActivity
                         String sync = (String) msg.obj;\r
                         if (sync != null)\r
                         {\r
-                            TvLog.append("SyncInfo Received : " + sync + "\n");\r
+                            TvLog.append( sync + "\n");\r
                         }\r
                         break;\r
                     }\r
@@ -122,12 +127,18 @@ public class MainActivity extends AppCompatActivity
         btnStart = (Button) findViewById(R.id.BtnStart);\r
         btnStop = (Button) findViewById(R.id.BtnStop);\r
         btnRescan = (Button) findViewById(R.id.BtnRescan);\r
+        btnEnableRemoteService = (Button) findViewById(R.id.BtnEnableRemoteService);\r
+        btnGetTopicList = (Button) findViewById(R.id.BtnGetTopicList);\r
+        btnUpdateTopicList = (Button) findViewById(R.id.BtnUpdateTopicList);\r
 \r
         TvLog = (TextView) findViewById(R.id.TvLog);\r
 \r
         btnStart.setOnClickListener(mClickListener);\r
         btnStop.setOnClickListener(mClickListener);\r
         btnRescan.setOnClickListener(mClickListener);\r
+        btnEnableRemoteService.setOnClickListener(mClickListener);\r
+        btnGetTopicList.setOnClickListener(mClickListener);\r
+        btnUpdateTopicList.setOnClickListener(mClickListener);\r
 \r
         mConsumerProxy = new ConsumerProxy(getApplicationContext());\r
         mConsumerProxy.setHandler(mHandler);\r
@@ -136,7 +147,7 @@ public class MainActivity extends AppCompatActivity
     @Override\r
     protected void onDestroy()\r
     {\r
-        if(isStarted)\r
+        if (isStarted)\r
             mConsumerProxy.stopNotificationConsumer();\r
         super.onDestroy();\r
     }\r
@@ -152,7 +163,6 @@ public class MainActivity extends AppCompatActivity
         {\r
             switch (v.getId())\r
             {\r
-\r
                 case R.id.BtnStart:\r
                     {\r
                         if (isStarted == false)\r
@@ -174,29 +184,65 @@ public class MainActivity extends AppCompatActivity
                     {\r
                         if (isStarted == false)\r
                         {\r
-                            Log.e(TAG, "Fail to stop service");\r
+                            Log.e(TAG, "Fail to stop service. Service has not been started");\r
                             break;\r
                         }\r
-\r
+                        TvLog.append("Stop NS-Consumer\n");\r
                         mConsumerProxy.stopNotificationConsumer();\r
                         isStarted = false;\r
-\r
-                        TvLog.append("Stop NS-Consumer\n");\r
                     }\r
                     break;\r
                 case R.id.BtnRescan:\r
                     {\r
                         if (isStarted == false)\r
                         {\r
-                            Log.e(TAG, "Fail to rescan");\r
+                            Log.e(TAG, "Fail to rescan. Service has not been started");\r
                             break;\r
                         }\r
 \r
-                        mConsumerProxy.rescanProvider();\r
                         TvLog.append("Rescan NS-Consumer\n");\r
+                        mConsumerProxy.rescanProvider();\r
                     }\r
                     break;\r
+                case R.id.BtnEnableRemoteService:\r
+                    {\r
+                        if (isStarted == false)\r
+                        {\r
+                            Log.e(TAG, "Fail to Enable RemoteService. Service has not been started");\r
+                            break;\r
+                        }\r
+                        TvLog.append("EnableRemoteService NS-Consumer\n");\r
 \r
+                        //TODO: Update to read the serverAddress from UI\r
+                        String serverAddress = new String();\r
+                        mConsumerProxy.enableRemoteService(serverAddress);\r
+                    }\r
+                    break;\r
+                case R.id.BtnGetTopicList:\r
+                    {\r
+                        if (isStarted == false)\r
+                        {\r
+                            Log.e(TAG, "Fail to GetTopicList. Service has not been started");\r
+                            break;\r
+                        }\r
+                        TvLog.append("GetTopicList NS-Consumer\n");\r
+                        mConsumerProxy.getTopicsList();\r
+                    }\r
+                    break;\r
+                case R.id.BtnUpdateTopicList:\r
+                    {\r
+                        if (isStarted == false)\r
+                        {\r
+                            Log.e(TAG, "Fail to UpdateTopicList. Service has not been started");\r
+                            break;\r
+                        }\r
+                        TvLog.append("UpdateTopicList NS-Consumer\n");\r
+\r
+                        //TODO: Update to read the TopicsList from UI\r
+                        TopicsList topicsList = new TopicsList();\r
+                        mConsumerProxy.updateTopicList(topicsList);\r
+                    }\r
+                    break;\r
             }\r
         }\r
     };\r
index 5cc23da..2a93adc 100755 (executable)
                 android:layout_width="match_parent"\r
                 android:id="@+id/BtnRescan"\r
                 android:text="RESCAN"/>\r
+            <Button\r
+                android:layout_gravity="center_vertical|center_horizontal"\r
+                android:layout_height="0dp"\r
+                android:layout_width="match_parent"\r
+                android:id="@+id/BtnEnableRemoteService"\r
+                android:text="Enable Remote Service"/>\r
+            <Button\r
+                android:layout_gravity="center_vertical|center_horizontal"\r
+                android:layout_height="0dp"\r
+                android:layout_width="match_parent"\r
+                android:id="@+id/BtnGetTopicList"\r
+                android:text="Get TopicList"/>\r
+            <Button\r
+                android:layout_gravity="center_vertical|center_horizontal"\r
+                android:layout_height="0dp"\r
+                android:layout_width="match_parent"\r
+                android:id="@+id/BtnUpdateTopicList"\r
+                android:text="Update TopicList"/>\r
         </LinearLayout>\r
 \r
         <LinearLayout\r
diff --git a/service/notification/examples/android/NotiConsumerExample/iotivity-base-armeabi-debug/build.gradle b/service/notification/examples/android/NotiConsumerExample/iotivity-base-armeabi-debug/build.gradle
deleted file mode 100755 (executable)
index e09bcd6..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-configurations.maybeCreate("default")
-artifacts.add("default", file('iotivity-base-armeabi-debug.aar'))
\ No newline at end of file
diff --git a/service/notification/examples/android/NotiConsumerExample/iotivity-base-armeabi-release/build.gradle b/service/notification/examples/android/NotiConsumerExample/iotivity-base-armeabi-release/build.gradle
new file mode 100755 (executable)
index 0000000..a4078ab
--- /dev/null
@@ -0,0 +1,2 @@
+configurations.maybeCreate("default")
+artifacts.add("default", file('iotivity-base-armeabi-release.aar'))
\ No newline at end of file
index 68c1980..836b36e 100755 (executable)
@@ -1 +1 @@
-include ':app', ':iotivity-base-armeabi-debug', ':iotivity-armeabi-notification-service-debug'
\ No newline at end of file
+include ':app', ':iotivity-base-armeabi-release', ':iotivity-armeabi-notification-service-release'
\ No newline at end of file