├── family
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ └── res
│ │ │ ├── values-zh
│ │ │ └── strings.xml
│ │ │ ├── values
│ │ │ └── strings.xml
│ │ │ ├── drawable
│ │ │ └── base_family_btn_selector.xml
│ │ │ └── layout
│ │ │ └── activity_family_manage.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── demo
│ │ │ └── family
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizbundle
│ │ └── demo
│ │ └── family
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── ipc
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ │ └── layout
│ │ │ │ ├── activity_panel.xml
│ │ │ │ └── list_home_item.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── ipc
│ │ │ └── demo
│ │ │ ├── ItemBean.java
│ │ │ └── HomeAdapter.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── panel
│ │ │ └── demo
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizubundle
│ │ └── panel
│ │ └── demo
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── mall
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ │ └── layout
│ │ │ │ ├── activity_web.xml
│ │ │ │ └── activity_mall.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── mall
│ │ │ └── demo
│ │ │ ├── bean
│ │ │ └── ItemBean.java
│ │ │ └── WebActivity.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── mall
│ │ │ └── demo
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizubundle
│ │ └── mall
│ │ └── demo
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── ota
├── .gitignore
├── consumer-rules.pro
├── .settings
│ └── org.eclipse.buildship.core.prefs
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── drawable
│ │ │ │ ├── demo_simple_dialog_shape.xml
│ │ │ │ └── base_ota_btn_selector.xml
│ │ │ ├── values-zh
│ │ │ │ └── strings.xml
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ └── layout
│ │ │ │ ├── demo_dialog_dev_list.xml
│ │ │ │ ├── demo_rv_item_simple_dev.xml
│ │ │ │ └── activity_ota.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── thingclips
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── ota
│ │ │ └── demo
│ │ │ └── SimpleDeviceBean.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── ota
│ │ │ └── demo
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizbundle
│ │ └── ota
│ │ └── demo
│ │ └── ExampleInstrumentedTest.java
├── .classpath
├── proguard-rules.pro
├── .project
└── build.gradle
├── panel
├── .gitignore
├── consumer-rules.pro
├── .settings
│ └── org.eclipse.buildship.core.prefs
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── menu
│ │ │ │ └── panel_menu.xml
│ │ │ └── layout
│ │ │ │ ├── activity_panel.xml
│ │ │ │ └── list_home_item.xml
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── panel
│ │ │ └── demo
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizubundle
│ │ └── panel
│ │ └── demo
│ │ └── ExampleInstrumentedTest.java
├── .classpath
├── proguard-rules.pro
├── .project
└── build.gradle
├── scene
├── .gitignore
├── consumer-rules.pro
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ └── res
│ │ ├── values
│ │ └── styles.xml
│ │ └── layout
│ │ └── activity_scene.xml
├── proguard-rules.pro
└── build.gradle
├── share
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ ├── strings.xml
│ │ │ │ ├── colors.xml
│ │ │ │ └── themes.xml
│ │ │ ├── drawable
│ │ │ │ └── ty_icon.png
│ │ │ └── values-night
│ │ │ │ └── themes.xml
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── share
│ │ │ └── ExampleUnitTest.kt
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── share
│ │ └── ExampleInstrumentedTest.kt
├── proguard-rules.pro
└── build.gradle
├── speech
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ └── layout
│ │ │ │ └── activity_speech_demo.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── demo
│ │ │ └── speech
│ │ │ └── SpeechDemoActivity.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── demo
│ │ │ └── speech
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizbundle
│ │ └── demo
│ │ └── speech
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── activator
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ └── layout
│ │ │ │ └── activity_device_activator.xml
│ │ ├── assets
│ │ │ └── activator_auto_serach_capacity.json
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── device
│ │ │ └── activator
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── device
│ │ └── activator
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── control
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ ├── drawable
│ │ │ │ └── config_icon_back.png
│ │ │ └── layout
│ │ │ │ ├── activity_control_manager.xml
│ │ │ │ ├── activity_control_dev_list.xml
│ │ │ │ └── item_simple_dev.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── control
│ │ │ └── demo
│ │ │ └── ControlManagerActivity.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── control
│ │ │ └── demo
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizubundle
│ │ └── control
│ │ └── demo
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── feedback
├── consumer-rules.pro
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ └── strings.xml
│ │ │ └── layout
│ │ │ │ └── activity_feedback.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── demo
│ │ │ └── FeedBackActivity.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── feedback
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizbundle
│ │ └── feedback
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── lightscene
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── drawable-xxhdpi
│ │ │ │ └── scene_schedule_arrow_right.png
│ │ │ ├── values-zh
│ │ │ │ └── strings.xml
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ └── layout
│ │ │ │ ├── activity_light_scene_manager.xml
│ │ │ │ ├── lightscene_activity_list.xml
│ │ │ │ └── home_item_list.xml
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── thingclips
│ │ │ └── appsdk
│ │ │ └── sample
│ │ │ └── lightscene
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── thingclips
│ │ └── appsdk
│ │ └── sample
│ │ └── lightscene
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── location
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── AndroidManifest.xml
│ │ └── res
│ │ │ └── layout
│ │ │ └── activity_location.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── demo
│ │ │ └── location
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizbundle
│ │ └── demo
│ │ └── location
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── message
├── consumer-rules.pro
├── .gitignore
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values-zh
│ │ │ │ └── strings.xml
│ │ │ ├── values
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── attrs.xml
│ │ │ └── layout
│ │ │ │ └── activity_message.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── message
│ │ │ └── demo
│ │ │ └── MessageActivity.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── message
│ │ │ └── demo
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizbundle
│ │ └── message
│ │ └── demo
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── miniapp
├── .gitignore
├── consumer-rules.pro
├── src
│ └── main
│ │ ├── AndroidManifest.xml
│ │ ├── res
│ │ └── layout
│ │ │ └── act_miniapp_sample.xml
│ │ └── java
│ │ └── com
│ │ └── thingclips
│ │ └── smart
│ │ └── bizbundle
│ │ └── miniapp
│ │ └── demo
│ │ └── ActMiniAppSample.java
├── proguard-rules.pro
└── build.gradle
├── cloudstorage
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ └── colors.xml
│ │ │ └── layout
│ │ │ │ └── activity_cloud_storage.xml
│ │ └── AndroidManifest.xml
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── panel
│ │ │ └── demo
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizubundle
│ │ └── panel
│ │ └── demo
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── devicedetail
├── .gitignore
├── consumer-rules.pro
├── .settings
│ └── org.eclipse.buildship.core.prefs
├── src
│ └── main
│ │ ├── res
│ │ ├── menu
│ │ │ └── action_panel.xml
│ │ ├── drawable
│ │ │ ├── demo_simple_dialog_shape.xml
│ │ │ └── base_ota_btn_selector.xml
│ │ └── layout
│ │ │ ├── demo_dialog_dev_list.xml
│ │ │ ├── activity_panel_more.xml
│ │ │ └── demo_panel_rv_item_simple_dev.xml
│ │ ├── AndroidManifest.xml
│ │ ├── assets
│ │ ├── deviceEditConfigList.json
│ │ └── deviceDetail.json
│ │ └── java
│ │ └── com
│ │ └── thingclips
│ │ └── smart
│ │ └── bizbundle
│ │ └── devicedetail
│ │ └── demo
│ │ ├── SimpleDeviceBean.java
│ │ └── PanelMoreItemClickServiceImp.java
├── .classpath
├── proguard-rules.pro
├── .project
└── build.gradle
├── groupmanager
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ ├── drawable
│ │ │ │ └── config_icon_back.png
│ │ │ └── layout
│ │ │ │ ├── activity_group_manager.xml
│ │ │ │ ├── activity_group_list.xml
│ │ │ │ └── item_simple_dev.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── thingclips
│ │ │ └── groupmanager
│ │ │ ├── bean
│ │ │ └── SimpleDeviceBean.java
│ │ │ └── GroupManagerActivity.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── groupmanager
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── groupmanager
│ │ └── ExampleInstrumentedTest.java
├── .settings
│ └── org.eclipse.buildship.core.prefs
├── .classpath
├── proguard-rules.pro
├── .project
└── build.gradle
├── third_service
├── .gitignore
├── consumer-rules.pro
├── src
│ └── main
│ │ ├── res
│ │ ├── values-zh
│ │ │ └── strings.xml
│ │ ├── values
│ │ │ └── strings.xml
│ │ └── layout
│ │ │ └── activity_third_service_manager.xml
│ │ └── AndroidManifest.xml
├── proguard-rules.pro
└── build.gradle
├── alexa_google_bind
├── .gitignore
├── consumer-rules.pro
├── src
│ ├── main
│ │ ├── res
│ │ │ ├── values
│ │ │ │ └── strings.xml
│ │ │ └── layout
│ │ │ │ ├── item_bind_list.xml
│ │ │ │ └── activity_alexa_google_bind.xml
│ │ ├── AndroidManifest.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── demo
│ │ │ └── socialbind
│ │ │ └── BindAdapter.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizbundle
│ │ │ └── demo
│ │ │ └── socialbind
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizbundle
│ │ └── demo
│ │ └── socialbind
│ │ └── ExampleInstrumentedTest.java
├── proguard-rules.pro
└── build.gradle
├── app
├── .gitignore
├── .settings
│ └── org.eclipse.buildship.core.prefs
├── src
│ ├── main
│ │ ├── assets
│ │ │ ├── Manrope-Bold.ttf
│ │ │ ├── iconfont
│ │ │ │ └── default_iconfont.ttf
│ │ │ └── thing_pbt_group_config.json
│ │ ├── res
│ │ │ ├── mipmap-hdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-mdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── mipmap-xxxhdpi
│ │ │ │ ├── ic_launcher.png
│ │ │ │ └── ic_launcher_round.png
│ │ │ ├── drawable-xhdpi
│ │ │ │ └── ic_arrow_drop_down_black_24dp.png
│ │ │ ├── mipmap-anydpi-v26
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ ├── layout
│ │ │ │ ├── recycler_item_family.xml
│ │ │ │ ├── fragment_family.xml
│ │ │ │ └── fragment_family_create.xml
│ │ │ ├── drawable
│ │ │ │ └── bg_text_bts.xml
│ │ │ ├── drawable-v24
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ └── values
│ │ │ │ ├── styles.xml
│ │ │ │ └── compat-colors.xml
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── demo
│ │ │ └── BizBundleFamilyServiceImpl.java
│ ├── test
│ │ └── java
│ │ │ └── com
│ │ │ └── tuya
│ │ │ └── smart
│ │ │ └── bizubundle
│ │ │ └── demo
│ │ │ └── ExampleUnitTest.java
│ └── androidTest
│ │ └── java
│ │ └── com
│ │ └── tuya
│ │ └── smart
│ │ └── bizubundle
│ │ └── demo
│ │ └── ExampleInstrumentedTest.java
├── .classpath
├── proguard-rules.pro
└── .project
├── gradle
└── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── qqmusic
├── build.gradle
└── qqmusic-innovation-aidl-api-sdk-1.0.0-SNAPSHOT-release.aar
├── .gitignore
├── README_CN.md
├── settings.gradle
├── README.md
├── LICENSE
├── gradle.properties
└── gradlew.bat
/family/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/ipc/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/ipc/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/mall/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/mall/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/ota/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/ota/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/panel/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/scene/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/share/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/speech/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/activator/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/activator/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/control/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/control/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/family/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/feedback/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lightscene/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/location/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/location/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/message/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/miniapp/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/miniapp/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/panel/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/scene/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/speech/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/cloudstorage/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/cloudstorage/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/devicedetail/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/devicedetail/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/feedback/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/groupmanager/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/groupmanager/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/lightscene/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/message/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 |
--------------------------------------------------------------------------------
/third_service/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/third_service/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/alexa_google_bind/.gitignore:
--------------------------------------------------------------------------------
1 | /build
--------------------------------------------------------------------------------
/alexa_google_bind/consumer-rules.pro:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/.gitignore:
--------------------------------------------------------------------------------
1 | /build
2 | thingsrc
3 | libs
--------------------------------------------------------------------------------
/control/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/groupmanager/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/speech/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/alexa_google_bind/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/app/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | connection.project.dir=..
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/ota/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | connection.project.dir=..
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/panel/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | connection.project.dir=..
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/share/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | share
3 |
--------------------------------------------------------------------------------
/message/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/devicedetail/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | connection.project.dir=..
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/groupmanager/.settings/org.eclipse.buildship.core.prefs:
--------------------------------------------------------------------------------
1 | connection.project.dir=..
2 | eclipse.preferences.version=1
3 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.jar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/gradle/wrapper/gradle-wrapper.jar
--------------------------------------------------------------------------------
/app/src/main/assets/Manrope-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/assets/Manrope-Bold.ttf
--------------------------------------------------------------------------------
/qqmusic/build.gradle:
--------------------------------------------------------------------------------
1 | configurations.maybeCreate("default")
2 | artifacts.add("default", file('qqmusic-innovation-aidl-api-sdk-1.0.0-SNAPSHOT-release.aar'))
--------------------------------------------------------------------------------
/share/src/main/res/drawable/ty_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/share/src/main/res/drawable/ty_icon.png
--------------------------------------------------------------------------------
/feedback/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #bdbdbd
4 |
--------------------------------------------------------------------------------
/message/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #bdbdbd
4 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/app/src/main/assets/iconfont/default_iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/assets/iconfont/default_iconfont.ttf
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-hdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-mdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/control/src/main/res/drawable/config_icon_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/control/src/main/res/drawable/config_icon_back.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/activator/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 添加设备
4 | false>
5 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
--------------------------------------------------------------------------------
/groupmanager/src/main/res/drawable/config_icon_back.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/groupmanager/src/main/res/drawable/config_icon_back.png
--------------------------------------------------------------------------------
/app/src/main/res/drawable-xhdpi/ic_arrow_drop_down_black_24dp.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/app/src/main/res/drawable-xhdpi/ic_arrow_drop_down_black_24dp.png
--------------------------------------------------------------------------------
/qqmusic/qqmusic-innovation-aidl-api-sdk-1.0.0-SNAPSHOT-release.aar:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/qqmusic/qqmusic-innovation-aidl-api-sdk-1.0.0-SNAPSHOT-release.aar
--------------------------------------------------------------------------------
/lightscene/src/main/res/drawable-xxhdpi/scene_schedule_arrow_right.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ITxiaoguang/tuya-ui-bizbundle-android-demo/main/lightscene/src/main/res/drawable-xxhdpi/scene_schedule_arrow_right.png
--------------------------------------------------------------------------------
/activator/src/main/assets/activator_auto_serach_capacity.json:
--------------------------------------------------------------------------------
1 | {
2 | "searchTypeZigbee": false,
3 | "searchTypeEZ": true,
4 | "searchTypePegasus": false,
5 | "searchTypeBle": false,
6 | "searchTypeWired": false,
7 | "searchTypeMatter": false
8 | }
--------------------------------------------------------------------------------
/third_service/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 短信通知
4 | 电话通知
5 |
--------------------------------------------------------------------------------
/cloudstorage/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #6200EE
4 | #3700B3
5 | #03DAC5
6 |
--------------------------------------------------------------------------------
/scene/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/share/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
6 |
7 |
--------------------------------------------------------------------------------
/third_service/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | PUSH SMS
4 | PUSH CALL
5 |
--------------------------------------------------------------------------------
/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Mon Jun 19 17:32:48 CST 2023
2 | distributionBase=GRADLE_USER_HOME
3 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
4 | distributionPath=wrapper/dists
5 | zipStorePath=wrapper/dists
6 | zipStoreBase=GRADLE_USER_HOME
7 |
--------------------------------------------------------------------------------
/message/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/cloudstorage/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/feedback/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/speech/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/mall/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/family/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/devicedetail/src/main/res/menu/action_panel.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/miniapp/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | *.iml
2 | .gradle
3 | /local.properties
4 | /.idea/caches
5 | /.idea/libraries
6 | /.idea/modules.xml
7 | /.idea/workspace.xml
8 | /.idea/navEditor.xml
9 | /.idea/assetWizardSettings.xml
10 | .DS_Store
11 | /build
12 | /app/src/main/assets/t_s.bmp
13 | /captures
14 | .externalNativeBuild
15 | .cxx
16 | .idea/
17 | /panel/build
--------------------------------------------------------------------------------
/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/lightscene/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 灯光场景管理
4 | 灯光场景列表
5 | 灯光场景创建
6 | 点击执行
7 |
--------------------------------------------------------------------------------
/location/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ota/src/main/res/drawable/demo_simple_dialog_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
7 |
--------------------------------------------------------------------------------
/activator/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/panel/src/main/res/menu/panel_menu.xml:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/devicedetail/src/main/res/drawable/demo_simple_dialog_shape.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
7 |
--------------------------------------------------------------------------------
/alexa_google_bind/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/ota/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/mall/src/main/res/layout/activity_web.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/app/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/devicedetail/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/feedback/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | message center (start activity)
3 | message center (route)
4 | feedback(service)
5 | feedback(route)
6 |
7 |
--------------------------------------------------------------------------------
/lightscene/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | LIGHT SCENE MANAGEMENT
4 | Light Scene List
5 | Light Scene Create
6 | Click Execute
7 |
--------------------------------------------------------------------------------
/ota/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/panel/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/devicedetail/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/groupmanager/.classpath:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/scene/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
--------------------------------------------------------------------------------
/control/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ipc/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/panel/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/third_service/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/message/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | message
3 |
4 | message center (start activity)
5 | message center (route)
6 | feedback(service)
7 | feedback(route)
8 |
9 |
--------------------------------------------------------------------------------
/family/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 前往家庭管理页面
4 | 收到新的家庭邀请🎉
5 | 收到来自: %1$s 家庭的邀请
6 | 接受
7 | 拒绝
8 |
--------------------------------------------------------------------------------
/share/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #FFBB86FC
4 | #FF6200EE
5 | #FF3700B3
6 | #FF03DAC5
7 | #FF018786
8 | #FF000000
9 | #FFFFFFFF
10 |
--------------------------------------------------------------------------------
/groupmanager/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/family/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | Navigate to family management page
3 | Received new Family invitation🎉
4 | Received an invitation from: %1$s
5 | Accept
6 | Reject
7 |
--------------------------------------------------------------------------------
/share/src/test/java/com/tuya/smart/share/ExampleUnitTest.kt:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.share
2 |
3 | import org.junit.Test
4 |
5 | import org.junit.Assert.*
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * See [testing documentation](http://d.android.com/tools/testing).
11 | */
12 | class ExampleUnitTest {
13 | @Test
14 | fun addition_isCorrect() {
15 | assertEquals(4, 2 + 2)
16 | }
17 | }
--------------------------------------------------------------------------------
/devicedetail/src/main/assets/deviceEditConfigList.json:
--------------------------------------------------------------------------------
1 | {
2 | "deviceEdit": [
3 | {
4 | "name": "deviceEdit",
5 | "items": [
6 | {
7 | "cellType": "dev_icon"
8 | },
9 | {
10 | "cellType": "set_icon"
11 | },
12 | {
13 | "cellType": "set_name"
14 | },
15 | {
16 | "cellType": "set_position"
17 | }
18 | ]
19 | }
20 | ]
21 | }
22 |
--------------------------------------------------------------------------------
/groupmanager/src/test/java/com/tuya/groupmanager/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.groupmanager;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/ota/src/main/res/values-zh/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | 前往 OTA 升级页面
4 | 当前设备不支持固件升级
5 | 当前家庭:
6 | 当前家庭下无可用设备
7 | 当前家庭下的所有设备
8 | 返回首页
9 |
--------------------------------------------------------------------------------
/README_CN.md:
--------------------------------------------------------------------------------
1 | # 涂鸦智能 UI 业务包
2 |
3 | ## 仓库介绍
4 |
5 | 涂鸦 Android 业务包 (Tuya Android BizBundle) 是指包含业务逻辑和 UI 界面的涂鸦垂直业务模块,旨在为基于涂鸦全屋智能 SDK 开发的客户提供快速一站式接入涂鸦业务模块的能力。你可以根据所选业务包运行对应 module 。
6 |
7 | ## 相关文档
8 |
9 | 涂鸦智能 UI 业务包 文档:https://developer.tuya.com/cn/docs/app-development/introduction?id=Ka8qhzjygzfau
10 |
11 | ## 如何获得技术支持
12 |
13 | 您可以通过以一下方式获得技术支持:
14 |
15 | * 涂鸦智能帮助中心:https://support.tuya.com/zh/help
16 | * 技术工单支持: https://iot.tuya.com/council/
17 |
18 | ## 使用的开源 License
19 |
20 | 涂鸦智能 UI 业务包使用 MIT License.
21 |
--------------------------------------------------------------------------------
/alexa_google_bind/src/main/res/layout/item_bind_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
12 |
13 |
--------------------------------------------------------------------------------
/app/src/test/java/com/tuya/smart/bizubundle/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/ota/src/test/java/com/tuya/smart/bizbundle/ota/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.ota.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/activator/src/test/java/com/tuya/smart/device/activator/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.device.activator;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/feedback/src/test/java/com/tuya/smart/bizbundle/feedback/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.feedback;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/ipc/src/test/java/com/tuya/smart/bizubundle/panel/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.panel.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/mall/src/test/java/com/tuya/smart/bizubundle/mall/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.mall.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/family/src/test/java/com/tuya/smart/bizbundle/demo/family/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.family;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/panel/src/test/java/com/tuya/smart/bizubundle/panel/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.panel.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/cloudstorage/src/test/java/com/tuya/smart/bizubundle/panel/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.panel.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/control/src/test/java/com/tuya/smart/bizubundle/control/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.control.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/location/src/test/java/com/tuya/smart/bizbundle/demo/location/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.location;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/message/src/test/java/com/tuya/smart/bizbundle/message/demo/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.message.demo;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/lightscene/src/test/java/com/thingclips/appsdk/sample/lightscene/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.thingclips.appsdk.sample.lightscene;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/speech/src/test/java/com/tuya/smart/bizbundle/demo/speech/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.speech;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import org.junit.Test;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/alexa_google_bind/src/test/java/com/tuya/smart/bizbundle/demo/socialbind/ExampleUnitTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.socialbind;
2 |
3 | import org.junit.Test;
4 |
5 | import static org.junit.Assert.*;
6 |
7 | /**
8 | * Example local unit test, which will execute on the development machine (host).
9 | *
10 | * @see Testing documentation
11 | */
12 | public class ExampleUnitTest {
13 | @Test
14 | public void addition_isCorrect() {
15 | assertEquals(4, 2 + 2);
16 | }
17 | }
--------------------------------------------------------------------------------
/app/src/main/res/layout/recycler_item_family.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
14 |
--------------------------------------------------------------------------------
/settings.gradle:
--------------------------------------------------------------------------------
1 | rootProject.name = "TuyaSamartBizubundle"
2 | include ':app'
3 |
4 | include ':panel'
5 | include ':qqmusic'
6 | include ':mall'
7 | include ':ipc'
8 | include ':cloudstorage'
9 | include ':feedback'
10 | include ':message'
11 | include ':activator'
12 | include ':scene'
13 | include ':ota'
14 | include ':family'
15 | include ":groupmanager"
16 | include ":devicedetail"
17 | include ":location"
18 | include ':panelmore'
19 | include ':alexa_google_bind'
20 | include ':lightscene'
21 | include ':share'
22 | include ':control'
23 | include ':third_service'
24 | include ':miniapp'
25 |
--------------------------------------------------------------------------------
/family/src/main/res/drawable/base_family_btn_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 | -
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/lightscene/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/ota/src/main/res/drawable/base_ota_btn_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 | -
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/devicedetail/src/main/res/drawable/base_ota_btn_selector.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
8 |
9 | -
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/ota/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 | false
3 | Go to OTA upgrade page
4 | This device can not support firmware upgrade
5 | Current family is:
6 | Current family has no available devices
7 | All devices under current home
8 | Back to homepage
9 |
--------------------------------------------------------------------------------
/app/src/main/java/com/tuya/smart/bizubundle/demo/BizBundleFamilyServiceImpl.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.demo;
2 |
3 | import com.thingclips.smart.commonbiz.bizbundle.family.api.AbsBizBundleFamilyService;
4 |
5 | public class BizBundleFamilyServiceImpl extends AbsBizBundleFamilyService {
6 | private long mHomeId;
7 |
8 | @Override
9 | public long getCurrentHomeId() {
10 | return mHomeId;
11 | }
12 |
13 | @Override
14 | public void shiftCurrentFamily(long familyId, String curName) {
15 | super.shiftCurrentFamily(familyId, curName);
16 | mHomeId = familyId;
17 | }
18 | }
19 |
--------------------------------------------------------------------------------
/control/src/main/res/layout/activity_control_manager.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
--------------------------------------------------------------------------------
/groupmanager/src/main/java/com/thingclips/groupmanager/bean/SimpleDeviceBean.java:
--------------------------------------------------------------------------------
1 | package com.thingclips.groupmanager.bean;
2 |
3 | public class SimpleDeviceBean {
4 | private String id;
5 | private String name;
6 | private boolean isOnLine;
7 |
8 | public String getId() {
9 | return id;
10 | }
11 |
12 | public void setId(String id) {
13 | this.id = id;
14 | }
15 |
16 | public String getName() {
17 | return name;
18 | }
19 |
20 | public void setName(String name) {
21 | this.name = name;
22 | }
23 |
24 | public boolean isOnLine() {
25 | return isOnLine;
26 | }
27 |
28 | public void setOnLine(boolean onLine) {
29 | isOnLine = onLine;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/third_service/src/main/res/layout/activity_third_service_manager.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
12 |
13 |
18 |
19 |
--------------------------------------------------------------------------------
/share/src/androidTest/java/com/tuya/smart/share/ExampleInstrumentedTest.kt:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.share
2 |
3 | import androidx.test.platform.app.InstrumentationRegistry
4 | import androidx.test.ext.junit.runners.AndroidJUnit4
5 |
6 | import org.junit.Test
7 | import org.junit.runner.RunWith
8 |
9 | import org.junit.Assert.*
10 |
11 | /**
12 | * Instrumented test, which will execute on an Android device.
13 | *
14 | * See [testing documentation](http://d.android.com/tools/testing).
15 | */
16 | @RunWith(AndroidJUnit4::class)
17 | class ExampleInstrumentedTest {
18 | @Test
19 | fun useAppContext() {
20 | // Context of the app under test.
21 | val appContext = InstrumentationRegistry.getInstrumentation().targetContext
22 | assertEquals("com.tuya.smart.share", appContext.packageName)
23 | }
24 | }
--------------------------------------------------------------------------------
/app/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/control/src/main/java/com/tuya/smart/bizubundle/control/demo/ControlManagerActivity.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.control.demo;
2 |
3 | import androidx.appcompat.app.AppCompatActivity;
4 |
5 | import android.os.Bundle;
6 | import android.view.View;
7 |
8 | public class ControlManagerActivity extends AppCompatActivity {
9 |
10 |
11 | @Override
12 | protected void onCreate(Bundle savedInstanceState) {
13 | super.onCreate(savedInstanceState);
14 | setContentView(R.layout.activity_control_manager);
15 | findViewById(R.id.btnGoMultiControl).setOnClickListener(new View.OnClickListener() {
16 | @Override
17 | public void onClick(View view) {
18 | ControlDevListActivity.goControl(ControlManagerActivity.this);
19 | }
20 | });
21 | }
22 |
23 |
24 | }
--------------------------------------------------------------------------------
/ipc/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/ota/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/control/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/family/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/location/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/mall/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/miniapp/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/panel/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/scene/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/share/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/speech/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/activator/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/cloudstorage/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/devicedetail/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/groupmanager/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/lightscene/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/message/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/third_service/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/alexa_google_bind/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
--------------------------------------------------------------------------------
/feedback/proguard-rules.pro:
--------------------------------------------------------------------------------
1 | # Add project specific ProGuard rules here.
2 | # You can control the set of applied configuration files using the
3 | # proguardFiles setting in build.gradle.
4 | #
5 | # For more details, see
6 | # http://developer.android.com/guide/developing/tools/proguard.html
7 |
8 | # If your project uses WebView with JS, uncomment the following
9 | # and specify the fully qualified class name to the JavaScript interface
10 | # class:
11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12 | # public *;
13 | #}
14 |
15 | # Uncomment this to preserve the line number information for
16 | # debugging stack traces.
17 | #-keepattributes SourceFile,LineNumberTable
18 |
19 | # If you keep the line number information, uncomment this to
20 | # hide the original source file name.
21 | #-renamesourcefileattribute SourceFile
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_family.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
16 |
17 |
21 |
--------------------------------------------------------------------------------
/groupmanager/src/main/res/layout/activity_group_manager.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tuya Smart UI Bizbundle
2 |
3 | [English](README.md) | [简体中文](README_CN.md)
4 |
5 | ## Introduction
6 |
7 | Tuya Android UI BizBundle is a vertical business bundle that contains logic modules and UI pages. It's designed to provide customers with the ability to quickly access the Tuya business module based on the Tuya Smart Home SDK.You can run the module according to the selected bizbundle.
8 |
9 | ## Documentation
10 |
11 | [Tuya Smart UI Bizbundle Doc](https://developer.tuya.com/en/docs/app-development/android-bizbundle-sdk/introduction?id=Ka8qhzjygzfau)
12 |
13 | ## Support
14 |
15 | You can get support from Tuya with the following methods:
16 |
17 | * [Tuya Smart Help Center](https://support.tuya.com/en/help)
18 | * [Technical Support Council](https://iot.tuya.com/council/)
19 |
20 | ## License
21 |
22 | This Tuya Smart UI Bizbundle Sample is licensed under the MIT License.
23 |
--------------------------------------------------------------------------------
/speech/src/main/res/layout/activity_speech_demo.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/ipc/src/main/res/layout/activity_panel.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
20 |
--------------------------------------------------------------------------------
/panel/src/main/res/layout/activity_panel.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
20 |
--------------------------------------------------------------------------------
/family/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 29
5 |
6 | defaultConfig {
7 | minSdkVersion 23
8 | targetSdkVersion 33
9 | versionCode 1
10 | versionName "1.0"
11 |
12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
13 | consumerProguardFiles "consumer-rules.pro"
14 | }
15 |
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | }
23 |
24 | dependencies {
25 | implementation fileTree(dir: "libs", include: ["*.jar"])
26 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
27 | api "com.thingclips.smart:thingsmart-bizbundle-family"
28 | api "com.thingclips.smart:thingsmart:${sdk_version}"
29 | }
--------------------------------------------------------------------------------
/share/src/main/res/values/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/lightscene/src/main/res/layout/activity_light_scene_manager.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
15 |
16 |
21 |
--------------------------------------------------------------------------------
/share/src/main/res/values-night/themes.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
16 |
--------------------------------------------------------------------------------
/groupmanager/src/androidTest/java/com/tuya/groupmanager/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.groupmanager;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.groupmanager.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/app/src/androidTest/java/com/tuya/smart/bizubundle/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizubundle.demo", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/ota/src/androidTest/java/com/tuya/smart/bizbundle/ota/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.ota.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizbundle.ota.demo.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/activator/src/androidTest/java/com/tuya/smart/device/activator/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.device.activator;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizbundle.activator.demo.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/ipc/src/androidTest/java/com/tuya/smart/bizubundle/panel/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.panel.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizubundle.panel.demo.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/ipc/src/main/java/com/tuya/smart/bizubundle/ipc/demo/ItemBean.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.ipc.demo;
2 |
3 | public class ItemBean {
4 | private String devId;
5 | private long groupId;
6 | private String iconUrl;
7 | private String title;
8 |
9 | public String getDevId() {
10 | return devId;
11 | }
12 |
13 | public void setDevId(String devId) {
14 | this.devId = devId;
15 | }
16 |
17 | public long getGroupId() {
18 | return groupId;
19 | }
20 |
21 | public void setGroupId(long groupId) {
22 | this.groupId = groupId;
23 | }
24 |
25 | public String getIconUrl() {
26 | return iconUrl;
27 | }
28 |
29 | public void setIconUrl(String iconUrl) {
30 | this.iconUrl = iconUrl;
31 | }
32 |
33 | public String getTitle() {
34 | return title;
35 | }
36 |
37 | public void setTitle(String title) {
38 | this.title = title;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/mall/src/androidTest/java/com/tuya/smart/bizubundle/mall/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.mall.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizubundle.mall.demo.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/family/src/androidTest/java/com/tuya/smart/bizbundle/demo/family/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.family;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizbundle.demo.family.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/panel/src/androidTest/java/com/tuya/smart/bizubundle/panel/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.panel.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizubundle.panel.demo.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/cloudstorage/src/androidTest/java/com/tuya/smart/bizubundle/panel/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.panel.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizubundle.panel.demo.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/control/src/androidTest/java/com/tuya/smart/bizubundle/control/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.control.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizubundle.control.demo.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/feedback/src/androidTest/java/com/tuya/smart/bizbundle/feedback/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.feedback;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 |
25 | assertEquals("com.tuya.smart.bizbundle.feedback.test", appContext.getPackageName());
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/lightscene/src/androidTest/java/com/thingclips/appsdk/sample/lightscene/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.thingclips.appsdk.sample.lightscene;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.appsdk.sample.lightscene.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/location/src/androidTest/java/com/tuya/smart/bizbundle/demo/location/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.location;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizbundle.demo.location.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/feedback/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 29
5 | buildToolsVersion "29.0.3"
6 |
7 |
8 | defaultConfig {
9 | minSdkVersion 19
10 | targetSdkVersion 29
11 | versionCode 1
12 | versionName "1.0"
13 |
14 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
15 | consumerProguardFiles 'consumer-rules.pro'
16 | }
17 |
18 | buildTypes {
19 | release {
20 | minifyEnabled false
21 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
22 | }
23 | }
24 |
25 | }
26 |
27 | dependencies {
28 | implementation fileTree(dir: 'libs', include: ['*.jar'])
29 | api "com.thingclips.smart:thingsmart:${sdk_version}"
30 |
31 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
32 | api "com.thingclips.smart:thingsmart-bizbundle-feedback"
33 | }
34 |
--------------------------------------------------------------------------------
/mall/src/main/java/com/tuya/smart/bizubundle/mall/demo/bean/ItemBean.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.mall.demo.bean;
2 |
3 | public class ItemBean {
4 | private String devId;
5 | private long groupId;
6 | private String iconUrl;
7 | private String title;
8 |
9 | public String getDevId() {
10 | return devId;
11 | }
12 |
13 | public void setDevId(String devId) {
14 | this.devId = devId;
15 | }
16 |
17 | public long getGroupId() {
18 | return groupId;
19 | }
20 |
21 | public void setGroupId(long groupId) {
22 | this.groupId = groupId;
23 | }
24 |
25 | public String getIconUrl() {
26 | return iconUrl;
27 | }
28 |
29 | public void setIconUrl(String iconUrl) {
30 | this.iconUrl = iconUrl;
31 | }
32 |
33 | public String getTitle() {
34 | return title;
35 | }
36 |
37 | public void setTitle(String title) {
38 | this.title = title;
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/speech/src/androidTest/java/com/tuya/smart/bizbundle/demo/speech/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.speech;
2 |
3 | import static org.junit.Assert.assertEquals;
4 |
5 | import android.content.Context;
6 |
7 | import androidx.test.ext.junit.runners.AndroidJUnit4;
8 | import androidx.test.platform.app.InstrumentationRegistry;
9 |
10 | import org.junit.Test;
11 | import org.junit.runner.RunWith;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizbundle.demo.speech.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/message/src/androidTest/java/com/tuya/smart/bizbundle/message/demo/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.message.demo;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 |
25 | assertEquals("com.tuya.smart.bizbundle.message.demo.test", appContext.getPackageName());
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/alexa_google_bind/src/androidTest/java/com/tuya/smart/bizbundle/demo/socialbind/ExampleInstrumentedTest.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.socialbind;
2 |
3 | import android.content.Context;
4 |
5 | import androidx.test.platform.app.InstrumentationRegistry;
6 | import androidx.test.ext.junit.runners.AndroidJUnit4;
7 |
8 | import org.junit.Test;
9 | import org.junit.runner.RunWith;
10 |
11 | import static org.junit.Assert.*;
12 |
13 | /**
14 | * Instrumented test, which will execute on an Android device.
15 | *
16 | * @see Testing documentation
17 | */
18 | @RunWith(AndroidJUnit4.class)
19 | public class ExampleInstrumentedTest {
20 | @Test
21 | public void useAppContext() {
22 | // Context of the app under test.
23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext();
24 | assertEquals("com.tuya.smart.bizbundle.demo.socialbind.test", appContext.getPackageName());
25 | }
26 | }
--------------------------------------------------------------------------------
/lightscene/src/main/res/layout/lightscene_activity_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/app/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | app
4 | Project app created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
25 | 1635833057718
26 |
27 | 30
28 |
29 | org.eclipse.core.resources.regexFilterMatcher
30 | node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/ota/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | ota
4 | Project ota created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
25 | 1635833057731
26 |
27 | 30
28 |
29 | org.eclipse.core.resources.regexFilterMatcher
30 | node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/mall/src/main/java/com/tuya/smart/bizubundle/mall/demo/WebActivity.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.mall.demo;
2 |
3 | import android.os.Bundle;
4 |
5 | import androidx.annotation.Nullable;
6 | import androidx.appcompat.app.AppCompatActivity;
7 |
8 | import com.thingclips.smart.jsbridge.base.webview.WebViewFragment;
9 |
10 | public class WebActivity extends AppCompatActivity {
11 |
12 | @Override
13 | protected void onCreate(@Nullable Bundle savedInstanceState) {
14 | super.onCreate(savedInstanceState);
15 | setContentView(R.layout.activity_web);
16 | WebViewFragment fragment = new WebViewFragment();
17 | Bundle args = new Bundle();
18 | args.putString("Uri", getIntent().getStringExtra("Uri"));
19 | args.putBoolean("enableLeftArea", true);
20 | fragment.setArguments(args);
21 | getSupportFragmentManager().beginTransaction()
22 | .add(R.id.web_content, fragment, WebViewFragment.class.getSimpleName())
23 | .commit();
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/panel/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | panel
4 | Project panel created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
25 | 1635833057732
26 |
27 | 30
28 |
29 | org.eclipse.core.resources.regexFilterMatcher
30 | node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/devicedetail/src/main/res/layout/demo_dialog_dev_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
19 |
23 |
--------------------------------------------------------------------------------
/devicedetail/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | devicedetail
4 | Project devicedetail created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
25 | 1635833057720
26 |
27 | 30
28 |
29 | org.eclipse.core.resources.regexFilterMatcher
30 | node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/groupmanager/.project:
--------------------------------------------------------------------------------
1 |
2 |
3 | groupmanager
4 | Project groupmanager created by Buildship.
5 |
6 |
7 |
8 |
9 | org.eclipse.jdt.core.javabuilder
10 |
11 |
12 |
13 |
14 | org.eclipse.buildship.core.gradleprojectbuilder
15 |
16 |
17 |
18 |
19 |
20 | org.eclipse.jdt.core.javanature
21 | org.eclipse.buildship.core.gradleprojectnature
22 |
23 |
24 |
25 | 1635833057721
26 |
27 | 30
28 |
29 | org.eclipse.core.resources.regexFilterMatcher
30 | node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
31 |
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/ota/src/main/res/layout/demo_dialog_dev_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
20 |
24 |
--------------------------------------------------------------------------------
/message/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 29
5 | buildToolsVersion "29.0.3"
6 |
7 |
8 | defaultConfig {
9 | minSdkVersion 19
10 | targetSdkVersion 29
11 | versionCode 1
12 | versionName "1.0"
13 |
14 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
15 | consumerProguardFiles 'consumer-rules.pro'
16 | }
17 |
18 | buildTypes {
19 | release {
20 | minifyEnabled false
21 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
22 | }
23 | }
24 |
25 | packagingOptions {
26 | pickFirst 'lib/*/libc++_shared.so'
27 | }
28 |
29 | }
30 |
31 | dependencies {
32 | implementation fileTree(dir: 'libs', include: ['*.jar'])
33 | api "com.thingclips.smart:thingsmart:${sdk_version}"
34 |
35 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
36 | api "com.thingclips.smart:thingsmart-bizbundle-message"
37 | }
38 |
--------------------------------------------------------------------------------
/control/src/main/res/layout/activity_control_dev_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
24 |
25 |
--------------------------------------------------------------------------------
/groupmanager/src/main/java/com/thingclips/groupmanager/GroupManagerActivity.java:
--------------------------------------------------------------------------------
1 | package com.thingclips.groupmanager;
2 |
3 | import android.os.Bundle;
4 | import android.view.View;
5 |
6 | import androidx.appcompat.app.AppCompatActivity;
7 |
8 | public class GroupManagerActivity extends AppCompatActivity {
9 |
10 | @Override
11 | protected void onCreate(Bundle savedInstanceState) {
12 | super.onCreate(savedInstanceState);
13 | setContentView(R.layout.activity_group_manager);
14 |
15 | findViewById(R.id.btnCreateGroup).setOnClickListener(new View.OnClickListener() {
16 | @Override
17 | public void onClick(View v) {
18 | GroupListActivity.startCreateGroup(GroupManagerActivity.this);
19 | }
20 | });
21 |
22 | findViewById(R.id.btnEditGroup).setOnClickListener(new View.OnClickListener() {
23 | @Override
24 | public void onClick(View v) {
25 | GroupListActivity.startEditGroup(GroupManagerActivity.this);
26 | }
27 | });
28 | }
29 | }
--------------------------------------------------------------------------------
/activator/src/main/res/layout/activity_device_activator.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
13 |
14 |
21 |
22 |
30 |
31 |
--------------------------------------------------------------------------------
/groupmanager/src/main/res/layout/activity_group_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
18 |
19 |
24 |
25 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Tuya
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/app/src/main/res/layout/fragment_family_create.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
27 |
--------------------------------------------------------------------------------
/family/src/main/res/layout/activity_family_manage.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
21 |
--------------------------------------------------------------------------------
/feedback/src/main/res/layout/activity_feedback.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
15 |
16 |
25 |
26 |
--------------------------------------------------------------------------------
/mall/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 29
5 | buildToolsVersion "29.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 19
9 | targetSdkVersion 29
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
14 | consumerProguardFiles "consumer-rules.pro"
15 | }
16 |
17 | buildTypes {
18 | release {
19 | minifyEnabled false
20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
21 | }
22 | }
23 | }
24 |
25 | dependencies {
26 | implementation fileTree(dir: "libs", include: ["*.jar"])
27 | testImplementation 'junit:junit:4.12'
28 | androidTestImplementation 'androidx.test.ext:junit:1.1.1'
29 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
30 |
31 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
32 | api "com.thingclips.smart:thingsmart-bizbundle-mall"
33 | api "com.thingclips.smart:thingsmart:${sdk_version}"
34 | }
--------------------------------------------------------------------------------
/miniapp/src/main/res/layout/act_miniapp_sample.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
14 |
15 |
16 |
23 |
24 |
25 |
32 |
--------------------------------------------------------------------------------
/activator/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 33
5 | // buildToolsVersion "33.0.1"
6 |
7 | defaultConfig {
8 | minSdkVersion 19
9 | targetSdkVersion 33
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
14 | consumerProguardFiles "consumer-rules.pro"
15 | }
16 |
17 | buildTypes {
18 | release {
19 | minifyEnabled false
20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
21 | }
22 | }
23 | }
24 |
25 | dependencies {
26 | api "com.thingclips.smart:thingsmart:${sdk_version}"
27 | // api ("com.thingclips.smart:thingsmart-bizbundle-device_activator:${bizbundle_version}")
28 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
29 | api "com.thingclips.smart:thingsmart-bizbundle-device_activator"
30 | // arcode scan
31 | // api "com.thingclips.smart:thingsmart-bizbundle-qrcode_scankit"
32 | api "com.thingclips.smart:thingsmart-bizbundle-qrcode_mlkit"
33 | }
--------------------------------------------------------------------------------
/ota/src/main/java/com/thingclips/smart/bizbundle/ota/demo/SimpleDeviceBean.java:
--------------------------------------------------------------------------------
1 | package com.thingclips.smart.bizbundle.ota.demo;
2 |
3 | public class SimpleDeviceBean {
4 | private String devId;
5 | private long groupId;
6 | private String iconUrl;
7 | private String title;
8 | private int type;
9 |
10 | public String getDevId() {
11 | return devId;
12 | }
13 |
14 | public void setDevId(String devId) {
15 | this.devId = devId;
16 | }
17 |
18 | public long getGroupId() {
19 | return groupId;
20 | }
21 |
22 | public void setGroupId(long groupId) {
23 | this.groupId = groupId;
24 | }
25 |
26 | public String getIconUrl() {
27 | return iconUrl;
28 | }
29 |
30 | public void setIconUrl(String iconUrl) {
31 | this.iconUrl = iconUrl;
32 | }
33 |
34 | public String getTitle() {
35 | return title;
36 | }
37 |
38 | public void setTitle(String title) {
39 | this.title = title;
40 | }
41 |
42 | public int getType() {
43 | return type;
44 | }
45 |
46 | public void setType(int type) {
47 | this.type = type;
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/ipc/src/main/res/layout/list_home_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
25 |
--------------------------------------------------------------------------------
/panel/src/main/res/layout/list_home_item.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
25 |
--------------------------------------------------------------------------------
/scene/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 31
5 |
6 | defaultConfig {
7 | minSdkVersion 19
8 | targetSdkVersion 29
9 | versionCode 1
10 | versionName "1.0"
11 |
12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
13 | consumerProguardFiles "consumer-rules.pro"
14 | }
15 |
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | }
23 |
24 | dependencies {
25 | implementation fileTree(dir: "libs", include: ["*.jar"])
26 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
27 | api ("com.thingclips.smart:thingsmart-bizbundle-scene")
28 | api "com.thingclips.smart:thingsmart-bizbundle-map_google"
29 | api "com.thingclips.smart:thingsmart-bizbundle-location_google"
30 |
31 | // api "com.thingclips.smart:thingsmart-bizbundle-map_amap"
32 | // api "com.thingclips.smart:thingsmart-bizbundle-location_amap"
33 |
34 | api "com.thingclips.smart:thingsmart:${sdk_version}"
35 |
36 | }
--------------------------------------------------------------------------------
/lightscene/src/main/res/layout/home_item_list.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
17 |
18 |
23 |
24 |
30 |
31 |
--------------------------------------------------------------------------------
/cloudstorage/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 33
5 | buildToolsVersion "30.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 23
9 | targetSdkVersion 33
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
14 | consumerProguardFiles "consumer-rules.pro"
15 | }
16 |
17 | buildTypes {
18 | release {
19 | minifyEnabled false
20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
21 | }
22 | }
23 | }
24 |
25 | dependencies {
26 | implementation fileTree(dir: "libs", include: ["*.jar"])
27 | testImplementation 'junit:junit:4.12'
28 | androidTestImplementation 'androidx.test.ext:junit:1.1.1'
29 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
30 |
31 | api "com.thingclips.smart:thingsmart:${sdk_version}"
32 |
33 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
34 | api "com.thingclips.smart:thingsmart-bizbundle-cloud_storage"
35 | api "com.thingclips.smart:thingsmart-bizbundle-family"
36 | }
--------------------------------------------------------------------------------
/gradle.properties:
--------------------------------------------------------------------------------
1 | # Project-wide Gradle settings.
2 | # IDE (e.g. Android Studio) users:
3 | # Gradle settings configured through the IDE *will override*
4 | # any settings specified in this file.
5 | # For more details on how to configure your build environment visit
6 | # http://www.gradle.org/docs/current/userguide/build_environment.html
7 | # Specifies the JVM arguments used for the daemon process.
8 | # The setting is particularly useful for tweaking memory settings.
9 | # When configured, Gradle will run in incubating parallel mode.
10 | # This option should only be used with decoupled projects. More details, visit
11 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
12 | # org.gradle.parallel=true
13 | # AndroidX package structure to make it clearer which packages are bundled with the
14 | # Android operating system, and which are packaged with your app"s APK
15 | # https://developer.android.com/topic/libraries/support-library/androidx-rn
16 | android.useAndroidX=true
17 | # Automatically convert third-party libraries to use AndroidX
18 | android.enableJetifier=true
19 | org.gradle.jvmargs=-Xmx6000m -XX:MaxPermSize=4096m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
20 | org.gradle.daemon=true
21 |
22 |
--------------------------------------------------------------------------------
/message/src/main/res/layout/activity_message.xml:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
16 |
17 |
27 |
28 |
29 |
--------------------------------------------------------------------------------
/cloudstorage/src/main/res/layout/activity_cloud_storage.xml:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
15 |
16 |
24 |
25 |
30 |
--------------------------------------------------------------------------------
/ota/src/main/res/layout/demo_rv_item_simple_dev.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
27 |
--------------------------------------------------------------------------------
/ota/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 29
5 | buildToolsVersion "29.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 19
9 | targetSdkVersion 29
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
14 | consumerProguardFiles "consumer-rules.pro"
15 | }
16 |
17 | buildTypes {
18 | release {
19 | minifyEnabled false
20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
21 | }
22 | }
23 | }
24 |
25 | dependencies {
26 | implementation fileTree(dir: "libs", include: ["*.jar"])
27 | implementation 'androidx.appcompat:appcompat:1.2.0'
28 | implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
29 | testImplementation 'junit:junit:4.12'
30 | androidTestImplementation 'androidx.test.ext:junit:1.1.2'
31 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
32 |
33 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
34 | api "com.thingclips.smart:thingsmart-bizbundle-family"
35 | api "com.thingclips.smart:thingsmart-bizbundle-ota"
36 | api "com.thingclips.smart:thingsmart:${sdk_version}"
37 |
38 | }
--------------------------------------------------------------------------------
/control/src/main/res/layout/item_simple_dev.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
20 |
21 |
29 |
30 |
35 |
--------------------------------------------------------------------------------
/groupmanager/src/main/res/layout/item_simple_dev.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
20 |
21 |
29 |
30 |
35 |
--------------------------------------------------------------------------------
/control/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | }
4 |
5 | android {
6 | compileSdk 29
7 | buildToolsVersion "29.0.3"
8 |
9 | defaultConfig {
10 | minSdkVersion 19
11 | targetSdkVersion 29
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | consumerProguardFiles "consumer-rules.pro"
17 | }
18 |
19 | buildTypes {
20 | release {
21 | minifyEnabled false
22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
23 | }
24 | }
25 | }
26 |
27 | dependencies {
28 |
29 | implementation 'androidx.appcompat:appcompat:1.3.1'
30 | implementation 'com.google.android.material:material:1.4.0'
31 | implementation 'androidx.constraintlayout:constraintlayout:2.1.1'
32 | testImplementation 'junit:junit:4.+'
33 | androidTestImplementation 'androidx.test.ext:junit:1.1.3'
34 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
35 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
36 | api "com.thingclips.smart:thingsmart-bizbundle-control"
37 | api "com.thingclips.smart:thingsmart-bizbundle-family"
38 | api "com.thingclips.smart:thingsmart:${sdk_version}"
39 |
40 | }
--------------------------------------------------------------------------------
/devicedetail/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | id 'kotlin-android'
4 | }
5 |
6 | android {
7 | compileSdk 33
8 |
9 | defaultConfig {
10 | minSdkVersion 19
11 | targetSdkVersion 33
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | consumerProguardFiles "consumer-rules.pro"
17 | }
18 |
19 | buildTypes {
20 | release {
21 | minifyEnabled false
22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
23 | }
24 | }
25 | compileOptions {
26 | sourceCompatibility JavaVersion.VERSION_1_8
27 | targetCompatibility JavaVersion.VERSION_1_8
28 | }
29 | kotlinOptions {
30 | jvmTarget = '1.8'
31 | }
32 | viewBinding {
33 | enabled = true
34 | }
35 | }
36 |
37 | configurations.all {
38 | exclude group: "com.thingclips.smart" ,module: 'thingsmart-modularCampAnno'
39 | }
40 |
41 | dependencies {
42 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
43 | api "com.thingclips.smart:thingsmart-bizbundle-panelmore"
44 | api "com.thingclips.smart:thingsmart-bizbundle-family"
45 | api "com.thingclips.smart:thingsmart:${sdk_version}"
46 |
47 | }
--------------------------------------------------------------------------------
/groupmanager/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | android {
3 | compileSdk 29
4 | buildToolsVersion "29.0.3"
5 |
6 | defaultConfig {
7 | minSdkVersion 19
8 | targetSdkVersion 29
9 | versionCode 1
10 | versionName "1.0"
11 |
12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
13 | consumerProguardFiles "consumer-rules.pro"
14 | }
15 |
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | }
23 |
24 | dependencies {
25 |
26 | implementation 'androidx.appcompat:appcompat:1.2.0'
27 | implementation 'com.google.android.material:material:1.3.0'
28 | implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
29 | testImplementation 'junit:junit:4.+'
30 | androidTestImplementation 'androidx.test.ext:junit:1.1.2'
31 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
32 |
33 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
34 | api "com.thingclips.smart:thingsmart:${sdk_version}"
35 | // group manager
36 | api "com.thingclips.smart:thingsmart-bizbundle-groupmanager"
37 | api "com.thingclips.smart:thingsmart-bizbundle-family"
38 |
39 | }
--------------------------------------------------------------------------------
/share/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | id 'kotlin-android'
4 | }
5 |
6 | android {
7 | compileSdk 33
8 |
9 | defaultConfig {
10 | minSdkVersion 19
11 | targetSdkVersion 33
12 |
13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
14 | }
15 |
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 | compileOptions {
23 | sourceCompatibility JavaVersion.VERSION_1_8
24 | targetCompatibility JavaVersion.VERSION_1_8
25 | }
26 | kotlinOptions {
27 | jvmTarget = '1.8'
28 | }
29 | }
30 |
31 | dependencies {
32 | implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
33 | implementation 'androidx.appcompat:appcompat:1.3.1'
34 | implementation 'com.google.android.material:material:1.4.0'
35 | testImplementation 'junit:junit:4.+'
36 | androidTestImplementation 'androidx.test.ext:junit:1.1.3'
37 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
38 |
39 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
40 | api "com.thingclips.smart:thingsmart:${sdk_version}"
41 | api "com.thingclips.smart:thingsmart-bizbundle-share"
42 | }
--------------------------------------------------------------------------------
/devicedetail/src/main/java/com/thingclips/smart/bizbundle/devicedetail/demo/SimpleDeviceBean.java:
--------------------------------------------------------------------------------
1 | package com.thingclips.smart.bizbundle.devicedetail.demo;
2 |
3 | public class SimpleDeviceBean {
4 | private String devId;
5 | private long groupId;
6 | private String iconUrl;
7 | private String title;
8 | private int type;
9 | // 红外子设备是否显示
10 | private boolean show;
11 |
12 | public String getDevId() {
13 | return devId;
14 | }
15 |
16 | public void setDevId(String devId) {
17 | this.devId = devId;
18 | }
19 |
20 | public long getGroupId() {
21 | return groupId;
22 | }
23 |
24 | public void setGroupId(long groupId) {
25 | this.groupId = groupId;
26 | }
27 |
28 | public String getIconUrl() {
29 | return iconUrl;
30 | }
31 |
32 | public void setIconUrl(String iconUrl) {
33 | this.iconUrl = iconUrl;
34 | }
35 |
36 | public String getTitle() {
37 | return title;
38 | }
39 |
40 | public void setTitle(String title) {
41 | this.title = title;
42 | }
43 |
44 | public int getType() {
45 | return type;
46 | }
47 |
48 | public void setType(int type) {
49 | this.type = type;
50 | }
51 |
52 | public boolean isShow() {
53 | return show;
54 | }
55 |
56 | public void setShow(boolean show) {
57 | this.show = show;
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/app/src/main/res/drawable/bg_text_bts.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | -
5 |
6 |
7 |
8 |
9 |
10 |
11 | -
12 |
13 |
14 |
15 |
16 |
17 |
18 | -
19 |
20 |
21 |
22 |
23 |
24 |
25 | -
26 |
27 |
28 |
29 |
30 |
31 |
32 | -
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
--------------------------------------------------------------------------------
/lightscene/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | }
4 |
5 | android {
6 | compileSdk 30
7 | buildToolsVersion "30.0.2"
8 |
9 | defaultConfig {
10 | minSdkVersion 23
11 | targetSdkVersion 30
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | consumerProguardFiles "consumer-rules.pro"
17 | }
18 |
19 | buildTypes {
20 | release {
21 | minifyEnabled false
22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
23 | }
24 | }
25 | compileOptions {
26 | sourceCompatibility JavaVersion.VERSION_1_8
27 | targetCompatibility JavaVersion.VERSION_1_8
28 | }
29 | }
30 |
31 | dependencies {
32 |
33 | implementation 'androidx.appcompat:appcompat:1.2.0'
34 | implementation 'com.google.android.material:material:1.3.0'
35 | implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
36 | testImplementation 'junit:junit:4.+'
37 | androidTestImplementation 'androidx.test.ext:junit:1.1.2'
38 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
39 |
40 | api "com.thingclips.smart:thingsmart:${sdk_version}"
41 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
42 | api "com.thingclips.smart:thingsmart-bizbundle-light_scene"
43 | }
--------------------------------------------------------------------------------
/speech/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | }
4 |
5 | android {
6 | compileSdk 30
7 | buildToolsVersion "30.0.3"
8 |
9 | defaultConfig {
10 | minSdkVersion 19
11 | targetSdkVersion 30
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | consumerProguardFiles "consumer-rules.pro"
17 | }
18 |
19 | buildTypes {
20 | release {
21 | minifyEnabled false
22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
23 | }
24 | }
25 | compileOptions {
26 | sourceCompatibility JavaVersion.VERSION_1_8
27 | targetCompatibility JavaVersion.VERSION_1_8
28 | }
29 | }
30 |
31 | dependencies {
32 |
33 | implementation 'androidx.appcompat:appcompat:1.2.0'
34 | implementation 'com.google.android.material:material:1.3.0'
35 | implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
36 | testImplementation 'junit:junit:4.+'
37 | androidTestImplementation 'androidx.test.ext:junit:1.1.2'
38 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
39 |
40 |
41 | api "com.thingclips.smart:thingsmart:${sdk_version}"
42 |
43 | api "com.thingclips.smart:thingsmart-bizbundle-speech:${bizbundle_version}"
44 |
45 | //依赖设备 控制UI业务包
46 | api project(':panel')
47 |
48 |
49 | }
--------------------------------------------------------------------------------
/miniapp/src/main/java/com/thingclips/smart/bizbundle/miniapp/demo/ActMiniAppSample.java:
--------------------------------------------------------------------------------
1 | package com.thingclips.smart.bizbundle.miniapp.demo;
2 |
3 | import android.app.Activity;
4 | import android.os.Bundle;
5 | import android.view.View;
6 |
7 | import androidx.annotation.Nullable;
8 |
9 | import com.thing.smart.miniappclient.ThingMiniAppClient;
10 |
11 | /**
12 | * @author xiaotan.yu
13 | * @date 2023/3/6
14 | */
15 | public class ActMiniAppSample extends Activity {
16 |
17 | @Override
18 | protected void onCreate(@Nullable Bundle savedInstanceState) {
19 | super.onCreate(savedInstanceState);
20 | setContentView(R.layout.act_miniapp_sample);
21 |
22 | findViewById(R.id.btn_miniapp_init).setOnClickListener(this::init);
23 | findViewById(R.id.btn_open_miniapp).setOnClickListener(this::openMiniAPP);
24 | findViewById(R.id.btn_clea_miniapp_cache).setOnClickListener(this::clearCache);
25 | }
26 |
27 | public void init(View view){
28 | ThingMiniAppClient
29 | .initialClient()
30 | .initialize();
31 | }
32 |
33 | public void openMiniAPP(View view){
34 | ThingMiniAppClient
35 | .coreClient()
36 | .openMiniAppByAppId(this, "tydxwunc8rjqvh4gaw", null, null);
37 | }
38 |
39 | public void clearCache(View view){
40 | ThingMiniAppClient
41 | .coreClient()
42 | .clearCache();
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/third_service/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | }
4 |
5 | android {
6 | compileSdk 30
7 | buildToolsVersion "30.0.2"
8 |
9 | defaultConfig {
10 | minSdkVersion 23
11 | targetSdkVersion 30
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | consumerProguardFiles "consumer-rules.pro"
17 | }
18 |
19 | buildTypes {
20 | release {
21 | minifyEnabled false
22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
23 | }
24 | }
25 | compileOptions {
26 | sourceCompatibility JavaVersion.VERSION_1_8
27 | targetCompatibility JavaVersion.VERSION_1_8
28 | }
29 | }
30 |
31 | dependencies {
32 |
33 | implementation 'androidx.appcompat:appcompat:1.2.0'
34 | implementation 'com.google.android.material:material:1.3.0'
35 | implementation 'androidx.constraintlayout:constraintlayout:2.1.0'
36 | testImplementation 'junit:junit:4.+'
37 | androidTestImplementation 'androidx.test.ext:junit:1.1.2'
38 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
39 |
40 | api "com.thingclips.smart:thingsmart:${sdk_version}"
41 |
42 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
43 | api "com.thingclips.smart:thingsmart-bizbundle-third_service"
44 | }
--------------------------------------------------------------------------------
/alexa_google_bind/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | }
4 |
5 | android {
6 | compileSdk 30
7 | buildToolsVersion "30.0.3"
8 |
9 | defaultConfig {
10 | minSdkVersion 19
11 | targetSdkVersion 30
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | consumerProguardFiles "consumer-rules.pro"
17 | }
18 |
19 | buildTypes {
20 | release {
21 | minifyEnabled false
22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
23 | }
24 | }
25 | compileOptions {
26 | sourceCompatibility JavaVersion.VERSION_1_8
27 | targetCompatibility JavaVersion.VERSION_1_8
28 | }
29 | }
30 |
31 | dependencies {
32 |
33 | implementation 'androidx.appcompat:appcompat:1.2.0'
34 | implementation 'com.google.android.material:material:1.3.0'
35 | implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
36 | testImplementation 'junit:junit:4.+'
37 | androidTestImplementation 'androidx.test.ext:junit:1.1.2'
38 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
39 |
40 | api "com.thingclips.smart:thingsmart:${sdk_version}"
41 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
42 | api "com.thingclips.smart:thingsmart-bizbundle-amazon_google_bind"
43 | }
44 |
--------------------------------------------------------------------------------
/devicedetail/src/main/res/layout/activity_panel_more.xml:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
13 |
14 |
24 |
25 |
35 |
36 |
--------------------------------------------------------------------------------
/devicedetail/src/main/java/com/thingclips/smart/bizbundle/devicedetail/demo/PanelMoreItemClickServiceImp.java:
--------------------------------------------------------------------------------
1 | package com.thingclips.smart.bizbundle.devicedetail.demo;
2 |
3 | import android.content.Context;
4 | import android.widget.Toast;
5 |
6 | import com.thingclips.smart.bizubundle.devicedetail.demo.R;
7 | import com.thingclips.smart.panel.usecase.panelmore.service.PanelMoreItemClickService;
8 | import com.thingclips.smart.sdk.bean.DeviceBean;
9 | import com.thingclips.smart.sdk.bean.GroupBean;
10 | import com.thingclips.smart.uispec.list.plug.text.TextBean;
11 |
12 |
13 | @Deprecated
14 | public class PanelMoreItemClickServiceImp extends PanelMoreItemClickService {
15 |
16 | @Override
17 | public void devClickItem(Context context, int action, TextBean textBean, DeviceBean deviceBean, boolean b) {
18 | if (action == R.id.action_test_insert) {
19 | Toast.makeText(context, "action_test_insert", Toast.LENGTH_LONG).show();
20 | } else if (action == R.id.action_test_async_insert) {
21 | Toast.makeText(context, "action_test_async_insert", Toast.LENGTH_LONG).show();
22 | }
23 | }
24 |
25 | @Override
26 | public void groupClickItem(Context context, int action, TextBean textBean, GroupBean groupBean, boolean b) {
27 | if (action == R.id.action_test_insert) {
28 | Toast.makeText(context, "action_test_insert", Toast.LENGTH_LONG).show();
29 | } else if (action == R.id.action_test_async_insert) {
30 | Toast.makeText(context, "action_test_async_insert", Toast.LENGTH_LONG).show();
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/alexa_google_bind/src/main/res/layout/activity_alexa_google_bind.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
17 |
18 |
25 |
26 |
33 |
34 |
40 |
41 |
--------------------------------------------------------------------------------
/location/build.gradle:
--------------------------------------------------------------------------------
1 | plugins {
2 | id 'com.android.library'
3 | }
4 |
5 | android {
6 | compileSdk 30
7 | buildToolsVersion "30.0.2"
8 |
9 | defaultConfig {
10 | minSdkVersion 19
11 | targetSdkVersion 30
12 | versionCode 1
13 | versionName "1.0"
14 |
15 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
16 | consumerProguardFiles "consumer-rules.pro"
17 | }
18 |
19 | buildTypes {
20 | release {
21 | minifyEnabled false
22 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
23 | }
24 | }
25 | compileOptions {
26 | sourceCompatibility JavaVersion.VERSION_1_8
27 | targetCompatibility JavaVersion.VERSION_1_8
28 | }
29 | }
30 |
31 | dependencies {
32 |
33 | implementation 'androidx.appcompat:appcompat:1.2.0'
34 | implementation 'com.google.android.material:material:1.3.0'
35 | implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
36 | testImplementation 'junit:junit:4.+'
37 | androidTestImplementation 'androidx.test.ext:junit:1.1.2'
38 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
39 |
40 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
41 | api "com.thingclips.smart:thingsmart:${sdk_version}"
42 | api "com.thingclips.smart:thingsmart-bizbundle-map_amap"
43 | api "com.thingclips.smart:thingsmart-bizbundle-location_amap"
44 | api "com.thingclips.smart:thingsmart-bizbundle-map_google"
45 | api "com.thingclips.smart:thingsmart-bizbundle-location_google"
46 | }
--------------------------------------------------------------------------------
/message/src/main/java/com/tuya/smart/bizbundle/message/demo/MessageActivity.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.message.demo;
2 |
3 | import android.os.Bundle;
4 | import android.view.View;
5 | import android.widget.Button;
6 |
7 | import androidx.appcompat.app.AppCompatActivity;
8 |
9 | import com.thingclips.smart.api.MicroContext;
10 | import com.thingclips.smart.api.router.UrlBuilder;
11 | import com.thingclips.smart.api.router.UrlRouter;
12 | import com.thingclips.smart.message.base.activity.message.MessageContainerActivity;
13 | import com.thingclips.stencil.utils.ActivityUtils;
14 |
15 | public class MessageActivity extends AppCompatActivity implements View.OnClickListener {
16 |
17 | @Override
18 | protected void onCreate(Bundle savedInstanceState) {
19 | super.onCreate(savedInstanceState);
20 | setContentView(R.layout.activity_message);
21 | initView();
22 | }
23 | private void initView() {
24 | Button mActivityMessageBtn = findViewById(R.id.btn_message_start);
25 | Button mRouteMessageBtn = findViewById(R.id.btn_message_route);
26 | mActivityMessageBtn.setOnClickListener(this);
27 | mRouteMessageBtn.setOnClickListener(this);
28 | }
29 |
30 | @Override
31 | public void onClick(View v) {
32 | if (v.getId() == R.id.btn_message_start) {
33 | ActivityUtils.gotoActivity(MessageActivity.this,
34 | MessageContainerActivity.class,
35 | ActivityUtils.ANIMATE_SLIDE_TOP_FROM_BOTTOM,
36 | false);
37 | } else if (v.getId() == R.id.btn_message_route) {
38 | UrlRouter.execute(new UrlBuilder(MessageActivity.this, "messageCenter"));
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/ota/src/main/res/layout/activity_ota.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
22 |
23 |
37 |
38 |
--------------------------------------------------------------------------------
/mall/src/main/res/layout/activity_mall.xml:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
17 |
18 |
27 |
28 |
34 |
35 |
43 |
--------------------------------------------------------------------------------
/app/src/main/assets/thing_pbt_group_config.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "npmName": "DebuggerKit",
4 | "version": "3.0.0",
5 | "PBTGroupName": "TUNIDebuggerKit"
6 | },
7 | {
8 | "npmName": "MiniKit",
9 | "version": "3.8.3",
10 | "PBTGroupName": "TUNIMiniKit"
11 | },
12 | {
13 | "npmName": "HomeKit",
14 | "version": "3.3.0",
15 | "PBTGroupName": "TUNIHomeKit"
16 | },
17 | {
18 | "npmName": "SweeperKit",
19 | "version": "0.1.13",
20 | "PBTGroupName": "TUNISweeperKit"
21 | },
22 | {
23 | "npmName": "BizKit",
24 | "version": "4.2.4",
25 | "PBTGroupName": "TUNIBizKit"
26 | },
27 | {
28 | "npmName": "IPCKit",
29 | "version": "2.0.8",
30 | "PBTGroupName": "TUNIIPCKit"
31 | },
32 | {
33 | "npmName": "CategoryCommonBizKit",
34 | "version": "1.0.5",
35 | "PBTGroupName": "TUNICategoryCommonBizKit"
36 | },
37 | {
38 | "npmName": "DeviceKit",
39 | "version": "4.1.14",
40 | "PBTGroupName": "TUNIDeviceKit"
41 | },
42 | {
43 | "npmName": "BaseKit",
44 | "version": "3.9.2",
45 | "PBTGroupName": "TUNIBaseKit"
46 | },
47 | {
48 | "npmName": "MediaKit",
49 | "version": "3.2.0",
50 | "PBTGroupName": "TUNIMediaKit"
51 | },
52 | {
53 | "npmName": "P2PKit",
54 | "version": "2.0.4",
55 | "PBTGroupName": "TUNIP2PKit"
56 | },
57 | {
58 | "npmName": "MapKit",
59 | "version": "3.3.1",
60 | "PBTGroupName": "TUNIMapKit"
61 | },
62 | {
63 | "npmName": "PlayNetKit",
64 | "version": "1.3.0-rc.22",
65 | "PBTGroupName": "TUNIPlayNetKit"
66 | },
67 | {
68 | "npmName": "WearKit",
69 | "version": "0.0.4",
70 | "PBTGroupName": "TUNIWearKit"
71 | },
72 | {
73 | "npmName": "AudioKit",
74 | "version": "1.0.0-rc.28",
75 | "PBTGroupName": "TUNIAudioKit"
76 | }
77 | ]
--------------------------------------------------------------------------------
/app/src/main/res/drawable-v24/ic_launcher_foreground.xml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
15 |
18 |
21 |
22 |
23 |
24 |
30 |
--------------------------------------------------------------------------------
/devicedetail/src/main/res/layout/demo_panel_rv_item_simple_dev.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
27 |
28 |
40 |
--------------------------------------------------------------------------------
/message/src/main/res/values/attrs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/speech/src/main/java/com/tuya/smart/bizbundle/demo/speech/SpeechDemoActivity.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.speech;
2 |
3 | import android.os.Bundle;
4 | import android.view.View;
5 | import android.widget.TextView;
6 |
7 | import androidx.annotation.Nullable;
8 | import androidx.appcompat.app.AppCompatActivity;
9 |
10 | import com.thingclips.smart.api.router.UrlRouter;
11 | import com.thingclips.smart.api.service.MicroServiceManager;
12 | import com.thingclips.smart.speech.api.AbsThingAssisantGuideService;
13 |
14 | /**
15 | * Dscription:
16 | *
17 | * @Autour: sunlulu
18 | * @Date 2022/1/6 2:15 下午
19 | */
20 | public class SpeechDemoActivity extends AppCompatActivity {
21 | @Override
22 | protected void onCreate(@Nullable Bundle savedInstanceState) {
23 | super.onCreate(savedInstanceState);
24 | setContentView(R.layout.activity_speech_demo);
25 | TextView tvIsSportSpeech = findViewById(R.id.tv_is_sport_speech);
26 |
27 | //是否支持语音
28 | AbsThingAssisantGuideService assistantGuideService = MicroServiceManager.getInstance().findServiceByInterface(AbsThingAssisantGuideService.class.getName());
29 | if (assistantGuideService != null) {
30 | boolean isSupportSpeech = assistantGuideService.isSupportAssisantSpeech();
31 | tvIsSportSpeech.setText("is sport speech: " + isSupportSpeech);
32 | }
33 |
34 | //跳转语音
35 | findViewById(R.id.bt_speech_demo).setOnClickListener(new View.OnClickListener() {
36 | @Override
37 | public void onClick(View view) {
38 | UrlRouter.execute(UrlRouter.makeBuilder(SpeechDemoActivity.this, "speech"));
39 | }
40 | });
41 | }
42 |
43 | @Override
44 | protected void onResume() {
45 | super.onResume();
46 |
47 | AbsThingAssisantGuideService assistantGuideService = MicroServiceManager.getInstance().findServiceByInterface(AbsThingAssisantGuideService.class.getName());
48 | if (assistantGuideService != null) {
49 | //弹出添加桌面小组件 弹窗
50 | assistantGuideService.checkAssisantGuideDialog(this);
51 | }
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/panel/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 33
5 |
6 | defaultConfig {
7 | minSdkVersion 23
8 | targetSdkVersion 33
9 | versionCode 1
10 | versionName "1.0"
11 |
12 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
13 | consumerProguardFiles "consumer-rules.pro"
14 | }
15 |
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
20 | }
21 | }
22 |
23 | }
24 |
25 | dependencies {
26 | implementation fileTree(dir: "libs", include: ["*.jar"])
27 |
28 | //必须依赖---start
29 | //homesdk 基础能力
30 | api "com.thingclips.smart:thingsmart:${sdk_version}"
31 |
32 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
33 |
34 | //设备控制业务包 RN容器
35 | api "com.thingclips.smart:thingsmart-bizbundle-panel"
36 | //基础扩展能力
37 | api("com.thingclips.smart:thingsmart-bizbundle-basekit") {
38 | exclude group: "com.thingclips.smart", module: "thingplugin-annotation"
39 | }
40 | //涂鸦业务扩展能力
41 | api "com.thingclips.smart:thingsmart-bizbundle-bizkit"
42 | //设备控制相关能力
43 | api "com.thingclips.smart:thingsmart-bizbundle-devicekit"
44 |
45 | //强烈建议引入---start
46 | //家庭相关依赖
47 | api "com.thingclips.smart:thingsmart-bizbundle-family"
48 | //地園扩展能力
49 | api "com.thingclips.smart:thingsmart-bizbundle-mapkit"
50 | //多媒体扩展能力
51 | api "com.thingclips.smart:thingsmart-bizbundle-mediakit"
52 |
53 | //按需依赖---start
54 | //IPC 面板相关依赖项
55 | api "com.thingclips.smart:thingsmart-bizbundle-camera_panel"
56 |
57 | // 高德地图
58 | implementation 'com.amap.api:search:7.9.0'
59 | implementation 'com.amap.api:3dmap:8.1.0'
60 | api 'com.thingclips.smart:thingsmart-react-native-amap:4.5.0-rc.1'
61 | // 谷歌地图
62 | api 'com.thingclips.smart:thingsmart-react-native-googlemap:4.5.0-rc.1'
63 | api 'com.google.android.gms:play-services-maps:18.0.0'
64 |
65 | // qq music (speaker products)
66 | // qq 音乐 (音箱产品)
67 | // api project(':qqmusic')
68 | api("com.tencent.yunxiaowei.dmsdk:core:2.3.0") {
69 | exclude group: 'com.squareup.okhttp3', module: 'okhttp'
70 | }
71 | api("com.tencent.yunxiaowei.webviewsdk:webviewsdk:2.3.0") {
72 | exclude group: 'com.squareup.okhttp3', module: 'okhttp'
73 | }
74 | }
--------------------------------------------------------------------------------
/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
32 |
33 |
40 |
41 |
--------------------------------------------------------------------------------
/gradlew.bat:
--------------------------------------------------------------------------------
1 | @if "%DEBUG%" == "" @echo off
2 | @rem ##########################################################################
3 | @rem
4 | @rem Gradle startup script for Windows
5 | @rem
6 | @rem ##########################################################################
7 |
8 | @rem Set local scope for the variables with windows NT shell
9 | if "%OS%"=="Windows_NT" setlocal
10 |
11 | set DIRNAME=%~dp0
12 | if "%DIRNAME%" == "" set DIRNAME=.
13 | set APP_BASE_NAME=%~n0
14 | set APP_HOME=%DIRNAME%
15 |
16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
17 | set DEFAULT_JVM_OPTS=
18 |
19 | @rem Find java.exe
20 | if defined JAVA_HOME goto findJavaFromJavaHome
21 |
22 | set JAVA_EXE=java.exe
23 | %JAVA_EXE% -version >NUL 2>&1
24 | if "%ERRORLEVEL%" == "0" goto init
25 |
26 | echo.
27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
28 | echo.
29 | echo Please set the JAVA_HOME variable in your environment to match the
30 | echo location of your Java installation.
31 |
32 | goto fail
33 |
34 | :findJavaFromJavaHome
35 | set JAVA_HOME=%JAVA_HOME:"=%
36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe
37 |
38 | if exist "%JAVA_EXE%" goto init
39 |
40 | echo.
41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
42 | echo.
43 | echo Please set the JAVA_HOME variable in your environment to match the
44 | echo location of your Java installation.
45 |
46 | goto fail
47 |
48 | :init
49 | @rem Get command-line arguments, handling Windows variants
50 |
51 | if not "%OS%" == "Windows_NT" goto win9xME_args
52 |
53 | :win9xME_args
54 | @rem Slurp the command line arguments.
55 | set CMD_LINE_ARGS=
56 | set _SKIP=2
57 |
58 | :win9xME_args_slurp
59 | if "x%~1" == "x" goto execute
60 |
61 | set CMD_LINE_ARGS=%*
62 |
63 | :execute
64 | @rem Setup the command line
65 |
66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
67 |
68 | @rem Execute Gradle
69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
70 |
71 | :end
72 | @rem End local scope for the variables with windows NT shell
73 | if "%ERRORLEVEL%"=="0" goto mainEnd
74 |
75 | :fail
76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
77 | rem the _cmd.exe /c_ return code!
78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
79 | exit /b 1
80 |
81 | :mainEnd
82 | if "%OS%"=="Windows_NT" endlocal
83 |
84 | :omega
85 |
--------------------------------------------------------------------------------
/app/src/main/res/values/compat-colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 87
6 |
7 |
8 |
9 |
10 |
11 | SmartLife|SL
12 | true
13 | true
14 | true
15 | false>
16 | false>
17 |
18 |
19 | false
20 |
21 |
22 |
23 |
24 | false
25 | false
26 | true
27 |
28 |
29 |
30 | @color/thing_theme_color_b2
31 | @color/thing_theme_color_b6_n1
32 | @color/thing_theme_color_b6_n2
33 | @color/thing_theme_color_m1_2
34 | @color/thing_theme_color_b6
35 | @color/thing_theme_color_b6_n7
36 | @color/thing_theme_color_b2_n5
37 | @color/thing_theme_color_m1_n1
38 | @color/thing_theme_color_b6_2_n1
39 | @color/thing_theme_color_b1
40 | @color/thing_theme_color_m1
41 | @color/thing_theme_color_m1
42 | @color/thing_theme_color_b2_n5
43 | #FFF8D8
44 | #FFFFFF
45 | #303030
46 | #FF5A28
47 | #1affffff
48 | #FF5A28
49 |
--------------------------------------------------------------------------------
/devicedetail/src/main/assets/deviceDetail.json:
--------------------------------------------------------------------------------
1 | [
2 | {
3 | "name": "headerSection",
4 | "items": [
5 | {
6 | "cellType": "header"
7 | },
8 | {
9 | "cellType": "device_info"
10 | },
11 | {
12 | "cellType": "net_setting"
13 | },
14 | {
15 | "cellType": "group_edit_devices"
16 | },
17 | {
18 | "cellType": "iot_card_recharge"
19 | },
20 | {
21 | "cellType": "scene_and_automation"
22 | },
23 | {
24 | "cellType": "device_evaluation"
25 | }
26 | ]
27 | },
28 | {
29 | "name": "recommendProductSection",
30 | "header": {
31 | "cellType": "recommend_product_empty"
32 | },
33 | "items": [
34 | {
35 | "cellType": "recommend_products"
36 | }
37 | ],
38 | "margin": {
39 | "top": 16
40 | }
41 | },
42 | {
43 | "name": "thirdPartyControlSection",
44 | "header": {
45 | "cellType": "section_third-party_control"
46 | },
47 | "items": [
48 | {
49 | "cellType": "third-party_control"
50 | }
51 | ]
52 | },
53 | {
54 | "name": "offLineWarnSection",
55 | "header": {
56 | "cellType": "section_off_line_warn"
57 | },
58 | "items": [
59 | {
60 | "cellType": "off_line_warn"
61 | }
62 | ]
63 | },
64 | {
65 | "name": "otherSection",
66 | "header": {
67 | "cellType": "section_other"
68 | },
69 | "items": [
70 | {
71 | "cellType": "bind_multi_control_link"
72 | },
73 | {
74 | "cellType": "group_create"
75 | },
76 | {
77 | "cellType": "help_and_feedback"
78 | },
79 | {
80 | "cellType": "add_icon_to_home_screen"
81 | },
82 | {
83 | "cellType": "show_infrared_gateway_sub_device"
84 | },
85 | {
86 | "cellType": "check_device_network"
87 | },
88 | {
89 | "cellType": "check_firmware_update"
90 | },
91 | {
92 | "cellType": "c_test_insert"
93 | },
94 | {
95 | "cellType": "c_test_async_insert"
96 | }
97 | ]
98 | },
99 | {
100 | "name": "footerSection",
101 | "header": {
102 | "cellType": "device_detail_empty"
103 | },
104 | "items": [
105 | {
106 | "cellType": "footer"
107 | }
108 | ],
109 | "margin": {
110 | "top": 16
111 | }
112 | }
113 | ]
--------------------------------------------------------------------------------
/miniapp/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 | apply plugin: 'kotlin-android'
3 |
4 | android {
5 | compileSdk 33
6 |
7 | defaultConfig {
8 | minSdkVersion 23
9 | targetSdkVersion 33
10 |
11 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
12 | consumerProguardFiles "consumer-rules.pro"
13 | }
14 |
15 | buildTypes {
16 | release {
17 | minifyEnabled false
18 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
19 | }
20 | }
21 | compileOptions {
22 | sourceCompatibility JavaVersion.VERSION_1_8
23 | targetCompatibility JavaVersion.VERSION_1_8
24 | }
25 | kotlinOptions {
26 | jvmTarget = '1.8'
27 | }
28 | }
29 |
30 |
31 | dependencies {
32 |
33 | implementation 'androidx.core:core-ktx:1.6.0'
34 | implementation 'androidx.appcompat:appcompat:1.2.0'
35 | implementation 'com.google.android.material:material:1.1.0'
36 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
37 | // 小程序业务包
38 | implementation "com.thingclips.smart:thingsmart-bizbundle-miniapp"
39 | // 扩展能力组件集合, 提供小程序扩展能力, 按需依赖声明
40 | // 基础扩展能力, 对标微信大部分API
41 | implementation ("com.thingclips.smart:thingsmart-bizbundle-basekit"){
42 | exclude group:"com.thingclips.smart",module:"thingplugin-annotation"
43 | }
44 | // 扫码实现flavor区分
45 | // chinaImplementation 'com.thingclips.smart:thingsmart-qrcode-scankit:4.8.0-rc.2'
46 | // internationalImplementation 'com.thingclips.smart:thingsmart-qrcode-mlkit:4.8.0-rc.1'
47 |
48 | // 家庭业务扩展能力
49 | implementation "com.thingclips.smart:thingsmart-bizbundle-homekit"
50 | // 涂鸦业务扩展能力
51 | implementation "com.thingclips.smart:thingsmart-bizbundle-bizkit"
52 | // chinaImplementation 'com.thingclips.smart:thingsmart-amaplocation:4.5.0-rc.1'
53 | // internationalImplementation 'com.thingclips.smart:thingsmart-googlelocation:4.5.0-rc.1'
54 | //
55 | // // 地图扩展能力
56 | // implementation "com.thingclips.smart:thingsmart-bizbundle-mapkit"
57 | // // 地图实现能力, flavor区分
58 | // chinaImplementation 'com.thingclips.smart:thingsmart-amap:4.7.0-rc.1'
59 | // chinaImplementation 'com.thingclips.smart:thingsmart-amaplocation:4.5.0-rc.1'
60 | // internationalImplementation 'com.thingclips.smart:thingsmart-googlemap:4.7.0-rc.1'
61 | // internationalImplementation 'com.thingclips.smart:thingsmart-googlelocation:4.5.0-rc.1'
62 | //
63 | // // 多媒体扩展能力
64 | // implementation "com.thingclips.smart:thingsmart-bizbundle-mediakit"
65 | }
--------------------------------------------------------------------------------
/location/src/main/res/layout/activity_location.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
17 |
18 |
25 |
26 |
33 |
34 |
40 |
41 |
48 |
49 |
55 |
56 |
63 |
64 |
70 |
71 |
72 |
--------------------------------------------------------------------------------
/alexa_google_bind/src/main/java/com/tuya/smart/bizbundle/demo/socialbind/BindAdapter.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo.socialbind;
2 |
3 | import android.text.TextUtils;
4 | import android.view.LayoutInflater;
5 | import android.view.View;
6 | import android.view.View.OnClickListener;
7 | import android.view.ViewGroup;
8 | import android.widget.TextView;
9 |
10 | import androidx.annotation.NonNull;
11 | import androidx.recyclerview.widget.RecyclerView.Adapter;
12 |
13 | import com.thingclips.smart.social.auth.manager.api.AuthorityBean;
14 |
15 | import java.util.List;
16 |
17 | public class BindAdapter extends Adapter {
18 | private List mData;
19 | private OnItemClickListener mOnItemClickListener;
20 |
21 | public BindAdapter() {
22 | }
23 |
24 | @NonNull
25 | public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
26 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_bind_list, parent, false);
27 | return new ViewHolder(view);
28 | }
29 |
30 | @Override
31 | public void onBindViewHolder(@NonNull final ViewHolder viewHolder, int position) {
32 | final AuthorityBean bean = (AuthorityBean) this.mData.get(position);
33 | if (bean != null) {
34 | if (!TextUtils.isEmpty(bean.getPlatformName())) {
35 | viewHolder.title.setText(bean.getPlatformName());
36 | }
37 |
38 |
39 | viewHolder.itemView.setOnClickListener(new OnClickListener() {
40 | public void onClick(View v) {
41 | if (mOnItemClickListener != null) {
42 | mOnItemClickListener.onItemClick(bean, viewHolder.getAdapterPosition());
43 | }
44 | }
45 | });
46 | }
47 | }
48 |
49 | public int getItemCount() {
50 | return this.mData != null && !this.mData.isEmpty() ? this.mData.size() : 0;
51 | }
52 |
53 | public void setOnItemClickListener(OnItemClickListener l) {
54 | this.mOnItemClickListener = l;
55 | }
56 |
57 | public void setData(List beans) {
58 | this.mData = beans;
59 | this.notifyDataSetChanged();
60 | }
61 |
62 | public interface OnItemClickListener {
63 | void onItemClick(AuthorityBean var1, int var2);
64 | }
65 |
66 | static class ViewHolder extends androidx.recyclerview.widget.RecyclerView.ViewHolder {
67 | TextView title;
68 |
69 | public ViewHolder(View itemView) {
70 | super(itemView);
71 | this.title = (TextView) itemView.findViewById(R.id.tv_bind_title);
72 | }
73 | }
74 | }
75 |
--------------------------------------------------------------------------------
/scene/src/main/res/layout/activity_scene.xml:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
16 |
17 |
25 |
26 |
34 |
35 |
43 |
44 |
48 |
49 |
57 |
58 |
66 |
67 |
--------------------------------------------------------------------------------
/feedback/src/main/java/com/tuya/smart/bizbundle/demo/FeedBackActivity.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizbundle.demo;
2 |
3 | import android.os.Bundle;
4 | import android.view.View;
5 | import android.widget.Button;
6 |
7 | import androidx.annotation.Nullable;
8 | import androidx.appcompat.app.AppCompatActivity;
9 |
10 | import com.thingclips.smart.android.user.api.IQurryDomainCallback;
11 | import com.thingclips.smart.api.MicroContext;
12 | import com.thingclips.smart.api.router.UrlRouter;
13 | import com.tuya.smart.bizbundle.feedback.demo.R;
14 | import com.thingclips.smart.feedback.api.FeedbackService;
15 | import com.thingclips.smart.home.sdk.ThingHomeSdk;
16 |
17 | public class FeedBackActivity extends AppCompatActivity implements View.OnClickListener{
18 |
19 | @Override
20 | protected void onCreate(@Nullable Bundle savedInstanceState) {
21 | super.onCreate(savedInstanceState);
22 | setContentView(R.layout.activity_feedback);
23 | initView();
24 | }
25 |
26 | private void initView() {
27 | Button mFeedbackServiceBtn = findViewById(R.id.btn_feedback_service);
28 | Button mFeedbackRouteBtn = findViewById(R.id.btn_feedback_route);
29 | mFeedbackServiceBtn.setOnClickListener(this);
30 | mFeedbackRouteBtn.setOnClickListener(this);
31 | }
32 |
33 | @Override
34 | public void onClick(View v) {
35 | if (v.getId() == R.id.btn_feedback_service) {
36 | ThingHomeSdk.getUserInstance().queryDomainByBizCodeAndKey("help_center", "main_page", new IQurryDomainCallback() {
37 | @Override
38 | public void onSuccess(String domain) {
39 | FeedbackService feedbackService = MicroContext.findServiceByInterface(FeedbackService.class.getName());
40 | if (feedbackService != null) {
41 | feedbackService.jumpToWebHelpPage(FeedBackActivity.this);
42 | }
43 | }
44 |
45 | @Override
46 | public void onError(String code, String error) {
47 | return;
48 | }
49 | });
50 |
51 | } else if (v.getId() == R.id.btn_feedback_route) {
52 | ThingHomeSdk.getUserInstance().queryDomainByBizCodeAndKey("help_center", "main_page", new IQurryDomainCallback() {
53 | @Override
54 | public void onSuccess(String domain) {
55 | UrlRouter.execute(UrlRouter.makeBuilder(FeedBackActivity.this, "helpCenter"));
56 | }
57 |
58 | @Override
59 | public void onError(String code, String error) {
60 | return;
61 | }
62 | });
63 | }
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/ipc/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.library'
2 |
3 | android {
4 | compileSdk 33
5 | buildToolsVersion "30.0.3"
6 |
7 | defaultConfig {
8 | minSdkVersion 23
9 | targetSdkVersion 33
10 | versionCode 1
11 | versionName "1.0"
12 |
13 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
14 | consumerProguardFiles "consumer-rules.pro"
15 | }
16 |
17 | buildTypes {
18 | release {
19 | minifyEnabled false
20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
21 | }
22 | }
23 |
24 | }
25 |
26 | dependencies {
27 | implementation fileTree(dir: "libs", include: ["*.jar"])
28 |
29 | api "com.thingclips.smart:thingsmart:${sdk_version}"
30 |
31 | api enforcedPlatform("com.thingclips.smart:thingsmart-BizBundlesBom:${biz_bom_version}")
32 | api "com.thingclips.smart:thingsmart-bizbundle-camera"
33 |
34 | // 使用RN 面板需要先集成设备控制业务包
35 |
36 | //设备控制业务包 RN容器
37 | api "com.thingclips.smart:thingsmart-bizbundle-panel"
38 | //基础扩展能力
39 | api("com.thingclips.smart:thingsmart-bizbundle-basekit") {
40 | exclude group: "com.thingclips.smart", module: "thingplugin-annotation"
41 | }
42 | //涂鸦业务扩展能力
43 | api "com.thingclips.smart:thingsmart-bizbundle-bizkit"
44 | //设备控制相关能力
45 | api "com.thingclips.smart:thingsmart-bizbundle-devicekit"
46 |
47 | //强烈建议引入---start
48 | //家庭相关依赖
49 | api "com.thingclips.smart:thingsmart-bizbundle-family"
50 | //地園扩展能力
51 | api "com.thingclips.smart:thingsmart-bizbundle-mapkit"
52 | //多媒体扩展能力
53 | api "com.thingclips.smart:thingsmart-bizbundle-mediakit"
54 |
55 | //按需依赖---start
56 | //IPC 面板相关依赖项
57 | api "com.thingclips.smart:thingsmart-bizbundle-camera_panel"
58 |
59 | // 高德地图
60 | implementation 'com.amap.api:search:7.9.0'
61 | implementation 'com.amap.api:3dmap:8.1.0'
62 | api 'com.thingclips.smart:thingsmart-react-native-amap:4.5.0-rc.1'
63 | // 谷歌地图
64 | api 'com.thingclips.smart:thingsmart-react-native-googlemap:4.5.0-rc.1'
65 | api 'com.google.android.gms:play-services-maps:18.0.0'
66 |
67 | // qq music (speaker products)
68 | // qq 音乐 (音箱产品)
69 | // api project(':qqmusic')
70 | api("com.tencent.yunxiaowei.dmsdk:core:2.3.0") {
71 | exclude group: 'com.squareup.okhttp3', module: 'okhttp'
72 | }
73 | api("com.tencent.yunxiaowei.webviewsdk:webviewsdk:2.3.0") {
74 | exclude group: 'com.squareup.okhttp3', module: 'okhttp'
75 | }
76 |
77 | testImplementation 'junit:junit:4.12'
78 | androidTestImplementation 'androidx.test.ext:junit:1.1.1'
79 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
80 |
81 | }
--------------------------------------------------------------------------------
/ipc/src/main/java/com/tuya/smart/bizubundle/ipc/demo/HomeAdapter.java:
--------------------------------------------------------------------------------
1 | package com.tuya.smart.bizubundle.ipc.demo;
2 |
3 | import android.net.Uri;
4 | import android.text.TextUtils;
5 | import android.view.LayoutInflater;
6 | import android.view.View;
7 | import android.view.ViewGroup;
8 | import android.widget.TextView;
9 |
10 | import androidx.annotation.NonNull;
11 | import androidx.recyclerview.widget.RecyclerView;
12 |
13 | import com.facebook.drawee.view.SimpleDraweeView;
14 |
15 | import java.util.List;
16 |
17 |
18 | public class HomeAdapter extends RecyclerView.Adapter {
19 | private List mData;
20 |
21 | private OnItemClickListener mOnItemClickListener;
22 |
23 | public HomeAdapter() {
24 | }
25 |
26 | @NonNull
27 | @Override
28 | public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
29 | View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.list_home_item, parent, false);
30 | return new ViewHolder(view);
31 | }
32 |
33 | @Override
34 | public void onBindViewHolder(@NonNull final ViewHolder viewHolder, int position) {
35 | final ItemBean bean = mData.get(position);
36 | if (bean == null) {
37 | return;
38 | }
39 | if (!TextUtils.isEmpty(bean.getIconUrl())) {
40 | Uri uri = Uri.parse(bean.getIconUrl());
41 | viewHolder.icon.setImageURI(uri);
42 | }
43 | viewHolder.title.setText(bean.getTitle());
44 |
45 | viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
46 | @Override
47 | public void onClick(View v) {
48 | if (mOnItemClickListener != null) {
49 | mOnItemClickListener.onItemClick(bean, viewHolder.getAdapterPosition());
50 | }
51 | }
52 | });
53 | }
54 |
55 | @Override
56 | public int getItemCount() {
57 | return mData != null && !mData.isEmpty() ? mData.size() : 0;
58 | }
59 |
60 | public void setOnItemClickListener(OnItemClickListener l) {
61 | this.mOnItemClickListener = l;
62 | }
63 |
64 | public void setData(List beans) {
65 | mData = beans;
66 | notifyDataSetChanged();
67 | }
68 |
69 | static class ViewHolder extends RecyclerView.ViewHolder {
70 | SimpleDraweeView icon;
71 | TextView title;
72 |
73 | public ViewHolder(View itemView) {
74 | super(itemView);
75 | icon = itemView.findViewById(R.id.home_item_icon);
76 | title = itemView.findViewById(R.id.home_item_title);
77 | }
78 | }
79 |
80 | public interface OnItemClickListener {
81 | void onItemClick(ItemBean bean, int position);
82 | }
83 | }
84 |
--------------------------------------------------------------------------------