@ray-js/lock-sdk 1.2.4-beta.1 → 1.2.4-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { offBleChange, offDeviceInfoUpdated, offDpDataChange, offMqttMessage, offOnlineChange, offResetMemberName, offResetMemberRole, onAppHide, onAppShow, onBleChange, onDeviceInfoUpdated, onDpDataChange, onMqttMessage, onOnlineChange, onResetMemberName, onResetMemberRole, registerBleStatus, registerDevice, registerMQTTDeviceListener, registerMQTTProtocolListener, } from "../../platform/device";
|
|
1
|
+
import { offBleChange, offDeviceInfoUpdated, offDpDataChange, offMqttMessage, offOnlineChange, offReceiveMessage, offResetMemberName, offResetMemberRole, onAppHide, onAppShow, onBleChange, onDeviceInfoUpdated, onDpDataChange, onMqttMessage, onOnlineChange, onReceiveMessage, onResetMemberName, onResetMemberRole, registerBleStatus, registerChannel, registerDevice, registerMQTTDeviceListener, registerMQTTProtocolListener, } from "../../platform/device";
|
|
2
2
|
import { getRuntimeByDevId, listRegisteredRuntimes, } from "../../runtime/registry";
|
|
3
3
|
import emitter from "../../utils/event";
|
|
4
4
|
import { getWiFiSignalChangeEvent } from "../misc/signal";
|
|
@@ -14,6 +14,7 @@ import { syncDeleteUsersWithRuntime } from "../user/sync-user";
|
|
|
14
14
|
import { fetchDeviceProperties } from "./remote-permissions";
|
|
15
15
|
import { checkOfflineDpUpdateForRuntime } from "../offline-dps";
|
|
16
16
|
import { sdkLog } from "../../utils/sdk-log";
|
|
17
|
+
import { ipc } from "../../platform";
|
|
17
18
|
const subscribedDevIds = new Set();
|
|
18
19
|
let globalPlatformListenersInstalled = false;
|
|
19
20
|
let mqttProtocolListenerRegistered = false;
|
|
@@ -118,6 +119,27 @@ const globalHandleResetMemberName = ({ memberId }) => {
|
|
|
118
119
|
};
|
|
119
120
|
const globalHandleResetMemberRole = ({ memberId }) => {
|
|
120
121
|
};
|
|
122
|
+
const globalHandleReceiveMessage = (data) => {
|
|
123
|
+
if (!data || !data.eventName) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
sdkLog("info", "platform", "onReceiveMessage", {
|
|
127
|
+
data: { eventName: data.eventName, type: data.event?.type },
|
|
128
|
+
});
|
|
129
|
+
const { eventName, event } = data;
|
|
130
|
+
if (eventName === "LOCK_SETTINGS_EVENT") {
|
|
131
|
+
const { type, deviceId, data } = event;
|
|
132
|
+
if (type === "talk_mode_changed") {
|
|
133
|
+
const rt = getRuntimeByDevId(deviceId);
|
|
134
|
+
if (rt) {
|
|
135
|
+
ipc.getCurrentSupportedTalkMode(deviceId).then((modeRes) => {
|
|
136
|
+
rt.config.isTwoWayTalk = modeRes.talkbackMode === 2;
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
};
|
|
142
|
+
let settingsChannelManager;
|
|
121
143
|
export const addEvents = (runtime) => {
|
|
122
144
|
if (!globalPlatformListenersInstalled) {
|
|
123
145
|
globalPlatformListenersInstalled = true;
|
|
@@ -130,6 +152,8 @@ export const addEvents = (runtime) => {
|
|
|
130
152
|
onAppHide(globalHandleAppHide);
|
|
131
153
|
onResetMemberName(globalHandleResetMemberName);
|
|
132
154
|
onResetMemberRole(globalHandleResetMemberRole);
|
|
155
|
+
settingsChannelManager = registerChannel("LOCK_SETTINGS_EVENT");
|
|
156
|
+
onReceiveMessage(globalHandleReceiveMessage);
|
|
133
157
|
}
|
|
134
158
|
if (runtime.infra.eventsRegistered) {
|
|
135
159
|
return;
|
|
@@ -161,4 +185,6 @@ export const removeEvents = () => {
|
|
|
161
185
|
for (const rt of listRegisteredRuntimes()) {
|
|
162
186
|
rt.infra.eventsRegistered = false;
|
|
163
187
|
}
|
|
188
|
+
settingsChannelManager && settingsChannelManager.unRegisterChannel({});
|
|
189
|
+
offReceiveMessage(globalHandleReceiveMessage);
|
|
164
190
|
};
|
package/lib/feature/user/user.js
CHANGED
|
@@ -9,7 +9,7 @@ import { updateUserTimeSchedule, addNormalUser, removeNormalUser, } from "../../
|
|
|
9
9
|
import { validConfigDpMap } from "../../config/dp-map/common";
|
|
10
10
|
import { isUseNearChannelForRuntime } from "../misc/is-use-near-channel-for-runtime";
|
|
11
11
|
import { getUnlockMethodTypeByDpCodeForRuntime } from "../utils";
|
|
12
|
-
import { formatTimestampToMilliseconds, formatWeek, isAdmin, parseWeek, validateEffectiveConfig, } from "../../utils";
|
|
12
|
+
import { formatTimestampToMilliseconds, formatWeek, isAdmin, isHarmony, parseWeek, validateEffectiveConfig, } from "../../utils";
|
|
13
13
|
import { getCurrentHomeInfo, isSupportShortLink } from "../../platform/device";
|
|
14
14
|
import { LoopTypes } from "../../utils/constant";
|
|
15
15
|
import { getCurrentUserForRuntime } from "./current-user";
|
|
@@ -337,8 +337,8 @@ export const openAddFamilyUser = async () => {
|
|
|
337
337
|
if (!link) {
|
|
338
338
|
link = await isSupportShortLink("thingsh_family_add_member_rn");
|
|
339
339
|
}
|
|
340
|
-
if (link) {
|
|
341
|
-
const url = `tuyaSmart://${link}?homeId=${homeInfo.homeId}`;
|
|
340
|
+
if (link || isHarmony()) {
|
|
341
|
+
const url = `tuyaSmart://${isHarmony() ? "thingsh_family_add_member_rn" : link}?homeId=${homeInfo.homeId}`;
|
|
342
342
|
return new Promise((resolve, reject) => {
|
|
343
343
|
ty.router({
|
|
344
344
|
url: url,
|
|
@@ -369,7 +369,7 @@ export async function openFamilyUserDetailForRuntime(rt, userId) {
|
|
|
369
369
|
const { userType: currentUserType } = await getCurrentUserForRuntime(rt);
|
|
370
370
|
const role = userTypeMap[currentUserType];
|
|
371
371
|
let link = await isSupportShortLink("member_info");
|
|
372
|
-
if (link) {
|
|
372
|
+
if (link || isHarmony()) {
|
|
373
373
|
const url = `tuyaSmart://member_info?homeId=${homeId}&memberId=${userId}&role=${role}`;
|
|
374
374
|
ty.router({
|
|
375
375
|
url: url,
|
package/lib/platform/device.d.ts
CHANGED
|
@@ -228,4 +228,7 @@ export declare const getAppUserInfo: () => Promise<{
|
|
|
228
228
|
phoneCode: string;
|
|
229
229
|
isTemporaryUser: boolean;
|
|
230
230
|
}>;
|
|
231
|
+
export declare const registerChannel: (eventName: string) => ReturnType<typeof ty.registerChannel>;
|
|
232
|
+
export declare const onReceiveMessage: (cb: (data: any) => void) => void;
|
|
233
|
+
export declare const offReceiveMessage: (cb: (data: any) => void) => void;
|
|
231
234
|
export {};
|
package/lib/platform/device.js
CHANGED
|
@@ -552,3 +552,14 @@ export const getAppUserInfo = () => {
|
|
|
552
552
|
});
|
|
553
553
|
});
|
|
554
554
|
};
|
|
555
|
+
export const registerChannel = (eventName) => {
|
|
556
|
+
return ty.registerChannel({
|
|
557
|
+
eventName,
|
|
558
|
+
});
|
|
559
|
+
};
|
|
560
|
+
export const onReceiveMessage = (cb) => {
|
|
561
|
+
return ty.onReceiveMessage(cb);
|
|
562
|
+
};
|
|
563
|
+
export const offReceiveMessage = (cb) => {
|
|
564
|
+
return ty.offReceiveMessage(cb);
|
|
565
|
+
};
|