!322 multimodalinput add inputConsumer and mouse interface

Merge pull request !322 from lifenghui/master
This commit is contained in:
openharmony_ci
2022-06-23 01:31:03 +00:00
committed by Gitee
5 changed files with 501 additions and 28 deletions
@@ -148,11 +148,14 @@ import { mockPrivacyManager } from './ohos_privacyManager'
import { mockFormProvider } from './ohos_application_formProvider'
import { mockScreen } from './ohos_screen'
import { mockDistributedBundle } from './ohos_distributedBundle'
import { mockInputConsumer } from './ohos_multimodalInput_inputConsumer'
import { mockDocument } from './ohos_document'
import { mockMediaQuery } from './ohos_mediaquery'
import { mockResourceManager } from './ohos_resourceManager'
import { mockFile } from './system_file'
import { mockEnterpriseDeviceManager } from './ohos_enterpriseDeviceManager'
import { mockKeyCode } from './ohos_multimodalInput_keyCode'
import { mockInputEventClient } from './ohos_multimodalInput_inputEventClient'
export function mockRequireNapiFun() {
global.requireNapi = function (...args) {
switch (args[0]) {
@@ -434,8 +437,14 @@ export function mockRequireNapiFun() {
return mockPrivacyManager();
case "application.formProvider":
return mockFormProvider();
case "multimodalInput.inputConsumer":
return mockInputConsumer();
case "enterpriseDeviceManager":
return mockEnterpriseDeviceManager();
case "multimodalInput.keyCode":
return mockKeyCode();
case "multimodalInput.inputEventClient":
return mockInputEventClient();
default:
return global.requireNapiPreview(...args);
}
@@ -0,0 +1,68 @@
/*
* Copyright (c) 2022 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 { paramMock } from "../utils"
export function mockInputConsumer() {
const EventType = ['key']
const inputConsumer = {
on: function (...args) {
console.warn("inputConsumer.on interface mocked in the Previewer. How this interface works on the" +
" Previewer may be different from that on a real device.");
const len = args.length;
if (len !== 3) {
console.warn("Must be three parameters");
return;
}
if (EventType.indexOf(args[0]) === -1) {
console.warn("the first parameter must be 'key'");
return;
}
if (typeof args[1] != 'object') {
console.warn("the second parameter type must be 'object'");
return;
}
if (typeof args[2] != 'function') {
console.warn("the third parameter type must be 'function'");
return;
}
args[2].call(this, args[1]);
},
off: function (...args) {
console.warn("inputConsumer.off interface mocked in the Previewer. How this interface works on the" +
" Previewer may be different from that on a real device.");
const len = args.length;
if (len < 2 || len > 3) {
console.warn("a maximum of two parameters");
return;
}
if (EventType.indexOf(args[0]) === -1) {
console.warn("first parameter must be 'key'")
return;
}
if (typeof args[1] != 'object') {
console.warn("second parameter type must be 'object'");
return;
}
if (len === 3) {
if (typeof args[2] != 'function') {
console.warn("the third parameter type must be 'function'");
return;
}
}
}
}
return inputConsumer;
}
@@ -1,5 +1,5 @@
/*
* Copyright (c) 2021 Huawei Device Co., Ltd.
* Copyright (c) 2021-2022 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
@@ -29,7 +29,7 @@ export function mockInputDevice() {
axisRanges: [AxisRange]
}
const EventType = ['changed']
const EventType = ['change']
const DeviceIds = [0, 1, 2, 3, 4]
const GetKeyboardType = 3
const inputDevice = {
@@ -39,7 +39,7 @@ export function mockInputDevice() {
const len = args.length;
if (len === 2) {
if (EventType.indexOf(args[0]) === -1) {
console.warn("the first parameter must be 'changed'")
console.warn("the first parameter must be 'change'")
}
if (typeof args[1] != 'function') {
console.warn("the second parameter type must be 'function'")
@@ -56,11 +56,11 @@ export function mockInputDevice() {
console.warn("a maximum of two parameters")
} else if (len === 1) {
if (EventType.indexOf(args[0]) === -1) {
console.warn("first parameter must be 'changed'")
console.warn("first parameter must be 'change'")
}
} else {
if (EventType.indexOf(args[0]) === -1) {
console.warn("first parameter must be 'changed'")
console.warn("first parameter must be 'change'")
}
if (typeof args[1] != 'function') {
console.warn("second parameter type must be 'function'")
@@ -131,9 +131,9 @@ export function mockInputDevice() {
args[1].call(this, InputDeviceData);
}
},
getKeystrokeAbility: function(...args) {
console.warn("inputDevice.getKeystrokeAbility interface mocked in the Previewer." +
"How this interface works on the" + " Previewer may be different from that on a real device.");
supportKeys: function(...args) {
console.warn("inputDevice.supportKeys interface mocked in the Previewer." +
"How this interface works on the" + " Previewer may be different from that on a real device.");
const len = args.length;
if (len < 2 || len > 3) {
console.warn("parameter number error");
@@ -147,37 +147,29 @@ export function mockInputDevice() {
console.warn("the second parameter type must be array");
return;
}
if (args[1].length < 1 || args[1].length > 5) {
console.warn("the number of keys is incorrect, the range is 1 to 5");
return;
}
var supportKeysRet = [];
for (var i = 0; i < args[1].length; ++i) {
supportKeysRet.unshift('[PC preview] unknow boolean');
}
if (len === 2) {
var KeystrokeAbilityArr = [];
for (var i = 0; i < args[1].length; ++i) {
var KeystrokeAbility = {
keyCode: args[1][i],
isSupport: '[PC preview] unknow isSupport',
}
KeystrokeAbilityArr[i] = KeystrokeAbility;
}
return new Promise((resolve, reject) => {
resolve(KeystrokeAbilityArr);
resolve(supportKeysRet);
})
} else {
if (typeof args[2] !== 'function') {
console.warn("the second parameter type must be array");
console.warn("the third parameter type is wrong");
return;
}
var KeystrokeAbilityArr = [];
for (var i = 0; i < args[1].length; ++i) {
var KeystrokeAbility = {
keyCode: args[1][i],
isSupport: '[PC preview] unknow isSupport',
}
KeystrokeAbilityArr[i] = KeystrokeAbility;
}
args[2].call(this, KeystrokeAbilityArr);
args[2].call(this, supportKeysRet);
}
},
getKeyboardType: function(...args) {
console.warn("inputDevice.getKeyboardType interface mocked in the Previewer." +
"How this interface works on the" + " Previewer may be different from that on a real device.");
"How this interface works on the" + " Previewer may be different from that on a real device.");
const len = args.length;
if (len < 1 || len > 2) {
console.warn("parameter number error");
@@ -0,0 +1,52 @@
/*
* Copyright (c) 2022 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 { paramMock } from "../utils"
export function mockInputEventClient() {
const inputEventClient = {
injectEvent: function(...args) {
console.warn("inputEventClient.injectEvent interface mocked in the Previewer. How this interface works on the" +
" Previewer may be different from that on a real device.");
const len = args.length;
if (len !== 1) {
console.warn("the number of parameter must be one");
return;
}
if (typeof args[0] !== 'object') {
console.warn("the second parameter type must be 'object'");
return;
}
if (typeof args[0].isPressed !== 'boolean') {
console.warn("Field isPressed must be boolean");
return;
}
if (typeof args[0].keyCode !== 'number') {
console.warn("Field keyCode must be number");
return;
}
if (typeof args[0].keyDownDuration !== 'number') {
console.warn("Field keyDownDuration must be number");
return;
}
if (typeof args[0].isIntercepted !== 'boolean') {
console.warn("Field isIntercepted must be boolean");
return;
}
args[0].call(this, paramMock.businessErrorMock);
}
}
return inputEventClient;
}
@@ -0,0 +1,352 @@
/*
* 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 const KeyCode = {
KEYCODE_FN: 0,
KEYCODE_UNKNOWN: -1,
KEYCODE_MEDIA_PLAY_PAUSE: 10,
KEYCODE_MEDIA_STOP: 11,
KEYCODE_MEDIA_NEXT: 12,
KEYCODE_MEDIA_PREVIOUS: 13,
KEYCODE_MEDIA_REWIND: 14,
KEYCODE_MEDIA_FAST_FORWARD: 15,
KEYCODE_VOLUME_UP: 16,
KEYCODE_VOLUME_DOWN: 17,
KEYCODE_POWER: 18,
KEYCODE_CAMERA: 19,
KEYCODE_VOLUME_MUTE: 22,
KEYCODE_MUTE: 23,
KEYCODE_BRIGHTNESS_UP: 40,
KEYCODE_BRIGHTNESS_DOWN: 41,
KEYCODE_0: 2000,
KEYCODE_1: 2001,
KEYCODE_2: 2002,
KEYCODE_3: 2003,
KEYCODE_4: 2004,
KEYCODE_5: 2005,
KEYCODE_6: 2006,
KEYCODE_7: 2007,
KEYCODE_8: 2008,
KEYCODE_9: 2009,
KEYCODE_STAR: 2010,
KEYCODE_POUND: 2011,
KEYCODE_DPAD_UP: 2012,
KEYCODE_DPAD_DOWN: 2013,
KEYCODE_DPAD_LEFT: 2014,
KEYCODE_DPAD_RIGHT: 2015,
KEYCODE_DPAD_CENTER: 2016,
KEYCODE_A: 2017,
KEYCODE_B: 2018,
KEYCODE_C: 2019,
KEYCODE_D: 2020,
KEYCODE_E: 2021,
KEYCODE_F: 2022,
KEYCODE_G: 2023,
KEYCODE_H: 2024,
KEYCODE_I: 2025,
KEYCODE_J: 2026,
KEYCODE_K: 2027,
KEYCODE_L: 2028,
KEYCODE_M: 2029,
KEYCODE_N: 2030,
KEYCODE_O: 2031,
KEYCODE_P: 2032,
KEYCODE_Q: 2033,
KEYCODE_R: 2034,
KEYCODE_S: 2035,
KEYCODE_T: 2036,
KEYCODE_U: 2037,
KEYCODE_V: 2038,
KEYCODE_W: 2039,
KEYCODE_X: 2040,
KEYCODE_Y: 2041,
KEYCODE_Z: 2042,
KEYCODE_COMMA: 2043,
KEYCODE_PERIOD: 2044,
KEYCODE_ALT_LEFT: 2045,
KEYCODE_ALT_RIGHT: 2046,
KEYCODE_SHIFT_LEFT: 2047,
KEYCODE_SHIFT_RIGHT: 2048,
KEYCODE_TAB: 2049,
KEYCODE_SPACE: 2050,
KEYCODE_SYM: 2051,
KEYCODE_EXPLORER: 2052,
KEYCODE_ENVELOPE: 2053,
KEYCODE_ENTER: 2054,
KEYCODE_DEL: 2055,
KEYCODE_GRAVE: 2056,
KEYCODE_MINUS: 2057,
KEYCODE_EQUALS: 2058,
KEYCODE_LEFT_BRACKET: 2059,
KEYCODE_RIGHT_BRACKET: 2060,
KEYCODE_BACKSLASH: 2061,
KEYCODE_SEMICOLON: 2062,
KEYCODE_APOSTROPHE: 2063,
KEYCODE_SLASH: 2064,
KEYCODE_AT: 2065,
KEYCODE_PLUS: 2066,
KEYCODE_MENU: 2067,
KEYCODE_PAGE_UP: 2068,
KEYCODE_PAGE_DOWN: 2069,
KEYCODE_ESCAPE: 2070,
KEYCODE_FORWARD_DEL: 2071,
KEYCODE_CTRL_LEFT: 2072,
KEYCODE_CTRL_RIGHT: 2073,
KEYCODE_CAPS_LOCK: 2074,
KEYCODE_SCROLL_LOCK: 2075,
KEYCODE_META_LEFT: 2076,
KEYCODE_META_RIGHT: 2077,
KEYCODE_FUNCTION: 2078,
KEYCODE_SYSRQ: 2079,
KEYCODE_BREAK: 2080,
KEYCODE_MOVE_HOME: 2081,
KEYCODE_MOVE_END: 2082,
KEYCODE_INSERT: 2083,
KEYCODE_FORWARD: 2084,
KEYCODE_MEDIA_PLAY: 2085,
KEYCODE_MEDIA_PAUSE: 2086,
KEYCODE_MEDIA_CLOSE: 2087,
KEYCODE_MEDIA_EJECT: 2088,
KEYCODE_MEDIA_RECORD: 2089,
KEYCODE_F1: 2090,
KEYCODE_F2: 2091,
KEYCODE_F3: 2092,
KEYCODE_F4: 2093,
KEYCODE_F5: 2094,
KEYCODE_F6: 2095,
KEYCODE_F7: 2096,
KEYCODE_F8: 2097,
KEYCODE_F9: 2098,
KEYCODE_F10: 2099,
KEYCODE_F11: 2100,
KEYCODE_F12: 2101,
KEYCODE_NUM_LOCK: 2102,
KEYCODE_NUMPAD_0: 2103,
KEYCODE_NUMPAD_1: 2104,
KEYCODE_NUMPAD_2: 2105,
KEYCODE_NUMPAD_3: 2106,
KEYCODE_NUMPAD_4: 2107,
KEYCODE_NUMPAD_5: 2108,
KEYCODE_NUMPAD_6: 2109,
KEYCODE_NUMPAD_7: 2110,
KEYCODE_NUMPAD_8: 2111,
KEYCODE_NUMPAD_9: 2112,
KEYCODE_NUMPAD_DIVIDE: 2113,
KEYCODE_NUMPAD_MULTIPLY: 2114,
KEYCODE_NUMPAD_SUBTRACT: 2115,
KEYCODE_NUMPAD_ADD: 2116,
KEYCODE_NUMPAD_DOT: 2117,
KEYCODE_NUMPAD_COMMA: 2118,
KEYCODE_NUMPAD_ENTER: 2119,
KEYCODE_NUMPAD_EQUALS: 2120,
KEYCODE_NUMPAD_LEFT_PAREN: 2121,
KEYCODE_NUMPAD_RIGHT_PAREN: 2122,
KEYCODE_VIRTUAL_MULTITASK: 2210,
KEYCODE_SLEEP: 2600,
KEYCODE_ZENKAKU_HANKAKU: 2601,
KEYCODE_102ND: 2602,
KEYCODE_RO: 2603,
KEYCODE_KATAKANA: 2604,
KEYCODE_HIRAGANA: 2605,
KEYCODE_HENKAN: 2606,
KEYCODE_KATAKANA_HIRAGANA: 2607,
KEYCODE_MUHENKAN: 2608,
KEYCODE_LINEFEED: 2609,
KEYCODE_MACRO: 2610,
KEYCODE_NUMPAD_PLUSMINUS: 2611,
KEYCODE_SCALE: 2612,
KEYCODE_HANGUEL: 2613,
KEYCODE_HANJA: 2614,
KEYCODE_YEN: 2615,
KEYCODE_STOP: 2616,
KEYCODE_AGAIN: 2617,
KEYCODE_PROPS: 2618,
KEYCODE_UNDO: 2619,
KEYCODE_COPY: 2620,
KEYCODE_OPEN: 2621,
KEYCODE_PASTE: 2622,
KEYCODE_FIND: 2623,
KEYCODE_CUT: 2624,
KEYCODE_HELP: 2625,
KEYCODE_CALC: 2626,
KEYCODE_FILE: 2627,
KEYCODE_BOOKMARKS: 2628,
KEYCODE_NEXT: 2629,
KEYCODE_PLAYPAUSE: 2630,
KEYCODE_PREVIOUS: 2631,
KEYCODE_STOPCD: 2632,
KEYCODE_CONFIG: 2634,
KEYCODE_REFRESH: 2635,
KEYCODE_EXIT: 2636,
KEYCODE_EDIT: 2637,
KEYCODE_SCROLLUP: 2638,
KEYCODE_SCROLLDOWN: 2639,
KEYCODE_NEW: 2640,
KEYCODE_REDO: 2641,
KEYCODE_CLOSE: 2642,
KEYCODE_PLAY: 2643,
KEYCODE_BASSBOOST: 2644,
KEYCODE_PRINT: 2645,
KEYCODE_CHAT: 2646,
KEYCODE_FINANCE: 2647,
KEYCODE_CANCEL: 2648,
KEYCODE_KBDILLUM_TOGGLE: 2649,
KEYCODE_KBDILLUM_DOWN: 2650,
KEYCODE_KBDILLUM_UP: 2651,
KEYCODE_SEND: 2652,
KEYCODE_REPLY: 2653,
KEYCODE_FORWARDMAIL: 2654,
KEYCODE_SAVE: 2655,
KEYCODE_DOCUMENTS: 2656,
KEYCODE_VIDEO_NEXT: 2657,
KEYCODE_VIDEO_PREV: 2658,
KEYCODE_BRIGHTNESS_CYCLE: 2659,
KEYCODE_BRIGHTNESS_ZERO: 2660,
KEYCODE_DISPLAY_OFF: 2661,
KEYCODE_BTN_MISC: 2662,
KEYCODE_GOTO: 2663,
KEYCODE_INFO: 2664,
KEYCODE_PROGRAM: 2665,
KEYCODE_PVR: 2666,
KEYCODE_SUBTITLE: 2667,
KEYCODE_FULL_SCREEN: 2668,
KEYCODE_KEYBOARD: 2669,
KEYCODE_ASPECT_RATIO: 2670,
KEYCODE_PC: 2671,
KEYCODE_TV: 2672,
KEYCODE_TV2: 2673,
KEYCODE_VCR: 2674,
KEYCODE_VCR2: 2675,
KEYCODE_SAT: 2676,
KEYCODE_CD: 2677,
KEYCODE_TAPE: 2678,
KEYCODE_TUNER: 2679,
KEYCODE_PLAYER: 2680,
KEYCODE_DVD: 2681,
KEYCODE_AUDIO: 2682,
KEYCODE_VIDEO: 2683,
KEYCODE_MEMO: 2684,
KEYCODE_CALENDAR: 2685,
KEYCODE_RED: 2686,
KEYCODE_GREEN: 2687,
KEYCODE_YELLOW: 2688,
KEYCODE_BLUE: 2689,
KEYCODE_CHANNELUP: 2690,
KEYCODE_CHANNELDOWN: 2691,
KEYCODE_LAST: 2692,
KEYCODE_RESTART: 2693,
KEYCODE_SLOW: 2694,
KEYCODE_SHUFFLE: 2695,
KEYCODE_VIDEOPHONE: 2696,
KEYCODE_GAMES: 2697,
KEYCODE_ZOOMIN: 2698,
KEYCODE_ZOOMOUT: 2699,
KEYCODE_ZOOMRESET: 2700,
KEYCODE_WORDPROCESSOR: 2701,
KEYCODE_EDITOR: 2702,
KEYCODE_SPREADSHEET: 2703,
KEYCODE_GRAPHICSEDITOR: 2704,
KEYCODE_PRESENTATION: 2705,
KEYCODE_DATABASE: 2706,
KEYCODE_NEWS: 2707,
KEYCODE_VOICEMAIL: 2708,
KEYCODE_ADDRESSBOOK: 2709,
KEYCODE_MESSENGER: 2710,
KEYCODE_BRIGHTNESS_TOGGLE: 2711,
KEYCODE_SPELLCHECK: 2712,
KEYCODE_COFFEE: 2713,
KEYCODE_MEDIA_REPEAT: 2714,
KEYCODE_IMAGES: 2715,
KEYCODE_BUTTONCONFIG: 2716,
KEYCODE_TASKMANAGER: 2717,
KEYCODE_JOURNAL: 2718,
KEYCODE_CONTROLPANEL: 2719,
KEYCODE_APPSELECT: 2720,
KEYCODE_SCREENSAVER: 2721,
KEYCODE_ASSISTANT: 2722,
KEYCODE_KBD_LAYOUT_NEXT: 2723,
KEYCODE_BRIGHTNESS_MIN: 2724,
KEYCODE_BRIGHTNESS_MAX: 2725,
KEYCODE_KBDINPUTASSIST_PREV: 2726,
KEYCODE_KBDINPUTASSIST_NEXT: 2727,
KEYCODE_KBDINPUTASSIST_PREVGROUP: 2728,
KEYCODE_KBDINPUTASSIST_NEXTGROUP: 2729,
KEYCODE_KBDINPUTASSIST_ACCEPT: 2730,
KEYCODE_KBDINPUTASSIST_CANCEL: 2731,
KEYCODE_FRONT: 2800,
KEYCODE_SETUP: 2801,
KEYCODE_WAKEUP: 2802,
KEYCODE_SENDFILE: 2803,
KEYCODE_DELETEFILE: 2804,
KEYCODE_XFER: 2805,
KEYCODE_PROG1: 2806,
KEYCODE_PROG2: 2807,
KEYCODE_MSDOS: 2808,
KEYCODE_SCREENLOCK: 2809,
KEYCODE_DIRECTION_ROTATE_DISPLAY: 2810,
KEYCODE_CYCLEWINDOWS: 2811,
KEYCODE_COMPUTER: 2812,
KEYCODE_EJECTCLOSECD: 2813,
KEYCODE_ISO: 2814,
KEYCODE_MOVE: 2815,
KEYCODE_F13: 2816,
KEYCODE_F14: 2817,
KEYCODE_F15: 2818,
KEYCODE_F16: 2819,
KEYCODE_F17: 2820,
KEYCODE_F18: 2821,
KEYCODE_F19: 2822,
KEYCODE_F20: 2823,
KEYCODE_F21: 2824,
KEYCODE_F22: 2825,
KEYCODE_F23: 2826,
KEYCODE_F24: 2827,
KEYCODE_PROG3: 2828,
KEYCODE_PROG4: 2829,
KEYCODE_DASHBOARD: 2830,
KEYCODE_SUSPEND: 2831,
KEYCODE_HP: 2832,
KEYCODE_SOUND: 2833,
KEYCODE_QUESTION: 2834,
KEYCODE_CONNECT: 2836,
KEYCODE_SPORT: 2837,
KEYCODE_SHOP: 2838,
KEYCODE_ALTERASE: 2839,
KEYCODE_SWITCHVIDEOMODE: 2841,
KEYCODE_BATTERY: 2842,
KEYCODE_BLUETOOTH: 2843,
KEYCODE_WLAN: 2844,
KEYCODE_UWB: 2845,
KEYCODE_WWAN_WIMAX: 2846,
KEYCODE_RFKILL: 2847,
KEYCODE_CHANNEL: 3001,
KEYCODE_BTN_0: 3100,
KEYCODE_BTN_1: 3101,
KEYCODE_BTN_2: 3102,
KEYCODE_BTN_3: 3103,
KEYCODE_BTN_4: 3104,
KEYCODE_BTN_5: 3105,
KEYCODE_BTN_6: 3106,
KEYCODE_BTN_7: 3107,
KEYCODE_BTN_8: 3108,
KEYCODE_BTN_9: 3109,
}
export function mockKeyCode() {
const keyCode = {
KeyCode,
}
return keyCode;
}