Skip to content

Commit 39d6d07

Browse files
sevenhheSundoggyNew
authored andcommitted
开发llsync标准蓝牙辅助配网协议对应的页面
http://tapd.oa.com/NEW_IOT/prong/stories/view/1020393192863935819# Change-Id: I70291632f18845c9ebf99fb05e55fcac55357b32
1 parent 958369f commit 39d6d07

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1213
-226
lines changed

app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@
114114
<activity android:name=".kitlink.activity.TimeZoneActivity" />
115115
<activity android:name=".kitlink.activity.RegionActivity" />
116116
<activity android:name=".kitlink.activity.WebActivity" />
117+
<activity android:name=".kitlink.activity.BleConfigHardwareActivity" />
117118
<activity android:name=".kitlink.activity.DeviceDetailsActivity" />
118119
<activity android:name=".kitlink.activity.ControlPanelActivity" />
119120
<activity android:name=".kitlink.activity.AboutUsActivity" />

app/src/main/java/com/tencent/iot/explorer/link/App.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import com.tencent.iot.explorer.link.core.auth.socket.callback.ConnectionCallbac
2121
import com.tencent.iot.explorer.link.core.auth.socket.callback.PayloadMessageCallback
2222
import com.tencent.iot.explorer.link.core.auth.util.Weak
2323
import com.tencent.iot.explorer.link.core.link.entity.TRTCParamsEntity
24+
import com.tencent.iot.explorer.link.core.link.service.BleConfigService
2425
import com.tencent.iot.explorer.link.core.log.L
2526
import com.tencent.iot.explorer.link.core.utils.SharePreferenceUtil
2627
import com.tencent.iot.explorer.link.core.utils.Utils
@@ -148,6 +149,7 @@ class App : Application(), Application.ActivityLifecycleCallbacks, PayloadMessag
148149
var lang = Utils.getLang()
149150
lang = lang.substring(0,2)
150151
WeatherUtils.defaultLang = lang
152+
BleConfigService.get().context = this
151153
}
152154

