Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
RvApp
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
1
Merge Requests
1
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
lify
RvApp
Commits
864652a7
Commit
864652a7
authored
Dec 23, 2019
by
jianglx
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1.5.7 添加图形校验码
parent
ba77285d
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
572 additions
and
10 deletions
+572
-10
build.gradle
RvClient/build.gradle
+2
-2
MainActivity.java
RvClient/src/main/java/com/xxfc/rv/MainActivity.java
+1
-5
ApiConfig.java
...e_home/src/main/java/com/rv/home/rv/module/ApiConfig.java
+10
-0
RegisteredActivity.java
...va/com/rv/home/rv/module/ui/login/RegisteredActivity.java
+102
-3
VerifyDialog.java
...ain/java/com/rv/home/rv/module/ui/login/VerifyDialog.java
+166
-0
VerifyDataBean.java
...a/com/rv/home/rv/module/ui/login/bean/VerifyDataBean.java
+67
-0
VerifyResultBean.java
...com/rv/home/rv/module/ui/login/bean/VerifyResultBean.java
+26
-0
VerifyImageView.java
.../com/rv/home/rv/module/ui/login/view/VerifyImageView.java
+42
-0
TransformationUtils.java
...c/main/java/com/rv/home/rv/until/TransformationUtils.java
+46
-0
icon_change_verify_code.png
...e/src/main/res/drawable-xhdpi/icon_change_verify_code.png
+0
-0
picture.jpg
module_home/src/main/res/drawable-xhdpi/picture.jpg
+0
-0
shape_rv_button_white.xml
module_home/src/main/res/drawable/shape_rv_button_white.xml
+5
-0
dialog_verfy.xml
module_home/src/main/res/layout/dialog_verfy.xml
+104
-0
BindPhoneThirdFragment.java
...n/java/com/rv/rvmine/fragment/BindPhoneThirdFragment.java
+1
-0
No files found.
RvClient/build.gradle
View file @
864652a7
...
@@ -8,8 +8,8 @@ android {
...
@@ -8,8 +8,8 @@ android {
minSdkVersion
rootProject
.
ext
.
minSdkVersion
minSdkVersion
rootProject
.
ext
.
minSdkVersion
targetSdkVersion
rootProject
.
ext
.
targetSdkVersion
targetSdkVersion
rootProject
.
ext
.
targetSdkVersion
flavorDimensions
"default"
flavorDimensions
"default"
versionCode
15
6
versionCode
15
7
versionName
"1.5.
6
"
versionName
"1.5.
7
"
multiDexEnabled
true
multiDexEnabled
true
...
...
RvClient/src/main/java/com/xxfc/rv/MainActivity.java
View file @
864652a7
...
@@ -9,7 +9,6 @@ import android.content.Context;
...
@@ -9,7 +9,6 @@ import android.content.Context;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.content.IntentFilter
;
import
android.content.IntentFilter
;
import
android.content.ServiceConnection
;
import
android.content.ServiceConnection
;
import
android.graphics.Bitmap
;
import
android.location.LocationManager
;
import
android.location.LocationManager
;
import
android.net.ConnectivityManager
;
import
android.net.ConnectivityManager
;
import
android.net.Uri
;
import
android.net.Uri
;
...
@@ -25,7 +24,6 @@ import android.text.TextUtils;
...
@@ -25,7 +24,6 @@ import android.text.TextUtils;
import
android.util.Log
;
import
android.util.Log
;
import
android.view.KeyEvent
;
import
android.view.KeyEvent
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
android.widget.Toast
;
...
@@ -33,8 +31,6 @@ import android.widget.Toast;
...
@@ -33,8 +31,6 @@ import android.widget.Toast;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.base.utils.ui.image.round.RoundImageView
;
import
com.base.utils.ui.image.round.RoundImageView
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.request.target.SimpleTarget
;
import
com.bumptech.glide.request.transition.Transition
;
import
com.frame.base.url.Constance
;
import
com.frame.base.url.Constance
;
import
com.frame.base.url.ImageUrl
;
import
com.frame.base.url.ImageUrl
;
import
com.frame.rv.config.RvFrameConfig
;
import
com.frame.rv.config.RvFrameConfig
;
...
@@ -85,7 +81,6 @@ import com.rv.plugin.calendar.bean.PreRentDaysBean;
...
@@ -85,7 +81,6 @@ import com.rv.plugin.calendar.bean.PreRentDaysBean;
import
com.rv.rvmine.MineFragment
;
import
com.rv.rvmine.MineFragment
;
import
com.rv.share.WebViewActivity
;
import
com.rv.share.WebViewActivity
;
import
com.rv.share.utils.TransformationUtils
;
import
com.rv.share.utils.TransformationUtils
;
import
com.rv.share.utils.TransformationUtils10
;
import
com.rv.share.view.PromotionDialog
;
import
com.rv.share.view.PromotionDialog
;
import
com.rv.tourism.R2
;
import
com.rv.tourism.R2
;
import
com.rv.tourism.TourismFragment
;
import
com.rv.tourism.TourismFragment
;
...
@@ -199,6 +194,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
...
@@ -199,6 +194,7 @@ public class MainActivity extends BaseActivity<CommonPresenter> implements DownL
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
ListenerManager
.
getInstance
().
addChatMessageListener
(
this
);
// AppUtils.setBadger(ImSetting.getContext(), ChatMessageServiceImp.getInstance(ImSetting.getContext()).getUnReadMsg());
// AppUtils.setBadger(ImSetting.getContext(), ChatMessageServiceImp.getInstance(ImSetting.getContext()).getUnReadMsg());
GpsManager
.
getInstance
(
this
).
rigister
();
GpsManager
.
getInstance
(
this
).
rigister
();
}
}
@Override
@Override
...
...
module_home/src/main/java/com/rv/home/rv/module/ApiConfig.java
View file @
864652a7
...
@@ -194,4 +194,14 @@ public class ApiConfig {
...
@@ -194,4 +194,14 @@ public class ApiConfig {
* vr展示
* vr展示
*/
*/
public
static
String
HTTP_URL_VIEW_VRSHOW
=
RvFrameConfig
.
HOST_H5_DETAIL
+
"/h5/appHtml/view/vrShow.html"
;
public
static
String
HTTP_URL_VIEW_VRSHOW
=
RvFrameConfig
.
HOST_H5_DETAIL
+
"/h5/appHtml/view/vrShow.html"
;
/*****
* 获取图形验证码
*/
public
static
String
HTTP_URL_PIC_VERIFY
=
RvFrameConfig
.
HOST
+
"/api/universal/captcha/app/unauth/clickWord?phone=%s"
;
/******
* 校验图形验证码
*/
public
static
String
HTTP_URL_CLICK_VERIFY
=
RvFrameConfig
.
HOST
+
"/api/universal/captcha/app/unauth/verify?phone=%s&pointList=%s"
;
}
}
module_home/src/main/java/com/rv/home/rv/module/ui/login/RegisteredActivity.java
View file @
864652a7
...
@@ -16,6 +16,7 @@ import android.widget.CheckBox;
...
@@ -16,6 +16,7 @@ import android.widget.CheckBox;
import
android.widget.EditText
;
import
android.widget.EditText
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
android.widget.Toast
;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.alibaba.android.arouter.launcher.ARouter
;
import
com.frame.base.url.Constance
;
import
com.frame.base.url.Constance
;
...
@@ -34,8 +35,11 @@ import com.rv.home.rv.module.ApiConfig;
...
@@ -34,8 +35,11 @@ import com.rv.home.rv.module.ApiConfig;
import
com.rv.home.rv.module.basic.BaseLoginActivity
;
import
com.rv.home.rv.module.basic.BaseLoginActivity
;
import
com.rv.home.rv.module.ui.login.bean.RegisteredBean
;
import
com.rv.home.rv.module.ui.login.bean.RegisteredBean
;
import
com.rv.home.rv.module.ui.login.bean.SendCodeBean
;
import
com.rv.home.rv.module.ui.login.bean.SendCodeBean
;
import
com.rv.home.rv.module.ui.login.bean.VerifyDataBean
;
import
com.rv.home.rv.module.ui.login.bean.VerifyResultBean
;
import
com.umeng.socialize.bean.SHARE_MEDIA
;
import
com.umeng.socialize.bean.SHARE_MEDIA
;
import
java.util.LinkedHashMap
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -122,7 +126,8 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
...
@@ -122,7 +126,8 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
editListener
(
etPwd
);
editListener
(
etPwd
);
editListener
(
etInviteCode
);
editListener
(
etInviteCode
);
initData
();
initData
();
privacyAgree
();
if
(
mType
==
0
)
privacyAgree
();
}
}
...
@@ -204,6 +209,8 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
...
@@ -204,6 +209,8 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
((
TextView
)
view
).
setHighlightColor
(
getResources
().
getColor
(
android
.
R
.
color
.
transparent
));
((
TextView
)
view
).
setHighlightColor
(
getResources
().
getColor
(
android
.
R
.
color
.
transparent
));
}
}
private
VerifyDialog
.
Builder
builder
;
@Override
@Override
public
void
onShowResult
(
int
requestType
,
BaseBean
result
)
{
public
void
onShowResult
(
int
requestType
,
BaseBean
result
)
{
switch
(
requestType
)
{
switch
(
requestType
)
{
...
@@ -220,9 +227,43 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
...
@@ -220,9 +227,43 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
case
10
:
case
10
:
setDataUser
((
BeanUserInfo
)
result
);
setDataUser
((
BeanUserInfo
)
result
);
break
;
break
;
case
11
:
VerifyDataBean
bean
=
(
VerifyDataBean
)
result
;
if
(
bean
!=
null
&&
bean
.
isRel
()
&&
bean
.
getData
()
!=
null
)
{
if
(
builder
==
null
&&
!
isVerifyCancel
)
{
builder
=
new
VerifyDialog
.
Builder
(
this
,
bean
.
getData
());
builder
.
setListener
(
verifyListener
);
builder
.
create
().
show
();
}
else
{
builder
.
change
(
bean
.
getData
());
}
}
break
;
case
12
:
VerifyResultBean
resultBean
=
(
VerifyResultBean
)
result
;
if
(
resultBean
!=
null
&&
resultBean
.
isData
())
{
if
(
builder
!=
null
)
{
builder
.
dismiss
();
builder
=
null
;
}
showToast
(
"验证成功"
);
sendCode
();
}
else
{
showToast
(
"点击错误,将为您重新生成图片"
);
sendVerifyCode
();
}
break
;
default
:
break
;
}
}
}
}
@Override
public
void
onShowError
(
String
errorMsg
,
int
errorType
)
{
super
.
onShowError
(
errorMsg
,
errorType
);
Toast
.
makeText
(
this
,
errorMsg
,
Toast
.
LENGTH_LONG
).
show
();
}
@OnClick
({
R2
.
id
.
iv_clear_phone
,
R2
.
id
.
iv_clear_code
,
R2
.
id
.
tv_get_code
,
R2
.
id
.
iv_clear_pwd
,
R2
.
id
.
tv_agreement
,
R2
.
id
.
tv_registered
})
@OnClick
({
R2
.
id
.
iv_clear_phone
,
R2
.
id
.
iv_clear_code
,
R2
.
id
.
tv_get_code
,
R2
.
id
.
iv_clear_pwd
,
R2
.
id
.
tv_agreement
,
R2
.
id
.
tv_registered
})
public
void
onViewClicked
(
View
view
)
{
public
void
onViewClicked
(
View
view
)
{
if
(
view
.
getId
()
==
R
.
id
.
iv_clear_phone
)
{
if
(
view
.
getId
()
==
R
.
id
.
iv_clear_phone
)
{
...
@@ -239,8 +280,12 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
...
@@ -239,8 +280,12 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
showToast
(
"请输入正确手机号"
);
showToast
(
"请输入正确手机号"
);
return
;
return
;
}
}
isVerifyCancel
=
false
;
sendCode
();
if
(
mType
==
0
)
{
sendVerifyCode
();
}
else
{
sendCode
();
}
}
else
if
(
view
.
getId
()
==
R
.
id
.
iv_clear_code
)
{
}
else
if
(
view
.
getId
()
==
R
.
id
.
iv_clear_code
)
{
pwdShow
=
!
pwdShow
;
pwdShow
=
!
pwdShow
;
ivClearPwd
.
setSelected
(
pwdShow
);
ivClearPwd
.
setSelected
(
pwdShow
);
...
@@ -285,6 +330,38 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
...
@@ -285,6 +330,38 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
}
}
}
}
private
void
sendVerifyCode
()
{
mPresenter
.
getData
(
11
,
String
.
format
(
ApiConfig
.
HTTP_URL_PIC_VERIFY
,
new
String
[]{
getPhone
()}),
VerifyDataBean
.
class
,
true
);
}
private
void
verifyCode
(
int
x
,
int
y
)
{
//
// Point point = new Point(x, y);
// List<Point> pointList = new ArrayList<>();
// pointList.add(point);
//// String pointListString = null;
//// try {
//// pointListString = URLEncoder.encode(new Gson().toJson(pointList),"UTF-8") ;
//// } catch (UnsupportedEncodingException e) {
//// e.printStackTrace();
//// }
//
//// JsonArray array = new JsonArray();
//// array.addAll(pointList);
// String pointListString = JSONArray.toJSONString(pointList);
// Map<String, String> params = new HashMap<>();
// params.put("phone", getPhone());
// params.put("pointList", dealString(x,y));
dealString
(
x
,
y
);
mPresenter
.
getData
(
12
,
String
.
format
(
ApiConfig
.
HTTP_URL_CLICK_VERIFY
,
new
String
[]{
getPhone
(),
pointList
}),
VerifyResultBean
.
class
,
true
);
}
private
String
pointList
;
private
void
dealString
(
int
x
,
int
y
)
{
pointList
=
"%5B%7B%22x%22:"
+
x
+
",%22y%22:"
+
y
+
"%7D%5D"
;
}
@Override
@Override
public
void
onDestroy
()
{
public
void
onDestroy
()
{
...
@@ -300,6 +377,7 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
...
@@ -300,6 +377,7 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
map
.
put
(
"username"
,
getPhone
());
map
.
put
(
"username"
,
getPhone
());
if
(
mType
==
0
)
{
if
(
mType
==
0
)
{
map
.
put
(
"type"
,
0
);
map
.
put
(
"type"
,
0
);
map
.
put
(
"pointList"
,
pointList
);
}
else
{
}
else
{
map
.
put
(
"type"
,
4
);
map
.
put
(
"type"
,
4
);
}
}
...
@@ -480,4 +558,25 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
...
@@ -480,4 +558,25 @@ public class RegisteredActivity extends BaseLoginActivity<CommonPresenter> {
// TODO: add setContentView(...) invocation
// TODO: add setContentView(...) invocation
ButterKnife
.
bind
(
this
);
ButterKnife
.
bind
(
this
);
}
}
private
boolean
isVerifyCancel
=
false
;
private
boolean
isVerifySucess
=
false
;
private
VerifyDialog
.
VerifyListener
verifyListener
=
new
VerifyDialog
.
VerifyListener
()
{
@Override
public
void
cancel
()
{
isVerifyCancel
=
true
;
builder
=
null
;
}
@Override
public
void
verify
(
int
x
,
int
y
)
{
verifyCode
(
x
,
y
);
}
@Override
public
void
freshen
()
{
if
(!
isVerifyCancel
)
sendVerifyCode
();
}
};
}
}
module_home/src/main/java/com/rv/home/rv/module/ui/login/VerifyDialog.java
0 → 100644
View file @
864652a7
package
com
.
rv
.
home
.
rv
.
module
.
ui
.
login
;
import
android.annotation.SuppressLint
;
import
android.content.Context
;
import
android.graphics.Bitmap
;
import
android.graphics.BitmapFactory
;
import
android.graphics.Color
;
import
android.graphics.Typeface
;
import
android.support.annotation.NonNull
;
import
android.text.SpannableString
;
import
android.text.SpannableStringBuilder
;
import
android.text.Spanned
;
import
android.text.TextUtils
;
import
android.text.style.ForegroundColorSpan
;
import
android.text.style.TextAppearanceSpan
;
import
android.util.Base64
;
import
android.view.Gravity
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.WindowManager
;
import
android.widget.LinearLayout
;
import
android.widget.TextView
;
import
com.bumptech.glide.Glide
;
import
com.ruiwenliu.wrapper.dialog.BaseDialog
;
import
com.ruiwenliu.wrapper.util.glide.GlideOptions
;
import
com.rv.home.R
;
import
com.rv.home.rv.module.ui.login.bean.VerifyDataBean
;
import
com.rv.home.rv.module.ui.login.view.VerifyImageView
;
import
com.rv.home.rv.until.TransformationUtils
;
public
class
VerifyDialog
extends
BaseDialog
{
public
VerifyDialog
(
@NonNull
Context
context
)
{
super
(
context
);
}
public
VerifyDialog
(
@NonNull
Context
context
,
int
themeResId
)
{
super
(
context
,
themeResId
);
setDialogParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
,
Gravity
.
CENTER
);
}
@Override
public
int
getViewLayout
()
{
return
R
.
layout
.
dialog_verfy
;
}
public
static
class
Builder
{
private
Context
mContext
;
VerifyImageView
verifyView
;
LinearLayout
llControl
;
VerifyListener
listener
;
TextView
tvHint
;
VerifyDataBean
.
VerifyData
verifyData
;
VerifyDialog
dialog
;
public
Builder
(
Context
context
,
VerifyDataBean
.
VerifyData
verifyData
)
{
this
.
mContext
=
context
;
this
.
verifyData
=
verifyData
;
}
public
void
setListener
(
VerifyListener
listener
)
{
this
.
listener
=
listener
;
}
public
void
change
(
VerifyDataBean
.
VerifyData
verifyData
)
{
this
.
verifyData
=
verifyData
;
showPic
();
}
public
void
dismiss
()
{
if
(
dialog
!=
null
)
{
dialog
.
dismiss
();
}
}
/**
* 创建定制的对话框
*/
@SuppressLint
(
"ClickableViewAccessibility"
)
public
VerifyDialog
create
()
{
LayoutInflater
inflater
=
(
LayoutInflater
)
mContext
.
getSystemService
(
Context
.
LAYOUT_INFLATER_SERVICE
);
dialog
=
new
VerifyDialog
(
mContext
,
R
.
style
.
DialogActivityTheme
);
// 获取对话框的布局
View
layout
=
inflater
.
inflate
(
R
.
layout
.
dialog_verfy
,
null
);
// 为对话框添加布局和设置大小
dialog
.
addContentView
(
layout
,
new
WindowManager
.
LayoutParams
(
WindowManager
.
LayoutParams
.
MATCH_PARENT
,
WindowManager
.
LayoutParams
.
WRAP_CONTENT
));
this
.
verifyView
=
layout
.
findViewById
(
R
.
id
.
verfyview
);
this
.
verifyView
.
setVerifyListenter
(
verifyListenter
);
this
.
llControl
=
layout
.
findViewById
(
R
.
id
.
ll_control
);
this
.
tvHint
=
layout
.
findViewById
(
R
.
id
.
tv_hint
);
showPic
();
layout
.
findViewById
(
R
.
id
.
ll_change_pic
).
setOnClickListener
(
v
->
{
if
(
listener
!=
null
)
{
listener
.
freshen
();
}
});
layout
.
findViewById
(
R
.
id
.
tv_cancel
).
setOnClickListener
(
v
->
{
if
(
listener
!=
null
)
{
listener
.
cancel
();
}
dialog
.
dismiss
();
});
//默认不能点击对话框其他区域退出 和按返回键退出
dialog
.
setCancelable
(
true
);
dialog
.
setContentView
(
layout
);
return
dialog
;
}
public
void
showPic
()
{
if
(
this
.
tvHint
!=
null
&&
this
.
verifyData
!=
null
&&
this
.
verifyData
.
getWordList
()
!=
null
&&
this
.
verifyData
.
getWordList
().
size
()
>
0
)
{
SpannableString
spannableString
=
new
SpannableString
(
"请点击图片中的 “"
+
this
.
verifyData
.
getWordList
().
get
(
0
)
+
"” 字"
);
spannableString
.
setSpan
(
new
ForegroundColorSpan
(
Color
.
parseColor
(
"#f64747"
)),
9
,
10
,
Spanned
.
SPAN_EXCLUSIVE_EXCLUSIVE
);
this
.
tvHint
.
setText
(
spannableString
);
}
Bitmap
bitmap
=
stringToBitmap
(
this
.
verifyData
.
getOriginalImageBase64
());
GlideOptions
options
=
GlideOptions
.
placeholderOf
(
com
.
ruiwenliu
.
wrapper
.
R
.
drawable
.
glide_icon_placeholder
).
error
(
com
.
ruiwenliu
.
wrapper
.
R
.
drawable
.
glide_icon_error
);
Glide
.
with
(
mContext
)
.
asBitmap
()
.
load
(
bitmap
)
.
apply
(
options
)
.
into
(
new
TransformationUtils
(
this
.
verifyView
,
transforationListener
));
}
private
float
sy
=
1.0f
;
public
VerifyImageView
.
TouchVerifyListenter
verifyListenter
=
(
x
,
y
)
->
{
if
(
listener
!=
null
)
{
float
relX
=
x
/
sy
;
float
relY
=
y
/
sy
;
listener
.
verify
((
int
)
relX
,
(
int
)
relY
);
}
};
public
Bitmap
stringToBitmap
(
String
base64Data
)
{
if
(
TextUtils
.
isEmpty
(
base64Data
))
return
null
;
byte
[]
bytes
=
Base64
.
decode
(
base64Data
,
Base64
.
DEFAULT
);
return
BitmapFactory
.
decodeByteArray
(
bytes
,
0
,
bytes
.
length
);
}
private
TransformationUtils
.
TransforationListener
transforationListener
=
s
->
sy
=
s
;
}
public
interface
VerifyListener
{
void
cancel
();
void
verify
(
int
x
,
int
y
);
void
freshen
();
}
}
module_home/src/main/java/com/rv/home/rv/module/ui/login/bean/VerifyDataBean.java
0 → 100644
View file @
864652a7
package
com
.
rv
.
home
.
rv
.
module
.
ui
.
login
.
bean
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
import
java.util.List
;
public
class
VerifyDataBean
extends
BaseBean
{
private
VerifyData
data
;
private
boolean
rel
;
public
VerifyData
getData
()
{
return
data
;
}
public
void
setData
(
VerifyData
data
)
{
this
.
data
=
data
;
}
public
boolean
isRel
()
{
return
rel
;
}
public
void
setRel
(
boolean
rel
)
{
this
.
rel
=
rel
;
}
public
class
VerifyData
{
private
String
originalImageBase64
;
private
List
<
String
>
wordList
;
private
double
width
;
private
double
height
;
public
String
getOriginalImageBase64
()
{
return
originalImageBase64
;
}
public
void
setOriginalImageBase64
(
String
originalImageBase64
)
{
this
.
originalImageBase64
=
originalImageBase64
;
}
public
List
<
String
>
getWordList
()
{
return
wordList
;
}
public
void
setWordList
(
List
<
String
>
wordList
)
{
this
.
wordList
=
wordList
;
}
public
double
getWidth
()
{
return
width
;
}
public
void
setWidth
(
double
width
)
{
this
.
width
=
width
;
}
public
double
getHeight
()
{
return
height
;
}
public
void
setHeight
(
double
height
)
{
this
.
height
=
height
;
}
}
}
module_home/src/main/java/com/rv/home/rv/module/ui/login/bean/VerifyResultBean.java
0 → 100644
View file @
864652a7
package
com
.
rv
.
home
.
rv
.
module
.
ui
.
login
.
bean
;
import
com.ruiwenliu.wrapper.base.BaseBean
;
public
class
VerifyResultBean
extends
BaseBean
{
private
boolean
data
;
private
boolean
rel
;
public
boolean
isData
()
{
return
data
;
}
public
void
setData
(
boolean
data
)
{
this
.
data
=
data
;
}
public
boolean
isRel
()
{
return
rel
;
}
public
void
setRel
(
boolean
rel
)
{
this
.
rel
=
rel
;
}
}
module_home/src/main/java/com/rv/home/rv/module/ui/login/view/VerifyImageView.java
0 → 100644
View file @
864652a7
package
com
.
rv
.
home
.
rv
.
module
.
ui
.
login
.
view
;
import
android.content.Context
;
import
android.util.AttributeSet
;
import
android.view.MotionEvent
;
public
class
VerifyImageView
extends
android
.
support
.
v7
.
widget
.
AppCompatImageView
{
private
TouchVerifyListenter
verifyListenter
;
public
VerifyImageView
(
Context
context
)
{
super
(
context
);
}
public
VerifyImageView
(
Context
context
,
AttributeSet
attrs
)
{
super
(
context
,
attrs
);
}
public
void
setVerifyListenter
(
TouchVerifyListenter
listenter
)
{
this
.
verifyListenter
=
listenter
;
}
@Override
public
boolean
onTouchEvent
(
MotionEvent
event
)
{
super
.
onTouchEvent
(
event
);
switch
(
event
.
getAction
())
{
case
MotionEvent
.
ACTION_DOWN
:
int
x
=
(
int
)
event
.
getX
();
int
y
=
(
int
)
event
.
getY
();
if
(
verifyListenter
!=
null
)
{
verifyListenter
.
verify
(
x
,
y
);
}
break
;
}
return
true
;
}
public
interface
TouchVerifyListenter
{
void
verify
(
int
x
,
int
y
);
}
}
module_home/src/main/java/com/rv/home/rv/until/TransformationUtils.java
0 → 100644
View file @
864652a7
package
com
.
rv
.
home
.
rv
.
until
;
import
android.graphics.Bitmap
;
import
android.view.ViewGroup
;
import
android.widget.ImageView
;
import
com.bumptech.glide.request.target.ImageViewTarget
;
public
class
TransformationUtils
extends
ImageViewTarget
<
Bitmap
>
{
private
ImageView
target
;
private
TransforationListener
listener
;
public
TransformationUtils
(
ImageView
target
,
TransforationListener
listener
)
{
super
(
target
);
this
.
target
=
target
;
this
.
listener
=
listener
;
}
@Override
protected
void
setResource
(
Bitmap
resource
)
{
target
.
setImageBitmap
(
resource
);
if
(
resource
==
null
)
return
;
//获取原图的宽高
int
width
=
resource
.
getWidth
();
int
height
=
resource
.
getHeight
();
//获取imageView的宽
int
imageViewWidth
=
target
.
getWidth
();
//计算缩放比例
float
sy
=
(
float
)
(
imageViewWidth
*
0.1
)
/
(
float
)
(
width
*
0.1
);
if
(
listener
!=
null
)
listener
.
getSy
(
sy
);
//计算图片等比例放大后的高
int
imageViewHeight
=
(
int
)
(
height
*
sy
);
ViewGroup
.
LayoutParams
params
=
target
.
getLayoutParams
();
params
.
height
=
imageViewHeight
;
target
.
setLayoutParams
(
params
);
}
public
interface
TransforationListener
{
void
getSy
(
float
sy
);
}
}
\ No newline at end of file
module_home/src/main/res/drawable-xhdpi/icon_change_verify_code.png
0 → 100644
View file @
864652a7
2.21 KB
module_home/src/main/res/drawable-xhdpi/picture.jpg
0 → 100644
View file @
864652a7
32.5 KB
module_home/src/main/res/drawable/shape_rv_button_white.xml
0 → 100644
View file @
864652a7
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<corners
android:radius=
"8dp"
/>
<solid
android:color=
"@color/white"
/>
</shape>
\ No newline at end of file
module_home/src/main/res/layout/dialog_verfy.xml
0 → 100644
View file @
864652a7
<?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"
android:orientation=
"vertical"
android:paddingLeft=
"@dimen/size_20"
android:paddingRight=
"@dimen/size_20"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<android.support.v7.widget.CardView
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:cardCornerRadius=
"@dimen/size_5"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
>
<!--<com.rv.home.rv.module.ui.login.view.TouchVerifyView-->
<!--android:id="@+id/verfyview"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="wrap_content" />-->
<com.rv.home.rv.module.ui.login.view.VerifyImageView
android:id=
"@+id/verfyview"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
<TextView
android:id=
"@+id/tv_hint"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_40"
android:background=
"@color/white"
android:gravity=
"center"
android:textColor=
"@color/textGray"
android:textSize=
"@dimen/sp_14"
/>
</LinearLayout>
</android.support.v7.widget.CardView>
<LinearLayout
android:id=
"@+id/ll_control"
android:layout_width=
"match_parent"
android:layout_height=
"43dp"
android:layout_marginTop=
"@dimen/dp_10"
android:background=
"@drawable/shape_rv_button_white"
android:gravity=
"center_vertical"
android:orientation=
"horizontal"
>
<LinearLayout
android:id=
"@+id/ll_change_pic"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_weight=
"1"
android:gravity=
"center"
android:orientation=
"horizontal"
>
<ImageView
android:layout_width=
"@dimen/size_25"
android:layout_height=
"@dimen/size_25"
android:src=
"@drawable/icon_change_verify_code"
/>
<TextView
android:id=
"@+id/tv_change"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/size_3"
android:gravity=
"center"
android:text=
"换张图片"
android:textColor=
"@color/colorMain"
android:textSize=
"@dimen/sp_16"
/>
</LinearLayout>
<View
android:layout_width=
"1px"
android:layout_height=
"match_parent"
android:layout_marginTop=
"@dimen/size_5"
android:layout_marginBottom=
"@dimen/size_5"
android:background=
"@color/colorLine"
/>
<TextView
android:id=
"@+id/tv_cancel"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:drawablePadding=
"@dimen/dp_10"
android:gravity=
"center"
android:text=
"取消"
android:textColor=
"@color/colorMain"
android:textSize=
"@dimen/sp_16"
/>
</LinearLayout>
</LinearLayout>
</LinearLayout>
module_mine/src/main/java/com/rv/rvmine/fragment/BindPhoneThirdFragment.java
View file @
864652a7
...
@@ -179,6 +179,7 @@ public class BindPhoneThirdFragment extends BaseFragment<CommonPresenter> {
...
@@ -179,6 +179,7 @@ public class BindPhoneThirdFragment extends BaseFragment<CommonPresenter> {
private
void
sendCode
()
{
private
void
sendCode
()
{
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
Map
<
String
,
Object
>
map
=
new
LinkedHashMap
<>();
map
.
put
(
"username"
,
getPhone
());
map
.
put
(
"username"
,
getPhone
());
map
.
put
(
"type"
,
5
);
mPresenter
.
postData
(
0
,
ApiConfig
.
HTTP_URL_SEND_CODE
,
SendCodeBean
.
class
,
map
,
true
);
mPresenter
.
postData
(
0
,
ApiConfig
.
HTTP_URL_SEND_CODE
,
SendCodeBean
.
class
,
map
,
true
);
}
}
...
...
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