@rentlydev/rently-tuya 0.1.0
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.
- package/LICENSE +20 -0
- package/README.md +281 -0
- package/android/build.gradle +182 -0
- package/android/gradle.properties +7 -0
- package/android/libs/airbrake-android-1.4.0.jar +0 -0
- package/android/src/main/AndroidManifest.xml +1 -0
- package/android/src/main/AndroidManifestNew.xml +25 -0
- package/android/src/main/java/com/rentlytuya/RentlyTuyaModule.kt +503 -0
- package/android/src/main/java/com/rentlytuya/RentlyTuyaPackage.kt +18 -0
- package/android/src/main/java/com/rentlytuya/TuyaActivity.kt +45 -0
- package/android/src/main/java/com/rentlytuya/alerts/FormatSDCardAlert.kt +83 -0
- package/android/src/main/java/com/rentlytuya/alerts/PermissionAlert.kt +91 -0
- package/android/src/main/java/com/rentlytuya/alerts/RemoveDoorbellAlert.kt +83 -0
- package/android/src/main/java/com/rentlytuya/alerts/RemoveDoorbellFailureAlert.kt +71 -0
- package/android/src/main/java/com/rentlytuya/alerts/ResetWifiAlert.kt +83 -0
- package/android/src/main/java/com/rentlytuya/alerts/SuccessAlert.kt +74 -0
- package/android/src/main/java/com/rentlytuya/components/Alert.kt +47 -0
- package/android/src/main/java/com/rentlytuya/components/AnchorButton.kt +125 -0
- package/android/src/main/java/com/rentlytuya/components/Button.kt +147 -0
- package/android/src/main/java/com/rentlytuya/components/CustomDatePicker.kt +275 -0
- package/android/src/main/java/com/rentlytuya/components/Divider.kt +53 -0
- package/android/src/main/java/com/rentlytuya/components/EncryptedImageView.kt +59 -0
- package/android/src/main/java/com/rentlytuya/components/Label.kt +155 -0
- package/android/src/main/java/com/rentlytuya/components/LoadingIndicator.kt +75 -0
- package/android/src/main/java/com/rentlytuya/components/Slider.kt +66 -0
- package/android/src/main/java/com/rentlytuya/components/Switch.kt +51 -0
- package/android/src/main/java/com/rentlytuya/components/VideoView.kt +45 -0
- package/android/src/main/java/com/rentlytuya/dashboard/AdvancedSettings.kt +259 -0
- package/android/src/main/java/com/rentlytuya/dashboard/Dashboard.kt +551 -0
- package/android/src/main/java/com/rentlytuya/dashboard/DoorbellSettings.kt +874 -0
- package/android/src/main/java/com/rentlytuya/dashboard/Messages.kt +463 -0
- package/android/src/main/java/com/rentlytuya/dashboard/NavController.kt +358 -0
- package/android/src/main/java/com/rentlytuya/dashboard/OfflineScreen.kt +160 -0
- package/android/src/main/java/com/rentlytuya/dashboard/Playback.kt +685 -0
- package/android/src/main/java/com/rentlytuya/tuya/Messages.kt +234 -0
- package/android/src/main/java/com/rentlytuya/tuya/Playback.kt +385 -0
- package/android/src/main/java/com/rentlytuya/tuya/ScreenCapture.kt +244 -0
- package/android/src/main/java/com/rentlytuya/tuya/Settings.kt +809 -0
- package/android/src/main/java/com/rentlytuya/tuya/Tuya.kt +497 -0
- package/android/src/main/java/com/rentlytuya/ui/theme/LocalColor.kt +80 -0
- package/android/src/main/java/com/rentlytuya/ui/theme/LocalFont.kt +35 -0
- package/android/src/main/java/com/rentlytuya/ui/theme/Theme.kt +34 -0
- package/android/src/main/java/com/rentlytuya/ui/theme/Type.kt +34 -0
- package/android/src/main/java/com/rentlytuya/util/Airbrake.kt +40 -0
- package/android/src/main/java/com/rentlytuya/util/DpConstants.kt +53 -0
- package/android/src/main/java/com/rentlytuya/util/FrescoManager.kt +86 -0
- package/android/src/main/java/com/rentlytuya/util/HeapAnalytics.kt +16 -0
- package/android/src/main/java/com/rentlytuya/util/KeylessModule.kt +81 -0
- package/android/src/main/java/com/rentlytuya/util/PermissionHandler.kt +75 -0
- package/android/src/main/java/com/rentlytuya/util/ReactParamsCheck.kt +152 -0
- package/android/src/main/java/com/rentlytuya/util/Util.kt +128 -0
- package/android/src/main/res/drawable/ic_close.xml +12 -0
- package/android/src/main/res/drawable/ic_launcher_background.xml +170 -0
- package/android/src/main/res/drawable/ic_launcher_foreground.xml +30 -0
- package/android/src/main/res/drawable/img_place_holder.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_action_arrow_backward.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_arrow_backward_white.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_arrow_blue_right.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_calendar.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_camera.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_message.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_pause.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_play.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_play_back.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_record.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_retry.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_setting.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_sound_off.png +0 -0
- package/android/src/main/res/drawable-hdpi/ic_sound_on.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_action_arrow_backward.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_arrow_backward_white.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_arrow_blue_right.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_battery_average.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_battery_charging.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_battery_full.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_battery_good.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_battery_low.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_calendar.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_camera.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_message.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_pause.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_play.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_play_back.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_record.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_retry.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_setting.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_sound_off.png +0 -0
- package/android/src/main/res/drawable-mdpi/ic_sound_on.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_action_arrow_backward.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_arrow_backward_white.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_arrow_blue_right.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_battery_average.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_battery_charging.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_battery_full.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_battery_good.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_battery_low.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_calendar.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_camera.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_message.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_pause.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_play.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_play_back.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_record.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_retry.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_setting.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_sound_off.png +0 -0
- package/android/src/main/res/drawable-xhdpi/ic_sound_on.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_action_arrow_backward.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_arrow_backward_white.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_arrow_blue_right.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_battery_average.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_battery_charging.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_battery_full.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_battery_good.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_battery_low.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_calendar.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_camera.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_message.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_pause.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_play.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_play_back.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_record.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_retry.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_setting.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_sound_off.png +0 -0
- package/android/src/main/res/drawable-xxhdpi/ic_sound_on.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_action_arrow_backward.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_arrow_backward_white.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_arrow_blue_right.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_calendar.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_camera.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_message.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_pause.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_play.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_play_back.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_record.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_retry.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_setting.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_sound_off.png +0 -0
- package/android/src/main/res/drawable-xxxhdpi/ic_sound_on.png +0 -0
- package/android/src/main/res/font/quicksand_bold.ttf +0 -0
- package/android/src/main/res/font/quicksand_light.ttf +0 -0
- package/android/src/main/res/font/quicksand_medium.ttf +0 -0
- package/android/src/main/res/font/quicksand_regular.ttf +0 -0
- package/android/src/main/res/font/quicksand_semi_bold.ttf +0 -0
- package/android/src/main/res/values/strings.xml +121 -0
- package/android/thingMapping.gradle +200 -0
- package/android/thingMapping.json +2014 -0
- package/ios/components/Alert.swift +54 -0
- package/ios/components/AnchorButton.swift +100 -0
- package/ios/components/Button.swift +118 -0
- package/ios/components/CustomDatePicker.swift +275 -0
- package/ios/components/Divider.swift +28 -0
- package/ios/components/Image.swift +72 -0
- package/ios/components/Label.swift +105 -0
- package/ios/components/Switch.swift +61 -0
- package/ios/dashboard/AdvanceSettings.swift +127 -0
- package/ios/dashboard/Dashboard.swift +354 -0
- package/ios/dashboard/Messages.swift +361 -0
- package/ios/dashboard/NavigationController.swift +173 -0
- package/ios/dashboard/OfflineScreen.swift +109 -0
- package/ios/dashboard/Playback.swift +543 -0
- package/ios/dashboard/PreviewManager.swift +117 -0
- package/ios/dashboard/Settings.swift +672 -0
- package/ios/icons/Charging.png +0 -0
- package/ios/icons/Charging@2x.png +0 -0
- package/ios/icons/Charging@3x.png +0 -0
- package/ios/icons/back_arraow.png +0 -0
- package/ios/icons/back_arraow@2x.png +0 -0
- package/ios/icons/back_arraow@3x.png +0 -0
- package/ios/icons/battery_average.png +0 -0
- package/ios/icons/battery_average@2x.png +0 -0
- package/ios/icons/battery_average@3x.png +0 -0
- package/ios/icons/battery_full.png +0 -0
- package/ios/icons/battery_full@2x.png +0 -0
- package/ios/icons/battery_full@3x.png +0 -0
- package/ios/icons/battery_good.png +0 -0
- package/ios/icons/battery_good@2x.png +0 -0
- package/ios/icons/battery_good@3x.png +0 -0
- package/ios/icons/battery_low.png +0 -0
- package/ios/icons/battery_low@2x.png +0 -0
- package/ios/icons/battery_low@3x.png +0 -0
- package/ios/icons/calendar.png +0 -0
- package/ios/icons/calendar@2x.png +0 -0
- package/ios/icons/calendar@3x.png +0 -0
- package/ios/icons/cloud.png +0 -0
- package/ios/icons/cloud@2x.png +0 -0
- package/ios/icons/cloud@3x.png +0 -0
- package/ios/icons/down_update.png +0 -0
- package/ios/icons/down_update@2x.png +0 -0
- package/ios/icons/down_update@3x.png +0 -0
- package/ios/icons/exit_fullscreen.png +0 -0
- package/ios/icons/exit_fullscreen@2x.png +0 -0
- package/ios/icons/exit_fullscreen@3x.png +0 -0
- package/ios/icons/expand.png +0 -0
- package/ios/icons/fullscreen.png +0 -0
- package/ios/icons/fullscreen@2x.png +0 -0
- package/ios/icons/fullscreen@3x.png +0 -0
- package/ios/icons/image_placeholder.png +0 -0
- package/ios/icons/information.png +0 -0
- package/ios/icons/information@2x.png +0 -0
- package/ios/icons/information@3x.png +0 -0
- package/ios/icons/keyless_Setting.png +0 -0
- package/ios/icons/keyless_Setting@2x.png +0 -0
- package/ios/icons/keyless_Setting@3x.png +0 -0
- package/ios/icons/keyless_back@1x.png +0 -0
- package/ios/icons/keyless_back@2x.png +0 -0
- package/ios/icons/keyless_back@3x.png +0 -0
- package/ios/icons/keyless_filter.png +0 -0
- package/ios/icons/keyless_filter@2x.png +0 -0
- package/ios/icons/keyless_filter@3x.png +0 -0
- package/ios/icons/keyless_message.png +0 -0
- package/ios/icons/keyless_message@2x.png +0 -0
- package/ios/icons/keyless_message@3x.png +0 -0
- package/ios/icons/keyless_pause.png +0 -0
- package/ios/icons/keyless_pause@2x.png +0 -0
- package/ios/icons/keyless_pause@3x.png +0 -0
- package/ios/icons/keyless_photo.png +0 -0
- package/ios/icons/keyless_photo@2x.png +0 -0
- package/ios/icons/keyless_photo@3x.png +0 -0
- package/ios/icons/keyless_play.png +0 -0
- package/ios/icons/keyless_play@2x.png +0 -0
- package/ios/icons/keyless_play@3x.png +0 -0
- package/ios/icons/keyless_play_list.png +0 -0
- package/ios/icons/keyless_play_list@2x.png +0 -0
- package/ios/icons/keyless_play_list@3x.png +0 -0
- package/ios/icons/keyless_play_playback.png +0 -0
- package/ios/icons/keyless_play_playback@2x.png +0 -0
- package/ios/icons/keyless_play_playback@3x.png +0 -0
- package/ios/icons/keyless_record.png +0 -0
- package/ios/icons/keyless_record@2x.png +0 -0
- package/ios/icons/keyless_record@3x.png +0 -0
- package/ios/icons/keyless_record_on.png +0 -0
- package/ios/icons/keyless_record_on@2x.png +0 -0
- package/ios/icons/keyless_record_on@3x.png +0 -0
- package/ios/icons/keyless_sound_off.png +0 -0
- package/ios/icons/keyless_sound_off@2x.png +0 -0
- package/ios/icons/keyless_sound_off@3x.png +0 -0
- package/ios/icons/keyless_sound_on.png +0 -0
- package/ios/icons/keyless_sound_on@2x.png +0 -0
- package/ios/icons/keyless_sound_on@3x.png +0 -0
- package/ios/icons/keyless_speak_off.png +0 -0
- package/ios/icons/keyless_speak_off@2x.png +0 -0
- package/ios/icons/keyless_speak_on.png +0 -0
- package/ios/icons/keyless_speak_on@2x.png +0 -0
- package/ios/icons/keyless_speak_on@3x.png +0 -0
- package/ios/icons/refresh.png +0 -0
- package/ios/icons/refresh@2x.png +0 -0
- package/ios/icons/refresh@3x.png +0 -0
- package/ios/icons/ty_camera_control_hd_normal@2x.png +0 -0
- package/ios/icons/ty_camera_control_hd_normal@3x.png +0 -0
- package/ios/icons/ty_camera_control_sd_normal@2x.png +0 -0
- package/ios/icons/ty_camera_control_sd_normal@3x.png +0 -0
- package/ios/icons/upgrade_success.png +0 -0
- package/ios/icons/upgrade_success@2x.png +0 -0
- package/ios/icons/upgrade_success@3x.png +0 -0
- package/ios/listener/KeylessListener.m +8 -0
- package/ios/listener/KeylessListener.swift +56 -0
- package/ios/listener/RentlyTuya-Bridging-Header.h +5 -0
- package/ios/listener/RentlyTuya.mm +56 -0
- package/ios/listener/RentlyTuya.swift +544 -0
- package/ios/theme/LocalColor.swift +33 -0
- package/ios/theme/LocalFont.swift +32 -0
- package/ios/theme/Theme.swift +71 -0
- package/ios/tuya/CameraManager.swift +296 -0
- package/ios/tuya/SettingsManager.swift +475 -0
- package/ios/tuya/Tuya.swift +570 -0
- package/ios/tuya/TuyaMessages.swift +98 -0
- package/ios/utils/Airbrake.swift +31 -0
- package/ios/utils/AppUtility.swift +76 -0
- package/ios/utils/HeapAnalytics.swift +8 -0
- package/ios/utils/OrientationManager.swift +60 -0
- package/ios/utils/PromiseHandler.swift +36 -0
- package/lib/commonjs/index.js +90 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/index.js +83 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +75 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/index.d.ts +75 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/package.json +188 -0
- package/rently-tuya.podspec +52 -0
- package/src/index.tsx +158 -0
package/LICENSE
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2024 harishkumar00
|
4
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
5
|
+
of this software and associated documentation files (the "Software"), to deal
|
6
|
+
in the Software without restriction, including without limitation the rights
|
7
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8
|
+
copies of the Software, and to permit persons to whom the Software is
|
9
|
+
furnished to do so, subject to the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be included in all
|
12
|
+
copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
20
|
+
SOFTWARE.
|
package/README.md
ADDED
@@ -0,0 +1,281 @@
|
|
1
|
+
# @rentlydev/rently-tuya
|
2
|
+
|
3
|
+
A React Native module for integrating the Tuya Doorbell SDK, enabling applications to interact with Tuya-compatible smart doorbells. This library provides essential functionalities such as device pairing, live preview, and push notification registration, ensuring a seamless smart home experience.
|
4
|
+
|
5
|
+
Fully compatible with TypeScript.
|
6
|
+
|
7
|
+
## Supported platforms
|
8
|
+
|
9
|
+
| Platform | Support |
|
10
|
+
|---|---|
|
11
|
+
| iOS | ✅ |
|
12
|
+
| Android | ✅ |
|
13
|
+
| Web | ❌ |
|
14
|
+
| Windows | ❌ |
|
15
|
+
| macOS | ❌ |
|
16
|
+
|
17
|
+
## Installation
|
18
|
+
|
19
|
+
```sh
|
20
|
+
npm install @rentlydev/rently-tuya
|
21
|
+
```
|
22
|
+
or
|
23
|
+
|
24
|
+
```sh
|
25
|
+
yarn add @rentlydev/rently-tuya
|
26
|
+
```
|
27
|
+
|
28
|
+
## Configuration and Permissions
|
29
|
+
|
30
|
+
### iOS
|
31
|
+
(Configuration details to be added)
|
32
|
+
|
33
|
+
### Android
|
34
|
+
(Configuration details to be added)
|
35
|
+
|
36
|
+
## Summary
|
37
|
+
|
38
|
+
### Methods
|
39
|
+
|
40
|
+
* [`initAirbrake`](#initAirbrake)
|
41
|
+
* [`getCurrentWifi`](#getCurrentWifi)
|
42
|
+
* [`getDeviceData`](#getDeviceData)
|
43
|
+
* [`setTuyaHome`](#setTuyaHome)
|
44
|
+
* [`getTokenForQRCode`](#getTokenForQRCode)
|
45
|
+
* [`initActivatorForQRCode`](#initActivatorForQRCode)
|
46
|
+
* [`loginWithUid`](#loginWithUid)
|
47
|
+
* [`logout`](#logout)
|
48
|
+
* [`openCameraLivePreview`](#openCameraLivePreview)
|
49
|
+
* [`registerForPushNotification`](#registerForPushNotification)
|
50
|
+
* [`renameDevice`](#renameDevice)
|
51
|
+
* [`resetDevice`](#resetDevice)
|
52
|
+
|
53
|
+
### Listeners
|
54
|
+
|
55
|
+
* [`Listeners`](#Listeners)
|
56
|
+
|
57
|
+
---
|
58
|
+
|
59
|
+
## Usage
|
60
|
+
|
61
|
+
### initAirbrake
|
62
|
+
```javascript
|
63
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
64
|
+
|
65
|
+
const response = await RentlyTuya.initAirbrake({ key: '', id: '' });
|
66
|
+
```
|
67
|
+
|
68
|
+
Parameters:
|
69
|
+
* `key` (String) - Airbrake Project Key.
|
70
|
+
* `id` (String) - Airbrake Project Id.
|
71
|
+
|
72
|
+
### getCurrentWifi
|
73
|
+
```javascript
|
74
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
75
|
+
|
76
|
+
const response = await RentlyTuya.getCurrentWifi();
|
77
|
+
```
|
78
|
+
Response:
|
79
|
+
|
80
|
+
(String) - Current connected Wi-Fi name.
|
81
|
+
|
82
|
+
### getDeviceData
|
83
|
+
```javascript
|
84
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
85
|
+
|
86
|
+
const response = await RentlyTuya.getDeviceData({ devId: '' });
|
87
|
+
```
|
88
|
+
Parameters:
|
89
|
+
* `devId` (String) - Doorbell Device Id.
|
90
|
+
|
91
|
+
### setTuyaHome
|
92
|
+
```javascript
|
93
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
94
|
+
|
95
|
+
const response = await RentlyTuya.setTuyaHome({ homeId: '' })
|
96
|
+
```
|
97
|
+
Parameters:
|
98
|
+
* `homeId` (String) - Home Id associated with Doorbell.
|
99
|
+
|
100
|
+
### getTokenForQRCode
|
101
|
+
```javascript
|
102
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
103
|
+
|
104
|
+
const response = await RentlyTuya.getTokenForQRCode({ homeId: '' })
|
105
|
+
```
|
106
|
+
Parameters:
|
107
|
+
* `homeId` (String) - Home Id associated with Doorbell.
|
108
|
+
|
109
|
+
Response:
|
110
|
+
|
111
|
+
(String) - Token required for QR code activation.
|
112
|
+
|
113
|
+
### initActivatorForQRCode
|
114
|
+
```javascript
|
115
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
116
|
+
|
117
|
+
const response = await RentlyTuya.initActivatorForQRCode({
|
118
|
+
ssid: '',
|
119
|
+
paasword: '',
|
120
|
+
time: '',
|
121
|
+
token: ''
|
122
|
+
})
|
123
|
+
```
|
124
|
+
Parameters:
|
125
|
+
* `ssid` (String) - Wi-Fi name.
|
126
|
+
* `password` (String) - Wi-Fi Password.
|
127
|
+
* `time` (String) - Timeout for activation.
|
128
|
+
* `token` (String) - Token from getTokenForQRCode.
|
129
|
+
|
130
|
+
### loginWithUid
|
131
|
+
```javascript
|
132
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
133
|
+
|
134
|
+
const response = await RentlyTuya.loginWithUid({
|
135
|
+
uid: '',
|
136
|
+
paasword: '',
|
137
|
+
countryCode: ''
|
138
|
+
})
|
139
|
+
```
|
140
|
+
Parameters:
|
141
|
+
* `uid` (String) - Login Uid.
|
142
|
+
* `password` (String) - Login Password.
|
143
|
+
* `countryCode` (String) - Login Country code.
|
144
|
+
|
145
|
+
### logout
|
146
|
+
```javascript
|
147
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
148
|
+
|
149
|
+
const response = await RentlyTuya.logout()
|
150
|
+
```
|
151
|
+
|
152
|
+
### openCameraLivePreview
|
153
|
+
```javascript
|
154
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
155
|
+
|
156
|
+
const response = await RentlyTuya.openCameraLivePreview({
|
157
|
+
id: '',
|
158
|
+
countryCode: '',
|
159
|
+
uid: '',
|
160
|
+
passwd: '',
|
161
|
+
devId: '',
|
162
|
+
homeId: '',
|
163
|
+
last_moveout_at: '',
|
164
|
+
resetRequired: true,
|
165
|
+
isResident: true,
|
166
|
+
display_remove_doorbell_button: true,
|
167
|
+
propertyCredentialUsername: '',
|
168
|
+
propertyCredentialPassword: '',
|
169
|
+
tuya_product_name: '',
|
170
|
+
device_uuid: '',
|
171
|
+
serial_no: '',
|
172
|
+
flavour: '',
|
173
|
+
doorbell_default_settings_updated: true,
|
174
|
+
motion_detection: true,
|
175
|
+
continuous_recording: true,
|
176
|
+
event_recording: true,
|
177
|
+
set_sensitivity_low: true
|
178
|
+
})
|
179
|
+
```
|
180
|
+
Parameters:
|
181
|
+
* `id` (String) - Unique identifier for the user.
|
182
|
+
* `countryCode` (String) - The country code associated with the user.
|
183
|
+
* `uid` (String) - Unique user identifier used for authentication.
|
184
|
+
* `passwd` (String) - Password for the user account.
|
185
|
+
* `devId` (String) - Unique identifier for the Tuya doorbell device.
|
186
|
+
* `homeId` (String) - Identifier for the home where the Tuya doorbell is registered.
|
187
|
+
* `last_moveout_at` (String) - Timestamp of the last move-out event for the asset.
|
188
|
+
* `resetRequired` (String) - Indicates whether a reset is required for the device.
|
189
|
+
* `isResident` (String) - Specifies if the user is a resident of the associated home.
|
190
|
+
* `display_remove_doorbell_button` (String) - Determines if the option to remove the doorbell should be shown.
|
191
|
+
* `propertyCredentialUsername` (String) - Username for property authentication.
|
192
|
+
* `propertyCredentialPassword` (String) - Password for property management system authentication.
|
193
|
+
* `tuya_product_name` (String) - Name of the Tuya doorbell product.
|
194
|
+
* `device_uuid` (String) - UUID of the device.
|
195
|
+
* `serial_no` (String) - Serial number of the doorbell device.
|
196
|
+
* `flavour` (String) - Theme for the UI.
|
197
|
+
* `doorbell_default_settings_updated` (String) - Specifies whether the default doorbell settings should be updated.
|
198
|
+
* `motion_detection` (String) - Indicates if motion detection should be enabled.
|
199
|
+
* `continuous_recording` (String) - Indicates if continuous recording should be enabled.
|
200
|
+
* `event_recording` (String) - Indicates if evet recording should be enabled.
|
201
|
+
* `set_sensitivity_low` (String) - Indicates if sensitivity should be set to low.
|
202
|
+
|
203
|
+
### registerForPushNotification
|
204
|
+
```javascript
|
205
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
206
|
+
|
207
|
+
const response = await RentlyTuya.registerForPushNotification({ token: '' })
|
208
|
+
```
|
209
|
+
Parameters:
|
210
|
+
* `token` (String) - FCM Token.
|
211
|
+
|
212
|
+
### renameDevice
|
213
|
+
```javascript
|
214
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
215
|
+
|
216
|
+
const response = await RentlyTuya.renameDevice({ deviceId: '', name: '' })
|
217
|
+
```
|
218
|
+
Parameters:
|
219
|
+
* `deviceId` (String) - Device Id.
|
220
|
+
* `name` (String) - New device name.
|
221
|
+
|
222
|
+
### resetDevice
|
223
|
+
```javascript
|
224
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
225
|
+
|
226
|
+
const response = await RentlyTuya.resetDevice({
|
227
|
+
devId: '',
|
228
|
+
homeId: '',
|
229
|
+
username: '',
|
230
|
+
password: '',
|
231
|
+
countryCode: ''
|
232
|
+
})
|
233
|
+
```
|
234
|
+
|
235
|
+
Parameters:
|
236
|
+
* `devId` (String) - Doorbell Device Id.
|
237
|
+
* `homeId` (String) - Home Id associated with Doorbell.
|
238
|
+
* `username` (String) - User ID.
|
239
|
+
* `password` (String) - Password.
|
240
|
+
* `countryCode` (String) - Country Code.
|
241
|
+
|
242
|
+
### Listeners
|
243
|
+
> [!IMPORTANT]
|
244
|
+
After processing, a success or failure event should be sent.
|
245
|
+
|
246
|
+
## Android
|
247
|
+
```javascript
|
248
|
+
import RentlyTuya from '@rentlydev/rently-tuya';
|
249
|
+
|
250
|
+
export class ExposedToJava {
|
251
|
+
removeCamera(devId: string) {}
|
252
|
+
|
253
|
+
navigateToAddDoorbell(devId: string) {}
|
254
|
+
|
255
|
+
resetDoorbellDefaultSettingsFlag(id: string) {}
|
256
|
+
}
|
257
|
+
```
|
258
|
+
|
259
|
+
## iOS
|
260
|
+
```javascript
|
261
|
+
React.useEffect(() => {
|
262
|
+
const data = new NativeEventEmitter(NativeModules.KeylessListener);
|
263
|
+
data.addListener('REMOVE_CAMERA', (data: any) => {});
|
264
|
+
data.addListener('RESET_WIFI', (data: any) => {});
|
265
|
+
data.addListener('RESET_DEFAULT_SETTINGS_FLAG', (data: any) => {});
|
266
|
+
}, []);
|
267
|
+
```
|
268
|
+
|
269
|
+
## How To Run Example App ?
|
270
|
+
|
271
|
+
To run example app, follow the below steps
|
272
|
+
|
273
|
+
1. Clone the repository
|
274
|
+
2. Run `yarn install`
|
275
|
+
3. Navigate to example/ios folder i.e `cd example/ios` and do `pod install`, then `cd ..`
|
276
|
+
4. For android run `yarn example android`
|
277
|
+
5. For ios run `yarn example ios`
|
278
|
+
|
279
|
+
## Demo Video
|
280
|
+
|
281
|
+
[Android & iOS](https://drive.google.com/drive/folders/1307uBsdACw-H_FxlF3TWz7cqm6Phhx-6?usp=sharing)
|
@@ -0,0 +1,182 @@
|
|
1
|
+
import com.android.Version
|
2
|
+
|
3
|
+
buildscript {
|
4
|
+
ext {
|
5
|
+
agp_version = '8.2.0'
|
6
|
+
heapVersion = '1.10.+'
|
7
|
+
}
|
8
|
+
|
9
|
+
// Buildscript is evaluated before everything else so we can't use getExtOrDefault
|
10
|
+
def kotlin_version = rootProject.ext.has("kotlinVersion") ? rootProject.ext.get("kotlinVersion") : project.properties["RentlyTuya_kotlinVersion"]
|
11
|
+
|
12
|
+
repositories {
|
13
|
+
maven { url 'https://maven-other.tuya.com/repository/maven-releases/' }
|
14
|
+
maven { url "https://maven-other.tuya.com/repository/maven-commercial-releases/" }
|
15
|
+
maven { url 'https://jitpack.io' }
|
16
|
+
google()
|
17
|
+
mavenCentral()
|
18
|
+
maven { url 'https://maven.aliyun.com/repository/public' }
|
19
|
+
maven { url 'https://central.maven.org/maven2/' }
|
20
|
+
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
|
21
|
+
maven { url 'https : //dl.bintray.com/jenly/maven ' }
|
22
|
+
maven { url 'https://developer.huawei.com/repo/' }
|
23
|
+
}
|
24
|
+
|
25
|
+
dependencies {
|
26
|
+
classpath "com.android.tools.build:gradle:$agp_version"
|
27
|
+
// noinspection DifferentKotlinGradleVersion
|
28
|
+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
29
|
+
}
|
30
|
+
}
|
31
|
+
|
32
|
+
def reactNativeArchitectures() {
|
33
|
+
def value = rootProject.getProperties().get("reactNativeArchitectures")
|
34
|
+
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
35
|
+
}
|
36
|
+
|
37
|
+
def isNewArchitectureEnabled() {
|
38
|
+
return rootProject.hasProperty("newArchEnabled") && rootProject.getProperty("newArchEnabled") == "true"
|
39
|
+
}
|
40
|
+
|
41
|
+
apply plugin: "com.android.library"
|
42
|
+
apply plugin: "kotlin-android"
|
43
|
+
apply from: "thingMapping.gradle"
|
44
|
+
|
45
|
+
if (isNewArchitectureEnabled()) {
|
46
|
+
apply plugin: "com.facebook.react"
|
47
|
+
}
|
48
|
+
|
49
|
+
def getExtOrDefault(name) {
|
50
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["RentlyTuya_" + name]
|
51
|
+
}
|
52
|
+
|
53
|
+
def getExtOrIntegerDefault(name) {
|
54
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["RentlyTuya_" + name]).toInteger()
|
55
|
+
}
|
56
|
+
|
57
|
+
static def supportsNamespace() {
|
58
|
+
def parsed = Version.ANDROID_GRADLE_PLUGIN_VERSION.tokenize('.')
|
59
|
+
def major = parsed[0].toInteger()
|
60
|
+
def minor = parsed[1].toInteger()
|
61
|
+
|
62
|
+
// Namespace support was added in 7.3.0
|
63
|
+
return (major == 7 && minor >= 3) || major >= 8
|
64
|
+
}
|
65
|
+
|
66
|
+
android {
|
67
|
+
if (supportsNamespace()) {
|
68
|
+
namespace "com.rentlytuya"
|
69
|
+
|
70
|
+
sourceSets {
|
71
|
+
main {
|
72
|
+
manifest.srcFile "src/main/AndroidManifestNew.xml"
|
73
|
+
}
|
74
|
+
}
|
75
|
+
}
|
76
|
+
|
77
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
78
|
+
|
79
|
+
defaultConfig {
|
80
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
81
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
82
|
+
|
83
|
+
ndk {
|
84
|
+
abiFilters "armeabi-v7a", "arm64-v8a"
|
85
|
+
}
|
86
|
+
packagingOptions {
|
87
|
+
pickFirst 'lib/*/libc++_shared.so'
|
88
|
+
pickFirst 'lib/*/libgnustl_shared.so'
|
89
|
+
pickFirst 'lib/*/liblog.so'
|
90
|
+
pickFirst 'lib/*/libopenh264.so'
|
91
|
+
pickFirst 'lib/*/libyuv.so'
|
92
|
+
}
|
93
|
+
}
|
94
|
+
|
95
|
+
buildTypes {
|
96
|
+
release {
|
97
|
+
minifyEnabled false
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
lintOptions {
|
102
|
+
disable "GradleCompatible"
|
103
|
+
}
|
104
|
+
|
105
|
+
buildFeatures {
|
106
|
+
compose true
|
107
|
+
}
|
108
|
+
|
109
|
+
composeOptions {
|
110
|
+
kotlinCompilerExtensionVersion '1.5.10'
|
111
|
+
}
|
112
|
+
|
113
|
+
compileOptions {
|
114
|
+
sourceCompatibility JavaVersion.VERSION_17
|
115
|
+
targetCompatibility JavaVersion.VERSION_17
|
116
|
+
}
|
117
|
+
}
|
118
|
+
|
119
|
+
repositories {
|
120
|
+
maven { url 'https://maven-other.tuya.com/repository/maven-releases/' }
|
121
|
+
maven { url "https://maven-other.tuya.com/repository/maven-commercial-releases/" }
|
122
|
+
mavenCentral()
|
123
|
+
google()
|
124
|
+
maven { url 'https://jitpack.io' }
|
125
|
+
maven { url 'https : //dl.bintray.com/jenly/maven ' }
|
126
|
+
}
|
127
|
+
|
128
|
+
def kotlin_version = getExtOrDefault("kotlinVersion")
|
129
|
+
|
130
|
+
configurations.configureEach {
|
131
|
+
exclude group: "com.thingclips.smart", module: 'thingsmart-modularCampAnno'
|
132
|
+
}
|
133
|
+
|
134
|
+
dependencies {
|
135
|
+
// For < 0.71, this will be from the local maven repo
|
136
|
+
// For > 0.71, this will be replaced by `com.facebook.react:react-android:$version` by react gradle plugin
|
137
|
+
// noinspection GradleDynamicVersion
|
138
|
+
implementation "com.facebook.react:react-android:0.74.1"
|
139
|
+
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
|
140
|
+
|
141
|
+
// Airbrake
|
142
|
+
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
143
|
+
|
144
|
+
// Tuya
|
145
|
+
compileOnly fileTree(dir: 'libs', include: ['*.aar'])
|
146
|
+
// compileOnly files('libs/security-algorithm-1.0.0.aar')
|
147
|
+
|
148
|
+
implementation 'com.alibaba:fastjson:1.1.67.android'
|
149
|
+
implementation 'com.squareup.okhttp3:okhttp-urlconnection:4.9.2'
|
150
|
+
|
151
|
+
// Tuya - The latest stable App SDK for Android.
|
152
|
+
implementation 'com.facebook.soloader:soloader:0.12.1'
|
153
|
+
implementation 'com.thingclips.smart:thingsmart:5.15.0'
|
154
|
+
api('com.thingclips.smart:thingsmart:5.15.0') {
|
155
|
+
exclude group: 'com.thingclips.smart', module: 'thingsmart-asynclib'
|
156
|
+
}
|
157
|
+
api 'com.thingclips.smart:thingsmart-ipcsdk:5.14.1'
|
158
|
+
implementation 'com.thingclips.smart:thingsmart-ipc-camera-autotest:5.0.0'
|
159
|
+
implementation 'com.thingclips.smart:thingsmart-ipc-camera-cloudtool:5.0.0'
|
160
|
+
implementation 'com.thingclips.smart:thingsmart-ipc-camera-timeline:1.1.0'
|
161
|
+
|
162
|
+
implementation 'androidx.constraintlayout:constraintlayout:2.2.0'
|
163
|
+
implementation 'androidx.recyclerview:recyclerview:1.3.2'
|
164
|
+
implementation 'androidx.coordinatorlayout:coordinatorlayout:1.2.0'
|
165
|
+
|
166
|
+
// Jetpack Compose
|
167
|
+
implementation platform('androidx.compose:compose-bom:2024.11.00')
|
168
|
+
implementation 'androidx.compose.ui:ui'
|
169
|
+
implementation 'androidx.compose.ui:ui-graphics'
|
170
|
+
implementation 'androidx.compose.ui:ui-tooling-preview'
|
171
|
+
implementation 'androidx.compose.material3:material3'
|
172
|
+
implementation 'androidx.activity:activity-compose:1.9.3'
|
173
|
+
|
174
|
+
// Navigation
|
175
|
+
implementation "androidx.navigation:navigation-compose:2.8.4"
|
176
|
+
|
177
|
+
// Fresco
|
178
|
+
implementation 'com.facebook.fresco:fresco:3.4.0'
|
179
|
+
|
180
|
+
// Heap
|
181
|
+
implementation "com.heapanalytics.android:heap-android-client:$heapVersion"
|
182
|
+
}
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
<manifest package="com.rentlytuya"></manifest>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
2
|
+
|
3
|
+
<uses-permission android:name="android.permission.INTERNET" />
|
4
|
+
<uses-permission android:name="android.permission.BLUETOOTH" />
|
5
|
+
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
|
6
|
+
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
7
|
+
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
8
|
+
<uses-permission android:name="android.permission.CAMERA" />
|
9
|
+
<uses-permission android:name="android.permission.VIBRATE" />
|
10
|
+
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
11
|
+
<uses-permission android:name="android.permission.FLASHLIGHT" />
|
12
|
+
<uses-permission android:name="android.permission.RECORD_AUDIO" />
|
13
|
+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
14
|
+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
15
|
+
|
16
|
+
<uses-feature android:name="android.hardware.camera" />
|
17
|
+
<uses-feature android:name="android.hardware.camera.autofocus" />
|
18
|
+
|
19
|
+
<application>
|
20
|
+
<activity
|
21
|
+
android:name=".TuyaActivity"
|
22
|
+
android:configChanges="keyboardHidden|orientation|screenSize" />
|
23
|
+
|
24
|
+
</application>
|
25
|
+
</manifest>
|