[D2D] Modify to not launch d2d app repeatedly. 83/243783/3 accepted/tizen/unified/20200911.143423 submit/tizen/20200910.160006 submit/tizen/20200911.013850
authorAron kim <aron.kim@samsung.com>
Thu, 10 Sep 2020 05:16:15 +0000 (22:16 -0700)
committerAron kim <aron.kim@samsung.com>
Thu, 10 Sep 2020 08:14:50 +0000 (01:14 -0700)
When the remote client launching the d2d app in device home,
change to connect only the websocket if the d2d app status
is visible.

Change-Id: Iab323ee86cc3a979521daf6c3a6b7485904233a6
Signed-off-by: Aron kim <aron.kim@samsung.com>
d2d_app/service/app_proxy.js

index 7255840..3db4507 100644 (file)
@@ -2,6 +2,7 @@ var express = require('express');
 const AppRouter = require('./app_router');
 var appRouters = [];
 var path = null;
+var currentD2DAppId = null;
 
 module.exports = function(app, port) {
     var appProxy = express.Router();
@@ -27,16 +28,34 @@ module.exports = function(app, port) {
             });
         }
 
-        var appControl = new tizen.ApplicationControl(
-            "http://tizen.org/appcontrol/operation/default", null, null, null,
-            [new tizen.ApplicationControlData(
-                "http://tizen.org/appcontrol/data/launch_port", [port]
-            )]
-        );
+        function onRunningAppsContext(contexts) {
+            var isRunning = false;
+            for (var i = 0; i < contexts.length; i++) {
+                if (appId === contexts[i].appId) {
+                    isRunning = true;
+                    break;
+                }
+            }
+
+            if (isRunning && currentD2DAppId === appId) {
+                res.send({port:port});
+            } else {
+                var appControl = new tizen.ApplicationControl(
+                    "http://tizen.org/appcontrol/operation/default", null, null, null,
+                    [new tizen.ApplicationControlData(
+                        "http://tizen.org/appcontrol/data/launch_port", [port]
+                    )]
+                );
+
+                tizen.application.launchAppControl(appControl, appId, function() {
+                    res.send({port:port});
+                });
+
+                currentD2DAppId = appId;
+            }
+        }
 
-        tizen.application.launchAppControl(appControl, appId, function() {
-            res.send({port:port});
-        });
+        tizen.application.getAppsContext(onRunningAppsContext);
     });
 
     appProxy.get('/', (req, res) => {