Skip to content

Commit 096c132

Browse files
sevenhhearchurcode
authored andcommitted
扫描网关设备,子设备未自动绑定
Change-Id: Ib3e1adb3972420cc18ae9a06ef5632acce9680aa
1 parent 6e9a5a2 commit 096c132

File tree

11 files changed

+192
-69
lines changed

11 files changed

+192
-69
lines changed

app/src/main/java/com/tencent/iot/explorer/link/kitlink/activity/DeviceCategoryActivity.kt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ import com.tencent.iot.explorer.link.core.link.entity.TrtcDeviceInfo
4040
import com.tencent.iot.explorer.link.customview.recyclerview.CRecyclerView
4141
import com.tencent.iot.explorer.link.kitlink.consts.CommonField
4242
import com.tencent.iot.explorer.link.kitlink.consts.LoadViewTxtType
43+
import com.tencent.iot.explorer.link.kitlink.entity.BindDevResponse
44+
import com.tencent.iot.explorer.link.kitlink.entity.GatewaySubDevsResp
4345
import com.tencent.iot.explorer.link.kitlink.entity.ProdConfigDetailEntity
4446
import com.tencent.iot.explorer.link.kitlink.entity.ProductGlobal
4547
import com.tencent.iot.explorer.link.kitlink.response.ProductsConfigResponse
@@ -158,13 +160,56 @@ class DeviceCategoryActivity : PActivity(), MyCallback, CRecyclerView.RecyclerI
158160
T.show(getString(R.string.add_sucess)) //添加成功
159161
App.data.setRefreshLevel(2)
160162
finish()
163+
164+
var resData = JSON.parseObject(response.data.toString(), BindDevResponse::class.java)
165+
bindSubDev(resData)
166+
} else {
167+
T.show(response.msg)
168+
}
169+
}
170+
171+
RequestCode.bind_gateway_sub_device -> {
172+
if (response.isSuccess()) {
173+
App.data.refresh = true
174+
App.data.setRefreshLevel(2)
175+
com.tencent.iot.explorer.link.kitlink.util.Utils.sendRefreshBroadcast(this@DeviceCategoryActivity)
161176
} else {
162177
T.show(response.msg)
163178
}
164179
}
165180
}
166181
}
167182

