Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
ShenghuoquanBusiness
Project
Project
Details
Activity
Releases
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
bp
ShenghuoquanBusiness
Commits
2ba47487
Commit
2ba47487
authored
Jun 16, 2021
by
yinjiacheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update Activity finish改为XPage.pop
parent
1089c760
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
416 additions
and
420 deletions
+416
-420
FlashActivity.kt
...a/com/yidian/shenghuoquan/newscontent/ui/FlashActivity.kt
+66
-67
LoginLifeCircleActivity.kt
...an/shenghuoquan/newscontent/ui/LoginLifeCircleActivity.kt
+6
-7
LifeAccountAuthActivity.kt
...enghuoquan/newscontent/ui/auth/LifeAccountAuthActivity.kt
+23
-25
LifeAccountCreateActivity.kt
...ghuoquan/newscontent/ui/auth/LifeAccountCreateActivity.kt
+117
-117
LifeAccountIdentityActivity.kt
...uoquan/newscontent/ui/auth/LifeAccountIdentityActivity.kt
+69
-69
LifeAccountPersonalAuthActivity.kt
...an/newscontent/ui/auth/LifeAccountPersonalAuthActivity.kt
+2
-2
LifeAccountPersonalAuthCompleteActivity.kt
...ontent/ui/auth/LifeAccountPersonalAuthCompleteActivity.kt
+71
-71
LifeNumberActivity.kt
...an/shenghuoquan/newscontent/ui/auth/LifeNumberActivity.kt
+62
-62
No files found.
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/FlashActivity.kt
View file @
2ba47487
...
@@ -20,83 +20,82 @@ import com.yidian.xpage.XPageManager
...
@@ -20,83 +20,82 @@ import com.yidian.xpage.XPageManager
class
FlashActivity
:
BaseActivity
<
ActivityFlashBinding
>(),
IGetLifeAccountListCallback
{
class
FlashActivity
:
BaseActivity
<
ActivityFlashBinding
>(),
IGetLifeAccountListCallback
{
override
fun
createViewBinding
():
ActivityFlashBinding
{
override
fun
createViewBinding
():
ActivityFlashBinding
{
return
ActivityFlashBinding
.
inflate
(
layoutInflater
)
return
ActivityFlashBinding
.
inflate
(
layoutInflater
)
}
}
override
fun
getCurrentTheme
(
isNight
:
Boolean
):
Int
{
override
fun
getCurrentTheme
(
isNight
:
Boolean
):
Int
{
return
R
.
style
.
AppTheme
return
R
.
style
.
AppTheme
}
}
override
fun
getXPageName
():
String
{
override
fun
getXPageName
():
String
{
return
FLASH
return
FLASH
}
}
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
override
fun
onCreate
(
savedInstanceState
:
Bundle
?)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
getPermissions
()
getPermissions
()
}
private
fun
launcher
()
{
val
isAgree
=
Hawk
.
get
(
HawkConfig
.
ProtocolIsAgree
,
true
)
if
(
isAgree
)
{
val
loginStatus
=
Hawk
.
get
(
HawkConfig
.
LoginStatus
,
false
)
if
(
loginStatus
)
{
// 已登录 请求生活号列表
ApiService
.
getLifeAccountList
(
this
)
}
else
{
// 未登录 跳转登录
XPageManager
.
push
(
XRouterPathConstants
.
LOGIN_LIFE_CIRCLE
,
null
)
XPageManager
.
pop
(
null
)
}
}
else
{
// TODO: 6/12/21 协议dialog
}
}
}
private
fun
launcher
()
{
private
fun
getPermissions
()
{
val
isAgree
=
Hawk
.
get
(
HawkConfig
.
ProtocolIsAgree
,
true
)
RxPermissions
(
this
).
request
(
if
(
isAgree
)
{
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
val
loginStatus
=
Hawk
.
get
(
HawkConfig
.
LoginStatus
,
false
)
Manifest
.
permission
.
CAMERA
if
(
loginStatus
)
{
)
// 已登录 请求生活号列表
.
subscribe
{
ApiService
.
getLifeAccountList
(
this
)
if
(
it
)
{
}
else
{
launcher
()
// 未登录 跳转登录
XPageManager
.
push
(
XRouterPathConstants
.
LOGIN_LIFE_CIRCLE
,
null
)
finish
()
}
}
else
{
}
else
{
// TODO: 6/12/21 协议dialog
ToastUtil
.
showToast
(
this
,
"请在设置里同意相关权限"
)
}
}
}
}
}
private
fun
getPermissions
()
{
override
fun
getLifeAccountListSuccess
(
result
:
ArrayList
<
LifeAccountItemBean
.
Response
>?)
{
RxPermissions
(
this
).
request
(
when
(
result
?.
size
)
{
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
0
->
{
Manifest
.
permission
.
CAMERA
// 无生活号 进入认证流程
XPageManager
.
push
(
XRouterPathConstants
.
LIFE_ACCOUNT_AUTH
,
null
)
}
1
->
{
// 关联一个生活号 进入商户管理中心
XPageManager
.
push
(
XRouterPathConstants
.
MERCHANT_CENTER
,
hashMapOf
(
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
result
[
0
]),
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
false
)
)
)
)
.
subscribe
{
}
if
(
it
)
{
else
->
{
launcher
()
// 关联多个生活号 进入身份选择
}
else
{
XPageManager
.
push
(
ToastUtil
.
showToast
(
this
,
"请在设置里同意相关权限"
)
XRouterPathConstants
.
LIFE_ACCOUNT_IDENTITY
,
}
hashMapOf
(
Pair
(
LifeAccountIdentityActivity
.
EXTRA_LIFE_ACCOUNT_LIST
,
result
))
}
)
}
}
}
XPageManager
.
pop
(
null
)
}
override
fun
getLifeAccountListSuccess
(
result
:
ArrayList
<
LifeAccountItemBean
.
Response
>?)
{
override
fun
getLifeAccountListFailure
(
message
:
String
?)
{
when
(
result
?.
size
)
{
0
->
{
// 无生活号 进入认证流程
XPageManager
.
push
(
XRouterPathConstants
.
LIFE_ACCOUNT_AUTH
,
null
)
}
1
->
{
// 关联一个生活号 进入商户管理中心
XPageManager
.
push
(
XRouterPathConstants
.
MERCHANT_CENTER
,
hashMapOf
(
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
result
[
0
]),
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
false
)
)
)
}
else
->
{
// 关联多个生活号 进入身份选择
XPageManager
.
push
(
XRouterPathConstants
.
LIFE_ACCOUNT_IDENTITY
,
hashMapOf
(
Pair
(
LifeAccountIdentityActivity
.
EXTRA_LIFE_ACCOUNT_LIST
,
result
))
)
}
}
finish
()
}
override
fun
getLifeAccountListFailure
(
message
:
String
?)
{
}
// TODO: 6/12/21 处理请求失败情况
finish
()
}
}
}
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/LoginLifeCircleActivity.kt
View file @
2ba47487
package
com.yidian.shenghuoquan.newscontent.ui
package
com.yidian.shenghuoquan.newscontent.ui
import
android.os.Bundle
import
android.os.Bundle
import
android.view.View
import
com.orhanobut.hawk.Hawk
import
com.orhanobut.hawk.Hawk
import
com.yidian.common.AppConfig
import
com.yidian.common.AppConfig
import
com.yidian.common.HawkConfig
import
com.yidian.common.HawkConfig
...
@@ -10,7 +9,6 @@ import com.yidian.common.XRouterPathConstants.Companion.LOGIN_LIFE_CIRCLE
...
@@ -10,7 +9,6 @@ import com.yidian.common.XRouterPathConstants.Companion.LOGIN_LIFE_CIRCLE
import
com.yidian.common.base.BaseActivity
import
com.yidian.common.base.BaseActivity
import
com.yidian.common.extensions.hide
import
com.yidian.common.extensions.hide
import
com.yidian.common.extensions.show
import
com.yidian.common.extensions.show
import
com.yidian.common.extensions.toggleVisibility
import
com.yidian.common.http.HttpResult
import
com.yidian.common.http.HttpResult
import
com.yidian.common.widget.EditTextInputCallback
import
com.yidian.common.widget.EditTextInputCallback
import
com.yidian.common.widget.PhoneNumberTextWatcher
import
com.yidian.common.widget.PhoneNumberTextWatcher
...
@@ -167,8 +165,10 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>(), IGetLifeAc
...
@@ -167,8 +165,10 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>(), IGetLifeAc
// 关联一个生活号 进入商户管理中心
// 关联一个生活号 进入商户管理中心
XPageManager
.
push
(
XPageManager
.
push
(
XRouterPathConstants
.
MERCHANT_CENTER
,
XRouterPathConstants
.
MERCHANT_CENTER
,
hashMapOf
(
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
result
[
0
]),
hashMapOf
(
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
false
))
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
result
[
0
]),
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
false
)
)
)
)
}
}
else
->
{
else
->
{
...
@@ -179,12 +179,11 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>(), IGetLifeAc
...
@@ -179,12 +179,11 @@ class LoginLifeCircleActivity : BaseActivity<ActivityLoginBinding>(), IGetLifeAc
)
)
}
}
}
}
finish
(
)
XPageManager
.
pop
(
null
)
}
}
override
fun
getLifeAccountListFailure
(
message
:
String
?)
{
override
fun
getLifeAccountListFailure
(
message
:
String
?)
{
// TODO: 6/12/21 处理请求失败情况
finish
()
}
}
override
fun
sendSmsCodeCallBack
(
t
:
HttpResult
<
Any
?
>?)
{
override
fun
sendSmsCodeCallBack
(
t
:
HttpResult
<
Any
?
>?)
{
...
...
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeAccountAuthActivity.kt
View file @
2ba47487
...
@@ -21,7 +21,7 @@ import com.yidian.xpage.XPageManager
...
@@ -21,7 +21,7 @@ import com.yidian.xpage.XPageManager
* description: 生活号认证
* description: 生活号认证
*/
*/
class
LifeAccountAuthActivity
:
BaseActivity
<
ActivityLifeAccountAuthBinding
>(),
class
LifeAccountAuthActivity
:
BaseActivity
<
ActivityLifeAccountAuthBinding
>(),
View
.
OnClickListener
,
IAuthAuthenticationCallback
,
IAuthMerchantCheckCallback
{
View
.
OnClickListener
,
IAuthAuthenticationCallback
,
IAuthMerchantCheckCallback
{
override
fun
createViewBinding
():
ActivityLifeAccountAuthBinding
{
override
fun
createViewBinding
():
ActivityLifeAccountAuthBinding
{
return
ActivityLifeAccountAuthBinding
.
inflate
(
layoutInflater
)
return
ActivityLifeAccountAuthBinding
.
inflate
(
layoutInflater
)
...
@@ -95,31 +95,29 @@ class LifeAccountAuthActivity : BaseActivity<ActivityLifeAccountAuthBinding>(),
...
@@ -95,31 +95,29 @@ class LifeAccountAuthActivity : BaseActivity<ActivityLifeAccountAuthBinding>(),
XRouterPathConstants
.
LIFE_ACCOUNT_PERSONAL_AUTH
,
XRouterPathConstants
.
LIFE_ACCOUNT_PERSONAL_AUTH
,
hashMapOf
(
Pair
(
LifeAccountPersonalAuthActivity
.
EXTRA_AUTH_DATA
,
result
))
hashMapOf
(
Pair
(
LifeAccountPersonalAuthActivity
.
EXTRA_AUTH_DATA
,
result
))
)
)
finish
()
}
}
override
fun
authAuthenticationFailure
(
message
:
String
?)
{
override
fun
authAuthenticationFailure
(
message
:
String
?)
{
Log
.
e
(
Log
.
e
(
Constant
.
LIFE_ACCOUNT_AUTH_TAG
,
Constant
.
LIFE_ACCOUNT_AUTH_TAG
,
"request auth authentication failure, message: $message"
"request auth authentication failure, message: $message"
)
)
}
}
override
fun
authMerchantCheckSuccess
(
result
:
AuthMerchantCheckBean
.
Response
?)
{
override
fun
authMerchantCheckSuccess
(
result
:
AuthMerchantCheckBean
.
Response
?)
{
viewBind
.
viewPersonalAuth
.
isSelected
=
false
viewBind
.
viewPersonalAuth
.
isSelected
=
false
viewBind
.
viewEnterpriseAuth
.
isSelected
=
true
viewBind
.
viewEnterpriseAuth
.
isSelected
=
true
// 跳转企业认证页
// 跳转企业认证页
XPageManager
.
push
(
XPageManager
.
push
(
XRouterPathConstants
.
LIFE_ACCOUNT_ENTERPRISE_AUTH
,
XRouterPathConstants
.
LIFE_ACCOUNT_ENTERPRISE_AUTH
,
hashMapOf
(
Pair
(
LifeAccountEnterpriseAuthActivity
.
EXTRA_AUTH_DATA
,
result
))
hashMapOf
(
Pair
(
LifeAccountEnterpriseAuthActivity
.
EXTRA_AUTH_DATA
,
result
))
)
)
finish
()
}
}
override
fun
authMerchantCheckFailure
(
message
:
String
?)
{
override
fun
authMerchantCheckFailure
(
message
:
String
?)
{
Log
.
e
(
Log
.
e
(
Constant
.
LIFE_ACCOUNT_AUTH_TAG
,
Constant
.
LIFE_ACCOUNT_AUTH_TAG
,
"request auth merchant check failure, message: $message"
"request auth merchant check failure, message: $message"
)
)
}
}
}
}
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeAccountCreateActivity.kt
View file @
2ba47487
...
@@ -18,128 +18,128 @@ import com.yidian.utils.ToastUtil
...
@@ -18,128 +18,128 @@ import com.yidian.utils.ToastUtil
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.XPageManager
class
LifeAccountCreateActivity
:
BaseActivity
<
ActivityLifeAccountCreateBinding
>(),
class
LifeAccountCreateActivity
:
BaseActivity
<
ActivityLifeAccountCreateBinding
>(),
ICreateLifeAccountCallback
{
ICreateLifeAccountCallback
{
companion
object
{
companion
object
{
private
const
val
TAG
=
"LifeAccountCreate"
private
const
val
TAG
=
"LifeAccountCreate"
const
val
LIFE_ACCOUNT_ID
=
"life_account_id"
const
val
LIFE_ACCOUNT_ID
=
"life_account_id"
const
val
LIFE_ACCOUNT_NAME
=
"life_account_name"
const
val
LIFE_ACCOUNT_NAME
=
"life_account_name"
}
override
fun
createViewBinding
():
ActivityLifeAccountCreateBinding
{
return
ActivityLifeAccountCreateBinding
.
inflate
(
layoutInflater
)
}
override
fun
getXPageName
():
String
{
return
LIFE_ACCOUNT_CREATE
}
private
val
accountMaxLength
=
20
private
var
lifeAccountId
:
String
?
=
null
private
var
lifeAccountName
:
String
=
""
override
fun
init
(
savedInstanceState
:
Bundle
?)
{
super
.
init
(
savedInstanceState
)
initView
()
initListener
()
initData
()
}
private
fun
initData
()
{
val
params
=
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
if
(
params
!=
null
&&
params
is
HashMap
<*,
*>)
{
lifeAccountId
=
params
[
LIFE_ACCOUNT_ID
]
as
String
}
}
// 设置管理员信息
override
fun
createViewBinding
():
ActivityLifeAccountCreateBinding
{
val
name
=
Hawk
.
get
(
HawkConfig
.
Nickname
,
""
)
return
ActivityLifeAccountCreateBinding
.
inflate
(
layoutInflater
)
val
phone
=
Hawk
.
get
(
HawkConfig
.
Mobile
,
""
)
}
setUserName
(
name
,
phone
)
override
fun
getXPageName
():
String
{
}
return
LIFE_ACCOUNT_CREATE
}
private
fun
initView
()
{
viewBind
.
btnCreateAccount
.
alpha
=
0.32f
private
val
accountMaxLength
=
20
viewBind
.
btnCreateAccount
.
isEnabled
=
false
private
var
lifeAccountId
:
String
?
=
null
}
private
var
lifeAccountName
:
String
=
""
private
fun
initListener
()
{
override
fun
init
(
savedInstanceState
:
Bundle
?)
{
viewBind
.
ivBack
.
setOnClickListener
{
XPageManager
.
pop
(
null
)
}
super
.
init
(
savedInstanceState
)
viewBind
.
etAccount
.
addTextChangedListener
(
object
:
TextWatcherAdapter
()
{
initView
()
override
fun
afterTextChanged
(
s
:
Editable
?)
{
initListener
()
if
(
s
==
null
)
return
initData
()
checkAccount
(
s
.
toString
())
}
})
viewBind
.
btnCreateAccount
.
setOnClickListener
{
createLifeAccount
()
}
}
}
private
fun
initData
()
{
val
params
=
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
/**
if
(
params
!=
null
&&
params
is
HashMap
<*,
*>)
{
* 请求接口创建生活号
lifeAccountId
=
params
[
LIFE_ACCOUNT_ID
]
as
String
*/
}
private
fun
createLifeAccount
()
{
// 设置管理员信息
lifeAccountName
=
viewBind
.
etAccount
.
text
.
toString
()
val
name
=
Hawk
.
get
(
HawkConfig
.
Nickname
,
""
)
if
(
lifeAccountName
.
isEmpty
())
{
val
phone
=
Hawk
.
get
(
HawkConfig
.
Mobile
,
""
)
ToastUtil
.
showToast
(
this
,
"生活号名称不能为空"
)
setUserName
(
name
,
phone
)
return
}
}
ApiService
.
createLifeAccount
(
private
fun
initView
()
{
this
,
viewBind
.
btnCreateAccount
.
alpha
=
0.32f
hashMapOf
(
viewBind
.
btnCreateAccount
.
isEnabled
=
false
Pair
(
LIFE_ACCOUNT_ID
,
lifeAccountId
.
toString
()),
Pair
(
LIFE_ACCOUNT_NAME
,
lifeAccountName
)
)
)
}
@SuppressLint
(
"SetTextI18n"
)
private
fun
setUserName
(
name
:
String
,
number
:
String
)
{
val
numberFormat
=
formatNumber
(
number
)
viewBind
.
tvUserName
.
text
=
"$name $numberFormat"
}
private
fun
formatNumber
(
number
:
String
):
String
{
return
number
.
replace
(
"(\\d{3})\\d{4}(\\d{4})"
.
toRegex
(),
"$1****$2"
)
}
@Suppress
(
"DEPRECATION"
)
private
fun
checkAccount
(
s
:
String
)
{
if
(
s
.
isEmpty
())
{
viewBind
.
btnCreateAccount
.
alpha
=
0.32f
viewBind
.
btnCreateAccount
.
isEnabled
=
false
viewBind
.
tvErrorTips
.
isVisible
=
false
viewBind
.
vDivider
.
setBackgroundResource
(
R
.
color
.
divider_white
)
return
}
}
if
(
s
.
length
>
accountMaxLength
)
{
private
fun
initListener
()
{
viewBind
.
btnCreateAccount
.
alpha
=
0.32f
viewBind
.
ivBack
.
setOnClickListener
{
finish
()
}
viewBind
.
btnCreateAccount
.
isEnabled
=
false
viewBind
.
etAccount
.
addTextChangedListener
(
object
:
TextWatcherAdapter
()
{
viewBind
.
tvErrorTips
.
isVisible
=
true
override
fun
afterTextChanged
(
s
:
Editable
?)
{
viewBind
.
etAccount
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
red_account_tips
))
if
(
s
==
null
)
return
viewBind
.
vDivider
.
setBackgroundResource
(
R
.
color
.
red_account_tips
)
checkAccount
(
s
.
toString
())
}
else
{
}
viewBind
.
btnCreateAccount
.
alpha
=
1f
})
viewBind
.
btnCreateAccount
.
isEnabled
=
true
viewBind
.
btnCreateAccount
.
setOnClickListener
{
viewBind
.
tvErrorTips
.
isVisible
=
false
createLifeAccount
(
)
viewBind
.
etAccount
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
gray_333
)
)
}
viewBind
.
vDivider
.
setBackgroundResource
(
R
.
color
.
divider_white
)
}
}
}
/**
* 请求接口创建生活号
override
fun
createLifeAccountCallback
(
result
:
Boolean
)
{
*/
//创建生活号的回调
private
fun
createLifeAccount
()
{
if
(
result
)
{
lifeAccountName
=
viewBind
.
etAccount
.
text
.
toString
()
XPageManager
.
push
(
if
(
lifeAccountName
.
isEmpty
())
{
XRouterPathConstants
.
LIFE_NUMBER
,
ToastUtil
.
showToast
(
this
,
"生活号名称不能为空"
)
hashMapOf
(
return
Pair
(
LifeNumberActivity
.
EXTRA_LIFE_ACCOUNT_NAME
,
lifeAccountName
),
}
Pair
(
LifeNumberActivity
.
EXTRA_LIFE_ACCOUNT_ID
,
lifeAccountId
)
ApiService
.
createLifeAccount
(
this
,
hashMapOf
(
Pair
(
LIFE_ACCOUNT_ID
,
lifeAccountId
.
toString
()),
Pair
(
LIFE_ACCOUNT_NAME
,
lifeAccountName
)
)
)
)
)
}
}
else
{
ToastUtil
.
showToast
(
this
,
"生活号创建失败"
)
@SuppressLint
(
"SetTextI18n"
)
private
fun
setUserName
(
name
:
String
,
number
:
String
)
{
val
numberFormat
=
formatNumber
(
number
)
viewBind
.
tvUserName
.
text
=
"$name $numberFormat"
}
private
fun
formatNumber
(
number
:
String
):
String
{
return
number
.
replace
(
"(\\d{3})\\d{4}(\\d{4})"
.
toRegex
(),
"$1****$2"
)
}
@Suppress
(
"DEPRECATION"
)
private
fun
checkAccount
(
s
:
String
)
{
if
(
s
.
isEmpty
())
{
viewBind
.
btnCreateAccount
.
alpha
=
0.32f
viewBind
.
btnCreateAccount
.
isEnabled
=
false
viewBind
.
tvErrorTips
.
isVisible
=
false
viewBind
.
vDivider
.
setBackgroundResource
(
R
.
color
.
divider_white
)
return
}
if
(
s
.
length
>
accountMaxLength
)
{
viewBind
.
btnCreateAccount
.
alpha
=
0.32f
viewBind
.
btnCreateAccount
.
isEnabled
=
false
viewBind
.
tvErrorTips
.
isVisible
=
true
viewBind
.
etAccount
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
red_account_tips
))
viewBind
.
vDivider
.
setBackgroundResource
(
R
.
color
.
red_account_tips
)
}
else
{
viewBind
.
btnCreateAccount
.
alpha
=
1f
viewBind
.
btnCreateAccount
.
isEnabled
=
true
viewBind
.
tvErrorTips
.
isVisible
=
false
viewBind
.
etAccount
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
gray_333
))
viewBind
.
vDivider
.
setBackgroundResource
(
R
.
color
.
divider_white
)
}
}
override
fun
createLifeAccountCallback
(
result
:
Boolean
)
{
//创建生活号的回调
if
(
result
)
{
XPageManager
.
push
(
XRouterPathConstants
.
LIFE_NUMBER
,
hashMapOf
(
Pair
(
LifeNumberActivity
.
EXTRA_LIFE_ACCOUNT_NAME
,
lifeAccountName
),
Pair
(
LifeNumberActivity
.
EXTRA_LIFE_ACCOUNT_ID
,
lifeAccountId
)
)
)
}
else
{
ToastUtil
.
showToast
(
this
,
"生活号创建失败"
)
}
}
}
}
}
}
\ No newline at end of file
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeAccountIdentityActivity.kt
View file @
2ba47487
...
@@ -19,87 +19,87 @@ import com.yidian.xpage.XPageManager
...
@@ -19,87 +19,87 @@ import com.yidian.xpage.XPageManager
* description: 生活号身份选择
* description: 生活号身份选择
*/
*/
class
LifeAccountIdentityActivity
:
BaseActivity
<
ActivityLifeAccountIdentityBinding
>(),
class
LifeAccountIdentityActivity
:
BaseActivity
<
ActivityLifeAccountIdentityBinding
>(),
OnItemClickListener
<
LifeAccountItemBean
.
Response
>
{
OnItemClickListener
<
LifeAccountItemBean
.
Response
>
{
private
var
lastSelectedIndex
=
-
1
private
var
lastSelectedIndex
=
-
1
/**
/**
* 当前选择的生活号
* 当前选择的生活号
*/
*/
private
lateinit
var
curSelectedItem
:
LifeAccountItemBean
.
Response
private
lateinit
var
curSelectedItem
:
LifeAccountItemBean
.
Response
companion
object
{
companion
object
{
// 传递的生活号列表
// 传递的生活号列表
const
val
EXTRA_LIFE_ACCOUNT_LIST
=
"lifeAccountList"
const
val
EXTRA_LIFE_ACCOUNT_LIST
=
"lifeAccountList"
}
}
override
fun
createViewBinding
():
ActivityLifeAccountIdentityBinding
{
override
fun
createViewBinding
():
ActivityLifeAccountIdentityBinding
{
return
ActivityLifeAccountIdentityBinding
.
inflate
(
layoutInflater
)
return
ActivityLifeAccountIdentityBinding
.
inflate
(
layoutInflater
)
}
}
override
fun
getXPageName
():
String
{
override
fun
getXPageName
():
String
{
return
XRouterPathConstants
.
LIFE_ACCOUNT_IDENTITY
return
XRouterPathConstants
.
LIFE_ACCOUNT_IDENTITY
}
}
override
fun
init
(
savedInstanceState
:
Bundle
?)
{
override
fun
init
(
savedInstanceState
:
Bundle
?)
{
super
.
init
(
savedInstanceState
)
super
.
init
(
savedInstanceState
)
initView
()
initView
()
initData
()
initData
()
onClickListener
()
onClickListener
()
}
}
private
fun
initView
()
{
private
fun
initView
()
{
viewBind
.
rvLifeAccountIdentity
.
layoutManager
=
viewBind
.
rvLifeAccountIdentity
.
layoutManager
=
LinearLayoutManager
(
this
,
RecyclerView
.
VERTICAL
,
false
)
LinearLayoutManager
(
this
,
RecyclerView
.
VERTICAL
,
false
)
viewBind
.
rvLifeAccountIdentity
.
adapter
=
LifeAccountIdentityAdapter
()
viewBind
.
rvLifeAccountIdentity
.
adapter
=
LifeAccountIdentityAdapter
()
(
viewBind
.
rvLifeAccountIdentity
.
adapter
as
LifeAccountIdentityAdapter
).
setOnItemClickListener
(
(
viewBind
.
rvLifeAccountIdentity
.
adapter
as
LifeAccountIdentityAdapter
).
setOnItemClickListener
(
this
this
)
)
setLoginButtonStatus
(
false
)
setLoginButtonStatus
(
false
)
}
}
private
fun
initData
()
{
private
fun
initData
()
{
val
data
=
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
?.
let
{
params
->
val
data
=
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
?.
let
{
params
->
(
params
as
HashMap
<*,
*>)[
EXTRA_LIFE_ACCOUNT_LIST
]
?.
let
{
(
params
as
HashMap
<*,
*>)[
EXTRA_LIFE_ACCOUNT_LIST
]
?.
let
{
it
as
List
<
LifeAccountItemBean
.
Response
>
it
as
List
<
LifeAccountItemBean
.
Response
>
}
}
}
(
viewBind
.
rvLifeAccountIdentity
.
adapter
as
LifeAccountIdentityAdapter
).
updateData
(
data
)
}
}
(
viewBind
.
rvLifeAccountIdentity
.
adapter
as
LifeAccountIdentityAdapter
).
updateData
(
data
)
}
private
fun
onClickListener
()
{
private
fun
onClickListener
()
{
viewBind
.
back
.
setOnClickListener
{
viewBind
.
back
.
setOnClickListener
{
XPageManager
.
pop
(
null
)
XPageManager
.
pop
(
null
)
}
}
viewBind
.
tvEnterLifeAccount
.
setOnClickListener
{
viewBind
.
tvEnterLifeAccount
.
setOnClickListener
{
// 进入商户管理中心页
// 进入商户管理中心页
XPageManager
.
push
(
XPageManager
.
push
(
XRouterPathConstants
.
MERCHANT_CENTER
,
XRouterPathConstants
.
MERCHANT_CENTER
,
hashMapOf
(
hashMapOf
(
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
curSelectedItem
),
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
curSelectedItem
),
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
true
)
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
true
)
)
)
)
)
finish
()
XPageManager
.
pop
(
null
)
}
}
}
}
override
fun
onClick
(
view
:
View
?,
position
:
Int
,
item
:
LifeAccountItemBean
.
Response
?)
{
override
fun
onClick
(
view
:
View
?,
position
:
Int
,
item
:
LifeAccountItemBean
.
Response
?)
{
if
(
item
==
null
)
return
if
(
item
==
null
)
return
if
(
position
!=
lastSelectedIndex
)
{
if
(
position
!=
lastSelectedIndex
)
{
setLoginButtonStatus
(
true
)
setLoginButtonStatus
(
true
)
curSelectedItem
=
item
curSelectedItem
=
item
lastSelectedIndex
=
position
lastSelectedIndex
=
position
}
}
}
}
private
fun
setLoginButtonStatus
(
flag
:
Boolean
)
{
private
fun
setLoginButtonStatus
(
flag
:
Boolean
)
{
if
(
flag
)
{
if
(
flag
)
{
viewBind
.
tvEnterLifeAccount
.
alpha
=
1.0f
viewBind
.
tvEnterLifeAccount
.
alpha
=
1.0f
viewBind
.
tvEnterLifeAccount
.
isEnabled
=
true
viewBind
.
tvEnterLifeAccount
.
isEnabled
=
true
}
else
{
}
else
{
viewBind
.
tvEnterLifeAccount
.
alpha
=
0.32f
viewBind
.
tvEnterLifeAccount
.
alpha
=
0.32f
viewBind
.
tvEnterLifeAccount
.
isEnabled
=
false
viewBind
.
tvEnterLifeAccount
.
isEnabled
=
false
}
}
}
}
}
\ No newline at end of file
}
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeAccountPersonalAuthActivity.kt
View file @
2ba47487
...
@@ -17,9 +17,9 @@ import com.yidian.shenghuoquan.newscontent.http.ApiService
...
@@ -17,9 +17,9 @@ import com.yidian.shenghuoquan.newscontent.http.ApiService
import
com.yidian.shenghuoquan.newscontent.http.callback.IAuthPersonalCompleteCallback
import
com.yidian.shenghuoquan.newscontent.http.callback.IAuthPersonalCompleteCallback
import
com.yidian.shenghuoquan.newscontent.http.httpbean.AuthAuthenticationBean
import
com.yidian.shenghuoquan.newscontent.http.httpbean.AuthAuthenticationBean
import
com.yidian.shenghuoquan.newscontent.http.httpbean.AuthPersonalCompleteBean
import
com.yidian.shenghuoquan.newscontent.http.httpbean.AuthPersonalCompleteBean
import
com.yidian.shenghuoquan.newscontent.ui.ProtocolActivity
import
com.yidian.xarc.xevent.XBaseEvent
import
com.yidian.xarc.xevent.XBaseEvent
import
com.yidian.xarc.xevent.XEventManager
import
com.yidian.xarc.xevent.XEventManager
import
com.yidian.shenghuoquan.newscontent.ui.ProtocolActivity
import
com.yidian.xpage.XPageManager
import
com.yidian.xpage.XPageManager
import
org.greenrobot.eventbus.Subscribe
import
org.greenrobot.eventbus.Subscribe
import
org.greenrobot.eventbus.ThreadMode
import
org.greenrobot.eventbus.ThreadMode
...
@@ -182,7 +182,7 @@ class LifeAccountPersonalAuthActivity :
...
@@ -182,7 +182,7 @@ class LifeAccountPersonalAuthActivity :
)
)
)
)
)
)
finish
(
)
XPageManager
.
pop
(
null
)
}
}
override
fun
authPersonalCompleteFailure
(
message
:
String
?)
{
override
fun
authPersonalCompleteFailure
(
message
:
String
?)
{
...
...
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeAccountPersonalAuthCompleteActivity.kt
View file @
2ba47487
...
@@ -18,87 +18,87 @@ import com.yidian.xpage.XPageManager
...
@@ -18,87 +18,87 @@ import com.yidian.xpage.XPageManager
* Describe: 个人认证成功页面 activity_life_account_personal_auth_complete
* Describe: 个人认证成功页面 activity_life_account_personal_auth_complete
*/
*/
class
LifeAccountPersonalAuthCompleteActivity
:
class
LifeAccountPersonalAuthCompleteActivity
:
BaseActivity
<
ActivityLifeAccountPersonalAuthCompleteBinding
>(),
IGetLifeAccountListCallback
{
BaseActivity
<
ActivityLifeAccountPersonalAuthCompleteBinding
>(),
IGetLifeAccountListCallback
{
companion
object
{
companion
object
{
const
val
OCCUPATION
=
"occupation"
const
val
OCCUPATION
=
"occupation"
const
val
REAL_NAME
=
"realName"
const
val
REAL_NAME
=
"realName"
const
val
ID_CARD_NUM
=
"idCardNum"
const
val
ID_CARD_NUM
=
"idCardNum"
const
val
PHONE_NUM
=
"phoneNum"
const
val
PHONE_NUM
=
"phoneNum"
const
val
LIFE_ACCOUNT_ID
=
"lifeAccountId"
// 个人生活号升级用
const
val
LIFE_ACCOUNT_ID
=
"lifeAccountId"
// 个人生活号升级用
}
}
/**
/**
* 跳转参数
* 跳转参数
*/
*/
private
val
params
by
lazy
{
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
as
HashMap
<*,
*>
}
private
val
params
by
lazy
{
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
as
HashMap
<*,
*>
}
override
fun
createViewBinding
():
ActivityLifeAccountPersonalAuthCompleteBinding
{
override
fun
createViewBinding
():
ActivityLifeAccountPersonalAuthCompleteBinding
{
return
ActivityLifeAccountPersonalAuthCompleteBinding
.
inflate
(
layoutInflater
)
return
ActivityLifeAccountPersonalAuthCompleteBinding
.
inflate
(
layoutInflater
)
}
}
override
fun
getXPageName
():
String
{
override
fun
getXPageName
():
String
{
return
XRouterPathConstants
.
LIFE_ACCOUNT_PERSONAL_AUTH_COMPLETE
return
XRouterPathConstants
.
LIFE_ACCOUNT_PERSONAL_AUTH_COMPLETE
}
}
override
fun
init
(
savedInstanceState
:
Bundle
?)
{
override
fun
init
(
savedInstanceState
:
Bundle
?)
{
initView
()
initView
()
initListener
()
initListener
()
initData
()
initData
()
}
}
private
fun
initView
()
{
private
fun
initView
()
{
viewBind
.
viewCommonHeader
.
tvTitle
.
text
=
viewBind
.
viewCommonHeader
.
tvTitle
.
text
=
resources
.
getString
(
R
.
string
.
personal_auth
)
resources
.
getString
(
R
.
string
.
personal_auth
)
viewBind
.
viewCommonHeader
.
ivBack
.
isVisible
=
false
viewBind
.
viewCommonHeader
.
ivBack
.
isVisible
=
false
}
}
private
fun
initData
()
{
private
fun
initData
()
{
viewBind
.
ivPersonAuthInfo
.
fillAuthInfo
(
viewBind
.
ivPersonAuthInfo
.
fillAuthInfo
(
params
[
OCCUPATION
]
as
String
,
params
[
OCCUPATION
]
as
String
,
params
[
REAL_NAME
]
as
String
,
params
[
REAL_NAME
]
as
String
,
params
[
ID_CARD_NUM
]
as
String
,
params
[
ID_CARD_NUM
]
as
String
,
params
[
PHONE_NUM
]
as
String
params
[
PHONE_NUM
]
as
String
)
)
}
}
private
fun
initListener
()
{
private
fun
initListener
()
{
viewBind
.
tvEnterMerchantCenter
.
setOnClickListener
{
viewBind
.
tvEnterMerchantCenter
.
setOnClickListener
{
// 跳转商户管理中心 先请求生活号列表 带参跳转
// 跳转商户管理中心 先请求生活号列表 带参跳转
ApiService
.
getLifeAccountList
(
this
)
ApiService
.
getLifeAccountList
(
this
)
}
}
viewBind
.
upgradeEnterpriseAuth
.
setOnClickListener
{
viewBind
.
upgradeEnterpriseAuth
.
setOnClickListener
{
// 传入生活号id 请求企业认证升级相关接口用
// 传入生活号id 请求企业认证升级相关接口用
XPageManager
.
push
(
XPageManager
.
push
(
XRouterPathConstants
.
LIFE_ACCOUNT_ENTERPRISE_AUTH
,
XRouterPathConstants
.
LIFE_ACCOUNT_ENTERPRISE_AUTH
,
hashMapOf
(
hashMapOf
(
Pair
(
Pair
(
LifeAccountEnterpriseAuthActivity
.
EXTRA_LIFE_ACCOUNT_ID
,
LifeAccountEnterpriseAuthActivity
.
EXTRA_LIFE_ACCOUNT_ID
,
params
[
LIFE_ACCOUNT_ID
]
params
[
LIFE_ACCOUNT_ID
]
)
)
)
)
)
)
finish
()
XPageManager
.
pop
(
null
)
}
}
}
}
override
fun
getLifeAccountListSuccess
(
result
:
ArrayList
<
LifeAccountItemBean
.
Response
>?)
{
override
fun
getLifeAccountListSuccess
(
result
:
ArrayList
<
LifeAccountItemBean
.
Response
>?)
{
// 生活号列表请求成功
// 生活号列表请求成功
result
?.
forEach
{
result
?.
forEach
{
if
(
it
.
life_account_id
==
params
[
LIFE_ACCOUNT_ID
])
{
if
(
it
.
life_account_id
==
params
[
LIFE_ACCOUNT_ID
])
{
XPageManager
.
push
(
XPageManager
.
push
(
XRouterPathConstants
.
MERCHANT_CENTER
,
XRouterPathConstants
.
MERCHANT_CENTER
,
hashMapOf
(
hashMapOf
(
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
result
.
size
>
1
),
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
result
.
size
>
1
),
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
it
)
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
it
)
)
)
)
)
finish
()
XPageManager
.
pop
(
null
)
}
}
}
}
}
}
override
fun
getLifeAccountListFailure
(
message
:
String
?)
{
override
fun
getLifeAccountListFailure
(
message
:
String
?)
{
}
}
}
}
\ No newline at end of file
Components/newscontent/src/main/java/com/yidian/shenghuoquan/newscontent/ui/auth/LifeNumberActivity.kt
View file @
2ba47487
...
@@ -23,78 +23,78 @@ import kotlinx.android.synthetic.main.top_bar.view.*
...
@@ -23,78 +23,78 @@ import kotlinx.android.synthetic.main.top_bar.view.*
*/
*/
class
LifeNumberActivity
:
BaseActivity
<
ActivityLifeNumberBinding
>(),
IGetLifeAccountListCallback
{
class
LifeNumberActivity
:
BaseActivity
<
ActivityLifeNumberBinding
>(),
IGetLifeAccountListCallback
{
companion
object
{
companion
object
{
private
const
val
TAG
=
"LifeNumberActivity"
private
const
val
TAG
=
"LifeNumberActivity"
const
val
EXTRA_LIFE_ACCOUNT_NAME
=
"live_account_name"
const
val
EXTRA_LIFE_ACCOUNT_NAME
=
"live_account_name"
const
val
EXTRA_LIFE_ACCOUNT_ID
=
"life_account_id"
const
val
EXTRA_LIFE_ACCOUNT_ID
=
"life_account_id"
}
}
override
fun
createViewBinding
():
ActivityLifeNumberBinding
{
override
fun
createViewBinding
():
ActivityLifeNumberBinding
{
return
ActivityLifeNumberBinding
.
inflate
(
layoutInflater
)
return
ActivityLifeNumberBinding
.
inflate
(
layoutInflater
)
}
}
override
fun
getXPageName
():
String
{
override
fun
getXPageName
():
String
{
return
LIFE_NUMBER
return
LIFE_NUMBER
}
}
private
var
managerName
:
String
?
=
null
private
var
managerName
:
String
?
=
null
private
var
phoneNumber
:
String
?
=
null
private
var
phoneNumber
:
String
?
=
null
private
var
lifeAccountName
:
String
?
=
null
private
var
lifeAccountName
:
String
?
=
null
private
var
lifeAccountId
:
String
?
=
null
private
var
lifeAccountId
:
String
?
=
null
override
fun
init
(
savedInstanceState
:
Bundle
?)
{
override
fun
init
(
savedInstanceState
:
Bundle
?)
{
super
.
init
(
savedInstanceState
)
super
.
init
(
savedInstanceState
)
viewBind
.
root
.
title
.
text
=
resources
.
getString
(
R
.
string
.
create_a_life_number
)
viewBind
.
root
.
title
.
text
=
resources
.
getString
(
R
.
string
.
create_a_life_number
)
viewBind
.
root
.
back
.
isVisible
=
false
viewBind
.
root
.
back
.
isVisible
=
false
initListener
()
initListener
()
initData
()
initData
()
}
}
private
fun
initData
()
{
private
fun
initData
()
{
val
params
=
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
?.
let
{
val
params
=
intent
.
getSerializableExtra
(
XRouterPathConstants
.
ParamsKey
)
?.
let
{
it
as
HashMap
<*,
*>
it
as
HashMap
<*,
*>
}
?:
return
}
?:
return
lifeAccountName
=
params
[
EXTRA_LIFE_ACCOUNT_NAME
]
as
String
?
?:
""
lifeAccountName
=
params
[
EXTRA_LIFE_ACCOUNT_NAME
]
as
String
?
?:
""
lifeAccountId
=
params
[
EXTRA_LIFE_ACCOUNT_ID
]
as
String
lifeAccountId
=
params
[
EXTRA_LIFE_ACCOUNT_ID
]
as
String
managerName
=
Hawk
.
get
<
String
>(
HawkConfig
.
Nickname
)
?:
""
managerName
=
Hawk
.
get
<
String
>(
HawkConfig
.
Nickname
)
?:
""
phoneNumber
=
Hawk
.
get
<
String
>(
HawkConfig
.
Mobile
)
?:
""
phoneNumber
=
Hawk
.
get
<
String
>(
HawkConfig
.
Mobile
)
?:
""
showData
()
showData
()
}
}
private
fun
showData
()
{
private
fun
showData
()
{
viewBind
.
personalShop
.
text
=
lifeAccountName
viewBind
.
personalShop
.
text
=
lifeAccountName
viewBind
.
occupationLabelValue
.
text
=
managerName
viewBind
.
occupationLabelValue
.
text
=
managerName
viewBind
.
actualNameValue
.
text
=
phoneNumber
viewBind
.
actualNameValue
.
text
=
phoneNumber
}
}
private
fun
initListener
()
{
private
fun
initListener
()
{
viewBind
.
root
.
back
.
setOnClickListener
{
viewBind
.
root
.
back
.
setOnClickListener
{
finish
()
XPageManager
.
pop
(
null
)
}
viewBind
.
tvEnterMerchantCenter
.
setOnClickListener
{
// 跳转商户管理中心 先请求生活号列表 带参跳转
ApiService
.
getLifeAccountList
(
this
)
}
}
}
viewBind
.
tvEnterMerchantCenter
.
setOnClickListener
{
// 跳转商户管理中心 先请求生活号列表 带参跳转
ApiService
.
getLifeAccountList
(
this
)
}
}
override
fun
getLifeAccountListSuccess
(
result
:
ArrayList
<
LifeAccountItemBean
.
Response
>?)
{
override
fun
getLifeAccountListSuccess
(
result
:
ArrayList
<
LifeAccountItemBean
.
Response
>?)
{
// 生活号列表请求成功
// 生活号列表请求成功
result
?.
forEach
{
result
?.
forEach
{
if
(
it
.
life_account_id
==
lifeAccountId
)
{
if
(
it
.
life_account_id
==
lifeAccountId
)
{
XPageManager
.
push
(
XPageManager
.
push
(
XRouterPathConstants
.
MERCHANT_CENTER
,
XRouterPathConstants
.
MERCHANT_CENTER
,
hashMapOf
(
hashMapOf
(
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
result
.
size
>
1
),
Pair
(
MerchantCenterActivity
.
EXTRA_IS_MULTI
,
result
.
size
>
1
),
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
it
)
Pair
(
MerchantCenterActivity
.
EXTRA_LIFE_ACCOUNT_INFO
,
it
)
)
)
)
)
finish
()
XPageManager
.
pop
(
null
)
}
}
}
}
}
}
override
fun
getLifeAccountListFailure
(
message
:
String
?)
{
override
fun
getLifeAccountListFailure
(
message
:
String
?)
{
}
}
}
}
\ 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