153155
/**

app/src/main/java/com/tencent/iot/explorer/link/AppData.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import com.tencent.iot.explorer.link.core.auth.entity.FamilyEntity
88
import com.tencent.iot.explorer.link.core.auth.entity.RoomEntity
99
import com.tencent.iot.explorer.link.core.auth.entity.User
1010
import com.tencent.iot.explorer.link.core.auth.message.upload.ArrayString
11+
import com.tencent.iot.explorer.link.core.link.entity.BleDevice
1112
import com.tencent.iot.explorer.link.core.log.L
1213
import com.tencent.iot.explorer.link.kitlink.activity.BaseActivity
1314
import com.tencent.iot.explorer.link.kitlink.consts.CommonField
@@ -39,6 +40,7 @@ class AppData private constructor() {
3940
var userSetting = UserSetting()
4041
var regionId = "1"
4142
var conutryCode = "1" // 当前的登录的国家码
43+
var bleDevice: BleDevice? = null // 用于标记将要被索引的蓝牙设备
4244
var region = "ap-guangzhou"
4345
var appLifeCircleId = "0"
4446
var notificationId = 0

app/src/main/java/com/tencent/iot/explorer/link/customview/dialog/TipDialog.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,23 @@
11
package com.tencent.iot.explorer.link.customview.dialog;
22

33
import android.content.Context;
4+
import android.view.Gravity;
45
import android.view.View;
56
import android.widget.TextView;
67

78
import com.tencent.iot.explorer.link.R;
9+
import com.tencent.iot.explorer.link.customview.dialog.entity.TipInfo;
810

911
public class TipDialog extends IosCenterStyleDialog implements View.OnClickListener {
10-
TextView okBtn;
12+
private TextView okBtn;
13+
private TextView title;
14+
private TextView content;
15+
private TipInfo tipInfo = null;
16+
17+
public TipDialog(Context context, TipInfo tipInfo) {
18+
super(context, R.layout.popup_tip_layout);
19+
this.tipInfo = tipInfo;
20+
}
1121

1222
public TipDialog(Context context) {
1323
super(context, R.layout.popup_tip_layout);
@@ -16,7 +26,15 @@ public TipDialog(Context context) {
1626
@Override
1727
public void initView() {
1828
okBtn = view.findViewById(R.id.tv_confirm);
29+
title = view.findViewById(R.id.tv_smart_not_work);
30+
content = view.findViewById(R.id.tv_reason);
1931
okBtn.setOnClickListener(this);
32+
if (tipInfo != null) {
33+
okBtn.setText(tipInfo.getBtn());
34+
title.setText(tipInfo.getTitle());
35+
content.setText(tipInfo.getContent());
36+
content.setGravity(Gravity.LEFT);
37+
}
2038
}
2139

2240
@Override
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.customview.dialog.entity
2+
3+
class TipInfo {
4+
var title = ""
5+
var content = ""
6+
var btn = ""
7+
}
Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
package com.tencent.iot.explorer.link.kitlink.activity
2+
3+
import android.app.Activity
4+
import android.content.Context
5+
import android.content.Intent
6+
import android.text.TextUtils
7+
import android.view.View
8+
import com.squareup.picasso.Picasso
9+
import com.tencent.iot.explorer.link.App
10+
import com.tencent.iot.explorer.link.R
11+
import com.tencent.iot.explorer.link.T
12+
import com.tencent.iot.explorer.link.core.auth.callback.MyCallback
13+
import com.tencent.iot.explorer.link.core.auth.response.BaseResponse
14+
import com.tencent.iot.explorer.link.core.auth.util.JsonManager
15+
import com.tencent.iot.explorer.link.core.link.entity.BleDevice
16+
import com.tencent.iot.explorer.link.customview.dialog.TipDialog
17+
import com.tencent.iot.explorer.link.customview.dialog.entity.TipInfo
18+
import com.tencent.iot.explorer.link.customview.progress.bean.StepBean
19+
import com.tencent.iot.explorer.link.kitlink.consts.CommonField
20+
import com.tencent.iot.explorer.link.kitlink.entity.ConfigType
21+
import com.tencent.iot.explorer.link.kitlink.entity.ProdConfigDetailEntity
22+
import com.tencent.iot.explorer.link.kitlink.response.ProductsConfigResponse
23+
import com.tencent.iot.explorer.link.kitlink.util.HttpRequest
24+
import com.tencent.iot.explorer.link.mvp.IPresenter
25+
import kotlinx.android.synthetic.main.activity_ble_config_hardware.*
26+
import java.util.*
27+
28+
class BleConfigHardwareActivity : PActivity() {
29+
30+
companion object {
31+
fun startWithProductid(context: Context, productId: String) {
32+
if (TextUtils.isEmpty(productId)) {
33+
T.show(context.getString(R.string.no_product_info))
34+
return
35+
}
36+
var intent = Intent(context, BleConfigHardwareActivity::class.java)
37+
intent.putExtra(CommonField.PRODUCT_ID, productId)
38+
var dev = BleDevice()
39+
dev.productId = productId
40+
dev.indexWithDevname = false
41+
App.data.bleDevice = dev
42+
context.startActivity(intent)
43+
}
44+
}
45+
46+
private var productId = ""
47+
private var tipInfo = TipInfo()
48+
49+
override fun getContentView(): Int {
50+
return R.layout.activity_ble_config_hardware
51+
}
52+
53+
private fun initStepView() {
54+
val stepsBeanList = ArrayList<StepBean>()
55+
stepsBeanList.add(StepBean(getString(R.string.config_hardware)))
56+
stepsBeanList.add(StepBean(getString(R.string.set_target_wifi)))
57+
stepsBeanList.add(StepBean(getString(R.string.start_config_network)))
58+
ble_step_progress.currentStep = 1
59+
ble_step_progress.setStepViewTexts(stepsBeanList)
60+
ble_step_progress.setTextSize(12)
61+
}
62+
63+
override fun initView() {
64+
tipInfo.btn = getString(R.string.have_known)
65+
tipInfo.title = getString(R.string.reset_ble_dev_way)
66+
tipInfo.content = getString(R.string.reset_ble_dev_content)
67+
sv_content.visibility = View.GONE
68+
initStepView()
69+
if (intent.hasExtra(CommonField.PRODUCT_ID)) {
70+
productId = intent.getStringExtra(CommonField.PRODUCT_ID)
71+
}
72+
73+
if (!TextUtils.isEmpty(productId)) { // 尝试网络加载
74+
loadViewInfo(productId)
75+
} else { // 本地加载
76+
sv_content.visibility = View.VISIBLE
77+
}
78+
}
79+
80+
override fun setListener() {
81+
tv_ble_cancel.setOnClickListener { finish() }
82+
tv_ble_next.setOnClickListener {
83+
val intent = Intent(this, WifiActivity::class.java)
84+
intent.putExtra(CommonField.PRODUCT_ID, productId)
85+
intent.putExtra(CommonField.CONFIG_TYPE, ConfigType.BleConfig.id)
86+
startActivity(intent)
87+
}
88+
tv_more_guide.setOnClickListener {
89+
var dlg = TipDialog(this@BleConfigHardwareActivity, tipInfo)
90+
dlg.show()
91+
}
92+
}
93+
94+
override fun getPresenter(): IPresenter? {
95+
return null
96+
}
97+
98+
private fun loadViewInfo(productId: String?) {
99+
productId?:let { return }
100+
101+
var productsList = arrayListOf<String>()
102+
productsList.add(productId)
103+
HttpRequest.instance.getProductsConfig(productsList, productListener)
104+
}
105+
106+
private var productListener = object :MyCallback{
107+
override fun fail(msg: String?, reqCode: Int) {
108+
sv_content.visibility = View.VISIBLE
109+
}
110+
111+
override fun success(response: BaseResponse, reqCode: Int) {
112+
sv_content.visibility = View.VISIBLE
113+
if (!response.isSuccess()) return
114+
115+
response.parse(ProductsConfigResponse::class.java)?.run {
116+
var config = JsonManager.parseJson(Data[0].Config, ProdConfigDetailEntity::class.java)
117+
config?.let {
118+
it.wifiLLSyncBle?.hardwareGuide?.let { content ->
119+
if (!TextUtils.isEmpty(content.bgImg)) {
120+
Picasso.get().load(content.bgImg).into(iv_soft_ap)
121+
}
122+
123+
if (!TextUtils.isEmpty(content.guide)) {
124+
tv_ble_content.text = content.guide
125+
}
126+
127+
if (!TextUtils.isEmpty(content.btnText)) {
128+
tv_ble_next.text = content.btnText
129+
}
130+
131+
if (!TextUtils.isEmpty(content.message)) {
132+
tipInfo.content = content.message
133+
}
134+
}
135+
}
136+
}
137+
}
138+
}
139+
}

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

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,42 @@ import android.content.Intent
44
import android.view.View
55
import com.tencent.iot.explorer.link.R
66
import com.tencent.iot.explorer.link.kitlink.consts.CommonField
7-
import com.tencent.iot.explorer.link.kitlink.fragment.DeviceFragment
7+
import com.tencent.iot.explorer.link.kitlink.entity.ConfigType
88
import kotlinx.android.synthetic.main.activity_config_net_failed.*
99

1010
class ConfigNetFailedActivity : BaseActivity() {
11-
var type = DeviceFragment.ConfigType.SmartConfig.id
11+
var type = ConfigType.SmartConfig.id
1212
var productId = ""
1313

1414
override fun getContentView(): Int {
1515
return R.layout.activity_config_net_failed
1616
}
1717

1818
override fun initView() {
19-
type = intent.getIntExtra(CommonField.CONFIG_TYPE, DeviceFragment.ConfigType.SmartConfig.id)
19+
type = intent.getIntExtra(CommonField.CONFIG_TYPE, ConfigType.SmartConfig.id)
2020
productId = intent.getStringExtra(CommonField.PRODUCT_ID) ?: ""
2121

2222
when (type) {
2323

24-
DeviceFragment.ConfigType.SmartConfig.id -> {
24+
ConfigType.SmartConfig.id -> {
2525
tv_config_net_failed_title.setText(R.string.smart_config_config_network)
2626
tv_config_net_failed_reason.setText(R.string.reson_config_net_info)
2727
tv_soft_first_commit.setText(R.string.switch_softap)
2828
}
2929

30-
DeviceFragment.ConfigType.SoftAp.id -> {
30+
ConfigType.SoftAp.id -> {
3131
tv_config_net_failed_title.setText(R.string.softap_config_network)
3232
tv_config_net_failed_reason.setText(R.string.softap_reson_config_net_info)
3333
tv_soft_first_commit.setText(R.string.switch_smart_config)
3434
}
35+
36+
ConfigType.BleConfig.id -> {
37+
tv_config_net_failed_title.setText(getString(R.string.ble_config_network))
38+
tv_config_net_failed_reason.setText("")
39+
tv_soft_first_commit.visibility = View.GONE
40+
tv_soft_first_commit.setText("")
41+
tv_more_reason.visibility = View.GONE
42+
}
3543
}
3644
}
3745

@@ -46,19 +54,23 @@ class ConfigNetFailedActivity : BaseActivity() {
4654
override fun onClick(v: View?) {
4755
when(v) {
4856
tv_soft_first_commit -> {
49-
if (type == DeviceFragment.ConfigType.SoftAp.id) {
57+
if (type == ConfigType.SoftAp.id) {
5058
SmartConfigStepActivity.startActivityWithExtra(this@ConfigNetFailedActivity, productId)
51-
} else {
59+
} else if (type == ConfigType.SmartConfig.id) {
5260
SoftApStepActivity.startActivityWithExtra(this@ConfigNetFailedActivity, productId)
61+
} else {
62+
5363
}
5464
this@ConfigNetFailedActivity.finish()
5565
}
5666

5767
tv_retry -> {
58-
if (type == DeviceFragment.ConfigType.SoftAp.id) {
68+
if (type == ConfigType.SoftAp.id) {
5969
SoftApStepActivity.startActivityWithExtra(this@ConfigNetFailedActivity, productId)
60-
} else {
70+
} else if (type == ConfigType.SmartConfig.id) {
6171
SmartConfigStepActivity.startActivityWithExtra(this@ConfigNetFailedActivity, productId)
72+
} else {
73+
6274
}
6375
this@ConfigNetFailedActivity.finish()
6476
}

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,32 @@
11
package com.tencent.iot.explorer.link.kitlink.activity
22

33
import android.view.View
4+
import com.tencent.iot.explorer.link.App
45
import com.tencent.iot.explorer.link.R
56
import com.tencent.iot.explorer.link.kitlink.consts.CommonField
6-
import com.tencent.iot.explorer.link.kitlink.fragment.DeviceFragment
7+
import com.tencent.iot.explorer.link.kitlink.entity.ConfigType
8+
import com.tencent.iot.explorer.link.kitlink.util.Utils
79
import kotlinx.android.synthetic.main.activity_config_net_success.*
810

911
class ConfigNetSuccessActivity : BaseActivity() {
10-
var type = DeviceFragment.ConfigType.SmartConfig.id
12+
var type = ConfigType.SmartConfig.id
1113
var deviceName = ""
1214

1315
override fun getContentView(): Int {
1416
return R.layout.activity_config_net_success
1517
}
1618

1719
override fun initView() {
18-
type = intent.getIntExtra(CommonField.CONFIG_TYPE, DeviceFragment.ConfigType.SmartConfig.id)
20+
type = intent.getIntExtra(CommonField.CONFIG_TYPE, ConfigType.SmartConfig.id)
1921
deviceName = intent.getStringExtra(CommonField.DEVICE_NAME)
2022
var str2Show = resources.getString(R.string.device_name) +
2123
resources.getString(R.string.splite_from_name) + deviceName
2224
tv_config_net_sucess_reason_tip.setText(str2Show)
25+
26+
// 发送广播,告知主界面刷新设备数量
27+
App.data.refresh = true
28+
App.data.setRefreshLevel(2)
29+
Utils.sendRefreshBroadcast(this@ConfigNetSuccessActivity)
2330
}
2431

2532
override fun setListener() {

0 commit comments

Comments
 (0)