183+
private fun bindSubDev(gatwayDev: BindDevResponse) {
184+
if (gatwayDev != null && gatwayDev.Data != null && gatwayDev.Data!!.AppDeviceInfo != null) {
185+
var dev = gatwayDev.Data!!.AppDeviceInfo
186+
if (dev == null) return
187+
188+
if (dev.DeviceType == "1") {
189+
HttpRequest.instance.gatwaySubDevList(dev.ProductId, dev.DeviceName, object: MyCallback{
190+
override fun fail(msg: String?, reqCode: Int) {
191+
T.show(msg?:"")
192+
}
193+
194+
override fun success(response: BaseResponse, reqCode: Int) {
195+
if (response.isSuccess()) {
196+
var gatewaySubDevsResp = JSON.parseObject(response.data.toString(), GatewaySubDevsResp::class.java)
197+
if (gatewaySubDevsResp != null && gatewaySubDevsResp.DeviceList != null && gatewaySubDevsResp.DeviceList.size > 0) {
198+
for (subDev in gatewaySubDevsResp.DeviceList) {
199+
if (subDev.BindStatus == 0) {
200+
HttpRequest.instance.bindGatwaySubDev(dev.ProductId, dev.DeviceName, subDev.ProductId, subDev.DeviceName, this@DeviceCategoryActivity)
201+
}
202+
}
203+
}
204+
} else {
205+
T.show(response.msg)
206+
}
207+
}
208+
})
209+
}
210+
}
211+
}
212+
168213
override fun doAction(
169214
viewHolder: CRecyclerView.CViewHolder<*>,
170215
clickView: View,

app/src/main/java/com/tencent/iot/explorer/link/kitlink/activity/MainActivity.kt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,12 @@ import com.tencent.iot.explorer.link.kitlink.popup.FamilyListPopup
4444
import com.tencent.iot.explorer.link.kitlink.util.DateUtils
4545
import com.tencent.iot.explorer.link.kitlink.util.HttpRequest
4646
import com.tencent.iot.explorer.link.core.auth.callback.MyCallback
47+
import com.tencent.iot.explorer.link.core.auth.entity.DeviceEntity
4748
import com.tencent.iot.explorer.link.core.auth.util.JsonManager
4849
import com.tencent.iot.explorer.link.core.link.entity.DeviceInfo
4950
import com.tencent.iot.explorer.link.core.link.entity.TrtcDeviceInfo
51+
import com.tencent.iot.explorer.link.kitlink.entity.BindDevResponse
52+
import com.tencent.iot.explorer.link.kitlink.entity.GatewaySubDevsResp
5053
import com.tencent.iot.explorer.link.kitlink.entity.ProdConfigDetailEntity
5154
import com.tencent.iot.explorer.link.kitlink.entity.ProductGlobal
5255
import com.tencent.iot.explorer.link.kitlink.response.ProductsConfigResponse
@@ -359,10 +362,53 @@ class MainActivity : PActivity(), MyCallback {
359362
App.data.refresh = true
360363
App.data.setRefreshLevel(2)
361364
com.tencent.iot.explorer.link.kitlink.util.Utils.sendRefreshBroadcast(this@MainActivity)
365+
366+
var resData = JSON.parseObject(response.data.toString(), BindDevResponse::class.java)
367+
bindSubDev(resData)
362368
} else {
363369
T.show(response.msg)
364370
}
365371
}
372+
373+
RequestCode.bind_gateway_sub_device -> {
374+
if (response.isSuccess()) {
375+
App.data.refresh = true
376+
App.data.setRefreshLevel(2)
377+
com.tencent.iot.explorer.link.kitlink.util.Utils.sendRefreshBroadcast(this@MainActivity)
378+
} else {
379+
T.show(response.msg)
380+
}
381+
}
382+
}
383+
}
384+
385+
private fun bindSubDev(gatwayDev: BindDevResponse) {
386+
if (gatwayDev != null && gatwayDev.Data != null && gatwayDev.Data!!.AppDeviceInfo != null) {
387+
var dev = gatwayDev.Data!!.AppDeviceInfo
388+
if (dev == null) return
389+
390+
if (dev.DeviceType == "1") {
391+
HttpRequest.instance.gatwaySubDevList(dev.ProductId, dev.DeviceName, object: MyCallback{
392+
override fun fail(msg: String?, reqCode: Int) {
393+
T.show(msg?:"")
394+
}
395+
396+
override fun success(response: BaseResponse, reqCode: Int) {
397+
if (response.isSuccess()) {
398+
var gatewaySubDevsResp = JSON.parseObject(response.data.toString(), GatewaySubDevsResp::class.java)
399+
if (gatewaySubDevsResp != null && gatewaySubDevsResp.DeviceList != null && gatewaySubDevsResp.DeviceList.size > 0) {
400+
for (subDev in gatewaySubDevsResp.DeviceList) {
401+
if (subDev.BindStatus == 0) {
402+
HttpRequest.instance.bindGatwaySubDev(dev.ProductId, dev.DeviceName, subDev.ProductId, subDev.DeviceName, this@MainActivity)
403+
}
404+
}
405+
}
406+
} else {
407+
T.show(response.msg)
408+
}
409+
}
410+
})
411+
}
366412
}
367413
}
368414

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.tencent.iot.explorer.link.kitlink.entity
2+
3+
class BindDevResponse {
4+
var RequestId = ""
5+
var Data: DeviceInfo? = null
6+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.tencent.iot.explorer.link.kitlink.entity
2+
3+
import com.tencent.iot.explorer.link.core.auth.entity.DeviceEntity
4+
5+
class DeviceInfo {
6+
var AppDeviceInfo: DeviceEntity? = null
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.tencent.iot.explorer.link.kitlink.entity
2+
3+
class GatewaySubDevsResp {
4+
var RequestId = ""
5+
var Total = 0
6+
var DeviceList = arrayListOf<SubDevice>()
7+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.tencent.iot.explorer.link.kitlink.entity
2+
3+
class SubDevice {
4+
var ProductId = ""
5+
var DeviceName = ""
6+
var DeviceId = ""
7+
var AliasName = ""
8+
var IconUrl = ""
9+
var IconUrlGrid = ""
10+
var BindStatus = 0
11+
}

app/src/main/java/com/tencent/iot/explorer/link/kitlink/fragment/HomeFragment.kt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -207,7 +207,6 @@ class HomeFragment : BaseFragment(), HomeFragmentView, MyCallback, PayloadMessag
207207
presenter.model!!.run {
208208
showFamily()
209209
showRoomList()
210-
showDeviceList(App.data.deviceList.size, roomId, deviceListEnd, shareDeviceListEnd)
211210
loadCurrentWeather()
212211
}
213212
}
@@ -552,11 +551,13 @@ class HomeFragment : BaseFragment(), HomeFragmentView, MyCallback, PayloadMessag
552551

553552
// 显示设备列表
554553
override fun showDeviceList(deviceSize: Int, roomId: String, deviceListEnd: Boolean, shareDeviceListEnd: Boolean) {
555-
devList.clear()
556-
shareDevList.clear()
557-
if (deviceSize > 0) {
554+
if (deviceListEnd) {
555+
devList.clear()
558556
devList.addAll(presenter.getIModel(this).deviceList)
559-
devList.removeAll(presenter.getIModel(this).shareDeviceList)
557+
}
558+
559+
if (shareDeviceListEnd) {
560+
shareDevList.clear()
560561
shareDevList.addAll(presenter.getIModel(this).shareDeviceList)
561562
}
562563

@@ -586,13 +587,16 @@ class HomeFragment : BaseFragment(), HomeFragmentView, MyCallback, PayloadMessag
586587

587588
override fun showDeviceOnline() {
588589
for (i in 0 until devList.size) {
590+
if (i >= presenter.getIModel(this).deviceList.size) {
591+
continue
592+
}
589593
devList.get(i).online = presenter.getIModel(this).deviceList.get(i).online
590594
}
591595
for (i in 0 until shareDevList.size) {
592-
if (i + devList.size >= presenter.getIModel(this).deviceList.size) {
596+
if (i >= presenter.getIModel(this).shareDeviceList.size) {
593597
continue
594598
}
595-
shareDevList.get(i).online = presenter.getIModel(this).deviceList.get(i + devList.size).online
599+
shareDevList.get(i).online = presenter.getIModel(this).shareDeviceList.get(i).online
596600
}
597601
roomDevAdapter?.notifyDataSetChanged()
598602
roomShareDevAdapter?.notifyDataSetChanged()

app/src/main/java/com/tencent/iot/explorer/link/kitlink/util/HttpRequest.kt

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -897,7 +897,7 @@ class HttpRequest private constructor() {
897897
param["FamilyId"] = familyId
898898
param["RoomId"] = roomId
899899
param["Offset"] = offset
900-
param["Limit"] = 20
900+
param["Limit"] = 999
901901
tokenPost(param, callback, RequestCode.device_list)
902902
}
903903

@@ -1099,6 +1099,32 @@ class HttpRequest private constructor() {
10991099
tokenPost(param, callback, RequestCode.check_device_bind_token_state)
11001100
}
11011101

1102+
fun gatwaySubDevList(productId: String, davName: String, callback: MyCallback) {
1103+
val param = baseParams()
1104+
param["RequestId"] = UUID.randomUUID().toString()
1105+
param["Action"] = "AppGetGatewayBindDeviceList"
1106+
param["AccessToken"] = App.data.getToken()
1107+
param["RegionId"] = App.data.regionId
1108+
param["Limit"] = 100
1109+
param["Offset"] = 0
1110+
param["GatewayDeviceName"] = davName
1111+
param["GatewayProductId"] = productId
1112+
tokenPost(param, callback, RequestCode.gateway_sub_device_list)
1113+
}
1114+
1115+
fun bindGatwaySubDev(productId: String, davName: String, subProductId: String, subDevName: String, callback: MyCallback) {
1116+
val param = baseParams()
1117+
param["RequestId"] = UUID.randomUUID().toString()
1118+
param["Action"] = "AppBindSubDeviceInFamily"
1119+
param["AccessToken"] = App.data.getToken()
1120+
param["RegionId"] = App.data.regionId
1121+
param["GatewayDeviceName"] = davName
1122+
param["GatewayProductId"] = productId
1123+
param["ProductId"] = subProductId
1124+
param["DeviceName"] = subDevName
1125+
tokenPost(param, callback, RequestCode.bind_gateway_sub_device)
1126+
}
1127+
11021128
/**
11031129
* 手机请求加入房间
11041130
*/
@@ -1227,7 +1253,7 @@ class HttpRequest private constructor() {
12271253
fun shareDeviceList(offset: Int, callback: MyCallback) {
12281254
val param = tokenParams("AppListUserShareDevices")
12291255
param["Offset"] = offset
1230-
param["Limit"] = 50
1256+
param["Limit"] = 999
12311257
tokenPost(param, callback, RequestCode.share_device_list)
12321258
}
12331259

app/src/main/java/com/tencent/iot/explorer/link/kitlink/util/RequestCode.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ object RequestCode {
8282
const val sig_bind_device = 3014
8383
const val trtc_call_device = 3015
8484
const val device_product_info = 3016
85+
const val gateway_sub_device_list = 3017
86+
const val bind_gateway_sub_device = 3018
8587

8688
/*************设备接口结束**************/
8789

0 commit comments

Comments
 (0)