Skip to content

Commit 1c9a30a

Browse files
sevenhhearchurcode
authored andcommitted
[腾讯连连APP]登录与消息界面点触优化
1、需求分支 3 支持三个 fragment 横向滑动,同时支持纵向的下拉刷新) 2、需求分支 1.1、1.2.1、1.2.2、1.3、2 3、修复未校验两次输入密码是否一致的问题 4、获取验证码,增加倒计时功能 http://tapd.oa.com/NEW_IOT/prong/stories/view/1020393192860120143 Change-Id: Ibb7c6a8e4f55d42d9b4b18de510ee13edecebd81
1 parent 4ede2ce commit 1c9a30a

File tree

15 files changed

+393
-23
lines changed

15 files changed

+393
-23
lines changed
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.tencent.iot.explorer.link.customview;
2+
3+
import android.content.Context;
4+
import android.util.AttributeSet;
5+
import android.view.MotionEvent;
6+
7+
import androidx.viewpager.widget.ViewPager;
8+
9+
public class FragmentViewPager extends ViewPager {
10+
private boolean enabled = false;
11+
12+
public FragmentViewPager(Context context) {
13+
super(context);
14+
}
15+
16+
public FragmentViewPager(Context context, AttributeSet attrs) {
17+
super(context, attrs);
18+
}
19+
20+
@Override
21+
public boolean onTouchEvent(MotionEvent event) {
22+
// 触摸事件不触发
23+
if (this.enabled) {
24+
return super.onTouchEvent(event);
25+
}
26+
return false;
27+
}
28+
29+
@Override
30+
public boolean onInterceptTouchEvent(MotionEvent event) {
31+
// 不处理触摸拦截事件
32+
if (this.enabled) {
33+
return super.onInterceptTouchEvent(event);
34+
}
35+
return false;
36+
}
37+
38+
@Override
39+
public boolean dispatchTouchEvent(MotionEvent event) {
40+
// 分发事件,这个是必须要的,如果把这个方法覆盖了,那么ViewPager的子View就接收不到事件了
41+
// if (this.enabled) {
42+
// return super.dispatchTouchEvent(event);
43+
// }
44+
return super.dispatchTouchEvent(event);
45+
}
46+
47+
public void setPagingEnabled(boolean enabled) {
48+
this.enabled = enabled;
49+
}
50+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.tencent.iot.explorer.link.customview;
2+
3+
import androidx.fragment.app.FragmentManager;
4+
import androidx.fragment.app.FragmentPagerAdapter;
5+
6+
import com.tencent.iot.explorer.link.kitlink.fragment.MessageFragment;
7+
8+
import java.util.List;
9+
10+
public class PageAdapter extends FragmentPagerAdapter {
11+
List<MessageFragment> mPages;
12+
13+
public PageAdapter(FragmentManager fm, List<MessageFragment> pages) {
14+
super(fm);
15+
mPages = pages;
16+
}
17+
18+
@Override
19+
public MessageFragment getItem(int arg0) {
20+
try {
21+
return mPages.get(arg0);
22+
} catch (Exception e) {
23+
return null;
24+
}
25+
}
26+
27+
@Override
28+
public int getCount() {
29+
if (mPages == null) {
30+
return 0;
31+
}
32+
return mPages.size();
33+
}
34+
35+
}

app/src/main/java/com/tencent/iot/explorer/link/customview/check/ClickButton.kt

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,18 @@ import android.view.View
99
import android.widget.EditText
1010
import android.widget.TextView
1111
import androidx.appcompat.widget.AppCompatTextView
12+
import androidx.core.text.isDigitsOnly
1213
import com.tencent.iot.explorer.link.R
14+
import com.tencent.iot.explorer.link.mvp.presenter.ForgotPasswordPresenter
15+
import com.tencent.iot.explorer.link.mvp.presenter.RegisterPresenter
1316

1417
class ClickButton : AppCompatTextView {
1518

1619
private val list = arrayListOf<EditTextHolder>()
1720

21+
private var registerPresenter: RegisterPresenter? = null
22+
private var forgotPasswordPresenter: ForgotPasswordPresenter? = null
23+
1824
constructor(context: Context?) : super(context!!) {
1925
this.isEnabled = false
2026
}
@@ -31,6 +37,14 @@ class ClickButton : AppCompatTextView {
3137
this.isEnabled = false
3238
}
3339

40+
fun setRegisterPresenter(registerPresenter: RegisterPresenter) {
41+
this.registerPresenter = registerPresenter
42+
}
43+
44+
fun setForgotPasswordPresenter(forgotPasswordPresenter: ForgotPasswordPresenter) {
45+
this.forgotPasswordPresenter = forgotPasswordPresenter
46+
}
47+
3448
fun addEditText(editText: EditText, type: String) {
3549
if (!isContain(editText)) {
3650
list.add(EditTextHolder(editText, null, type))
@@ -76,11 +90,25 @@ class ClickButton : AppCompatTextView {
7690
checkStatus()
7791
}
7892

79-
private fun checkStatus() {
93+
fun checkStatus() {
8094
var able = true
8195
list.forEach {
8296
if (able) {
83-
able = it.check()
97+
if (registerPresenter != null) {
98+
if (registerPresenter!!.model == null) {
99+
able = false
100+
} else {
101+
able = it.check() && registerPresenter!!.model!!.getAgreementStatus()
102+
}
103+
} else if (forgotPasswordPresenter != null) {
104+
if (forgotPasswordPresenter!!.model == null) {
105+
able = false
106+
} else {
107+
able = it.check() && forgotPasswordPresenter!!.model!!.getAgreementStatus()
108+
}
109+
} else {
110+
able = it.check()
111+
}
84112
}
85113
}
86114
this.isEnabled = able
@@ -128,7 +156,8 @@ class ClickButton : AppCompatTextView {
128156
}
129157
"86" -> {
130158
// editText.filters = arrayOf(InputFilter.LengthFilter(11))
131-
return if (it.length == 11) {
159+
// 长度为 11 位且仅包含数字的字符串认为是电话号码
160+
return if (it.length == 11 && it.isDigitsOnly()) {
132161
textView?.visibility = View.INVISIBLE
133162
textView?.text = ""
134163
true

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ class ForgotPasswordActivity : PActivity(), ForgotPasswordView, View.OnClickList
4040

4141
override fun initView() {
4242
presenter = ForgotPasswordPresenter(this)
43+
btn_forgot_get_code.setForgotPasswordPresenter(presenter)
4344
iv_back.setColorFilter(resources.getColor(R.color.black_333333))
4445
tv_title.text = getString(R.string.find_bank_the_password)
4546

@@ -151,6 +152,7 @@ class ForgotPasswordActivity : PActivity(), ForgotPasswordView, View.OnClickList
151152
R.mipmap.icon_unselected
152153
}
153154
)
155+
btn_forgot_get_code.checkStatus()
154156
}
155157

156158
override fun unselectedAgreement() {

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@ import android.content.ClipboardManager
55
import android.content.Context
66
import android.content.Intent
77
import android.os.Handler
8+
import android.util.Log
89
import com.tencent.iot.explorer.link.R
910
import com.tencent.iot.explorer.link.core.log.L
11+
import com.tencent.iot.explorer.link.kitlink.consts.CommonField
12+
import com.tencent.iot.explorer.link.kitlink.util.Utils
1013
import com.tencent.iot.explorer.link.kitlink.util.Weak
1114
import com.tencent.iot.explorer.link.mvp.IPresenter
1215
import com.tencent.iot.explorer.link.mvp.presenter.GetCodePresenter
@@ -153,6 +156,8 @@ class GetCodeActivity : PActivity(), GetCodeView, ClipboardManager.OnPrimaryClip
153156
intent.putExtra(EMAIL, email)
154157
intent.putExtra(SetPasswordActivity.VERIFICATION_CODE, verificationCode)
155158
startActivity(intent)
159+
T.show(getString(R.string.registe_success))
160+
Utils.clearXmlStringValue(T.getContext(), CommonField.REG_COUNTRY_INFO, CommonField.REG_COUNTRY_INFO)
156161
finish()
157162
}
158163

@@ -163,6 +168,8 @@ class GetCodeActivity : PActivity(), GetCodeView, ClipboardManager.OnPrimaryClip
163168
intent.putExtra(PHONE, phoneNumber)
164169
intent.putExtra(SetPasswordActivity.VERIFICATION_CODE, verificationCode)
165170
startActivity(intent)
171+
T.show(getString(R.string.registe_success))
172+
Utils.clearXmlStringValue(T.getContext(), CommonField.REG_COUNTRY_INFO, CommonField.REG_COUNTRY_INFO)
166173
finish()
167174
}
168175

0 commit comments

Comments
 (0)