Skip to content

Commit f21ec5d

Browse files
committed
Merge branch 'master' into v2.3.x
Change-Id: I18da92a16da4ac000977e77c3e47a222705e48f1
2 parents 391635d + 1363e8b commit f21ec5d

File tree

101 files changed

+4827
-1106
lines changed

Some content is hidden

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

101 files changed

+4827
-1106
lines changed

.github/workflows/tencent_official.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ jobs:
5050
sed -i 's#def versionAppName.*#def versionAppName = \"'$rt'\"#g' config.gradle
5151
sed -i 's#def sdkVersion.*#def sdkVersion = \"'$rt'\"#g' config.gradle
5252
sed -i "s#xxx#$rb+git.$rc#g" config.gradle
53+
sed -i '/snapshots/, +d' build.gradle
5354
5455
- name: Common-->Update Values of Signing
5556
run: |

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
<activity android:name=".kitlink.activity.AddTimerActivity" />
7979
<activity android:name=".kitlink.activity.FamilyActivity" />
8080
<activity android:name=".kitlink.activity.RoomListActivity" />
81+
<activity android:name=".kitlink.activity.ControlPermissionActivity" />
8182
<activity android:name=".kitlink.activity.AddRoomActivity" />
8283
<activity android:name=".kitlink.activity.AddFamilyActivity" />
8384
<activity android:name=".kitlink.activity.CommentDetailsActivity" />
@@ -163,6 +164,7 @@
163164
<activity android:name=".kitlink.activity.ForgotPasswordActivity" />
164165
<activity android:name=".kitlink.activity.CountryCodeActivity" />
165166
<activity android:name=".kitlink.activity.RegisterActivity" />
167+
<activity android:name=".kitlink.activity.ChooseCountryActivity" />
166168
<activity android:name=".kitlink.activity.MessageActivity" /> <!-- 微信回调 -->
167169
<activity android:name=".kitlink.activity.DevicePanelActivity" />
168170
<activity android:name=".kitlink.activity.FeedbackForH5Activity" />

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ class AppData private constructor() {
3939
var userInfo = UserInfo()
4040
var userSetting = UserSetting()
4141
var regionId = "1"
42-
var conutryCode = "1" // 当前的登录的国家码
42+
var conutryCode = "86" // 当前的登录的国家码
4343
var bleDevice: BleDevice? = null // 用于标记将要被索引的蓝牙设备
4444
var region = "ap-guangzhou"
4545
var appLifeCircleId = "0"
Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
package com.tencent.iot.explorer.link.customview.dialog;
2+
3+
import android.content.Context;
4+
import android.view.View;
5+
import android.widget.TextView;
6+
7+
import androidx.constraintlayout.widget.ConstraintLayout;
8+
9+
import com.tencent.iot.explorer.link.R;
10+
import com.tencent.iot.explorer.link.customview.dialog.entity.UpgradeInfo;
11+
12+
public class PermissionDialog extends IosCenterStyleDialog implements View.OnClickListener {
13+
14+
private TextView detail;
15+
private TextView detailLips;
16+
private TextView btnRefuse;
17+
private TextView btnOK;
18+
private ConstraintLayout outLayout;
19+
private String detailString;
20+
private String detailLipsString;
21+
22+
public PermissionDialog(Context context, String detail, String detailLips) {
23+
super(context, R.layout.popup_permission_layout);
24+
this.detailString = detail;
25+
this.detailLipsString = detailLips;
26+
}
27+
28+
@Override
29+
public void initView() {
30+
outLayout = view.findViewById(R.id.permission_dialog_layout);
31+
detail = view.findViewById(R.id.tv_detail);
32+
detailLips = view.findViewById(R.id.tv_detail_lips);
33+
btnRefuse = view.findViewById(R.id.tv_refuse);
34+
btnOK = view.findViewById(R.id.tv_ok);
35+
36+
btnRefuse.setOnClickListener(this);
37+
btnOK.setOnClickListener(this);
38+
39+
detail.setText(detailString);
40+
detailLips.setText(detailLipsString);
41+
outLayout.setBackgroundColor(getContext().getResources().getColor(R.color.dialog_background));
42+
}
43+
44+
@Override
45+
public void onClick(View v) {
46+
switch (v.getId()) {
47+
case R.id.tv_refuse:
48+
dismiss();
49+
if (onDismisListener != null) {
50+
onDismisListener.OnClickRefuse();
51+
}
52+
break;
53+
case R.id.tv_ok:
54+
dismiss();
55+
if (onDismisListener != null) {
56+
onDismisListener.OnClickOK();
57+
}
58+
break;
59+
default:
60+
break;
61+
}
62+
}
63+
64+
private volatile OnDismisListener onDismisListener;
65+
66+
public interface OnDismisListener {
67+
void OnClickRefuse();
68+
void OnClickOK();
69+
}
70+
71+
public void setOnDismisListener(OnDismisListener onDismisListener) {
72+
this.onDismisListener = onDismisListener;
73+
}
74+
}
Lines changed: 152 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,152 @@
1+
package com.tencent.iot.explorer.link.customview.dialog
2+
3+
import android.content.Context
4+
import android.content.DialogInterface
5+
import android.os.Build
6+
import android.text.Spannable
7+
import android.text.SpannableStringBuilder
8+
import android.text.TextPaint
9+
import android.text.method.LinkMovementMethod
10+
import android.text.style.ClickableSpan
11+
import android.util.Log
12+
import android.view.KeyEvent
13+
import android.view.View
14+
import android.widget.ImageView
15+
import android.widget.RelativeLayout
16+
import android.widget.TextView
17+
import androidx.annotation.RequiresApi
18+
import com.tencent.iot.explorer.link.R
19+
20+
class UserAgreeDialog(context: Context) : IosCenterStyleDialog(context, R.layout.popup_user_agree_layout), View.OnClickListener, DialogInterface.OnKeyListener {
21+
private var tip_title: TextView? = null
22+
private var tv_tip_content: TextView? = null
23+
private var tv_register_tip: TextView? = null
24+
private var tv_confirm: TextView? = null
25+
private var tv_cancel: TextView? = null
26+
private var select_tag_layout: RelativeLayout? = null
27+
private var iv_agreement: ImageView? = null
28+
private var iv_agreement_status: ImageView? = null
29+
@Volatile
30+
private var readed = false
31+
32+
private fun freshReadState() {
33+
if (readed) {
34+
iv_agreement?.setImageResource(R.mipmap.dev_mode_sel)
35+
iv_agreement_status?.visibility = View.VISIBLE
36+
} else {
37+
iv_agreement?.setImageResource(R.mipmap.dev_mode_unsel)
38+
iv_agreement_status?.visibility = View.GONE
39+
}
40+
}
41+
42+
override fun initView() {
43+
tip_title = view.findViewById(R.id.tip_title)
44+
tv_tip_content = view.findViewById(R.id.tv_tip_content)
45+
tv_register_tip = view.findViewById(R.id.tv_register_tip)
46+
tv_confirm = view.findViewById(R.id.tv_confirm)
47+
tv_cancel = view.findViewById(R.id.tv_cancel)
48+
select_tag_layout = view.findViewById(R.id.select_tag_layout)
49+
50+
tip_title?.text = context.getString(R.string.register_agree_2) + context.getString(R.string.rule_title_and) + context.getString(R.string.rule_title_private_protect)
51+
52+
val agreeContentStrPrefix = context.getString(R.string.rule_content_prefix)
53+
val partStr1 = "${context.getString(R.string.register_agree_2)}"
54+
val partStr2 = context.getString(R.string.register_agree_3)
55+
val partStr3 = "${context.getString(R.string.register_agree_4)}"
56+
val agreeContentStrMiddle = context.getString(R.string.rule_content_middle)
57+
val partStr4 = "${context.getString(R.string.rule_content_list)}"
58+
val agreeContentStrSuffix = context.getString(R.string.rule_content_suffix)
59+
var agreeContentStr = agreeContentStrPrefix + partStr1 + partStr2 + partStr3 + agreeContentStrMiddle + partStr4 + agreeContentStrSuffix
60+
var agreeContentSpannable = SpannableStringBuilder(agreeContentStr)
61+
agreeContentSpannable.setSpan(IndexClickableSpan(context, 1),
62+
agreeContentStrPrefix.length, agreeContentStrPrefix.length + partStr1.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
63+
val start1 = agreeContentStrPrefix.length + partStr1.length + partStr2.length
64+
agreeContentSpannable.setSpan(IndexClickableSpan(context, 2),
65+
start1, start1 + partStr3.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
66+
val start2 = agreeContentStrPrefix.length + partStr1.length + partStr2.length + partStr3.length + agreeContentStrMiddle.length
67+
agreeContentSpannable.setSpan(IndexClickableSpan(context, 3),
68+
start2, start2 + partStr4.length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
69+
tv_tip_content?.movementMethod = LinkMovementMethod.getInstance()
70+
tv_tip_content?.text = agreeContentSpannable
71+
72+
select_tag_layout?.setOnClickListener(this)
73+
tv_cancel?.setOnClickListener(this)
74+
tv_confirm?.setOnClickListener(this)
75+
this.setOnKeyListener(this)
76+
freshReadState()
77+
}
78+
79+
override fun onClick(v: View?) {
80+
when(v) {
81+
select_tag_layout -> {
82+
}
83+
84+
tv_cancel -> {
85+
onDismisListener?.onDismised()
86+
}
87+
88+
tv_confirm -> {
89+
readed = true
90+
freshReadState()
91+
onDismisListener?.onOkClicked()
92+
dismiss()
93+
}
94+
}
95+
}
96+
97+
@Volatile
98+
private var onDismisListener: OnDismisListener? = null
99+
100+
interface OnDismisListener {
101+
fun onDismised()
102+
fun onOkClicked()
103+
fun onOkClickedUserAgreement()
104+
fun onOkClickedPrivacyPolicy()
105+
fun onOkClickedThirdSDKList()
106+
}
107+
108+
fun setOnDismisListener(onDismisListener: OnDismisListener?) {
109+
this.onDismisListener = onDismisListener
110+
}
111+
112+
inner class IndexClickableSpan(context: Context, index: Int): ClickableSpan() {
113+
private var index = 0
114+
private var context: Context? = null
115+
116+
init {
117+
this.index = index
118+
this.context = context
119+
}
120+
121+
@RequiresApi(Build.VERSION_CODES.M)
122+
override fun onClick(widget: View) {
123+
context?.let {
124+
tv_tip_content?.highlightColor = it.getColor(android.R.color.transparent)
125+
tv_register_tip?.highlightColor = it.getColor(android.R.color.transparent)
126+
}
127+
if (index == 1) {
128+
onDismisListener?.onOkClickedUserAgreement()
129+
} else if (index == 2) {
130+
onDismisListener?.onOkClickedPrivacyPolicy()
131+
} else if (index == 3) {
132+
onDismisListener?.onOkClickedThirdSDKList()
133+
}
134+
}
135+
136+
@RequiresApi(Build.VERSION_CODES.M)
137+
override fun updateDrawState(ds: TextPaint) {
138+
super.updateDrawState(ds)
139+
context?.let {
140+
ds.color = it.getColor(R.color.blue_0066FF)
141+
}
142+
ds.isUnderlineText = false
143+
}
144+
}
145+
146+
override fun onKey(dialog: DialogInterface?, keyCode: Int, event: KeyEvent?): Boolean {
147+
if (keyCode == KeyEvent.KEYCODE_BACK) {
148+
onDismisListener?.onDismised()
149+
}
150+
return true
151+
}
152+
}

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

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import com.tencent.iot.explorer.link.T
1515
import com.tencent.iot.explorer.link.core.auth.callback.MyCallback
1616
import com.tencent.iot.explorer.link.core.auth.response.BaseResponse
1717
import com.tencent.iot.explorer.link.core.utils.Utils
18+
import com.tencent.iot.explorer.link.customview.dialog.PermissionDialog
1819
import kotlinx.android.synthetic.main.activity_account_and_safety.*
1920
import kotlinx.android.synthetic.main.menu_back_layout.*
2021

@@ -49,6 +50,7 @@ class AccountAndSafetyActivity : PActivity(), AccountAndSafetyView, View.OnClick
4950
tv_wechat.setOnClickListener(this)
5051
tv_modify_passwd.setOnClickListener(this)
5152
tv_account_logout.setOnClickListener(this)
53+
tv_controller_of_permission.setOnClickListener(this)
5254
}
5355

5456
override fun onClick(v: View?) {
@@ -71,7 +73,18 @@ class AccountAndSafetyActivity : PActivity(), AccountAndSafetyView, View.OnClick
7173
if (App.data.userInfo.HasWxOpenID == "1") {
7274
T.show(getString(R.string.wechat_bind_already)) //微信已经绑定过了, 请勿重复绑定
7375
} else {
74-
WeChatLogin.getInstance().login(this, this)
76+
var dlg = PermissionDialog(this@AccountAndSafetyActivity, getString(R.string.permission_of_wechat), getString(R.string.permission_of_wechat_lips))
77+
dlg.show()
78+
dlg.setOnDismisListener(object : PermissionDialog.OnDismisListener {
79+
override fun OnClickRefuse() {
80+
81+
}
82+
83+
override fun OnClickOK() {
84+
WeChatLogin.getInstance().login(this@AccountAndSafetyActivity, this@AccountAndSafetyActivity)
85+
}
86+
87+
})
7588
}
7689
}
7790
tv_modify_passwd -> {// 修改密码
@@ -80,6 +93,9 @@ class AccountAndSafetyActivity : PActivity(), AccountAndSafetyView, View.OnClick
8093
tv_account_logout -> {// 注销账号
8194
jumpActivity(LogoutActivity::class.java)
8295
}
96+
tv_controller_of_permission -> {
97+
jumpActivity(ControlPermissionActivity::class.java)
98+
}
8399
}
84100
}
85101

0 commit comments

Comments
 (0)