Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
782b4c3b
Commit
782b4c3b
authored
Jul 25, 2022
by
YKai
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 新增埋点,代码优化
parent
f89108ee
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
139 additions
and
958 deletions
+139
-958
config.gradle
config.gradle
+4
-6
P2PCustomActionHandlerImpl.java
m-im/src/main/java/com/yidianling/im/bridge/P2PCustomActionHandlerImpl.java
+2
-0
MsgViewHolderInquiryreceive.kt
m-im/src/main/java/com/yidianling/im/session/viewholder/MsgViewHolderInquiryreceive.kt
+4
-0
GraphicConsulttionFlow2Activity.kt
m-im/src/main/java/com/yidianling/medical/GraphicConsulttionFlow2Activity.kt
+3
-2
MedicalAddNewArchivesActivity.kt
m-im/src/main/java/com/yidianling/medical/archives/MedicalAddNewArchivesActivity.kt
+10
-0
MedicalEditArchivesActivity.kt
m-im/src/main/java/com/yidianling/medical/archives/MedicalEditArchivesActivity.kt
+5
-0
MedicalUpdateArchivesActivity.kt
m-im/src/main/java/com/yidianling/medical/archives/MedicalUpdateArchivesActivity.kt
+9
-0
MeidicalChatFragment.kt
m-im/src/main/java/com/yidianling/medical/im/MeidicalChatFragment.kt
+13
-10
PickImageAction.java
m-im/src/main/java/com/yidianling/uikit/business/session/actions/PickImageAction.java
+0
-2
VideoAction.java
m-im/src/main/java/com/yidianling/uikit/business/session/actions/VideoAction.java
+6
-0
modular.gradle
m-user/modular.gradle
+13
-13
LoginActionCountConstants.kt
m-user/src/main/java/com/yidianling/user/extension/LoginActionCountConstants.kt
+8
-0
FillInfoActivity.java
m-user/src/main/java/com/yidianling/user/ui/FillInfoActivity.java
+0
-498
LoginActivity.java
m-user/src/main/java/com/yidianling/user/ui/LoginActivity.java
+0
-182
InputPassWordActivity.kt
m-user/src/main/java/com/yidianling/user/ui/login/InputPassWordActivity.kt
+12
-2
RegisterAndLoginActivity.kt
m-user/src/main/java/com/yidianling/user/ui/login/RegisterAndLoginActivity.kt
+15
-5
VerificationCodeActivity.kt
m-user/src/main/java/com/yidianling/user/ui/login/VerificationCodeActivity.kt
+15
-5
user_activity_fill_info.xml
m-user/src/main/res/layout/user_activity_fill_info.xml
+0
-78
user_activity_input_password_new.xml
m-user/src/main/res/layout/user_activity_input_password_new.xml
+5
-4
user_activity_login.xml
m-user/src/main/res/layout/user_activity_login.xml
+0
-136
user_activity_register_and_login_medical.xml
m-user/src/main/res/layout/user_activity_register_and_login_medical.xml
+2
-2
user_activity_verification_code_new.xml
m-user/src/main/res/layout/user_activity_verification_code_new.xml
+13
-13
No files found.
config.gradle
View file @
782b4c3b
...
...
@@ -8,10 +8,9 @@ ext {
"m-confide"
:
"0.0.49.10"
,
"m-consultant"
:
"0.0.59.91"
,
"m-fm"
:
"0.0.30.03"
,
"m-user"
:
"0.0.61.90"
,
"m-user-medical"
:
"0.0.61.99"
,
"m-user-medical"
:
"0.0.62.00"
,
"m-home"
:
"0.0.22.70"
,
"m-im-medical"
:
"0.0.21.3
8
"
,
"m-im-medical"
:
"0.0.21.3
9
"
,
"m-dynamic"
:
"0.0.7.28"
,
"m-article"
:
"0.0.0.10"
,
...
...
@@ -93,10 +92,9 @@ ext {
"m-confide"
:
"0.0.49.10"
,
"m-consultant"
:
"0.0.59.91"
,
"m-fm"
:
"0.0.30.01"
,
"m-user"
:
"0.0.61.90"
,
"m-user-medical"
:
"0.0.61.99"
,
"m-user-medical"
:
"0.0.62.00"
,
"m-home"
:
"0.0.22.70"
,
"m-im-medical"
:
"0.0.21.3
8
"
,
"m-im-medical"
:
"0.0.21.3
9
"
,
"m-dynamic"
:
"0.0.7.28"
,
"m-article"
:
"0.0.0.8"
,
...
...
m-im/src/main/java/com/yidianling/im/bridge/P2PCustomActionHandlerImpl.java
View file @
782b4c3b
...
...
@@ -644,6 +644,8 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler {
historyMsg
();
break
;
case
"拉黑"
:
// 埋点
ActionCountUtils
.
Companion
.
baiDuCountSign1
(
ImActionCountConstantsKt
.
YDL_MEDICAL_MESSAGE_DETAIL_PAGE
,
"hamburger_button_ban_click"
,
""
);
setBlack
();
break
;
case
"取消拉黑"
:
...
...
m-im/src/main/java/com/yidianling/im/session/viewholder/MsgViewHolderInquiryreceive.kt
View file @
782b4c3b
...
...
@@ -5,8 +5,10 @@ import android.widget.TextView
import
com.ydl.webview.H5Params
import
com.ydl.webview.NewH5Activity
import
com.ydl.ydlcommon.base.config.HttpConfig
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.yidianling.im.R
import
com.yidianling.im.session.extension.CustomAttachmentInquiryReceive
import
com.yidianling.medical.extension.YDL_MEDICAL_MESSAGE_DETAIL_PAGE
import
com.yidianling.nimbase.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter
import
com.yidianling.uikit.business.session.viewholder.MsgViewHolderBase
...
...
@@ -49,6 +51,8 @@ class MsgViewHolderInquiryreceive(adapter: BaseMultiItemFetchLoadAdapter<*, *>?)
)
)
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MESSAGE_DETAIL_PAGE
,
"consultation_detail_message_click"
,
""
)
}
hideItemBg
()
}
...
...
m-im/src/main/java/com/yidianling/medical/GraphicConsulttionFlow2Activity.kt
View file @
782b4c3b
...
...
@@ -89,7 +89,8 @@ class GraphicConsulttionFlow2Activity : BaseActivity() {
//点击添加患者
isFirstLoadData
=
false
MedicalAddNewArchivesActivity
.
start
(
this
@GraphicConsulttionFlow2Activity
)
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_GET_CONSULTATION_PAGE
,
"add_patient_click"
,
""
)
}
item
?.
needEdit
==
1
->
{
isFirstLoadData
=
false
...
...
@@ -179,7 +180,7 @@ class GraphicConsulttionFlow2Activity : BaseActivity() {
}
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_GET_CONSULTATION_PAGE
,
"patient_select_page_
click
"
,
""
)
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_GET_CONSULTATION_PAGE
,
"patient_select_page_
visit
"
,
""
)
getList
()
}
...
...
m-im/src/main/java/com/yidianling/medical/archives/MedicalAddNewArchivesActivity.kt
View file @
782b4c3b
...
...
@@ -12,9 +12,12 @@ import android.text.style.AbsoluteSizeSpan
import
android.view.*
import
com.ydl.ydlcommon.base.BaseActivity
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.view.dialog.NormalDialog
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.im.R
import
com.yidianling.medical.extension.YDL_MEDICAL_MESSAGE_LIST_PAGE
import
com.yidianling.medical.extension.YDL_MEDICAL_MY_FAMILY_FILE_PAGE
import
com.yidianling.medical.utils.EditTextUtils
import
com.yidianling.uikit.custom.http.ServiceImpl
import
io.reactivex.android.schedulers.AndroidSchedulers
...
...
@@ -170,6 +173,9 @@ class MedicalAddNewArchivesActivity : BaseActivity() {
iv_back
.
setOnClickListener
{
finish
()
}
showDialogTip
()
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MY_FAMILY_FILE_PAGE
,
"add_patient_page_visit"
,
""
)
}
private
fun
showDialogTip
()
{
...
...
@@ -183,10 +189,14 @@ class MedicalAddNewArchivesActivity : BaseActivity() {
builder
.
setPositiveButton
(
"同意"
)
{
dialog
,
which
->
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MY_FAMILY_FILE_PAGE
,
"add_patient_page_agree_click"
,
""
)
dialog
.
dismiss
()
}.
setNegativeButton
(
"不同意"
)
{
dialog
,
which
->
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MY_FAMILY_FILE_PAGE
,
"add_patient_page_disagree_click"
,
""
)
//关闭页面
finish
()
dialog
.
dismiss
()
...
...
m-im/src/main/java/com/yidianling/medical/archives/MedicalEditArchivesActivity.kt
View file @
782b4c3b
...
...
@@ -5,10 +5,12 @@ import android.content.Context
import
android.content.Intent
import
com.ydl.ydlcommon.base.BaseActivity
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.view.dialog.NormalDialog
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.im.R
import
com.yidianling.medical.archives.bean.MedicalArchivesListBean
import
com.yidianling.medical.extension.YDL_MEDICAL_MY_FAMILY_FILE_PAGE
import
com.yidianling.uikit.custom.http.ServiceImpl
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
...
...
@@ -73,6 +75,9 @@ class MedicalEditArchivesActivity : BaseActivity() {
merried
.
text
=
archivesBeanExtra
.
merriedName
relation
.
text
=
archivesBeanExtra
.
relationName
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MY_FAMILY_FILE_PAGE
,
"edit_patient_page_visit"
,
""
)
}
@SuppressLint
(
"CheckResult"
)
...
...
m-im/src/main/java/com/yidianling/medical/archives/MedicalUpdateArchivesActivity.kt
View file @
782b4c3b
...
...
@@ -12,10 +12,12 @@ import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum
import
com.netease.nimlib.sdk.msg.model.IMMessage
import
com.ydl.ydlcommon.base.BaseActivity
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.view.dialog.NormalDialog
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.im.R
import
com.yidianling.medical.archives.bean.MedicalArchivesListBean
import
com.yidianling.medical.extension.YDL_MEDICAL_MY_FAMILY_FILE_PAGE
import
com.yidianling.medical.utils.EditTextUtils
import
com.yidianling.uikit.business.session.helper.MessageListPanelHelper
import
com.yidianling.uikit.custom.http.ServiceImpl
...
...
@@ -155,6 +157,9 @@ class MedicalUpdateArchivesActivity : BaseActivity() {
iv_back
.
setOnClickListener
{
finish
()
}
showDialogTip
()
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MY_FAMILY_FILE_PAGE
,
"edit_patient_page_visit"
,
""
)
}
/**
...
...
@@ -256,10 +261,14 @@ class MedicalUpdateArchivesActivity : BaseActivity() {
builder
.
setPositiveButton
(
"同意"
)
{
dialog
,
which
->
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MY_FAMILY_FILE_PAGE
,
"edit_patient_page_agree_click"
,
""
)
dialog
.
dismiss
()
}.
setNegativeButton
(
"不同意"
)
{
dialog
,
which
->
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MY_FAMILY_FILE_PAGE
,
"edit_patient_page_disagree_click"
,
""
)
//关闭页面
finish
()
dialog
.
dismiss
()
...
...
m-im/src/main/java/com/yidianling/medical/im/MeidicalChatFragment.kt
View file @
782b4c3b
...
...
@@ -128,11 +128,22 @@ class MeidicalChatFragment : BaseFragment(), XRecyclerView.LoadingListener {
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MESSAGE_LIST_PAGE
,
"hamburger_button_click"
,
""
)
}
}
}
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MESSAGE_LIST_PAGE
,
"page_visit"
,
""
)
override
fun
setUserVisibleHint
(
isVisibleToUser
:
Boolean
)
{
super
.
setUserVisibleHint
(
isVisibleToUser
)
if
(
isVisibleToUser
&&
getIsViewCreated
())
{
systemUnReadCount
()
resetPageShow
()
}
if
(
isVisibleToUser
){
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_MESSAGE_LIST_PAGE
,
"page_visit"
,
""
)
}
}
override
fun
onDestroy
()
{
super
.
onDestroy
()
EventBus
.
getDefault
().
unregister
(
this
)
...
...
@@ -263,14 +274,6 @@ class MeidicalChatFragment : BaseFragment(), XRecyclerView.LoadingListener {
resetPageShow
()
}
override
fun
setUserVisibleHint
(
isVisibleToUser
:
Boolean
)
{
super
.
setUserVisibleHint
(
isVisibleToUser
)
if
(
isVisibleToUser
&&
getIsViewCreated
())
{
systemUnReadCount
()
resetPageShow
()
}
}
/**
* 获取系统消息
* */
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/actions/PickImageAction.java
View file @
782b4c3b
...
...
@@ -44,8 +44,6 @@ public abstract class PickImageAction extends BaseAction {
@SuppressLint
(
"CheckResult"
)
@Override
public
void
onClick
()
{
// 埋点
ActionCountUtils
.
Companion
.
baiDuCountSign1
(
ImActionCountConstantsKt
.
YDL_MEDICAL_MESSAGE_DETAIL_PAGE
,
"shoot_button_click"
,
""
);
new
RxPermissions
(
getActivity
()).
requestEach
(
Manifest
.
permission
.
CAMERA
)
.
subscribe
(
permission
->
{
if
(
permission
.
granted
)
{
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/actions/VideoAction.java
View file @
782b4c3b
package
com
.
yidianling
.
uikit
.
business
.
session
.
actions
;
import
android.Manifest
;
import
android.annotation.SuppressLint
;
import
android.content.Intent
;
import
android.media.MediaPlayer
;
import
android.net.Uri
;
...
...
@@ -8,7 +9,9 @@ import android.net.Uri;
import
com.netease.nimlib.sdk.msg.MessageBuilder
;
import
com.netease.nimlib.sdk.msg.model.IMMessage
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
;
import
com.yidianling.common.tools.ToastUtil
;
import
com.yidianling.medical.extension.ImActionCountConstantsKt
;
import
com.yidianling.nimbase.business.session.actions.BaseAction
;
import
com.yidianling.nimbase.business.session.constant.RequestCode
;
import
com.yidianling.im.R
;
...
...
@@ -31,12 +34,15 @@ public class VideoAction extends BaseAction {
@Override
public
void
onClick
()
{
// 埋点
ActionCountUtils
.
Companion
.
baiDuCountSign1
(
ImActionCountConstantsKt
.
YDL_MEDICAL_MESSAGE_DETAIL_PAGE
,
"shoot_button_click"
,
""
);
requestPermission
();
}
/**
* 请求权限
*/
@SuppressLint
(
"CheckResult"
)
private
void
requestPermission
()
{
new
RxPermissions
(
getActivity
()).
request
(
Manifest
.
permission
.
CAMERA
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
Manifest
.
permission
.
RECORD_AUDIO
)
.
subscribe
(
granted
->
{
...
...
m-user/modular.gradle
View file @
782b4c3b
...
...
@@ -4,19 +4,19 @@ modular {
// 模块发布需要的参数
publish
{
modules
{
xlzx
{
groupId
=
"com.ydl"
artifactId
=
"m-user-module-xlzx"
// 上报的 心理咨询 业务模块 aar 包的版本号
version
=
rootProject
.
ext
.
ydlPublishVersion
[
childProject
.
getName
()]
}
ydl
{
groupId
=
"com.ydl"
artifactId
=
"m-user-module-ydl"
// 上报的 壹点灵 业务模块 aar 包的版本号
version
=
rootProject
.
ext
.
ydlPublishVersion
[
childProject
.
getName
()]
}
//
xlzx {
//
groupId = "com.ydl"
//
artifactId = "m-user-module-xlzx"
//
// 上报的 心理咨询 业务模块 aar 包的版本号
//
version = rootProject.ext.ydlPublishVersion[childProject.getName()]
//
}
//
//
ydl{
//
groupId = "com.ydl"
//
artifactId = "m-user-module-ydl"
//
// 上报的 壹点灵 业务模块 aar 包的版本号
//
version = rootProject.ext.ydlPublishVersion[childProject.getName()]
//
}
medical
{
groupId
=
"com.ydl"
...
...
m-user/src/main/java/com/yidianling/user/extension/LoginActionCountConstants.kt
0 → 100644
View file @
782b4c3b
package
com.yidianling.user.extension
/**
* Created by Ykai on 2021/10/29.
* 埋点常量类
*/
// 用户档案part_id
const
val
YDL_MEDICAL_LOGIN
=
"ydl_medical_login"
m-user/src/main/java/com/yidianling/user/ui/FillInfoActivity.java
deleted
100644 → 0
View file @
f89108ee
package
com
.
yidianling
.
user
.
ui
;
import
android.app.Dialog
;
import
android.content.Intent
;
import
android.graphics.Bitmap
;
import
android.graphics.BitmapFactory
;
import
android.hardware.Camera
;
import
android.net.Uri
;
import
android.os.Build
;
import
android.os.Environment
;
import
android.provider.MediaStore
;
import
android.text.TextUtils
;
import
android.view.View
;
import
android.widget.EditText
;
import
android.widget.TextView
;
import
com.luck.picture.lib.entity.LocalMedia
;
import
com.luck.picture.lib.listener.OnResultCallbackListener
;
import
com.miracle.view.imageeditor.utils.FileUtils
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
com.ydl.webview.RefreshWebEvent
;
import
com.ydl.ydl_image.module.GlideApp
;
import
com.ydl.ydlcommon.actions.imagepicker.YDLImagePicker
;
import
com.ydl.ydlcommon.base.BaseActivity
;
import
com.ydl.ydlcommon.bean.StatusBarOptions
;
import
com.ydl.ydlcommon.data.http.RxUtils
;
import
com.ydl.ydlcommon.data.http.ThrowableConsumer
;
import
com.ydl.ydlcommon.utils.ActivityManager
;
import
com.ydl.ydlcommon.utils.log.LogHelper
;
import
com.ydl.ydlcommon.utils.remind.ToastHelper
;
import
com.ydl.ydlcommon.view.CircleImageView
;
import
com.ydl.ydlcommon.view.ListNoCancelDialog
;
import
com.ydl.ydlcommon.view.RoundCornerButton
;
import
com.ydl.ydlcommon.view.TitleBar
;
import
com.ydl.ydlcommon.view.dialog.CommonDialog
;
import
com.yidianling.common.tools.RxFileTool
;
import
com.yidianling.common.tools.RxImageTool
;
import
com.yidianling.user.LoginHelper
;
import
com.yidianling.user.R
;
import
com.yidianling.user.UserConstants
;
import
com.yidianling.user.UserHelper
;
import
com.yidianling.user.api.bean.UserResponseBean
;
import
com.yidianling.user.http.UserHttp
;
import
com.yidianling.user.http.UserHttpImpl
;
import
com.yidianling.user.http.request.HeadParam
;
import
com.yidianling.user.http.request.UserInfoParam
;
import
com.yidianling.user.route.UserIn
;
import
org.jetbrains.annotations.NotNull
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
de.greenrobot.event.EventBus
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.schedulers.Schedulers
;
/**
* 完善信息
* Created by softrice on 15/12/9.
*/
public
class
FillInfoActivity
extends
BaseActivity
implements
View
.
OnClickListener
{
String
icon
;
String
name
;
String
sex
;
int
type
=
0
;
//0 normal 1 第三方登录模式
boolean
isSelected
;
//是否上传了头像
TitleBar
tb_title
;
CircleImageView
sdv_head
;
TextView
tv_sex
;
EditText
et_nick
;
RoundCornerButton
rcb_submit
;
String
head
=
""
;
private
int
finishNum
=
0
;
private
int
gender
=
-
1
;
String
path
;
private
Uri
imgUri
;
// FileUtils fileUtils;
private
String
head_dir
;
//目录
private
String
head_path
;
//路径
File
head_filec
;
private
RxPermissions
rxPermissions
;
private
boolean
isFromSplash
;
private
boolean
isRegisterFromRedPacket
;
@Override
protected
int
layoutResId
()
{
return
R
.
layout
.
user_activity_fill_info
;
}
@NotNull
@Override
public
StatusBarOptions
getStatusViewOptions
()
{
return
new
StatusBarOptions
(
true
,
true
);
}
@Override
protected
void
initDataAndEvent
()
{
tb_title
=
findViewById
(
R
.
id
.
tb_title
);
sdv_head
=
findViewById
(
R
.
id
.
sdv_head
);
tv_sex
=
findViewById
(
R
.
id
.
tv_sex
);
et_nick
=
findViewById
(
R
.
id
.
et_nick
);
rcb_submit
=
findViewById
(
R
.
id
.
rcb_submit
);
sdv_head
.
setOnClickListener
(
this
);
tv_sex
.
setOnClickListener
(
this
);
rcb_submit
.
setOnClickListener
(
this
);
icon
=
getIntent
().
getStringExtra
(
"icon"
);
name
=
getIntent
().
getStringExtra
(
"name"
);
sex
=
getIntent
().
getStringExtra
(
"sex"
);
type
=
getIntent
().
getIntExtra
(
"type"
,
0
);
isFromSplash
=
getIntent
().
getBooleanExtra
(
"isFromSplash"
,
false
);
isRegisterFromRedPacket
=
getIntent
().
getBooleanExtra
(
UserConstants
.
IS_REGISTER_FROM_PACKET
,
false
);
init
();
}
void
init
()
{
rxPermissions
=
new
RxPermissions
(
this
);
head_dir
=
Environment
.
getExternalStorageDirectory
().
getAbsolutePath
()
+
"/yidianling/img/head_img/"
;
if
(!
TextUtils
.
isEmpty
(
icon
))
{
GlideApp
.
with
(
FillInfoActivity
.
this
)
.
load
(
icon
)
.
fitCenter
()
.
error
(
R
.
drawable
.
user_regist_photo
)
.
into
(
sdv_head
);
}
if
(!
TextUtils
.
isEmpty
(
name
))
{
et_nick
.
setText
(
name
);
}
if
(!
TextUtils
.
isEmpty
(
sex
))
{
if
(
sex
.
equals
(
"1"
))
{
tv_sex
.
setText
(
"男"
);
gender
=
1
;
}
else
{
tv_sex
.
setText
(
"女"
);
gender
=
2
;
}
}
tb_title
.
setOnLeftTextClick
((
view
,
isActive
)
->
{
showExitDialog
();
});
}
@Override
public
void
onBackPressed
()
{
showExitDialog
();
}
private
void
showExitDialog
()
{
CommonDialog
.
create
(
this
)
.
setTitle
(
"提示"
)
.
setMessage
(
"确定退出完善资料?"
)
.
setLeftOnclick
(
"退出"
,
(
view1
)
->
{
if
(
isFromSplash
)
{
UserIn
.
INSTANCE
.
mainIntent
(
this
);
ActivityManager
.
Companion
.
finishActivity
(
InputPhoneActivity
.
class
);
ActivityManager
.
Companion
.
finishActivity
(
LoginActivity
.
class
);
finish
();
}
else
if
(
isRegisterFromRedPacket
)
{
EventBus
.
getDefault
().
post
(
new
RefreshWebEvent
());
UserIn
.
INSTANCE
.
mainIntent
(
this
);
finish
();
}
else
{
EventBus
.
getDefault
().
post
(
new
RefreshWebEvent
());
ActivityManager
.
Companion
.
finishActivity
(
InputPhoneActivity
.
class
);
ActivityManager
.
Companion
.
finishActivity
(
LoginActivity
.
class
);
finish
();
}
ToastHelper
.
Companion
.
show
(
R
.
string
.
platform_register_success
);
LogHelper
.
Companion
.
getInstance
().
writeLogSync
(
"完善资料页退出"
);
})
.
setRightClick
(
"继续"
,
(
view1
->
{
}))
.
show
();
}
private
static
final
int
REQUEST_CODE_FILL_CAMER_HEAD
=
21012
;
private
static
final
int
IMAGE_PICKER
=
32001
;
@Override
public
void
onClick
(
View
v
)
{
int
id
=
v
.
getId
();
if
(
id
==
R
.
id
.
sdv_head
)
{
YDLImagePicker
.
INSTANCE
.
startPicker
(
FillInfoActivity
.
this
,
new
OnResultCallbackListener
()
{
@Override
public
void
onResult
(
List
<
LocalMedia
>
list
)
{
if
(
list
.
isEmpty
())
{
return
;
}
for
(
int
i
=
0
;
i
<
list
.
size
();
i
++)
{
uploadImage
(
list
.
get
(
0
).
getPath
(),
1002
);
}
}
@Override
public
void
onCancel
()
{
}
});
}
else
if
(
id
==
R
.
id
.
tv_sex
)
{
List
<
String
>
name
=
new
ArrayList
<
String
>();
name
.
add
(
"男"
);
name
.
add
(
"女"
);
ListNoCancelDialog
.
Builder
builders
=
new
ListNoCancelDialog
.
Builder
(
FillInfoActivity
.
this
,
name
,
0
);
builders
.
SetOnItemClickLister
(
new
ListNoCancelDialog
.
Builder
.
OnItemClickLister
()
{
@Override
public
void
onItemClick
(
Dialog
dialog
,
View
view
,
int
position
)
{
switch
(
position
)
{
case
0
:
tv_sex
.
setText
(
"男"
);
gender
=
1
;
dialog
.
dismiss
();
break
;
case
1
:
tv_sex
.
setText
(
"女"
);
gender
=
2
;
dialog
.
dismiss
();
break
;
}
}
@Override
public
void
onItemLongClick
(
Dialog
dialog
,
View
view
,
int
position
)
{
}
});
builders
.
create
().
show
();
}
else
if
(
id
==
R
.
id
.
rcb_submit
)
{
if
(
judge
())
{
setInfo
();
}
}
}
/**
* 调用系统拍照
*/
private
void
showCameraAction
(
int
type_code
,
String
file_path
)
{
File
file_dir
=
new
File
(
head_dir
);
if
(
file_dir
.
exists
())
{
RxFileTool
.
deleteFilesInDir
(
file_dir
);
}
file_dir
.
mkdirs
();
head_filec
=
new
File
(
file_path
);
final
Intent
intent
=
new
Intent
();
final
Intent
intent_camera
=
getPackageManager
()
.
getLaunchIntentForPackage
(
"com.android.camera"
);
if
(
intent_camera
!=
null
)
{
intent
.
setPackage
(
"com.android.camera"
);
}
intent
.
setAction
(
MediaStore
.
ACTION_IMAGE_CAPTURE
);
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N
)
{
intent
.
putExtra
(
"android.intent.extras.CAMERA_FACING"
,
Camera
.
CameraInfo
.
CAMERA_FACING_FRONT
);
// 调用前置摄像头
intent
.
putExtra
(
"autofocus"
,
true
);
// 自动对焦
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
Uri
.
fromFile
(
head_filec
));
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
JPEG
.
toString
());
startActivityForResult
(
intent
,
type_code
);
}
else
{
try
{
head_filec
.
createNewFile
();
}
catch
(
IOException
e
)
{
e
.
printStackTrace
();
}
Uri
uri
=
RxFileTool
.
getImageContentUri
(
FillInfoActivity
.
this
,
new
File
(
file_path
));
intent
.
putExtra
(
"android.intent.extras.CAMERA_FACING"
,
Camera
.
CameraInfo
.
CAMERA_FACING_FRONT
);
// 调用前置摄像头
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
uri
);
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
JPEG
.
toString
());
intent
.
putExtra
(
"autofocus"
,
true
);
// 自动对焦
startActivityForResult
(
intent
,
type_code
);
}
}
private
void
setInfo
()
{
showProgressDialog
(
""
);
updateInfo
(
"gender"
,
gender
+
""
);
}
@Override
protected
void
onResume
()
{
super
.
onResume
();
if
(
LoginHelper
.
isRegister
)
{
UserIn
.
INSTANCE
.
setChattingAccountAll
();
}
}
@Override
protected
void
onPause
()
{
super
.
onPause
();
if
(
LoginHelper
.
isRegister
)
{
UserIn
.
INSTANCE
.
setChattingAccountNone
();
}
}
private
void
updateInfo
(
String
changType
,
String
value
)
{
UserHttp
userHttp
=
UserHttpImpl
.
Companion
.
getInstance
();
userHttp
.
setUserInfo
(
new
UserInfoParam
(
changType
,
value
))
.
subscribeOn
(
Schedulers
.
io
())
.
compose
(
RxUtils
.
resultData
())
.
flatMap
(
o
->{
return
userHttp
.
setUserInfo
(
new
UserInfoParam
(
"nickName"
,
et_nick
.
getText
().
toString
()))
.
compose
(
RxUtils
.
resultData
());
})
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(
this
::
dismissProgressDialog
)
.
subscribe
(
o
->
{
UserResponseBean
userInfo
=
UserHelper
.
INSTANCE
.
getUserInfo
();
if
(
userInfo
!=
null
)
{
userInfo
.
getUserInfo
().
setHead
(
head
);
userInfo
.
getUserInfo
().
setGender
(
gender
);
userInfo
.
getUserInfo
().
setNick_name
(
et_nick
.
getText
().
toString
());
}
if
(
isFromSplash
)
{
UserIn
.
INSTANCE
.
mainIntent
(
this
);
ActivityManager
.
Companion
.
finishActivity
(
InputPhoneActivity
.
class
);
ActivityManager
.
Companion
.
finishActivity
(
LoginActivity
.
class
);
finish
();
}
else
if
(
isRegisterFromRedPacket
)
{
EventBus
.
getDefault
().
post
(
new
RefreshWebEvent
());
UserIn
.
INSTANCE
.
mainIntent
(
this
);
finish
();
}
else
{
EventBus
.
getDefault
().
post
(
new
RefreshWebEvent
());
ActivityManager
.
Companion
.
finishActivity
(
InputPhoneActivity
.
class
);
ActivityManager
.
Companion
.
finishActivity
(
LoginActivity
.
class
);
finish
();
}
ToastHelper
.
Companion
.
show
(
R
.
string
.
platform_register_success
);
LogHelper
.
Companion
.
getInstance
().
writeLogSync
(
"完善资料成功"
);
},
new
ThrowableConsumer
()
{
@Override
public
void
accept
(
@NotNull
String
msg
)
{
ToastHelper
.
Companion
.
show
(
msg
);
LogHelper
.
Companion
.
getInstance
().
writeLogSync
(
String
.
format
(
"完善资料失败%s"
,
msg
));
}
});
}
private
boolean
judge
()
{
if
(!
isSelected
&&
TextUtils
.
isEmpty
(
icon
))
{
ToastHelper
.
Companion
.
show
(
"选个头像吧"
);
return
false
;
}
if
(
gender
==
-
1
)
{
ToastHelper
.
Companion
.
show
(
"设置下性别哦"
);
return
false
;
}
if
(
TextUtils
.
isEmpty
(
et_nick
.
getText
().
toString
()))
{
ToastHelper
.
Companion
.
show
(
"大侠,请留个名"
);
return
false
;
}
if
(
TextUtils
.
isEmpty
(
et_nick
.
getText
().
toString
()))
{
ToastHelper
.
Companion
.
show
(
"昵称最多5个字哦"
);
return
false
;
}
return
true
;
}
private
static
final
int
REQUEST_CODE_CUT
=
21003
;
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
resultCode
==
RESULT_OK
)
{
switch
(
requestCode
)
{
case
REQUEST_CODE_FILL_CAMER_HEAD:
imgUri
=
null
;
if
(
Build
.
VERSION
.
SDK_INT
<
Build
.
VERSION_CODES
.
N
)
{
if
(
head_filec
.
exists
())
{
startPhotoZoom
(
Uri
.
fromFile
(
head_filec
));
}
}
else
{
Uri
uri
=
RxFileTool
.
getImageContentUri
(
FillInfoActivity
.
this
,
head_filec
);
if
(
uri
!=
null
)
{
startPhotoZoom
(
uri
);
}
}
break
;
case
REQUEST_CODE_CUT:
if
(
imgUri
!=
null
)
{
String
path
=
RxFileTool
.
getPathFromUri
(
this
,
imgUri
);
Bitmap
bitmap
=
BitmapFactory
.
decodeFile
(
path
);
bitmap
=
RxImageTool
.
compressByQuality
(
bitmap
,
200
);
RxImageTool
.
save
(
bitmap
,
path
,
Bitmap
.
CompressFormat
.
PNG
);
File
out_file
=
new
File
(
path
);
uploadImage
(
out_file
.
getAbsolutePath
(),
1002
);
imgUri
=
null
;
}
break
;
}
}
}
/**
* 裁剪图片方法实现
*/
public
void
startPhotoZoom
(
Uri
uri
)
{
Intent
intent
=
new
Intent
(
"com.android.camera.action.CROP"
);
intent
.
setDataAndType
(
uri
,
"image/*"
);
// 设置裁剪
intent
.
putExtra
(
"crop"
,
"true"
);
// 图片拉伸,就不会出现黑框了
intent
.
putExtra
(
"scaleUpIfNeeded"
,
true
);
//宽高的比例
intent
.
putExtra
(
"aspectX"
,
1
);
intent
.
putExtra
(
"aspectY"
,
1
);
//裁剪图片宽高
intent
.
putExtra
(
"outputX"
,
200
);
intent
.
putExtra
(
"outputY"
,
200
);
if
(
imgUri
!=
null
)
{
// 输出路径
RxFileTool
.
isFileExists
(
head_dir
);
imgUri
=
Uri
.
fromFile
(
new
File
(
head_dir
+
System
.
currentTimeMillis
()
+
"my_head1.jpg"
));
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
imgUri
);
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
PNG
.
toString
());
// return-data=true传递的为缩略图,小米手机默认传递大图,所以会导致onActivityResult调用失败
intent
.
putExtra
(
"return-data"
,
false
);
// 是否需要人脸识别
// intent.putExtra("noFaceDetection", false);
startActivityForResult
(
intent
,
REQUEST_CODE_CUT
);
}
else
{
File
bigfile
=
new
File
(
head_path
);
imgUri
=
Uri
.
fromFile
(
bigfile
);
intent
.
putExtra
(
MediaStore
.
EXTRA_OUTPUT
,
imgUri
);
intent
.
putExtra
(
"outputFormat"
,
Bitmap
.
CompressFormat
.
PNG
.
toString
());
// return-data=true传递的为缩略图,小米手机默认传递大图,所以会导致onActivityResult调用失败
intent
.
putExtra
(
"return-data"
,
false
);
// 是否需要人脸识别
intent
.
putExtra
(
"noFaceDetection"
,
false
);
startActivityForResult
(
intent
,
REQUEST_CODE_CUT
);
}
}
/**
* 上传图片
*/
void
uploadImage
(
final
String
path
,
final
int
requestCode
)
{
UserHttp
userHttp
=
UserHttpImpl
.
Companion
.
getInstance
();
File
outputFile
=
FileUtils
.
INSTANCE
.
getFileByUri
(
FillInfoActivity
.
this
,
path
);
userHttp
.
uploadHead
(
new
HeadParam
(
outputFile
))
.
compose
(
RxUtils
.
resultData
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doOnSubscribe
(
disposable
->
{
dismissProgressDialog
();
GlideApp
.
with
(
FillInfoActivity
.
this
).
load
(
R
.
drawable
.
user_loading2
).
into
(
sdv_head
);
})
.
subscribe
(
o
->
{
Map
map
=
(
Map
)
o
;
String
head_url
=
(
String
)
map
.
get
(
"url"
);
isSelected
=
true
;
GlideApp
.
with
(
FillInfoActivity
.
this
)
.
load
(
path
)
.
fitCenter
()
.
error
(
R
.
drawable
.
user_regist_photo
)
.
into
(
sdv_head
);
head
=
head_url
;
},
new
ThrowableConsumer
()
{
@Override
public
void
accept
(
@NotNull
String
msg
)
{
ToastHelper
.
Companion
.
show
(
msg
);
}
});
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
}
}
m-user/src/main/java/com/yidianling/user/ui/LoginActivity.java
deleted
100644 → 0
View file @
f89108ee
package
com
.
yidianling
.
user
.
ui
;
import
android.content.Context
;
import
android.content.Intent
;
import
androidx.appcompat.app.AlertDialog
;
import
android.text.TextUtils
;
import
android.view.View
;
import
com.ydl.ydlcommon.base.BaseMvpActivity
;
import
com.ydl.ydlcommon.data.http.EncryptUtils
;
import
com.ydl.ydlcommon.utils.ActivityManager
;
;
import
com.ydl.ydlcommon.utils.log.LogHelper
;
import
com.ydl.ydlcommon.utils.remind.ToastHelper
;
import
com.ydl.ydlcommon.view.DeleteEditTextView
;
import
com.ydl.ydlcommon.view.JumpTextView
;
import
com.ydl.ydlcommon.view.RoundCornerButton
;
import
com.ydl.ydlcommon.view.TitleBar
;
import
com.yidianling.user.api.bean.UserResponseBean
;
import
com.yidianling.user.LoginContract
;
import
com.yidianling.user.LoginPresenter
;
import
com.yidianling.user.R
;
import
com.yidianling.user.UserConstants
;
import
com.yidianling.user.http.request.LoginParam
;
import
com.yidianling.user.route.UserIn
;
import
com.yidianling.user.safePrivate.FingerPrintCheckActivity
;
import
com.yidianling.user.safePrivate.FingerPrintUtil
;
import
com.yidianling.user.safePrivate.HandUnlockCheckActivity
;
import
org.jetbrains.annotations.NotNull
;
/**
* 手机登陆界面
*/
public
class
LoginActivity
extends
BaseMvpActivity
<
LoginContract
.
View
,
LoginContract
.
Presenter
>
implements
LoginContract
.
View
,
View
.
OnClickListener
{
private
String
defaultCode
=
"0086"
;
int
isSplash
;
TitleBar
tbTitle
;
DeleteEditTextView
tvPhone
;
DeleteEditTextView
tvPassword
;
RoundCornerButton
btnLogin
;
JumpTextView
tvCountry
;
private
boolean
isFromSplash
;
private
static
String
IS_SPLASH
=
"isSplash"
;
private
static
String
IS_FROM_SPLASH
=
"isFromSplash"
;
public
static
Intent
newIntent
(
Context
context
,
int
isSplash
,
boolean
isFromSplash
)
{
Intent
intent
=
new
Intent
(
context
,
LoginActivity
.
class
);
intent
.
putExtra
(
IS_SPLASH
,
isSplash
);
intent
.
putExtra
(
IS_FROM_SPLASH
,
isFromSplash
);
return
intent
;
}
@Override
protected
int
layoutResId
()
{
return
R
.
layout
.
user_activity_login
;
}
@Override
protected
void
initDataAndEvent
()
{
LogHelper
.
Companion
.
getInstance
().
writeLogSync
(
"登录界面创建"
);
tbTitle
=
findViewById
(
R
.
id
.
tb_title
);
tvPhone
=
findViewById
(
R
.
id
.
detv_phone
);
tvPassword
=
findViewById
(
R
.
id
.
detv_password
);
btnLogin
=
findViewById
(
R
.
id
.
rcb_login
);
tvCountry
=
findViewById
(
R
.
id
.
jtv_country
);
tvCountry
.
setOnClickListener
(
this
);
findViewById
(
R
.
id
.
sms_fast_login
).
setOnClickListener
(
this
);
btnLogin
.
setOnClickListener
(
this
);
findViewById
(
R
.
id
.
register
).
setOnClickListener
(
this
);
isSplash
=
getIntent
().
getIntExtra
(
IS_SPLASH
,
0
);
isFromSplash
=
getIntent
().
getBooleanExtra
(
IS_FROM_SPLASH
,
false
);
init
();
}
@NotNull
@Override
public
LoginContract
.
Presenter
createPresenter
()
{
return
new
LoginPresenter
(
this
);
}
void
init
()
{
if
(
isSplash
==
-
1
)
{
//启动app进入,无取消
tbTitle
.
setmLeftText
(
""
);
tbTitle
.
setOnLeftTextClick
((
view
,
isActive
)
->
{
});
}
else
{
//推出帐号进入的login,有取消
tbTitle
.
setOnLeftTextClick
((
view
,
isActive
)
->
LoginActivity
.
this
.
finish
());
}
}
@Override
public
void
onClick
(
View
v
)
{
int
i
=
v
.
getId
();
if
(
i
==
R
.
id
.
sms_fast_login
)
{
InputPhoneActivity
.
start
(
this
,
UserConstants
.
SIGNIN_ACTION
,
tvPhone
.
getText
().
toString
(),
isFromSplash
);
}
else
if
(
i
==
R
.
id
.
rcb_login
)
{
login
();
}
else
if
(
i
==
R
.
id
.
register
)
{
InputPhoneActivity
.
start
(
this
,
UserConstants
.
REGISTER_ACTION
,
null
,
isFromSplash
);
}
else
if
(
i
==
R
.
id
.
jtv_country
)
{
startActivityForResult
(
new
Intent
(
this
,
CountryListActivity
.
class
),
44
);
}
}
private
void
login
()
{
final
String
phone
=
tvPhone
.
getText
().
toString
();
if
(
TextUtils
.
isEmpty
(
phone
))
{
ToastHelper
.
Companion
.
show
(
"请输入正确的手机号"
);
return
;
}
final
String
password
=
EncryptUtils
.
encryptMD5ToString
(
tvPassword
.
getText
().
toString
());
getPresenter
().
login
(
new
LoginParam
(
defaultCode
,
phone
,
password
,
1
,
null
));
}
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
);
if
(
requestCode
==
44
&&
resultCode
==
45
)
{
defaultCode
=
data
.
getStringExtra
(
"code"
);
String
defaultCountry
=
data
.
getStringExtra
(
"name"
);
tvCountry
.
setLeftText
(
String
.
format
(
"%s +%s"
,
defaultCountry
,
defaultCode
));
}
}
@Override
public
void
startLogin
()
{
btnLogin
.
disableButton
();
showProgressDialog
(
""
);
}
@Override
public
void
loginSuccess
(
UserResponseBean
userInfo
)
{
finishFinger
();
int
size
=
ActivityManager
.
Companion
.
getActivitySize
();
if
(
size
==
2
||
size
==
1
)
{
ActivityManager
.
Companion
.
finishAll
();
UserIn
.
INSTANCE
.
mainIntent
(
this
);
}
else
{
finish
();
}
}
//关闭手势解锁页面与指纹解锁页面
private
void
finishFinger
()
{
ActivityManager
.
Companion
.
getInstance
().
finishActivity
(
FingerPrintCheckActivity
.
class
);
ActivityManager
.
Companion
.
getInstance
().
finishActivity
(
HandUnlockCheckActivity
.
class
);
FingerPrintUtil
.
Companion
.
instance
().
setCurrentUnLockTime
(
System
.
currentTimeMillis
());
}
@Override
public
void
loginFail
(
@NotNull
String
msg
)
{
ToastHelper
.
Companion
.
show
(
msg
);
}
@Override
public
void
onLoginStop
()
{
dismissProgressDialog
();
btnLogin
.
enableButton
();
}
@Override
public
void
showErrorUserType
()
{
dismissProgressDialog
();
AlertDialog
.
Builder
builder
=
new
AlertDialog
.
Builder
(
this
);
builder
.
setTitle
(
"请注意"
);
builder
.
setMessage
(
"专家账号,请下载壹点灵专家版app喔"
);
builder
.
setPositiveButton
(
"确定"
,
(
dialog
,
which
)
->
dialog
.
dismiss
());
AlertDialog
alertDialog
=
builder
.
create
();
alertDialog
.
show
();
}
}
m-user/src/main/java/com/yidianling/user/ui/login/InputPassWordActivity.kt
View file @
782b4c3b
...
...
@@ -14,11 +14,13 @@ import androidx.core.content.ContextCompat
import
com.ydl.ydlcommon.base.BaseMvpActivity
import
com.ydl.ydlcommon.utils.ActivityManager
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.view.dialog.CommonDialog
import
com.yidianling.common.tools.RxKeyboardTool
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.user.LoginUtils
import
com.yidianling.user.R
import
com.yidianling.user.extension.YDL_MEDICAL_LOGIN
import
com.yidianling.user.ui.login.contract.IInputPassWordContract
import
com.yidianling.user.ui.login.presenter.InputPassWordPresenterImpl
import
kotlinx.android.synthetic.main.user_activity_input_password_new.*
...
...
@@ -99,6 +101,9 @@ class InputPassWordActivity : BaseMvpActivity<IInputPassWordContract.View,IInput
setClickEvent
()
showSoftKeyBord
()
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_password_page_visit"
,
""
)
}
private
fun
setWindowStatusBarColor
()
{
...
...
@@ -125,7 +130,7 @@ class InputPassWordActivity : BaseMvpActivity<IInputPassWordContract.View,IInput
STATUS_SET_PWD
->
{
//设置密码
//设置新密码
tv_forget
.
visibility
=
View
.
GONE
tv_
msm
_login
.
visibility
=
View
.
GONE
tv_
sms
_login
.
visibility
=
View
.
GONE
// tv_setPass2.visibility = View.VISIBLE
tv_password_orSet_title
.
text
=
"设置新密码"
et_input_password
.
hint
=
"输入新密码"
...
...
@@ -202,6 +207,8 @@ class InputPassWordActivity : BaseMvpActivity<IInputPassWordContract.View,IInput
//密码登录
userLoginByPassword
()
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_password_login_click"
,
""
)
}
else
{
//设置新密码
...
...
@@ -222,7 +229,7 @@ class InputPassWordActivity : BaseMvpActivity<IInputPassWordContract.View,IInput
//切换密码显示、不显示
switchPwdShowType
()
}
tv_
msm
_login
.
setOnClickListener
{
tv_
sms
_login
.
setOnClickListener
{
//短信登录
VerificationCodeActivity
.
start
(
...
...
@@ -234,6 +241,9 @@ class InputPassWordActivity : BaseMvpActivity<IInputPassWordContract.View,IInput
true
)
overridePendingTransition
(
0
,
0
)
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_password_sms_click"
,
""
)
}
tv_forget
.
setOnClickListener
{
...
...
m-user/src/main/java/com/yidianling/user/ui/login/RegisterAndLoginActivity.kt
View file @
782b4c3b
...
...
@@ -26,6 +26,7 @@ import com.ydl.ydlcommon.utils.ActivityManager
import
com.ydl.ydlcommon.utils.JPushUtils
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.YDLCacheUtils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.ydl.ydlcommon.view.dialog.CommonDialog
import
com.yidianling.common.tools.LogUtil
import
com.yidianling.common.tools.RxAppTool
...
...
@@ -34,7 +35,7 @@ import com.yidianling.common.tools.ToastUtil
import
com.yidianling.user.LoginUtils
import
com.yidianling.user.R
import
com.yidianling.user.UserHelper.isLogin
import
com.yidianling.user.
http.LoginApiRequestUtil.Companion.autoLogin
import
com.yidianling.user.
extension.YDL_MEDICAL_LOGIN
import
com.yidianling.user.http.request.PhoneLoginAutoParam
import
com.yidianling.user.http.response.ChcekPhoneResponeBean
import
com.yidianling.user.route.UserIn
...
...
@@ -124,6 +125,9 @@ class RegisterAndLoginActivity : BaseMvpActivity<ILoginContract.View, ILoginCont
initAuthHelper
()
initView
()
setClickEvent
()
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_page_visit"
,
""
)
}
private
fun
setWindowStatusBarColor
()
{
...
...
@@ -281,6 +285,8 @@ class RegisterAndLoginActivity : BaseMvpActivity<ILoginContract.View, ILoginCont
isAgreeProtocol
=
!
isAgreeProtocol
if
(
isAgreeProtocol
)
{
iv_select_protocol
.
setImageResource
(
R
.
drawable
.
user_login_protocol_selected_new
)
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_agreement_check"
,
""
)
}
else
{
iv_select_protocol
.
setImageResource
(
R
.
drawable
.
user_login_protocol_unselected_new
)
}
...
...
@@ -292,21 +298,22 @@ class RegisterAndLoginActivity : BaseMvpActivity<ILoginContract.View, ILoginCont
intent
.
putExtra
(
"userCountryCode"
,
countryCode
)
startActivityForResult
(
intent
,
REQUEST_CODE_COUNTRY
)
overridePendingTransition
(
R
.
anim
.
platform_slide_in_from_bottom
,
R
.
anim
.
user_slide_null
)
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_location_click"
,
""
)
}
//下一步
ll_next
.
setOnClickListener
{
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_next_click"
,
""
)
if
(
iv_select_protocol
.
visibility
==
View
.
VISIBLE
&&
!
isAgreeProtocol
)
{
ToastUtil
.
toastShort
(
"请阅读并勾选页面协议"
)
return
@setOnClickListener
}
if
(
checkPhone
())
{
LogUtil
.
e
(
"进入checkPhone()"
)
mPresenter
.
checkPhoneStatus
(
userPhoneNumber
!!
,
countryCode
!!
,
false
,
HttpConfig
.
Companion
.
GET_GATEWAY_BASE_URL
)
}
else
{
}
}
...
...
@@ -322,6 +329,9 @@ class RegisterAndLoginActivity : BaseMvpActivity<ILoginContract.View, ILoginCont
iv_del
.
isEnabled
=
true
}
updateLoginButtonStatus
()
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_input_click"
,
""
)
}
//删除按钮
iv_del
.
setOnClickListener
{
...
...
m-user/src/main/java/com/yidianling/user/ui/login/VerificationCodeActivity.kt
View file @
782b4c3b
...
...
@@ -16,11 +16,13 @@ import com.ydl.ydlcommon.base.BaseMvpActivity
import
com.ydl.ydlcommon.utils.ActivityManager
import
com.ydl.ydlcommon.utils.StatusBarUtils
import
com.ydl.ydlcommon.utils.YDLCacheUtils
import
com.ydl.ydlcommon.utils.actionutil.ActionCountUtils
import
com.yidianling.common.tools.RxKeyboardTool
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.user.LoginUtils
import
com.yidianling.user.R
import
com.yidianling.user.UserHelper
import
com.yidianling.user.extension.YDL_MEDICAL_LOGIN
import
com.yidianling.user.http.request.BindPhoneJavaParam
import
com.yidianling.user.ui.login.contract.IVerificationCodeContract
import
com.yidianling.user.ui.login.presenter.VerificationCodePresenterImpl
...
...
@@ -129,6 +131,9 @@ class VerificationCodeActivity :
initView
()
setClickEvent
()
sendMsgCode
()
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_sms_page_visit"
,
""
)
}
private
fun
setWindowStatusBarColor
()
{
...
...
@@ -238,6 +243,9 @@ class VerificationCodeActivity :
}
}
}
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_sms_password_click"
,
""
)
}
...
...
@@ -249,7 +257,7 @@ class VerificationCodeActivity :
val
msgCode
=
verify_code
.
text
.
toString
()
if
(
codeType
==
STATUS_LOGIN_BY_CODE
)
{
//验证码登录界面
if
(
isBindPhone
)
{
va
r
param
=
BindPhoneJavaParam
(
va
l
param
=
BindPhoneJavaParam
(
""
,
countryCode
!!
,
userPhoneNumber
!!
,
...
...
@@ -289,8 +297,8 @@ class VerificationCodeActivity :
private
fun
sendMsgCode
()
{
if
(
codeType
==
STATUS_LOGIN_BY_CODE
)
{
//验证码登录界面
//获取上次发送验证码时间
va
r
lastTimeStr
=
YDLCacheUtils
.
getCodeTime
(
userPhoneNumber
!!
)
va
r
duration
=
(
System
.
currentTimeMillis
()
-
lastTimeStr
.
toLong
())
/
1000
va
l
lastTimeStr
=
YDLCacheUtils
.
getCodeTime
(
userPhoneNumber
!!
)
va
l
duration
=
(
System
.
currentTimeMillis
()
-
lastTimeStr
.
toLong
())
/
1000
if
(
duration
>
60
)
{
mPresenter
.
sendLoginCode
(
userPhoneNumber
!!
,
countryCode
!!
)
}
else
{
...
...
@@ -298,8 +306,8 @@ class VerificationCodeActivity :
}
}
else
{
//忘记密码界面
//获取上次发送验证码时间
va
r
lastTimeStr
=
YDLCacheUtils
.
getResetCodeTime
(
userPhoneNumber
!!
)
va
r
duration
=
(
System
.
currentTimeMillis
()
-
lastTimeStr
.
toLong
())
/
1000
va
l
lastTimeStr
=
YDLCacheUtils
.
getResetCodeTime
(
userPhoneNumber
!!
)
va
l
duration
=
(
System
.
currentTimeMillis
()
-
lastTimeStr
.
toLong
())
/
1000
if
(
duration
>
60
)
{
mPresenter
.
sendResetCode
(
userPhoneNumber
!!
,
countryCode
!!
)
}
else
{
...
...
@@ -411,6 +419,8 @@ class VerificationCodeActivity :
when
(
v
?.
id
){
R
.
id
.
not_get_code
->{
showKeFuDialog
()
// 埋点
ActionCountUtils
.
baiDuCountSign1
(
YDL_MEDICAL_LOGIN
,
"other_method_sms_no_sms_click"
,
""
)
}
}
}
...
...
m-user/src/main/res/layout/user_activity_fill_info.xml
deleted
100644 → 0
View file @
f89108ee
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:gravity=
"center_horizontal"
android:orientation=
"vertical"
>
<com.ydl.ydlcommon.view.TitleBar
android:id=
"@+id/tb_title"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/title_bar_height"
app:pa_left_text=
"退出"
android:background=
"@color/platform_white"
app:pa_title_text=
"完善资料"
/>
<com.ydl.ydlcommon.view.CircleImageView
android:id=
"@+id/sdv_head"
android:layout_width=
"60dp"
android:layout_height=
"60dp"
android:layout_marginTop=
"30dp"
android:src=
"@drawable/user_regist_photo"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/user_divide_line_stroke_width"
android:layout_marginTop=
"36dp"
android:background=
"@color/platform_divide_color"
/>
<TextView
android:id=
"@+id/tv_sex"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/platform_white"
android:gravity=
"center"
android:hint=
"@string/platform_please_select_gender"
android:padding=
"@dimen/platform_default_dis_size_huge"
android:textColorHint=
"#777777"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/user_divide_line_stroke_width"
android:background=
"@color/platform_divide_color"
/>
<EditText
android:id=
"@+id/et_nick"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/platform_white"
android:gravity=
"center"
android:hint=
"@string/platform_nickname_hint"
android:maxLength=
"10"
android:padding=
"@dimen/platform_default_dis_size_huge"
android:singleLine=
"true"
android:textColorHint=
"#777777"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/user_divide_line_stroke_width"
android:background=
"@color/platform_divide_color"
/>
<com.ydl.ydlcommon.view.RoundCornerButton
android:id=
"@+id/rcb_submit"
style=
"?android:attr/borderlessButtonStyle"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/platform_default_dis_size_big"
android:layout_marginRight=
"@dimen/platform_default_dis_size_big"
android:layout_marginTop=
"@dimen/platform_default_dis_size_huge"
android:text=
"@string/platform_finish"
android:textColor=
"@color/platform_white"
android:textSize=
"@dimen/platform_default_text_size_big"
app:pa_round_btn_active_bg=
"@color/platform_white"
app:pa_round_btn_bg=
"@color/platform_main_theme"
app:pa_round_btn_radio_size=
"5dp"
/>
</LinearLayout>
m-user/src/main/res/layout/user_activity_input_password_new.xml
View file @
782b4c3b
...
...
@@ -77,7 +77,7 @@
app:layout_constraintTop_toBottomOf=
"@id/view_lin"
/>
<TextView
android:id=
"@+id/tv_
msm
_login"
android:id=
"@+id/tv_
sms
_login"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"@dimen/platform_dp_12"
...
...
@@ -93,9 +93,9 @@
android:layout_height=
"wrap_content"
android:text=
"忘记密码?"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"@id/tv_
msm
_login"
app:layout_constraintBottom_toBottomOf=
"@id/tv_
sms
_login"
app:layout_constraintEnd_toEndOf=
"@id/view_lin"
app:layout_constraintTop_toTopOf=
"@id/tv_
msm
_login"
/>
app:layout_constraintTop_toTopOf=
"@id/tv_
sms
_login"
/>
<TextView
android:id=
"@+id/login_password"
...
...
@@ -114,6 +114,6 @@
android:textSize=
"17sp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_
msm
_login"
app:layout_constraintTop_toBottomOf=
"@id/tv_
sms
_login"
app:layout_goneMarginTop=
"@dimen/platform_dp_25"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
m-user/src/main/res/layout/user_activity_login.xml
deleted
100644 → 0
View file @
f89108ee
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
<LinearLayout
android:id=
"@+id/ll_top"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<com.ydl.ydlcommon.view.TitleBar
android:id=
"@+id/tb_title"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/title_bar_height"
app:pa_left_text=
"取消"
app:pa_title_text=
"登录"
/>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/user_divide_line_stroke_width"
android:layout_marginTop=
"@dimen/platform_default_dis_size_huge"
android:background=
"@color/platform_divide_color"
/>
<com.ydl.ydlcommon.view.JumpTextView
android:id=
"@+id/jtv_country"
android:layout_width=
"match_parent"
android:layout_height=
"45dp"
android:background=
"@color/platform_white"
app:pa_jump_tv_icon=
"@drawable/platform_icon_country"
app:pa_jump_tv_left_text=
"中国 +0086"
app:pa_jump_tv_left_icon_width=
"20dp"
app:pa_jump_tv_left_icon_hight=
"20dp"
/>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/user_divide_line_stroke_width"
android:background=
"@color/platform_divide_color"
/>
<androidx.legacy.widget.Space
android:layout_width=
"match_parent"
android:layout_height=
"10dp"
/>
<com.ydl.ydlcommon.view.DeleteEditTextView
android:id=
"@+id/detv_phone"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/platform_white"
android:drawableLeft=
"@drawable/user_phone"
android:drawablePadding=
"@dimen/platform_default_dis_size_small"
android:hint=
"手机号"
android:inputType=
"number"
android:paddingTop=
"@dimen/platform_default_dis_size_big"
android:paddingRight=
"@dimen/platform_default_dis_size_big"
android:paddingBottom=
"@dimen/platform_default_dis_size_big"
android:paddingLeft=
"17dp"
android:text=
""
android:textColorHint=
"@color/platform_default_text_color_hint"
/>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/user_divide_line_stroke_width"
android:background=
"@color/platform_divide_color"
/>
<com.ydl.ydlcommon.view.DeleteEditTextView
android:id=
"@+id/detv_password"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/platform_white"
android:drawableLeft=
"@drawable/user_lock"
android:drawablePadding=
"@dimen/platform_default_dis_size_small"
android:hint=
"密码"
android:inputType=
"textPassword"
android:paddingTop=
"@dimen/platform_default_dis_size_big"
android:paddingRight=
"@dimen/platform_default_dis_size_big"
android:paddingBottom=
"@dimen/platform_default_dis_size_big"
android:paddingLeft=
"17dp"
android:text=
""
android:textColorHint=
"@color/platform_default_text_color_hint"
/>
<ImageView
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/user_divide_line_stroke_width"
android:background=
"@color/platform_divide_color"
/>
<com.ydl.ydlcommon.view.RoundCornerButton
android:id=
"@+id/rcb_login"
style=
"?android:attr/borderlessButtonStyle"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/platform_default_dis_size_big"
android:layout_marginRight=
"@dimen/platform_default_dis_size_big"
android:layout_marginTop=
"@dimen/platform_default_dis_size_huge"
android:text=
"登录"
android:textColor=
"@color/platform_white"
android:textSize=
"@dimen/platform_default_text_size_big"
app:pa_round_btn_active_bg=
"@color/platform_white"
app:pa_round_btn_bg=
"@color/platform_main_theme"
app:pa_round_btn_radio_size=
"5dp"
/>
</LinearLayout>
<RelativeLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_below=
"@+id/ll_top"
android:orientation=
"horizontal"
>
<TextView
android:id=
"@+id/register"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentLeft=
"true"
android:layout_alignParentStart=
"true"
android:layout_alignParentTop=
"true"
android:paddingBottom=
"@dimen/platform_default_dis_size"
android:paddingLeft=
"@dimen/platform_default_dis_size"
android:paddingRight=
"@dimen/platform_default_dis_size_big"
android:paddingTop=
"@dimen/platform_default_dis_size_huge"
android:text=
"新手注册"
android:textColor=
"@color/platform_main_theme"
android:textSize=
"17sp"
/>
<TextView
android:id=
"@+id/sms_fast_login"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_alignParentRight=
"true"
android:paddingBottom=
"@dimen/platform_default_dis_size"
android:paddingLeft=
"@dimen/platform_default_dis_size"
android:paddingRight=
"@dimen/platform_default_dis_size_big"
android:paddingTop=
"@dimen/platform_default_dis_size_huge"
android:text=
"短信快捷登录"
android:textColor=
"@color/platform_main_theme"
android:textSize=
"17sp"
/>
</RelativeLayout>
</RelativeLayout>
m-user/src/main/res/layout/user_activity_register_and_login_medical.xml
View file @
782b4c3b
...
...
@@ -76,7 +76,7 @@
android:textSize=
"13sp"
android:visibility=
"gone"
app:layout_constraintStart_toStartOf=
"@id/tv_login_title"
app:layout_constraintTop_toBottomOf=
"@id/tv_login_title"
></TextView
>
app:layout_constraintTop_toBottomOf=
"@id/tv_login_title"
/
>
<TextView
android:id=
"@+id/skip_bind"
...
...
@@ -87,7 +87,7 @@
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"@id/img_reg_back"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"@id/img_reg_back"
></TextView
>
app:layout_constraintTop_toTopOf=
"@id/img_reg_back"
/
>
<TextView
android:id=
"@+id/country_code"
...
...
m-user/src/main/res/layout/user_activity_verification_code_new.xml
View file @
782b4c3b
...
...
@@ -4,8 +4,8 @@
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/white"
>
android:background=
"@color/white"
>
<ImageView
android:id=
"@+id/img_reg_back"
android:layout_width=
"wrap_content"
...
...
@@ -20,12 +20,12 @@
android:id=
"@+id/tv_login_title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"-10dp"
android:layout_marginTop=
"@dimen/platform_dp_40"
android:text=
"输入验证码"
android:textColor=
"@color/pay_color_242424"
android:textSize=
"22sp"
app:layout_constraintLeft_toRightOf=
"@id/img_reg_back"
android:layout_marginStart=
"-10dp"
app:layout_constraintTop_toBottomOf=
"@id/img_reg_back"
/>
<TextView
...
...
@@ -60,13 +60,13 @@
android:cursorVisible=
"true"
android:focusable=
"true"
android:inputType=
"number"
android:paddingBottom=
"0dp"
android:paddingTop=
"0dp"
android:paddingBottom=
"0dp"
android:textSize=
"24sp"
app:User_fieldColor=
"@color/user_medical_blue"
app:User_highlightType=
"currentField"
app:User_isCursorEnabled=
"true"
app:User_noOfFields=
"4"
app:User_fieldColor=
"@color/user_medical_blue"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_phone"
...
...
@@ -76,27 +76,26 @@
android:id=
"@+id/login_password"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"@dimen/platform_dp_10"
android:layout_marginTop=
"@dimen/platform_dp_10"
android:text=
"密码登录"
android:textColor=
"@color/platform_color_666666"
android:textSize=
"13sp"
android:visibility=
"invisible"
app:layout_constraintStart_toStartOf=
"@id/verify_code"
android:layout_marginStart=
"@dimen/platform_dp_10"
app:layout_constraintTop_toBottomOf=
"@id/verify_code"
/>
<TextView
android:id=
"@+id/not_get_code"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"收不到验证码?"
android:textSize=
"13sp"
android:layout_marginEnd=
"5dp"
android:padding=
"@dimen/platform_dp_5"
android:
id=
"@+id/not_get_code
"
android:
text=
"收不到验证码?
"
android:textColor=
"@color/platform_color_666666"
android:textSize=
"13sp"
app:layout_constraintBottom_toBottomOf=
"@id/login_password"
app:layout_constraintRight_toRightOf=
"@id/verify_code"
app:layout_constraintTop_toTopOf=
"@id/login_password"
app:layout_constraintBottom_toBottomOf=
"@id/login_password"
android:layout_marginEnd=
"5dp"
app:layout_goneMarginTop=
"@dimen/platform_dp_15"
/>
app:layout_goneMarginTop=
"@dimen/platform_dp_15"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment