From eddd797322c7595632bdc51aa4fa86a3efee8d91 Mon Sep 17 00:00:00 2001 From: zhaoyuan17 Date: Mon, 13 Dec 2021 20:04:20 +0800 Subject: [PATCH] Add xts code Signed-off-by: zhaoyuan17 --- .../bundle_standard/bundlemanager/BUILD.gn | 12 +- .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../js/test/ActsBmsGetBackGroundModes.test.js | 115 ++++- .../js/test/ActsBmsPermissionChange.test.js | 222 +++++++++ .../entry/src/main/js/test/List.test.js | 3 +- .../bmscheckpermissiontest/BUILD.gn | 4 +- .../bmspermissionchangetest/BUILD.gn | 31 ++ .../bmspermissionchangetest/Test.json | 3 + .../entry/src/main/config.json | 414 +++++++++++++++++ .../entry/src/main/js/default/app.js | 22 + .../entry/src/main/js/default/i18n/en-US.json | 6 + .../entry/src/main/js/default/i18n/zh-CN.json | 6 + .../src/main/js/default/pages/index/index.css | 34 ++ .../src/main/js/default/pages/index/index.hml | 14 + .../src/main/js/default/pages/index/index.js | 308 +++++++++++++ .../permissionchange/permissionchange.css | 57 +++ .../permissionchange/permissionchange.hml | 21 + .../permissionchange/permissionchange.js | 146 ++++++ .../pages/permissionchange/testfunc.js | 421 ++++++++++++++++++ .../main/resources/base/element/string.json | 12 + .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../signature/openharmony_sx.p7b | Bin 0 -> 3437 bytes .../bmsfirstrequestpermissions/BUILD.gn | 34 ++ .../bmsfirstrequestpermissions/Test.json | 3 + .../signature/openharmony_sx.p7b | Bin 0 -> 3437 bytes .../src/main/config.json | 84 ++++ .../src/main/js/default/app.js | 22 + .../src/main/js/default/i18n/en-US.json | 6 + .../src/main/js/default/i18n/zh-CN.json | 6 + .../src/main/js/default/pages/index/index.css | 16 + .../src/main/js/default/pages/index/index.hml | 7 + .../src/main/js/default/pages/index/index.js | 44 ++ .../js/resources/base/element/string.json | 12 + .../src/main/js/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../src/main/config.json | 19 +- .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../src/main/config.json | 18 +- .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../src/main/config.json | 16 +- .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../src/main/config.json | 22 +- .../src/main/config.json | 30 +- .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../src/main/config.json | 11 + .../bmsgetinfossixthscene/BUILD.gn | 34 ++ .../bmsgetinfossixthscene/Test.json | 3 + .../signature/openharmony_sx.p7b | Bin 0 -> 3426 bytes .../src/main/config.json | 240 ++++++++++ .../src/main/js/default/app.js | 22 + .../src/main/js/default/i18n/en-US.json | 6 + .../src/main/js/default/i18n/zh-CN.json | 6 + .../src/main/js/default/pages/index/index.css | 9 + .../src/main/js/default/pages/index/index.hml | 5 + .../src/main/js/default/pages/index/index.js | 25 ++ .../js/resources/base/element/string.json | 12 + .../src/main/js/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../src/main/config.json | 18 +- .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../signature/openharmony_sx.p7b | Bin 3437 -> 3426 bytes .../bmssecondrequestpermissions/BUILD.gn | 34 ++ .../bmssecondrequestpermissions/Test.json | 3 + .../signature/openharmony_sx.p7b | Bin 0 -> 3437 bytes .../src/main/config.json | 73 +++ .../src/main/js/default/app.js | 22 + .../src/main/js/default/i18n/en-US.json | 6 + .../src/main/js/default/i18n/zh-CN.json | 6 + .../src/main/js/default/pages/index/index.css | 16 + .../src/main/js/default/pages/index/index.hml | 6 + .../src/main/js/default/pages/index/index.js | 42 ++ .../js/resources/base/element/string.json | 12 + .../src/main/js/resources/base/media/icon.png | Bin 0 -> 6790 bytes 75 files changed, 2744 insertions(+), 57 deletions(-) mode change 100755 => 100644 appexecfwk/bundle_standard/bundlemanager/BUILD.gn mode change 100644 => 100755 appexecfwk/bundle_standard/bundlemanager/actsbmscheckpermissiontest/signature/openharmony_sx.p7b create mode 100644 appexecfwk/bundle_standard/bundlemanager/actsbmsgetinfostest/entry/src/main/js/test/ActsBmsPermissionChange.test.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/BUILD.gn create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/Test.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/config.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/app.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/i18n/en-US.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/i18n/zh-CN.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/testfunc.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/resources/base/element/string.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/resources/base/media/icon.png create mode 100644 appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/signature/openharmony_sx.p7b create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/BUILD.gn create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/Test.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/signature/openharmony_sx.p7b create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/config.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/app.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/i18n/en-US.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/i18n/zh-CN.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/resources/base/element/string.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/resources/base/media/icon.png mode change 100644 => 100755 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfoshapc/signature/openharmony_sx.p7b create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/BUILD.gn create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/Test.json create mode 100755 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/signature/openharmony_sx.p7b create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/config.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/app.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/i18n/en-US.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/i18n/zh-CN.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/resources/base/element/string.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/resources/base/media/icon.png create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/BUILD.gn create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/Test.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/signature/openharmony_sx.p7b create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/config.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/app.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/i18n/en-US.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/i18n/zh-CN.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.css create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.hml create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.js create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/resources/base/element/string.json create mode 100644 appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/resources/base/media/icon.png diff --git a/appexecfwk/bundle_standard/bundlemanager/BUILD.gn b/appexecfwk/bundle_standard/bundlemanager/BUILD.gn old mode 100755 new mode 100644 index 0e131d5bb..15ac6da07 --- a/appexecfwk/bundle_standard/bundlemanager/BUILD.gn +++ b/appexecfwk/bundle_standard/bundlemanager/BUILD.gn @@ -19,8 +19,7 @@ group("bundlemanager") { deps = [ "actsbmsallshortcutinfotest:ActsBmsAllShortcutInfoTest", "actsbmscheckpermissiontest:ActsBmsCheckPermissionTest", - - #"actsbmsgetinfostest:ActsBmsGetInfosTest", + "actsbmsgetinfostest:ActsBmsGetInfosTest", "actsbmshapmoduletest:ActsBmsHapModuleTest", "actsbmsjstest:ActsBmsJsTest", "actsbmskittest:ActsBmsKitTest", @@ -29,7 +28,10 @@ group("bundlemanager") { "actsbundlemanagertest:ActsBundleManagerTest", "actsbundlemanageruninstall:ActsBundleManagerUninstallTest", - # "bmscheckpermissiontest:ActsBmsCheckPermissionTest", + # "bmscheckpermissiontest:ActsBmsCheckPermissionManualTest", + # "bmspermissionchangetest:ActsBmsPermissionChangeManualTest", + + "sceneProject/bmsfirstrequestpermissions:FirstRequestPermissions", "sceneProject/bmsgetinfosfifthscene:bmsThirdBundleTest5", "sceneProject/bmsgetinfosfirstscene:bmsThirdBundleTest1", "sceneProject/bmsgetinfosfirstsceneupdate:bmsThirdBundleTestA1", @@ -39,8 +41,7 @@ group("bundlemanager") { "sceneProject/bmsgetinfosscenesystem:bmsSystemBundleTest1", "sceneProject/bmsgetinfosscenevendor:bmsVendorBundleTest1", "sceneProject/bmsgetinfossecondscene:bmsThirdBundleTest2", - - #"sceneProject/bmsgetinfossixthscene:bmsThirdBundleTest6", + "sceneProject/bmsgetinfossixthscene:bmsThirdBundleTest6", "sceneProject/bmsgetinfosthirdscene:bmsThirdBundleTest3", "sceneProject/bmsmainabilityfirstscene:bmsMainAbilityFirstScene", "sceneProject/bmsmainabilitysecondscene:bmsMainAbilitySecondScene", @@ -53,6 +54,7 @@ group("bundlemanager") { "sceneProject/bmsscenesix:bmsJstest6", "sceneProject/bmsscenethree:bmsJstest3", "sceneProject/bmsscenetwo:bmsJstest2", + "sceneProject/bmssecondrequestpermissions:SecondRequestPermissions", ] } } diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmscheckpermissiontest/signature/openharmony_sx.p7b b/appexecfwk/bundle_standard/bundlemanager/actsbmscheckpermissiontest/signature/openharmony_sx.p7b old mode 100644 new mode 100755 index 9be1e98fa4c0c28ca997ed660112fa16b194f0f5..f06e218defa7f707e22a3890903c574e1c498217 GIT binary patch delta 864 zcmZ9LO>Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&" + dataInfos[0].backgroundModes) - installer.uninstall('com.example.third1', { + installer.uninstall(BUNDLE_NAME1, { param: { userId: 0, installFlag: 1, @@ -298,7 +303,7 @@ describe('ActsBmsGetBackGroundModes', function () { /* * @tc.number: bms_backGroundModes_0600 * @tc.name: Get the backgroundModes information of the application through queryAbilityByWant - * @tc.desc: Get the backgroundModes information of the upgraded application's ability + * @tc.desc: Get the backgroundModes information of the upgraded application's ability */ it('bms_backGroundModes_0600', 0, async function (done) { console.info('=====================bms_backGroundModes_0600=================='); @@ -321,7 +326,7 @@ describe('ActsBmsGetBackGroundModes', function () { entities: ['entity.system.home'], elementName: { deviceId: '0', - bundleName: 'com.example.third1', + bundleName: BUNDLE_NAME1, abilityName: 'com.example.third1.MainAbility', }, } @@ -348,8 +353,8 @@ describe('ActsBmsGetBackGroundModes', function () { entities: ['entity.system.home'], elementName: { deviceId: '0', - bundleName: 'com.example.third1', - abilityName: 'com.example.third1.AMainAbility', + bundleName: BUNDLE_NAME1, + abilityName: 'com.example.third1.MainAbility', }, } }, 0, 0) @@ -359,8 +364,7 @@ describe('ActsBmsGetBackGroundModes', function () { expect(dataInfos[0].backgroundModes).assertEqual(audioRecording + location + bluetoothInteraction + multiDeviceConnection + wifiInteraction + voip + taskKeeping); } - console.info("========dataInfos[0].backgroundModes=======>" + dataInfos[0].backgroundModes) - installer.uninstall('com.example.third1', { + installer.uninstall(BUNDLE_NAME1, { param: { userId: 0, installFlag: 1, @@ -375,4 +379,67 @@ describe('ActsBmsGetBackGroundModes', function () { }) }) }) + + /* + * @tc.number: bms_backGroundModes_0700 + * @tc.name: Get the backgroundModes information of the application through queryAbilityByWant + * @tc.desc: Uninstall the application, get the backgroundModes information of the upgraded application's ability + */ + it('bms_backGroundModes_0700', 0, async function (done) { + console.info('=====================bms_backGroundModes_0700=================='); + var bundlePath = [BUNDLE_PATH1] + var installer = await bundle.getBundleInstaller(); + installer.install(bundlePath, { + param: { + userId: 0, + installFlag: 1, + isKeepData: false + } + }, async (err, data) => { + expect(err.code).assertEqual(0); + expect(data.status).assertEqual(0); + expect(data.statusMessage).assertEqual('SUCCESS'); + var dataInfos = await bundle.queryAbilityByWant({ + want: { + action: 'action.system.home', + entities: ['entity.system.home'], + elementName: { + deviceId: '0', + bundleName: BUNDLE_NAME1, + abilityName: 'com.example.third1.MainAbility' + } + } + }, 0, 0) + expect(dataInfos.length).assertEqual(1); + if (dataInfos.length == 1) { + expect(dataInfos[0].name).assertEqual("com.example.third1.MainAbility") + expect(dataInfos[0].backgroundModes).assertEqual(dataTransfer + audioPlayback + audioRecording + + location + bluetoothInteraction + multiDeviceConnection + wifiInteraction + voip + taskKeeping) + } + installer.uninstall(BUNDLE_NAME1, { + param: { + userId: 0, + installFlag: 1, + isKeepData: false + } + }, async (err, data) => { + expect(err.code).assertEqual(0); + expect(data.status).assertEqual(0); + expect(data.statusMessage).assertEqual('SUCCESS'); + var dataInfos = await bundle.queryAbilityByWant({ + want: { + action: 'action.system.home', + entities: ['entity.system.home'], + elementName: { + deviceId: '0', + bundleName: BUNDLE_NAME1, + abilityName: 'com.example.third1.MainAbility' + } + } + }, 0, 0) + expect(dataInfos.length).assertEqual(0); + done(); + }); + }) + }) }) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmsgetinfostest/entry/src/main/js/test/ActsBmsPermissionChange.test.js b/appexecfwk/bundle_standard/bundlemanager/actsbmsgetinfostest/entry/src/main/js/test/ActsBmsPermissionChange.test.js new file mode 100644 index 000000000..3bfa8dfd7 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/actsbmsgetinfostest/entry/src/main/js/test/ActsBmsPermissionChange.test.js @@ -0,0 +1,222 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import bundle from '@ohos.bundle' +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'deccjsunit' + +const TIMEOUT = 1000; +const DEFAULT_ERRCODE = 100; +let uid; +let systemUid; +describe('ActsBmsGetRegisterPermissionTest', function () { + beforeAll(async (done) => { + console.info('=========before all start======') + var bundleInfo = await bundle.getBundleInfo('com.example.actsbmsgetinfostest', 1); + uid = bundleInfo.uid; + var systemBundleInfo = await bundle.getBundleInfo('com.example.system1', 1); + systemUid = systemBundleInfo.uid; + done(); + }) + + /* + * @tc.number: bms_unregisterPermissionChange_0100 + * @tc.name: unregister permissionChange callback by other callback + * @tc.desc: 1.register permissionChange callback + * 2.unregister permissionChange callback by other different callback + */ + it('bms_unregisterPermissionChange_0100', 0, async function (done) { + console.info('=====================start bms_unregisterPermissionChange_0100=================='); + function callbackOne(err, data) { + console.info('=====================bms_getRegisterPermission_0100=================='); + expect(err.code).assertEqual(0); + console.info('===========bundleInfo.data========' + JSON.stringify(data)); + expect(data).assertEqual(undefined); + done(); + } + + function callbackTwo(err, data) { + expect(err.code).assertEqual(-1); + expect(data).assertEqual(undefined); + } + bundle.on('permissionChange', [uid], callbackOne) + setTimeout(() => { + bundle.off('permissionChange', [uid], callbackTwo) + setTimeout(() => { + bundle.off('permissionChange', [uid], callbackOne) + }, TIMEOUT); + }, TIMEOUT); + }) + + /* + * @tc.number: bms_unregisterPermissionChange_0100 + * @tc.name: unregister permissionChange callback by other uid list + * @tc.desc: 1.register permissionChange callback + * 2.unregister permissionChange callback by other uid list + */ + it('bms_unregisterPermissionChange_0200', 0, async function (done) { + console.info('=====================start bms_unregisterPermissionChange_0200=================='); + var errCode = DEFAULT_ERRCODE; + function callback(err, data) { + errCode = err.code; + } + bundle.on('permissionChange', [uid, systemUid], callback) + setTimeout(() => { + bundle.off('permissionChange', [uid], callback) + setTimeout(() => { + expect(errCode).assertEqual(-1); + bundle.off('permissionChange', [uid, systemUid], callback) + setTimeout(() => { + expect(errCode).assertEqual(0); + done(); + }, TIMEOUT); + }, TIMEOUT); + }, TIMEOUT); + }) + + /* + * @tc.number: bms_unregisterPermissionChange_0300 + * @tc.name: repeatly unregister permissionChange callback + * @tc.desc: 1.register permissionChange callback + * 2.repeatly unregister permissionChange callback + */ + it('bms_unregisterPermissionChange_0300', 0, async function (done) { + console.info('=====================start bms_unregisterPermissionChange_0300=================='); + var errCode = DEFAULT_ERRCODE; + function callback(err, data) { + console.info('=======call back errCode=======' + err.code) + errCode = err.code; + } + bundle.on('permissionChange', [uid], callback) + setTimeout(() => { + bundle.off('permissionChange', [uid], callback) + setTimeout(() => { + expect(errCode).assertEqual(0); + bundle.off('permissionChange', [uid], callback) + setTimeout(() => { + expect(errCode).assertEqual(-1); + bundle.off('permissionChange', [uid], callback) + setTimeout(() => { + expect(errCode).assertEqual(-1); + done(); + }, TIMEOUT); + }, TIMEOUT); + }, TIMEOUT); + }, TIMEOUT); + }) + + /* + * @tc.number: bms_unregisterPermissionChange_0400 + * @tc.name: unregister permissionChange callback by anonymous callback + * @tc.desc: 1.register permissionChange callback by anonymous callback + * 2.unregister permissionChange callback by anonymous callback + */ + it('bms_unregisterPermissionChange_0400', 0, async function (done) { + console.info('=====================start bms_unregisterPermissionChange_0400=================='); + bundle.on('permissionChange', [uid], (err, data) => { + console.info('========register permission change========') + expect(err.code).assertEqual(-1); + done(); + }) + setTimeout(() => { + bundle.off('permissionChange', [uid], (err, data) => { + console.info('========register permission change========') + expect(err.code).assertEqual(-1); + done(); + }) + }) + }) + + /* + * @tc.number: bms_unregisterAnyPermissionChange_0100 + * @tc.name: unregister anyPermissionChange callback by other callback + * @tc.desc: 1.register anyPermissionChange callback + * 2.unregister anyPermissionChange callback by other different callback + */ + it('bms_unregisterAnyPermissionChange_0100', 0, async function (done) { + console.info('=====================start bms_unregisterAnyPermissionChange_0100=================='); + function callbackOne(err, data) { + console.info('=====================bms_bms_unregisterAnyPermissionChange_0100=================='); + expect(err.code).assertEqual(0); + console.info('===========bundleInfo.data========' + JSON.stringify(data)); + expect(data).assertEqual(undefined); + done(); + } + + function callbackTwo(err, data) { + expect(err.code).assertEqual(-1); + expect(data).assertEqual(undefined); + } + bundle.on('anyPermissionChange', callbackOne) + setTimeout(() => { + bundle.off('anyPermissionChange', callbackTwo) + setTimeout(() => { + bundle.off('anyPermissionChange', callbackOne) + }, TIMEOUT); + }, TIMEOUT); + }) + + /* + * @tc.number: bms_unregisterAnyPermissionChange_0200 + * @tc.name: repeatly unregister anyPermissionChange callback + * @tc.desc: 1.register anyPermissionChange callback + * 2.repeatly unregister anyPermissionChange callback + */ + it('bms_unregisterAnyPermissionChange_0200', 0, async function (done) { + console.info('=====================start bms_unregisterAnyPermissionChange_0200=================='); + var errCode = DEFAULT_ERRCODE; + function callback(err, data) { + console.info('=======call back errCode=======' + err.code) + errCode = err.code; + } + bundle.on('anyPermissionChange', callback) + setTimeout(() => { + bundle.off('anyPermissionChange', callback) + setTimeout(() => { + expect(errCode).assertEqual(0); + bundle.off('anyPermissionChange', callback) + setTimeout(() => { + expect(errCode).assertEqual(-1); + bundle.off('anyPermissionChange', callback) + setTimeout(() => { + expect(errCode).assertEqual(-1); + done(); + }, TIMEOUT); + }, TIMEOUT); + }, TIMEOUT); + }, TIMEOUT); + }) + + /* + * @tc.number: bms_unregisterAnyPermissionChange_0300 + * @tc.name: unregister anyPermissionChange callback by anonymous callback + * @tc.desc: 1.register anyPermissionChange callback by anonymous callback + * 2.unregister anyPermissionChange callback by anonymous callback + */ + it('bms_unregisterAnyPermissionChange_0300', 0, async function (done) { + console.info('=====================start bms_unregisterAnyPermissionChange_0300=================='); + bundle.on('anyPermissionChange', (err, data) => { + console.info('========register permission change========') + expect(err.code).assertEqual(-1); + done(); + }) + setTimeout(() => { + bundle.off('anyPermissionChange', (err, data) => { + console.info('========register permission change========') + expect(err.code).assertEqual(-1); + done(); + }) + }) + }) +}) \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/actsbmsgetinfostest/entry/src/main/js/test/List.test.js b/appexecfwk/bundle_standard/bundlemanager/actsbmsgetinfostest/entry/src/main/js/test/List.test.js index 673e2c7e6..1312e2e33 100644 --- a/appexecfwk/bundle_standard/bundlemanager/actsbmsgetinfostest/entry/src/main/js/test/List.test.js +++ b/appexecfwk/bundle_standard/bundlemanager/actsbmsgetinfostest/entry/src/main/js/test/List.test.js @@ -13,4 +13,5 @@ * limitations under the License. */ require('./ActsBmsGetBackGroundModes.test.js') -require('./ActsBmsFormsInfoTest.test.js') \ No newline at end of file +require('./ActsBmsFormsInfoTest.test.js') +require('./ActsBmsPermissionChange.test.js') \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/bmscheckpermissiontest/BUILD.gn b/appexecfwk/bundle_standard/bundlemanager/bmscheckpermissiontest/BUILD.gn index 68eeb4139..e622a1106 100644 --- a/appexecfwk/bundle_standard/bundlemanager/bmscheckpermissiontest/BUILD.gn +++ b/appexecfwk/bundle_standard/bundlemanager/bmscheckpermissiontest/BUILD.gn @@ -13,14 +13,14 @@ import("//test/xts/tools/build/suite.gni") -ohos_js_hap_suite("ActsBmsCheckPermissionTest") { +ohos_js_hap_suite("ActsBmsCheckPermissionManualTest") { hap_profile = "./entry/src/main/config.json" deps = [ ":hjs_demo_js_assets", ":hjs_demo_resources", ] certificate_profile = "./signature/openharmony_sx.p7b" - hap_name = "ActsBmsCheckPermissionTest" + hap_name = "ActsBmsCheckPermissionManualTest" } ohos_js_assets("hjs_demo_js_assets") { source_dir = "./entry/src/main/js/default" diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/BUILD.gn b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/BUILD.gn new file mode 100644 index 000000000..8b87f4442 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/BUILD.gn @@ -0,0 +1,31 @@ +# Copyright (c) 2021 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//test/xts/tools/build/suite.gni") + +ohos_js_hap_suite("ActsBmsPermissionChangeManualTest") { + hap_profile = "./entry/src/main/config.json" + deps = [ + ":hjs_demo_js_assets", + ":hjs_demo_resources", + ] + certificate_profile = "./signature/openharmony_sx.p7b" + hap_name = "ActsBmsPermissionChangeManualTest" +} +ohos_js_assets("hjs_demo_js_assets") { + source_dir = "./entry/src/main/js/default" +} +ohos_resources("hjs_demo_resources") { + sources = [ "./entry/src/main/resources" ] + hap_profile = "./entry/src/main/config.json" +} diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/Test.json b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/Test.json new file mode 100644 index 000000000..7a88763ed --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/Test.json @@ -0,0 +1,3 @@ +{ + "description": "Configuration for hjunit demo Tests", +} diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/config.json new file mode 100644 index 000000000..4133a20e1 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/config.json @@ -0,0 +1,414 @@ +{ + "app": { + "bundleName": "com.example.permissionchange", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 4, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.permissionchange", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": ".MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard", + "visible": true + } + ], + "js": [ + { + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + }, + "pages": [ + "pages/index/index", + "pages/permissionchange/permissionchange" + ] + } + ], + "defPermissions": [ + { + "name": "com.permission.BMS_PERMISSIONCHANGE_A", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_B", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_C", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_D", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_E", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_F", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_G", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_H", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_I", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_J", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_K", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_L", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_M", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_N", + "grantMode": "user_grant", + "availableScope": [] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_O", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_P", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_Q", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_R", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + },{ + "name": "com.permission.BMS_PERMISSIONCHANGE_S", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_T", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_U", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_V", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_W", + "grantMode": "user_grant", + "availableScope": [ + "signature" + ] + } + ], + "reqPermissions": [ + { + "name": "com.permission.BMS_PERMISSIONCHANGE_A", + "reason": "Need BMS_PERMISSIONCHANGE_A", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_B", + "reason": "Need BMS_PERMISSIONCHANGE_B", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_C", + "reason": "Need BMS_PERMISSIONCHANGE_C", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_D", + "reason": "Need BMS_PERMISSIONCHANGE_D", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_E", + "reason": "Need BMS_PERMISSIONCHANGE_E", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_F", + "reason": "Need BMS_PERMISSIONCHANGE_F", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_G", + "reason": "Need BMS_PERMISSIONCHANGE_G", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_H", + "reason": "Need BMS_PERMISSIONCHANGE_H", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_I", + "reason": "Need BMS_PERMISSIONCHANGE_I", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_J", + "reason": "Need BMS_PERMISSIONCHANGE_J", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_K", + "reason": "Need BMS_PERMISSIONCHANGE_K", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_L", + "reason": "Need BMS_PERMISSIONCHANGE_L", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_M", + "reason": "Need BMS_PERMISSIONCHANGE_M", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_N", + "reason": "Need BMS_PERMISSIONCHANGE_N", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_O", + "reason": "Need BMS_PERMISSIONCHANGE_O", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_P", + "reason": "Need BMS_PERMISSIONCHANGE_P", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_Q", + "reason": "Need BMS_PERMISSIONCHANGE_Q", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_R", + "reason": "Need BMS_PERMISSIONCHANGE_R", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_S", + "reason": "Need BMS_PERMISSIONCHANGE_S", + "usedScene": { + "ability": [ + "com.example.permissionchange.MainAbility" + ], + "when": "always" + } + } + ] + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/app.js new file mode 100644 index 000000000..2a68c1992 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/app.js @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export default { + onCreate() { + console.info('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/i18n/en-US.json new file mode 100644 index 000000000..e63c70d97 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/i18n/en-US.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/i18n/zh-CN.json new file mode 100644 index 000000000..de6ee5748 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..8818f180e --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.css @@ -0,0 +1,34 @@ +.container { + flex-direction: column; + justify-content: center; + align-items: center; +} + +.title { + margin-top: 10px; + font-size: 40px; + color: #000000; + justify-content: center; + text-align: center; +} + +.todo-wraper { + width: 100%; + height: 80%; + justify-content: center; + diveder-color:#FF0000; + scrollbar-color: #57000000; + scrollbar-width: 30px; +} +.todo-item { + width: 100%; + height: 150px; + flex-direction: column; + justify-content: center; + align-self:center; +} +.btn{ + width: 350px; + height: 100px; + font-size: 20px; +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..fa76df4ec --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.hml @@ -0,0 +1,14 @@ +
+
+ + {{ title }} + +
+
+ + + + + +
+
diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..0eca2e0e6 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/index/index.js @@ -0,0 +1,308 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import router from '@system.router'; +const injectRef = Object.getPrototypeOf(global) || global +injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') + +const ITEM_ZERO = 0; +const ITEM_ONE = 1; +const ITEM_TWO = 2; +const ITEM_THREE = 3; +const ITEM_FOUR = 4; +const ITEM_FIVE = 5; +const ITEM_SIX = 6; +const ITEM_SEVEN = 7; +const ITEM_EIGHT = 8; +const ITEM_NINE = 9; +const ITEM_TEN = 10; +const ITEM_ELEVEN = 11; +const ITEM_TWELVE = 12; +const ITEM_THIRTEEN = 13; +const ITEM_FOURTEEN = 14; +const ITEM_FIFTEEN = 15; +const ITEM_SIXTEEN = 16; +const ITEM_SEVENTEEN = 17; +const ITEM_EIGHTEEN = 18; +const ITEM_NINETEEN =19; +const ITEM_TWENTY = 20 + +export default { + data: { + title: "BmsSystemTest", + testcase: [ + { + /** + * @tc.number: bms_permissionChange_0100 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Register permission changes to monitor the permission changes of an application + * 2.Request permissions + * 3.Unregister permission changes + */ + caseName: "bms_permissionChange_0100", + num: "_0100", + item: ITEM_ZERO + }, + { + /** + * @tc.number: bms_permissionChange_0200 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Register permission changes to monitor the permission changes of an application + * 2.Request a permission that does not exist + * 3.Unregister permission changes + */ + caseName: "bms_permissionChange_0200", + num: "_0200", + item: ITEM_ONE + }, + { + /** + * @tc.number: bms_permissionChange_0300 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Register permission changes to monitor the permission changes of three applications + * 2.Start other application to request permissions + * 3.Unregister permission changes + */ + caseName: "bms_permissionChange_0300", + num: "_0300", + item: ITEM_TWO + }, + { + /** + * @tc.number: bms_permissionChange_0400 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Register error permission changes to monitor the permission changes of an application + * 2.Request permissions + */ + caseName: "bms_permissionChange_0400", + num: "_0400", + item: ITEM_THREE + }, + { + /** + * @tc.number: bms_permissionChange_0500 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Repeatedly register permission changes to monitor the permission changes + * of an application + * 2.Request permissions + * 3.Unregister permission changes + */ + caseName: "bms_permissionChange_0500", + num: "_0500", + item: ITEM_FOUR + }, + { + /** + * @tc.number: bms_permissionChange_0600 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Repeatedly register three different permission changes to monitor the permission changes + * of an application + * 2.Request permissions + * 3.Unregister those permission changes + */ + caseName: "bms_permissionChange_0600", + num: "_0600", + item: ITEM_FIVE + }, + { + /** + * @tc.number: bms_permissionChange_0700 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Repeatly register permission changes to monitor the permission changes of an application + * 2.Request permissions + * 3.Unregister permission changes without callback + */ + caseName: "bms_permissionChange_0700", + num: "_0700", + item: ITEM_SIX + }, + { + /** + * @tc.number: bms_permissionChange_0800 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Register three permission changes events to monitor the permission changes of an application + * 2.Request permissions + * 3.Unregister permission changes without callback + */ + caseName: "bms_permissionChange_0800", + num: "_0800", + item: ITEM_SEVEN + }, + { + /** + * @tc.number: bms_permissionChange_0900 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Register permission changes to monitor the permission changes of an application + * 2.Request permissions + * 3.Unregister error permission changes + */ + caseName: "bms_permissionChange_0900", + num: "_0900", + item: ITEM_SIXTEEN + }, + { + /** + * @tc.number: bms_anyPermissionChange_0100 + * @tc.name: on(anyPermissionChange, callback) : register all permission change + * off(anyPermissionChange, callback) : unregister all permission change + * @tc.desc: 1.Register any permission changes to monitor the permission changes of all applications + * 2.Request permissions + * 3.Unregister any permission changes + */ + caseName: "bms_anyPermissionChange_0100", + num: "_0100", + item: ITEM_EIGHT + }, + { + /** + * @tc.number: bms_anyPermissionChange_0200 + * @tc.name: on(anyPermissionChange, callback) : register all permission change + * off(anyPermissionChange, callback) : unregister all permission change + * @tc.desc: 1.Register any permission changes to monitor the permission changes of all applications + * 2.Request a permission that does not exist + * 3.Unregister any permission changes + */ + caseName: "bms_anyPermissionChange_0200", + num: "_0200", + item: ITEM_NINE + }, + { + /** + * @tc.number: bms_anyPermissionChange_0300 + * @tc.name: on(anyPermissionChange, callback) : register all permission change + * off(anyPermissionChange, callback) : unregister all permission change + * @tc.desc: 1.Register any permission changes to monitor the permission changes of all applications + * 2.Start other abilities to request permissions + * 3.Unregister any permission changes + */ + caseName: "bms_anyPermissionChange_0300", + num: "_0300", + item: ITEM_TEN + }, + { + /** + * @tc.number: bms_anyPermissionChange_0400 + * @tc.name: on(anyPermissionChange, callback) : register all permission change + * off(anyPermissionChange, callback) : unregister all permission change + * @tc.desc: 1.Register any error permission changes to monitor the permission changes + * of all applications + * 2.Request permissions + */ + caseName: "bms_anyPermissionChange_0400", + num: "_0400", + item: ITEM_ELEVEN + }, + { + /** + * @tc.number: bms_anyPermissionChange_0500 + * @tc.name: on(anyPermissionChange, callback) : register all permission change + * off(anyPermissionChange, callback) : unregister all permission change + * @tc.desc: 1.Repeatedly register any permission changes to monitor the permission changes + * of all applications + * 2.Request permissions + * 3.Unregister any permission changes + */ + caseName: "bms_anyPermissionChange_0500", + num: "_0500", + item: ITEM_TWELVE + }, + { + /** + * @tc.number: bms_anyPermissionChange_0600 + * @tc.name: on(anyPermissionChange, callback) : register all permission change + * off(anyPermissionChange, callback) : unregister all permission change + * @tc.desc: 1.Repeatedly register three different any permission changes to monitor the permission changes + * of all applications + * 2.Request permissions + * 3.Unregister those any permission changes callback + */ + caseName: "bms_anyPermissionChange_0600", + num: "_0600", + item: ITEM_THIRTEEN + }, + { + /** + * @tc.number: bms_anyPermissionChange_0700 + * @tc.name: on(anyPermissionChange, callback) : register all permission change + * off(anyPermissionChange, callback) : unregister all permission change + * @tc.desc: 1.Repeatedly register any permission changes to monitor the permission changes + * of all applications + * 2.Request permissions + * 3.Unregister any permission changes without callback + */ + caseName: "bms_anyPermissionChange_0700", + num: "_0700", + item: ITEM_FOURTEEN + }, + { + /** + * @tc.number: bms_anyPermissionChange_0800 + * @tc.name: on(anyPermissionChange, callback) : register all permission change + * off(anyPermissionChange, callback) : unregister all permission change + * @tc.desc: 1.Register three any permission changes events to monitor the permission changes of all applications + * 2.Request permissions + * 3.Unregister any permission changes without callback + */ + caseName: "bms_anyPermissionChange_0800", + num: "_0800", + item: ITEM_FIFTEEN + }, + { + /** + * @tc.number: bms_anyPermissionChange_0900 + * @tc.name: on(permissionChange, uids, callback) : register permission change + * off(permissionChange, uids, callback) : unregister permission change + * @tc.desc: 1.Register permission changes to monitor the permission changes of of all applications + * 2.Request permissions + * 3.Unregister error any permission changes + */ + caseName: "bms_anyPermissionChange_0900", + num: "_0900", + item: ITEM_SEVENTEEN + }, + ] + }, + onInit() { + this.title = "Bms PermissionChange Test"; + }, + onShow() { + }, + onReady() { + console.info('onReady finish') + }, + onBackPress() { + }, + jumpPermission(caseNum, caseItem) { + console.info('===========clickAction===========') + router.replace({ + uri: 'pages/permissionchange/permissionchange', + params: { + num: caseNum, + item: caseItem + } + }) + }, +} + + diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.css b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.css new file mode 100644 index 000000000..3b7ffa851 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.css @@ -0,0 +1,57 @@ +.container { + display: flex; + justify-content: center; + align-items: center; + left: 0px; + top: 0px; + width: 100%; + height: 100%; +} + +.title { + font-size: 30px; + text-align: center; + width: 100%; + height: 80px; +} +div{ + flex-direction: column; + align-items: center; + justify-content: center; +} + +.btn{ + margin-bottom: 10px; + width: 200px; + height: 80px; +} + +.todo-title { + font-style: normal; + font-size: 30px; +} + +.log { + font-size: 20px; + text-align: center; + width: 100%; + height: 1000px; +} +.todo-wraper { + width: 100%; + height: 100%; + justify-content: center; + diveder-color:#0090FF; + scrollbar-color: #57000000; + scrollbar-width: 10px; +} +.todo-item { + width: 100%; + height: 100px; + flex-direction: column; + justify-content: center; + align-self:center; +} +.text { + margin: 20%; +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.hml b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.hml new file mode 100644 index 000000000..98137036f --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.hml @@ -0,0 +1,21 @@ +
+
+ + {{ title }} + +
+
+ +
+
+ + + {{$item + caseNum}} + + + + +
+
diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.js b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.js new file mode 100644 index 000000000..02c101534 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/permissionchange.js @@ -0,0 +1,146 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import router from '@system.router'; + +export default { + data: { + title: "Bms permission change", + logmessage: "This is log message:\n", + testcase: [ + [ + "registerPermissionChange", + "requestPermissions", + "unregisterPermissionChange", + ], + [ + "registerPermissionChange", + "requestNotExistPermissions", + "unregisterPermissionChange", + ], + [ + "registerThreeAppsPermissionChange", + "requestPermissionsFirst", + "startFirstRequestPermissions", + "startSecondRequestPermissions", + "unregisterThreeAppsPermissionChange", + ], + [ + "registerErrPermissionChange", + "requestPermissionsSecond", + ], + [ + "registerPermissionChangeRepeat", + "requestPermissionsThird", + "unregisterPermissionChange", + ], + [ + "registerThreePermissionChangeCallback", + "requestPermissionsFourth", + "unregisterThreePermissionChangeCallback", + ], + [ + "registerThreePermissionChangeCallback", + "requestPermissionsFifth", + "unregisterPermissionChangeNoCallback", + ], + [ + "registerPermissionChangeRepeat", + "requestPermissionsSixth", + "unregisterPermissionChangeNoCallback", + ], + [ + "registerAnyPermissionChange", + "requestPermissionsSeventh", + "unregisterAnyPermissionChange", + ], + [ + "registerAnyPermissionChange", + "requestNotExistPermissions", + "unregisterAnyPermissionChange", + ], + [ + "registerThreeAnyPermissionChange", + "requestPermissionsEighth", + "startFirstRequestPermissions", + "startSecondRequestPermissions", + "unregisterThreeAnyPermissionChange", + ], + [ + "registerErrAnyPermissionChange", + "requestPermissionsNinth", + ], + [ + "registerAnyPermissionChangeRepeat", + "requestPermissionsTenth", + "unregisterAnyPermissionChange", + ], + [ + "registerThreeAnyPermissionChangeCallback", + "requestPermissionsEleventh", + "unregisterThreeAnyPermissionChangeCallback", + ], + [ + "registerAnyPermissionChangeRepeat", + "requestPermissionsTwelfth", + "unregisterAnyPermissionChangeNoCallback", + ], + [ + "registerThreeAnyPermissionChangeCallback", + "requestPermissionsThirteenth", + "unregisterAnyPermissionChangeNoCallback", + ], + [ + "registerPermissionChange", + "requestPermissionsFifteenth", + "unregisterErrPermissionChange", + "unregisterPermissionChange", + ], + [ + "registerAnyPermissionChange", + "requestPermissionsFourteenth", + "unregisterErrAnyPermissionChange", + "unregisterAnyPermissionChange", + ] + ], + }, + onInit() { + this.title = "Bms permission change"; + this.logmessage = "This is log message:\n"; + this.caseNum = this.num; + this.caseItem = this.item; + }, + onShow() { + }, + onReady() { + console.info('onReady finish') + }, + onBackPress() { + }, + async stopAbility() { + }, + backIndex() { + router.replace({ + uri: 'pages/index/index' + }) + }, + async runTest(funcName) { + console.debug("======Run func ======:" + JSON.stringify(funcName)) + let { runFunc } = require('./testfunc.js') + this.logmessage += await runFunc(funcName, this) + '\n'; + }, + clearLog() { + this.logmessage = ""; + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/testfunc.js b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/testfunc.js new file mode 100644 index 000000000..8d7f135be --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/js/default/pages/permissionchange/testfunc.js @@ -0,0 +1,421 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import bundle from '@ohos.bundle' +import featureAbility from '@ohos.ability.featureAbility' +var receive; +var uid; +const PERMISSIONCHANGE = 'permissionChange'; +const ANYPERMISSIONCHANGE = 'anyPermissionChange'; +export async function runFunc(caseName, obj) { + console.debug("======Func name is ======:" + JSON.stringify(caseName)) + var dataInfo = await bundle.getBundleInfo('com.example.permissionchange', 1); + uid = dataInfo.uid; + receive = obj; + allFunc[caseName].func(); + return getFuncInfo(caseName); +} + +export function getFuncInfo(caseName) { + console.debug("======GetCaseInfo======:" + JSON.stringify(caseName)) + return allFunc[caseName].info; +} + +var allFunc = { + registerPermissionChange: { + func: () => { bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission) }, + info: "register permissionChange event." + }, + registerAnyPermissionChange: { + func: () => { bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission); }, + info: "register anypermissionChange event." + }, + registerThreeAnyPermissionChange: { + func: () => { bundle.on(ANYPERMISSIONCHANGE, onReciveThreeAnyPermission); }, + info: "register anypermissionChange event." + }, + requestPermissions: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_A"]) }, + info: "request permissions." + }, + requestPermissionsFirst: { + func: () => { + requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_B", "com.permission.BMS_PERMISSIONCHANGE_C", + "com.permission.BMS_PERMISSIONCHANGE_D"]) + }, + info: "request permissions First." + }, + requestPermissionsSecond: { + func: () => { + requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_E"]) + }, + info: "request permissions Second." + }, + requestPermissionsThird: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_F"]) }, + info: "request permissions Third." + }, + requestPermissionsFourth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_G"]) }, + info: "request permissions Fourth." + }, + requestPermissionsFifth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_H"]) }, + info: "request permissions Fifth." + }, + requestPermissionsSixth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_I"]) }, + info: "request permissions Sixth." + }, + requestPermissionsSeventh: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_J"]) }, + info: "request permissions Seventh." + }, + requestPermissionsEighth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_K"]) }, + info: "request permissions Eighth." + }, + requestPermissionsNinth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_L"]) }, + info: "request permissions Ninth." + }, + requestPermissionsTenth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_N"]) }, + info: "request permissions Tenth." + }, + requestPermissionsEleventh: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_O"]) }, + info: "request permissions Eleventh." + }, + requestPermissionsTwelfth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_P"]) }, + info: "request permissions Twelfth." + }, + requestPermissionsThirteenth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_Q"]) }, + info: "request permissions Thirteenth." + }, + requestPermissionsFourteenth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_R"]) }, + info: "request permissions Fourteenth." + }, + requestPermissionsFifteenth: { + func: () => { requestPermissions(["com.permission.BMS_PERMISSIONCHANGE_S"]) }, + info: "request permissions Fifteenth." + }, + startFirstRequestPermissions: { + func: () => { + startAbilityToRequestPermissions("com.example.firstrequestpermissions", + "com.example.firstrequestpermissions.MainAbility") + }, + info: "start first app to request permissions." + }, + startSecondRequestPermissions: { + func: () => { + startAbilityToRequestPermissions("com.example.secondrequestpermissions", + "com.example.secondrequestpermissions.MainAbility") + }, + info: "start second app to request permissions." + }, + unregisterPermissionChange: { + func: () => { bundle.off(PERMISSIONCHANGE, [uid], onRecivePermission) }, + info: "unregister permissionChange event." + }, + unregisterAnyPermissionChange: { + func: () => { bundle.off(ANYPERMISSIONCHANGE, onReciveAnyPermission); }, + info: "unregister anypermissionChange event." + }, + unregisterThreeAnyPermissionChange: { + func: () => { bundle.off(ANYPERMISSIONCHANGE, onReciveThreeAnyPermission); }, + info: "unregister anypermissionChange event." + }, + unregisterErrPermissionChange: { + func: () => { bundle.off('error', [uid], onRecivePermission) }, + info: "unregister permissionChange event." + }, + unregisterErrAnyPermissionChange: { + func: () => { bundle.off('error', onReciveAnyPermission); }, + info: "unregister anypermissionChange event." + }, + registerErrPermissionChange: { + func: () => { bundle.on('error', [uid], onRecivePermission) }, + info: "register error permissionChange." + }, + registerErrAnyPermissionChange: { + func: () => { bundle.on('error', onReciveAnyPermission) }, + info: "register error anyPermissionChange." + }, + unregisterErrPermissionChange: { + func: () => { bundle.off('eror', [uid], onRecivePermission) }, + info: "unregister error permissionChange." + }, + unregisterErrAnyPermissionChange: { + func: () => { bundle.off('eror', onReciveAnyPermission) }, + info: "unregister error anyPermissionChange." + }, + unregisterPermissionChangeNotAll: { + func: unregisterPermissionChangeNotAll, + info: "unregister permission change does not include all uids." + }, + requestNotExistPermissions: { + func: () => { requestPermissions(["noPermission"]) }, + info: "request a permission that does not exist " + }, + registerPermissionChangeRepeat: { + func: registerPermissionChangeRepeat, + info: "repeatedly register permissionChange event." + }, + registerAnyPermissionChangeRepeat: { + func: registerAnyPermissionChangeRepeat, + info: "repeatedly register anyPermissionChange event." + }, + unregisterThreePermissionChangeCallback: { + func: () => { + bundle.off(PERMISSIONCHANGE, [uid], onRecivePermission); + bundle.off(PERMISSIONCHANGE, [uid], onRecivePermission2); + bundle.off(PERMISSIONCHANGE, [uid], onRecivePermission3); + }, + info: "unregister three different PermissionChange callback" + }, + unregisterThreeAnyPermissionChangeCallback: { + func: () => { + bundle.off(ANYPERMISSIONCHANGE, onReciveAnyPermission); + bundle.off(ANYPERMISSIONCHANGE, onReciveAnyPermission2); + bundle.off(ANYPERMISSIONCHANGE, onReciveAnyPermission3); + }, + info: "unregister three different anyPermissionChange callback" + }, + registerThreeAppsPermissionChange: { + func: registerThreeApp, + info: "register three applications permissionChange event." + }, + unregisterThreeAppsPermissionChange: { + func: unregisterThreeApp, + info: "unregister three applications permissionChange event." + }, + unregisterPermissionChangeNoCallback: { + func: () => { bundle.off(PERMISSIONCHANGE, [uid]); }, + info: "unregister permissionChange without callback." + }, + unregisterAnyPermissionChangeNoCallback: { + func: () => { bundle.off(ANYPERMISSIONCHANGE); }, + info: "unregister anyPermissionChange event without callback." + }, + registerThreePermissionChangeCallback: { + func: () => { + bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission); + bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission2); + bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission3); + }, + info: "register three different PermissionChange callback" + }, + registerThreeAnyPermissionChangeCallback: { + func: () => { + bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission) + bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission2); + bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission3); + }, + info: "register three different AnyPermissionChange callback" + }, +} + +async function onRecivePermission(err, data) { + console.info('======permission changed======='); + console.info("permission changed err code" + err.code); + console.info("permission changed uid" + data); + if (data == undefined && err.code == 0) { + receive.logmessage += "unregister permission SUCCESS!\n" + } else if (err.code != 0) { + receive.logmessage += "unregister permission FAIL!\n" + } else if (data == uid) { + receive.logmessage += "permission change SUCCESS, change uid is " + data + '\n' + } else { + receive.logmessage += "permission change FAILED, change uid is " + data + '\n' + } +} + +async function onRecivePermission2(err, data) { + console.info('======permission changed second======='); + console.info("permission changed err code" + err.code); + console.info("permission changed uid" + data); + if (data == undefined && err.code == 0) { + receive.logmessage += "callback2 unregister permission SUCCESS!\n" + } else if (err.code != 0) { + receive.logmessage += "callback2 unregister permission FAIL!\n" + } else if (data == uid) { + receive.logmessage += "callback2 permission change SUCCESS, change uid is " + data + '\n' + } else { + receive.logmessage += "callback2 permission change FAILED, change uid is " + data + '\n' + } +} + +async function onRecivePermission3(err, data) { + console.info('======permission changed third======='); + console.info("permission changed err code" + err.code); + console.info("permission changed uid" + data); + if (data == undefined && err.code == 0) { + receive.logmessage += "callback3 unregister permission SUCCESS!\n" + } else if (err.code != 0) { + receive.logmessage += "callback3 unregister permission FAIL!\n" + } else if (data == uid) { + receive.logmessage += "callback3 permission change SUCCESS, change uid is " + data + '\n' + } else { + receive.logmessage += "callback3 permission change FAILED, change uid is " + data + '\n' + } +} + +async function onReciveAnyPermission(err, data) { + console.info('======any permission changed======='); + console.info("permission changed err code" + err.code); + console.info("permission changed uid" + data); + if (data == undefined && err.code == 0) { + receive.logmessage += "unregister anyPermission SUCCESS!\n" + } else if (err.code != 0) { + receive.logmessage += "unregister anyPermission FAIL!\n" + } else if (data == uid) { + receive.logmessage += "anyPermission change SUCCESS, change uid is " + data + '\n' + } else { + receive.logmessage += "anyPermission change FAILED, change uid is " + data + '\n' + } +} + +async function onReciveAnyPermission2(err, data) { + console.info('======any permission changed======='); + console.info("permission changed err code" + err.code); + console.info("permission changed uid" + data); + if (data == undefined && err.code == 0) { + receive.logmessage += "callback2 unregister anyPermission SUCCESS!\n" + } else if (err.code != 0) { + receive.logmessage += "callback2 unregister anyPermission FAIL!\n" + } else if (data == uid) { + receive.logmessage += "callback2 anyPermission change SUCCESS, change uid is " + data + '\n' + } else { + receive.logmessage += "callback2 anyPermission change FAILED, change uid is " + data + '\n' + } +} + +async function onReciveAnyPermission3(err, data) { + console.info('======any permission changed======='); + console.info("permission changed err code" + err.code); + console.info("permission changed uid" + data); + if (data == undefined && err.code == 0) { + receive.logmessage += "callback3 unregister anyPermission SUCCESS!\n" + } else if (err.code != 0) { + receive.logmessage += "callback3 unregister anyPermission FAIL!\n" + } else if (data == uid) { + receive.logmessage += "callback3 anyPermission change SUCCESS, change uid is " + data + '\n' + } else { + receive.logmessage += "callback3 anyPermission change FAILED, change uid is " + data + '\n' + } +} + +async function requestPermissions(permissions) { + console.debug("==========begin request permissions==========") + var context = await featureAbility.getContext(); + await context.requestPermissionsFromUser(permissions, 1, + (err, data) => { + console.log("RequestPermissionForUser:requestCode=" + data.requestCode); + for (var j = 0; j < data.permissions.length; j++) { + console.log("RequestPermissionForUser permissions : " + data.permissions[j]); + } + + for (var j = 0; j < data.grantResults.length; j++) { + console.log("RequestPermissionForUser grantResults : " + data.grantResults[j]); + } + }); +} + +async function startAbilityToRequestPermissions(newBundleName, newAbilityName) { + console.info('=======start Ability========'); + await featureAbility.startAbility( + { + want: + { + bundleName: newBundleName, + abilityName: newAbilityName + } + } + ); +} + +async function unregisterPermissionChangeNotAll() { + console.debug("==========begin unregister permissionChange without all uids=========="); + var dataInfo1 = await bundle.getBundleInfo('com.example.permissionchange', 1); + var dataInfo2 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1); + await bundle.off(PERMISSIONCHANGE, [dataInfo1.uid, dataInfo2.uid], onRecivePermission); +} + +async function onReciveThreePermission(err, data) { + var dataInfo1 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1); + var dataInfo2 = await bundle.getBundleInfo('com.example.secondrequestpermissions', 1); + console.info('======permission changed======='); + console.info("permission changed err code" + err.code); + console.info("permission changed uid" + data); + if (data == undefined && err.code == 0) { + receive.logmessage += "unregister permission SUCCESS!\n" + } else if (err.code != 0) { + receive.logmessage += "unregister permission FAIL!\n" + } else if (data == uid || data == dataInfo1.uid || data == dataInfo2.uid) { + receive.logmessage += "permission change SUCCESS, change uid is " + data + '\n' + } else { + receive.logmessage += "permission change FAILED, change uid is " + data + '\n' + } +} + +async function registerThreeApp() { + var dataInfo1 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1); + var dataInfo2 = await bundle.getBundleInfo('com.example.secondrequestpermissions', 1); + await bundle.on(PERMISSIONCHANGE, [uid, dataInfo1.uid, dataInfo2.uid], onReciveThreePermission); +} + +async function unregisterThreeApp() { + var dataInfo1 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1); + var dataInfo2 = await bundle.getBundleInfo('com.example.secondrequestpermissions', 1); + await bundle.off(PERMISSIONCHANGE, [uid, dataInfo1.uid, dataInfo2.uid], onReciveThreePermission); +} + +async function registerPermissionChangeRepeat() { + console.debug("==========begin repeat register permissionChange==========") + await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission); + await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission); + await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission); + await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission); + await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission); + await bundle.on(PERMISSIONCHANGE, [uid], onRecivePermission); +} +async function registerAnyPermissionChangeRepeat() { + console.debug("==========begin repeat register anyPermissionChange==========") + await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission); + await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission); + await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission); + await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission); + await bundle.on(ANYPERMISSIONCHANGE, onReciveAnyPermission); +} + +async function onReciveThreeAnyPermission(err, data) { + console.info('======any permission changed======='); + console.info("permission changed err code" + err.code); + console.info("permission changed uid" + data); + var dataInfo1 = await bundle.getBundleInfo('com.example.firstrequestpermissions', 1); + var dataInfo2 = await bundle.getBundleInfo('com.example.secondrequestpermissions', 1); + if (data == undefined && err.code == 0) { + receive.logmessage += "unregister anyPermission SUCCESS!\n" + } else if (err.code != 0) { + receive.logmessage += "unregister anyPermission FAIL!\n" + } else if (data == uid || data == dataInfo1.uid || data == dataInfo2.uid) { + receive.logmessage += "anyPermission change SUCCESS, change uid is " + data + '\n' + } else { + receive.logmessage += "anyPermission change FAILED, change uid is " + data + '\n' + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/resources/base/element/string.json b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/resources/base/element/string.json new file mode 100644 index 000000000..95b8c72ae --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "app_name", + "value": "bmspermissonchange" + }, + { + "name": "mainability_description", + "value": "JS_Phone_Empty Feature Ability" + } + ] +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/resources/base/media/icon.png b/appexecfwk/bundle_standard/bundlemanager/bmspermissionchangetest/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/BUILD.gn b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/BUILD.gn new file mode 100644 index 000000000..34a5af0a5 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/BUILD.gn @@ -0,0 +1,34 @@ +# Copyright (c) 2021 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import("//test/xts/tools/build/suite.gni") + +ohos_hap("FirstRequestPermissions") { + hap_profile = "./src/main/config.json" + hap_name = "FirstRequestPermissions" + subsystem_name = XTS_SUITENAME + final_hap_path = + "${SUITES_OUTPUT_ROOT}/${XTS_SUITENAME}/testcases/${hap_name}.hap" + testonly = true + deps = [ + ":hjs_demo_js_assets", + ":hjs_demo_resources", + ] + certificate_profile = "./signature/openharmony_sx.p7b" +} +ohos_js_assets("hjs_demo_js_assets") { + source_dir = "./src/main/js/default" +} +ohos_resources("hjs_demo_resources") { + sources = [ "./src/main/js/resources" ] + hap_profile = "./src/main/config.json" +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/Test.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/Test.json new file mode 100644 index 000000000..7a88763ed --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/Test.json @@ -0,0 +1,3 @@ +{ + "description": "Configuration for hjunit demo Tests", +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/signature/openharmony_sx.p7b b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/signature/openharmony_sx.p7b new file mode 100644 index 0000000000000000000000000000000000000000..9be1e98fa4c0c28ca997ed660112fa16b194f0f5 GIT binary patch literal 3437 zcmcgvX>b$g8MY4FF(5FQyMT=#m||qU)nQ9cId-MBB-<-lvSdq&snM}IENNF>t+bK| zgowuF2vC|SxSZxNN5eHhV%(WPpbeB9Fc3;JDMtzMBv1-XAc2N~c2_tCXW&OCGw6qQ z-s9VS-tT?h=bI0tMS+~WDXqHJyCPmLzdbE-fV8Nd&*MRZfG8(#POFZG3xs@Lb{0ry z=R8j3wWo!5g=yjKx#BoZMFS)uA)H}cTp@-^K`9VV?RC3J59@}eik*>n|pRKOLZ zxdn7G!Yv@9O#y<&eUy{)vMXb;fQR)ffVAADQsEMXm;IBMDLfLD0w^U;6%HVo-0Q_5 zCHEa?DBuauNpZzoF+tK27w#n~?u%toS-DhR4k@Q*{7x^8Q=D6&kd^_~J#VVG2LXkL zaAy=}U*?Jto)9hx5MGjdp9hcQAu@tfk_;l!PeyxPY<8b&+&D!CyaBh9=8BSVKLpk4 z4Ml3yY|&Th)vyK4cpC{!uU8v2YBlVV`d~(nz&<@{G1oe*DHub1z7~J5*;s2bX<)_* zV_GbsPQg`(&rpxRb_*Od7}++3+liSw-$!1 zs5*g}EHWhI3i|!-FcfzYL0`SL-rq>LENC;PMl)G(0(1U2%Va|smp0UFx0xd@soZA* zD5LYc4OlbE7@ARt#h}rr3>K@bf%B#^-c+xz8Hr)0D5ExIFltezN@Hn8>o5d~bSfYtkc+_Z&kI#-N5_GhCg*V-^TSO=!G~ z(fXy{n2XV+k}6w_W`dTOP2a4u0ly;ANZ>4OxSKAzFB!yBzdo`gX zO?o|H@WiAw$y6l?=^3jA_Hy0S)nTYs12;4hKE&ekQ|>?|ZLJ}#F`2BczC7kdE4@xV zZBD_)Otwjhz+NSaz?d45!;FsGSu-#qh#hStD%B}f!mCT!KqzSo>I`NGH_9Dea$1Qi zg29Ydt!~lQVR99_T7#Hije~(12drl-P)SV?QR*9sus`8th-8^OQ7@xI$(Yp|^;bL1 zR50O$mDXw6P>i7B(TJ)ciPzTE>XY%X6HAa)b#OBRXv&~%Bw|J#Y><i4=e%95bjtw|cJp=#P#Pf#*luqI_wR;fISDCJhAqSG6R%xItn%~QtZ@m%&u zjGGLX;t6Ls62eQvNmf@v+}J%54^CygxRZ`?8X#r|wkev7(s;Ou4T#y1XNNf)h;o7z z8a^Lfq<1uH`E{G9E z*(=)Css_LSk=>E9jr)s5^2-!+MN=Ds}>1hRma4`uCIz9%p3O77839E{xf z4c_I?**|1`K2tg4!Hvyrou4BsJQuv*UfF)<%CelYIS>D^o?X)3+MK%la6kooW8&G@BU)Y0hT`+mOm$Z_%rB=a%o>I z!2c6lHyKQN)VjiFwa!eE^p8jc$sy$vB+8i25lI~6KPFFh$!o$avA~rj#L6xvR|Z83 z*WD6T9e+5Pyy=F+)pNTf{ny3cy>7Rkd3o*TS?TZJ`NS^NF2%HMkyS{?uJ$`!P4_L^ z1`NFDUbNyg_qREifgktnp1_v{Jbb`7m}2PTyUdOmtJj~m z9bB=ecw4_^rw1IW=of+>nrW5=d3k`3qHCxsIN_F{T1A545};;+fsyC&qChi+YV zr~M63H8ZLCPYmsjY>ls9cL%I)F|JIW-#+48$+lD4k*(P*kDM%zx_fvu4u5ZYUnI}5 zdrycFq>xFU)&X3p@pP2u%$o}}YcRn(MhJ&B2o?KS@cIVz>Ye%o^xV?CB{_Qhu z;}_q1bvO^g{8<3!gYbo4Di{8qzV+(9 zdlmksohQmRTs@qB;(Wo?dER_ux6XQb@q$tQPW?CMu6GVQd;R=iR;-S{Kr%Zks7>b1 zNs{|-+jhObYE}NR&`TGGr^h^4bjh%c>R#@=8nM&Md>_a+zVulsl;){flFekV1t9ob z+SqfV_Pv3$2f)bQ8%Ul2>fdYR^1zs0BQF~olsOj5AodC&Q_7SMFzsz2 z9newxE&jodk~tNHwl%LBMMDbrk=(^b literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/config.json new file mode 100644 index 000000000..ac42b49b5 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/config.json @@ -0,0 +1,84 @@ +{ + "app": { + "bundleName": "com.example.firstrequestpermissions", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 4, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.firstrequestpermissions", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "visible": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": "com.example.firstrequestpermissions.MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard", + "permissions": ["ohos.permission.CAMERA"] + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ], + "reqPermissions": [ + { + "name": "com.permission.BMS_PERMISSIONCHANGE_U", + "reason": "Need PERMISSION_U", + "usedScene": { + "ability": [ + "com.example.firstrequestpermissions.MainAbility" + ], + "when": "always" + } + }, + { + "name": "com.permission.BMS_PERMISSIONCHANGE_V", + "reason": "Need PERMISSION_V", + "usedScene": { + "ability": [ + "com.example.firstrequestpermissions.MainAbility" + ], + "when": "always" + } + } + ] + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/app.js new file mode 100644 index 000000000..2a68c1992 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/app.js @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export default { + onCreate() { + console.info('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/i18n/en-US.json new file mode 100644 index 000000000..e63c70d97 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/i18n/en-US.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/i18n/zh-CN.json new file mode 100644 index 000000000..de6ee5748 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..bf087a1bf --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.css @@ -0,0 +1,16 @@ +.container { + flex-direction: column; + justify-content: center; + align-items: center; +} + +.title { + font-size: 100px; +} + +.button { + margin-top: 15px; + font-size:35px; + background-color: aqua; + text-color: black; +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..352365aa7 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.hml @@ -0,0 +1,7 @@ +
+ + {{ title }} + + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..fce67f7ba --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/default/pages/index/index.js @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import featureAbility from '@ohos.ability.featureAbility' + +const injectRef = Object.getPrototypeOf(global) || global +injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') + +export default { + data: { + title: "" + }, + onInit() { + this.title = "Start First" + }, + onShow() { + }, + async reqPermission() { + var context = await featureAbility.getContext(); + context.requestPermissionsFromUser(["com.permission.BMS_PERMISSIONCHANGE_U", + "com.permission.BMS_PERMISSIONCHANGE_V"], 1, + (err, data) => { + console.log("RequestPermissionForUser:requestCode=" + data.requestCode); + for (var j = 0; j < data.permissions.length; j++) { + console.log("RequestPermissionForUser permissions : " + data.permissions[j]); + } + + for (var j = 0; j < data.grantResults.length; j++) { + console.log("RequestPermissionForUser grantResults : " + data.grantResults[j]); + } + }); + }, +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/resources/base/element/string.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/resources/base/element/string.json new file mode 100644 index 000000000..268d71aef --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "app_name", + "value": "firstrequestpermission" + }, + { + "name": "mainability_description", + "value": "JS_Phone_Empty Feature Ability" + } + ] +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/resources/base/media/icon.png b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsfirstrequestpermissions/src/main/js/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 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 MFE+_H33k^04}`^2tpET3 literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/config.json new file mode 100644 index 000000000..860bb5ba9 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/config.json @@ -0,0 +1,240 @@ +{ + "app": { + "bundleName": "com.example.third6", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 4, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.third6", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "dataTransfer" + ], + "name": ".MainAbility", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "audioPlayback" + ], + "name": ".MainAbilityA", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "audioRecording" + ], + "name": ".MainAbilityB", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "location" + ], + "name": ".MainAbilityC", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "bluetoothInteraction" + ], + "name": ".MainAbilityD", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "multiDeviceConnection" + ], + "name": ".MainAbilityE", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "wifiInteraction" + ], + "name": ".MainAbilityF", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "voip" + ], + "name": ".MainAbilityG", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + }, + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "backgroundModes": [ + "taskKeeping" + ], + "name": ".MainAbilityH", + "visible": true, + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/app.js new file mode 100644 index 000000000..2a68c1992 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/app.js @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export default { + onCreate() { + console.info('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/i18n/en-US.json new file mode 100644 index 000000000..e63c70d97 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/i18n/en-US.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/i18n/zh-CN.json new file mode 100644 index 000000000..de6ee5748 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..6fda79275 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.css @@ -0,0 +1,9 @@ +.container { + flex-direction: column; + justify-content: center; + align-items: center; +} + +.title { + font-size: 100px; +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..f64b040a5 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.hml @@ -0,0 +1,5 @@ +
+ + {{ $t('strings.hello') }} {{ title }} + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..2aa8aec01 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/default/pages/index/index.js @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +const injectRef = Object.getPrototypeOf(global) || global +injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') + +export default { + data: { + title: "" + }, + onInit() { + this.title = this.$t('strings.world'); + }, +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/resources/base/element/string.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/resources/base/element/string.json new file mode 100644 index 000000000..233be4f51 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "app_name", + "value": "third6" + }, + { + "name": "mainability_description", + "value": "JS_Phone_Empty Feature Ability" + } + ] +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/resources/base/media/icon.png b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmsgetinfossixthscene/src/main/js/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 zcmYL|Pl)4W7{<4q?5rbOggxwGFSFKz;Osg{({|EPPC zY11zW;y{r>5Eh2H$Q*P%ta#D|y?B!KCWwM8yWSQ>(Tgsuhdqd38QJyt{GR85_wc+w zU-{z-#22~I>e?$u{LzzK=0f(?BBw1;E1Ss>FW|Y=wf!SLW36D>%=vTp;{59W(afy{ z_5@pCe;vcq^>TsSDipT}>RR3pX4mz>%nI|{M7dNdl<_U%_-`^7*uk`K%`G>WSm8+} z^ZMl)L({-03;_}#7z(V?sB3C^ax?Ssp)_WRo-Z;&Dk&=2woOS)S+u0-Gd6~iC{GbB zcbS$fb1bSd%9w465O9D{SsIGfp0AND+wl61Q7HLhgGCHFOY4?)153QDNof5l^l7%zEmmA{5RlAQtxw61s+G+ong%4c|d+1t@T69@x&f z*7NJK0O4?Wrs}c?A(ChS8eliIB86aCnVpvrXBP&Mf%r73bRunr93|=qW4?pirMTx? zk~K6;nTCBe>~|R=?$RBNhAA65-CdswWI^zyepJ{?(w%@1kjj7o97-*|DY6^`+C6^= z6~hkA(aAe2)M3xxq0>q{;L{H7CLM>D8iZ9VYJ*^N!n>pVZ)RPBMuP#aFeWD-ercW1ShACkPYmv*RX zrC*wcW+k28IC&c@;8v`A6W4mxOZ3Ua9hv%U6!`gT`K7u(u=H6JTKVn#a(Hh}lj+Rz zK7WWkzHo?_i4tBQDU#Cg&1ZvN!-za~72UgRenQ;sKFWS^dt-lly>t4O`qQWPjK{}c zfA)ZS_dWdi)#sMa^4$$=C5v%5o4p#=n3pcD|M|^~^yY7T7)tc~d+nd<2gX75;iH=u tUw$q7;<+!2Cc3{O{&Em_0EU;u>u5)XgbGMQVxt$N2^QP2O9G7T`)tQQ%@@b5^W(^%IgVpDaXve- zQ@asTrAVu`3+l*a+9Wgy!GX&Tg9{rM4jh3Ux)T@R!VtTF1QJ6Ul_m|u@qP5@J-zRP z6F;7SKSr*Ve!JAlyP!IHgog{IU^qat7dM@ zh+l~r@$(gU?Ic@bifb&*7GGV(LHwH4i=FZ68`N5{#Jpah*((nV$JNlmk~JO%cxV1* z=G^mW%5k9MxFC@saAm<#x%`x$?`J;QMSZYiVx-Hds-v{&+0`mPNKqf9PgoxYNQ)9q zGx&z4i9(|AdS9p`D2srq3!H~4Ce{nk?+iT89#Y#KJV-?yw4hsUKoIGIP)gcORyJBn z+@V=kE^qiolT6onuseJ#A>G6h`9Do4C$^Y|23;ntW@#dq6~7}kJe#g3O&#dawMX8d zuhujfLf0Lc_;ErICRGjqy<@1HriD$m*BuyAm0`EZRsl#>O40oq>m^bs`ZB4vj5e+gT|`B}_N3!zBcRX2+{%&*^^P~Tw@f^LKUdr> z*Wz?M@q8288&HdsZeq7bl}Rb6)*G&cKq7M7NZdqB2?E4J4e%BKNn4Xspu`qg)98@l zP2sJlU!yVJ|LfK;{x@a{}n5 z<2SbQfr+QUFOx+cca*WJ#wylEY$B;OpEn?*#`URcD2F|E5RV0{q{>u`y!`wUL9hI0 zI%ljfJQF)nJpYz>ZUG15q2=HDh4}5*E=5smB+V39x=rSv%yf~UR*6&5TW8PjUpk*f ze}Db-@As~Ke(>3cwO2MS_#f=8N6OXYCvs`wsly9=bC$?u36T`Cr(Sq;`_aM8uJhiP zC*MBa3J>=0zO??;ix)qwymM!tPx&PK@{tFB{c-X1-P`xS_~^U)m+w5g^TW#ZbA_u* PH}4(&{xW+#_wnE#h8`zg delta 906 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 literal 0 HcmV?d00001 diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/config.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/config.json new file mode 100644 index 000000000..38f80ae1a --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/config.json @@ -0,0 +1,73 @@ +{ + "app": { + "bundleName": "com.example.secondrequestpermissions", + "vendor": "example", + "version": { + "code": 1, + "name": "1.0" + }, + "apiVersion": { + "compatible": 4, + "target": 5, + "releaseType": "Beta1" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.secondrequestpermissions", + "name": ".MyApplication", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry" + }, + "abilities": [ + { + "visible": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "name": "com.example.secondrequestpermissions.MainAbility", + "icon": "$media:icon", + "description": "$string:mainability_description", + "label": "$string:app_name", + "type": "page", + "launchType": "standard" + } + ], + "js": [ + { + "pages": [ + "pages/index/index" + ], + "name": "default", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ], + "reqPermissions": [ + { + "name": "com.permission.BMS_PERMISSIONCHANGE_W", + "reason": "Need PERMISSIONCHANGE W", + "usedScene": { + "ability": [ + "com.example.secondrequestpermissions.MainAbility" + ], + "when": "always" + } + } + ] + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/app.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/app.js new file mode 100644 index 000000000..2a68c1992 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/app.js @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +export default { + onCreate() { + console.info('AceApplication onCreate'); + }, + onDestroy() { + console.info('AceApplication onDestroy'); + } +}; diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/i18n/en-US.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/i18n/en-US.json new file mode 100644 index 000000000..e63c70d97 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/i18n/en-US.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "Hello", + "world": "World" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/i18n/zh-CN.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/i18n/zh-CN.json new file mode 100644 index 000000000..de6ee5748 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/i18n/zh-CN.json @@ -0,0 +1,6 @@ +{ + "strings": { + "hello": "您好", + "world": "世界" + } +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.css b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.css new file mode 100644 index 000000000..d50fe39e7 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.css @@ -0,0 +1,16 @@ +.container { + flex-direction: column; + justify-content: center; + align-items: center; +} + +.title { + font-size: 100px; +} + +.button { + margin-top: 15px; + font-size:35px; + background-color: aqua; + text-color: black; +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.hml b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.hml new file mode 100644 index 000000000..129155d71 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.hml @@ -0,0 +1,6 @@ +
+ + {{ title }} + + +
diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.js b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.js new file mode 100644 index 000000000..be70e7571 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/default/pages/index/index.js @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +import featureAbility from '@ohos.ability.featureAbility' + +const injectRef = Object.getPrototypeOf(global) || global +injectRef.regeneratorRuntime = require('@babel/runtime/regenerator') +export default { + data: { + title: "" + }, + onInit() { + this.title = "Start Second"; + }, + onShow() {}, + async reqPermission() + { + var context = await featureAbility.getContext(); + context.requestPermissionsFromUser(["com.permission.BMS_PERMISSIONCHANGE_W"], 1, + (err, data)=>{ + console.log("RequestPermissionForUser:requestCode=" + data.requestCode); + for(var j = 0; j < data.permissions.length; j++) { + console.log("RequestPermissionForUser permissions : " + data.permissions[j]); + } + + for(var j = 0; j < data.grantResults.length; j++) { + console.log("RequestPermissionForUser grantResults : " + data.grantResults[j]); + } + }); + } +} diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/resources/base/element/string.json b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/resources/base/element/string.json new file mode 100644 index 000000000..40a792e03 --- /dev/null +++ b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "app_name", + "value": "secondrequestpermission" + }, + { + "name": "mainability_description", + "value": "JS_Phone_Empty Feature Ability" + } + ] +} \ No newline at end of file diff --git a/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/resources/base/media/icon.png b/appexecfwk/bundle_standard/bundlemanager/sceneProject/bmssecondrequestpermissions/src/main/js/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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