[Service] Make application.getAppContext work 79/245279/5
authorYoungsoo Choi <kenshin.choi@samsung.com>
Tue, 6 Oct 2020 09:32:50 +0000 (02:32 -0700)
committerYoungsoo Choi <kenshin.choi@samsung.com>
Wed, 7 Oct 2020 05:13:23 +0000 (22:13 -0700)
This makes service app have its own service app id from
application.getAppContext(), not 'org.tizen.chromium-efl.wrt-service'.

Change-Id: I7378802cc61ea42e2b79559e0d83526d7da665dd
Signed-off-by: Youngsoo Choi <kenshin.choi@samsung.com>
wrt_app/service/device_api_router.ts

index 09bb5af..5c39392 100644 (file)
@@ -6,6 +6,7 @@ export class DeviceAPIRouter {
   funcRequestedAppcontrol: any;
   funcGetAppInfo: any;
   funcGetAppcerts: any;
+  funcGetContext: any;
   funcGetSharedUri: any;
   funcGetMetadata: any;
   funcGetPackageInfo: any;
@@ -105,6 +106,10 @@ export class DeviceAPIRouter {
     return global.webapis.getPackageId();
   }
 
+  hasNoneOrNull(...args: any[]) {
+    return !args.length || null === args[0];
+  }
+
   refineApplicationApis() {
     // tizen.application.getCurrentApplication()
     this.funcCurrentApplication = global.tizen.application.getCurrentApplication;
@@ -127,7 +132,7 @@ export class DeviceAPIRouter {
     this.funcGetAppInfo = global.tizen.application.getAppInfo;
     global.tizen.application.getAppInfo = (...args: any[]) => {
       let app_id = args[0];
-      if (!args.length || args[0] === null)
+      if (this.hasNoneOrNull(args))
         app_id = this.getServiceId();
       console.log(`Routing - getAppInfo()`);
       return this.funcGetAppInfo(app_id);
@@ -136,16 +141,28 @@ export class DeviceAPIRouter {
     this.funcGetAppcerts = global.tizen.application.getAppCerts;
     global.tizen.application.getAppCerts = (...args: any[]) => {
       let app_id = args[0];
-      if (!args.length || args[0] === null)
+      if (this.hasNoneOrNull(args))
         app_id = this.getServiceId();
       console.log(`Routing - getAppCerts() ` + app_id);
       return this.funcGetAppcerts(app_id);
     }
+    // tizen.application.getAppContext()
+    this.funcGetContext = global.tizen.application.getAppContext;
+    global.tizen.application.getAppContext = (...args: any[]) => {
+      console.log(`Routing - getAppContext()`);
+      if (this.hasNoneOrNull(args)) {
+        const context = {"id": this.funcGetContext().id, "appId": this.getServiceId()};
+        Object.defineProperty(context, 'appId', { writable: false });
+        Object.defineProperty(context, 'id', { writable: false });
+        return context;
+      }
+      return this.funcGetContext(args[0]);
+    }
     // tizen.application.getAppSharedURI()
     this.funcGetSharedUri = global.tizen.application.getAppSharedURI;
     global.tizen.application.getAppSharedURI = (...args: any[]) => {
       let app_id = args[0];
-      if (!args.length || args[0] === null)
+      if (this.hasNoneOrNull(args))
         app_id = this.getServiceId();
       console.log(`Routing - getAppSharedURI()`);
       return this.funcGetSharedUri(app_id);
@@ -154,7 +171,7 @@ export class DeviceAPIRouter {
     this.funcGetMetadata = global.tizen.application.getAppMetaData;
     global.tizen.application.getAppMetaData = (...args: any[]) => {
       let app_id = args[0];
-      if (!args.length || args[0] === null)
+      if (this.hasNoneOrNull(args))
         app_id = this.getServiceId();
       console.log(`Routing - getAppMetaData()`);
       return this.funcGetMetadata(app_id);
@@ -166,7 +183,7 @@ export class DeviceAPIRouter {
     this.funcGetPackageInfo = global.tizen.package.getPackageInfo;
     global.tizen.package.getPackageInfo = (...args: any[]) => {
       let package_id = args[0];
-      if (!args.length || args[0] === null)
+      if (this.hasNoneOrNull(args))
         package_id = this.getPackageId();
       console.log(`Routing - getPackageInfo() : ${package_id}`);
       return this.funcGetPackageInfo(package_id);