From 6db0f035a4fa06984383a4ee9864a8c7e02943e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=BF=E6=B3=BD=E8=BF=9C?= Date: Thu, 23 May 2024 18:23:37 +0800 Subject: [PATCH 1/3] Add openDirectory API MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 房泽远 --- interfaces/kits/picker/picker.js | 93 +++++++++++++++++++++++++++----- 1 file changed, 79 insertions(+), 14 deletions(-) diff --git a/interfaces/kits/picker/picker.js b/interfaces/kits/picker/picker.js index 88beed41..5bf79b72 100644 --- a/interfaces/kits/picker/picker.js +++ b/interfaces/kits/picker/picker.js @@ -602,21 +602,86 @@ function AudioViewPicker() { this.save = documentPickerSave; } +function checkArguments(args) { + let checkArgumentsResult = undefined; + + if (args.length !== ARGS_ONE || typeof args[ARGS_ZERO] !== "string") { + checkArgumentsResult = getErr(ErrCode.INVALID_ARGS); + } + + return checkArgumentsResult; +} + +function getErr(errCode) { + return { code: errCode, message: ERRCODE_MAP.get(errCode) }; +} + +function parseOpenDirectory(args) { + let fileUri = ""; + let config = { + deviceId: "", + bundleName: "com.huawei.hmos.filemanager", + abilityName: "MainAbility", + parameters: { + fileUri: "", + }, + }; + + if (args.length === ARGS_ONE && typeof args[ARGS_ZERO] === "string") { + fileUri = args[ARGS_ZERO]; + config.parameters.fileUri = encodeURI(fileUri); + } + + console.log("[openDirectory] fileUri : " + fileUri); + return config; +} + +async function openDirectory(...args) { + let checkArgsResult = checkArguments(args); + if (checkArgsResult !== undefined) { + console.log("[openDirectory] Invalid argument"); + throw checkArgsResult; + } + + let context = undefined; + let config = undefined; + let result = undefined; + + try { + context = getContext(this); + } catch (getContextError) { + console.error("[openDirectory] getContext error: " + getContextError); + throw getErr(ErrCode.CONTEXT_NO_EXIST); + } + try { + if (context === undefined) { + throw getErr(ErrCode.CONTEXT_NO_EXIST); + } + config = parseOpenDirectory(args); + result = await context.startAbilityForResult(config); + } catch (paramError) { + console.error("[openDirectory] paramError: " + JSON.stringify(paramError)); + } + console.log("[openDirectory] result: " + JSON.stringify(result)); + + return undefined; +} export default { startModalPicker, - ExtTypes : ExtTypes, + ExtTypes: ExtTypes, PickerDetailType: PickerDetailType, - PhotoViewMIMETypes : PhotoViewMIMETypes, - PhotoSelectOptions : PhotoSelectOptions, - PhotoSelectResult : PhotoSelectResult, - PhotoSaveOptions : PhotoSaveOptions, - DocumentSelectMode : DocumentSelectMode, - DocumentPickerMode : DocumentPickerMode, - DocumentSelectOptions : DocumentSelectOptions, - DocumentSaveOptions : DocumentSaveOptions, - AudioSelectOptions : AudioSelectOptions, - AudioSaveOptions : AudioSaveOptions, - PhotoViewPicker : PhotoViewPicker, + PhotoViewMIMETypes: PhotoViewMIMETypes, + PhotoSelectOptions: PhotoSelectOptions, + PhotoSelectResult: PhotoSelectResult, + PhotoSaveOptions: PhotoSaveOptions, + DocumentSelectMode: DocumentSelectMode, + DocumentPickerMode: DocumentPickerMode, + DocumentSelectOptions: DocumentSelectOptions, + DocumentSaveOptions: DocumentSaveOptions, + AudioSelectOptions: AudioSelectOptions, + AudioSaveOptions: AudioSaveOptions, + PhotoViewPicker: PhotoViewPicker, DocumentViewPicker: DocumentViewPicker, - AudioViewPicker : AudioViewPicker, -} \ No newline at end of file + AudioViewPicker: AudioViewPicker, + openDirectory: openDirectory, +}; \ No newline at end of file -- Gitee From 12de0f80f549bc99a6e60d1362153005f8e65fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=BF=E6=B3=BD=E8=BF=9C?= Date: Thu, 23 May 2024 19:47:48 +0800 Subject: [PATCH 2/3] Remove duplicate function declarations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 房泽远 --- interfaces/kits/picker/picker.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/interfaces/kits/picker/picker.js b/interfaces/kits/picker/picker.js index 5bf79b72..4546aa2c 100644 --- a/interfaces/kits/picker/picker.js +++ b/interfaces/kits/picker/picker.js @@ -602,7 +602,7 @@ function AudioViewPicker() { this.save = documentPickerSave; } -function checkArguments(args) { +function checkArgumentsV2(args) { let checkArgumentsResult = undefined; if (args.length !== ARGS_ONE || typeof args[ARGS_ZERO] !== "string") { @@ -612,10 +612,6 @@ function checkArguments(args) { return checkArgumentsResult; } -function getErr(errCode) { - return { code: errCode, message: ERRCODE_MAP.get(errCode) }; -} - function parseOpenDirectory(args) { let fileUri = ""; let config = { @@ -637,7 +633,7 @@ function parseOpenDirectory(args) { } async function openDirectory(...args) { - let checkArgsResult = checkArguments(args); + let checkArgsResult = checkArgumentsV2(args); if (checkArgsResult !== undefined) { console.log("[openDirectory] Invalid argument"); throw checkArgsResult; -- Gitee From 43ff904fe5151bc6208c02e2a3d36453ded5b957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=BF=E6=B3=BD=E8=BF=9C?= Date: Thu, 23 May 2024 19:47:48 +0800 Subject: [PATCH 3/3] Remove duplicate function declarations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 房泽远 --- interfaces/kits/picker/picker.js | 71 +++++++++++--------------------- 1 file changed, 23 insertions(+), 48 deletions(-) diff --git a/interfaces/kits/picker/picker.js b/interfaces/kits/picker/picker.js index 5bf79b72..20ad2302 100644 --- a/interfaces/kits/picker/picker.js +++ b/interfaces/kits/picker/picker.js @@ -602,69 +602,44 @@ function AudioViewPicker() { this.save = documentPickerSave; } -function checkArguments(args) { - let checkArgumentsResult = undefined; - - if (args.length !== ARGS_ONE || typeof args[ARGS_ZERO] !== "string") { - checkArgumentsResult = getErr(ErrCode.INVALID_ARGS); - } - - return checkArgumentsResult; -} - -function getErr(errCode) { - return { code: errCode, message: ERRCODE_MAP.get(errCode) }; -} - function parseOpenDirectory(args) { - let fileUri = ""; - let config = { - deviceId: "", - bundleName: "com.huawei.hmos.filemanager", - abilityName: "MainAbility", + let fileUri = ''; + let openLinkOptions = { + appLinkingOnly: false, parameters: { - fileUri: "", - }, - }; - - if (args.length === ARGS_ONE && typeof args[ARGS_ZERO] === "string") { - fileUri = args[ARGS_ZERO]; - config.parameters.fileUri = encodeURI(fileUri); + 'fileUri': '' + } } - console.log("[openDirectory] fileUri : " + fileUri); - return config; + if (args.length === ARGS_TWO && typeof args[ARGS_ONE] === 'string') { + fileUri = args[ARGS_ONE]; + openLinkOptions.parameters.fileUri = encodeURI(fileUri); + } + console.log('[picker] fileUri length: ' + fileUri.length); + return openLinkOptions; } async function openDirectory(...args) { - let checkArgsResult = checkArguments(args); - if (checkArgsResult !== undefined) { - console.log("[openDirectory] Invalid argument"); - throw checkArgsResult; - } - let context = undefined; - let config = undefined; - let result = undefined; - + let openLinkOptions = undefined; + let link = "filemanager://openDirectory" try { - context = getContext(this); + context = args[ARGS_ZERO]; + if (context === undefined) { + throw getErr(ErrCode.CONTEXT_NO_EXIST); + } } catch (getContextError) { - console.error("[openDirectory] getContext error: " + getContextError); + console.error('[picker] getContext error: ' + getContextError); throw getErr(ErrCode.CONTEXT_NO_EXIST); } try { - if (context === undefined) { - throw getErr(ErrCode.CONTEXT_NO_EXIST); - } - config = parseOpenDirectory(args); - result = await context.startAbilityForResult(config); + openLinkOptions = parseOpenDirectory(args); + await context.openLink( + link, + openLinkOptions) } catch (paramError) { - console.error("[openDirectory] paramError: " + JSON.stringify(paramError)); + console.error('[picker] paramError: ' + JSON.stringify(paramError)); } - console.log("[openDirectory] result: " + JSON.stringify(result)); - - return undefined; } export default { startModalPicker, -- Gitee