Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
android
/
dayu
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
ef40aadf
authored
Dec 27, 2019
by
mReturn
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
调试接口
parent
ccd93317
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
221 additions
and
65 deletions
.idea/misc.xml
app/src/main/java/com/dayu/bigfish/MyApplication.java
baseSDK/src/main/java/com/dayu/base/ui/activity/DataBindingActivity.java
baseSDK/src/main/java/com/dayu/common/Constants.java
baseSDK/src/main/res/values/strings.xml
orderCenter/src/main/java/com/dayu/order/api/OrderApiFactory.java
orderCenter/src/main/java/com/dayu/order/api/OrderService.java
orderCenter/src/main/java/com/dayu/order/common/OrderConstant.java
userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java
userCenter/src/main/java/com/dayu/usercenter/api/UserService.java
userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java
userCenter/src/main/java/com/dayu/usercenter/data/protocol/RegisterData.java
userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java
userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java
userCenter/src/main/java/com/dayu/usercenter/ui/activity/PwLoginActivity.java
userCenter/src/main/java/com/dayu/usercenter/ui/activity/RegisterActivity.java
userCenter/src/main/java/com/dayu/usercenter/ui/activity/SmsLoginActivity.java
userCenter/src/main/res/layout/activity_register.xml
.idea/misc.xml
View file @
ef40aadf
...
@@ -29,7 +29,7 @@
...
@@ -29,7 +29,7 @@
</value>
</value>
</option>
</option>
</component>
</component>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_1_8"
project-jdk-name=
"
JDK
"
project-jdk-type=
"JavaSDK"
>
<component
name=
"ProjectRootManager"
version=
"2"
languageLevel=
"JDK_1_8"
project-jdk-name=
"
1.8
"
project-jdk-type=
"JavaSDK"
>
<output
url=
"file://$PROJECT_DIR$/build/classes"
/>
<output
url=
"file://$PROJECT_DIR$/build/classes"
/>
</component>
</component>
<component
name=
"ProjectType"
>
<component
name=
"ProjectType"
>
...
...
app/src/main/java/com/dayu/bigfish/MyApplication.java
View file @
ef40aadf
...
@@ -20,6 +20,10 @@ import com.umeng.analytics.MobclickAgent;
...
@@ -20,6 +20,10 @@ import com.umeng.analytics.MobclickAgent;
import
com.umeng.analytics.MobclickAgent.EScenarioType
;
import
com.umeng.analytics.MobclickAgent.EScenarioType
;
import
com.umeng.commonsdk.UMConfigure
;
import
com.umeng.commonsdk.UMConfigure
;
import
java.lang.reflect.Constructor
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Method
;
/**
/**
* 全局的相关配置
* 全局的相关配置
* MrWang
* MrWang
...
@@ -38,6 +42,7 @@ public class MyApplication extends BaseApplication {
...
@@ -38,6 +42,7 @@ public class MyApplication extends BaseApplication {
@Override
@Override
public
void
onCreate
()
{
public
void
onCreate
()
{
super
.
onCreate
();
super
.
onCreate
();
closeAndroidPDialog
();
myApplication
=
this
;
myApplication
=
this
;
IntentFilter
filter
=
new
IntentFilter
();
IntentFilter
filter
=
new
IntentFilter
();
filter
.
addAction
(
WifiManager
.
WIFI_STATE_CHANGED_ACTION
);
filter
.
addAction
(
WifiManager
.
WIFI_STATE_CHANGED_ACTION
);
...
@@ -99,4 +104,28 @@ public class MyApplication extends BaseApplication {
...
@@ -99,4 +104,28 @@ public class MyApplication extends BaseApplication {
public
static
Context
getContext
()
{
public
static
Context
getContext
()
{
return
mContext
;
return
mContext
;
}
}
//解决在Android P上的调用非官方api提醒弹窗 (Detected problems with API compatibility(visit g.co/dev/appcompat for more info)
private
void
closeAndroidPDialog
(){
try
{
Class
aClass
=
Class
.
forName
(
"android.content.pm.PackageParser$Package"
);
Constructor
declaredConstructor
=
aClass
.
getDeclaredConstructor
(
String
.
class
);
declaredConstructor
.
setAccessible
(
true
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
try
{
Class
cls
=
Class
.
forName
(
"android.app.ActivityThread"
);
Method
declaredMethod
=
cls
.
getDeclaredMethod
(
"currentActivityThread"
);
declaredMethod
.
setAccessible
(
true
);
Object
activityThread
=
declaredMethod
.
invoke
(
null
);
Field
mHiddenApiWarningShown
=
cls
.
getDeclaredField
(
"mHiddenApiWarningShown"
);
mHiddenApiWarningShown
.
setAccessible
(
true
);
mHiddenApiWarningShown
.
setBoolean
(
activityThread
,
true
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
}
}
baseSDK/src/main/java/com/dayu/base/ui/activity/DataBindingActivity.java
View file @
ef40aadf
...
@@ -10,6 +10,9 @@ import android.view.View;
...
@@ -10,6 +10,9 @@ import android.view.View;
import
com.dayu.common.BaseConstant
;
import
com.dayu.common.BaseConstant
;
import
com.umeng.analytics.MobclickAgent
;
import
com.umeng.analytics.MobclickAgent
;
import
org.greenrobot.eventbus.EventBus
;
import
org.greenrobot.eventbus.Subscribe
;
public
abstract
class
DataBindingActivity
<
B
extends
ViewDataBinding
>
extends
AppCompatActivity
{
public
abstract
class
DataBindingActivity
<
B
extends
ViewDataBinding
>
extends
AppCompatActivity
{
public
Activity
mActivity
;
public
Activity
mActivity
;
public
B
mBind
;
public
B
mBind
;
...
...
baseSDK/src/main/java/com/dayu/common/Constants.java
View file @
ef40aadf
...
@@ -12,16 +12,16 @@ public class Constants {
...
@@ -12,16 +12,16 @@ public class Constants {
/**
/**
* 测试环境配置.
* 测试环境配置.
*/
*/
//
public static final int LOG_LEVEL = LogUtils.LEVEL_ALL;
public
static
final
int
LOG_LEVEL
=
LogUtils
.
LEVEL_ALL
;
//
public static final String ENVIROMENT = "debug";
public
static
final
String
ENVIROMENT
=
"debug"
;
//
public static final String BASE_URL = "http://47.94.101.239:3112";
public
static
final
String
BASE_URL
=
"http://47.94.101.239:3112"
;
//
public final static String UP_PHOTO = "/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply";
public
final
static
String
UP_PHOTO
=
"/file/uploadMore?targetPath=test/sp/mobile/android/business/checkApply"
;
//
public final static String WEB_SOP = "http://47.94.101.239:9004/#/sop";
public
final
static
String
WEB_SOP
=
"http://47.94.101.239:9004/#/sop"
;
//
public final static String CHECK_MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manyServiceResult";
public
final
static
String
CHECK_MULTI_WEB_SOP
=
"http://47.94.101.239:9004/#/manyServiceResult"
;
//
public final static String MULTI_WEB_SOP = "http://47.94.101.239:9004/#/manySop";
public
final
static
String
MULTI_WEB_SOP
=
"http://47.94.101.239:9004/#/manySop"
;
//
public final static String WEB_SOP_DETAIL = "http://47.94.101.239:9004/#/sopdetail";
public
final
static
String
WEB_SOP_DETAIL
=
"http://47.94.101.239:9004/#/sopdetail"
;
//
public final static String WEB_ZHI_SHI = "http://47.94.101.239:9004/#/detail";
public
final
static
String
WEB_ZHI_SHI
=
"http://47.94.101.239:9004/#/detail"
;
//
public static final boolean IS_DEBUG = true;
public
static
final
boolean
IS_DEBUG
=
true
;
/**
/**
* uat环境配置.
* uat环境配置.
...
@@ -40,16 +40,16 @@ public class Constants {
...
@@ -40,16 +40,16 @@ public class Constants {
/**
/**
* 正式环境.
* 正式环境.
*/
*/
public
static
final
String
ENVIROMENT
=
"release"
;
//
public static final String ENVIROMENT = "release";
public
static
final
int
LOG_LEVEL
=
LogUtils
.
LEVEL_OFF
;
//
public static final int LOG_LEVEL = LogUtils.LEVEL_OFF;
public
static
final
String
BASE_URL
=
"https://mobile.kf.ai"
;
//
public static final String BASE_URL = "https://mobile.kf.ai";
public
final
static
String
UP_PHOTO
=
"/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply"
;
//
public final static String UP_PHOTO = "/file/uploadMore?targetPath=online/sp/mobile/android/business/checkApply";
public
final
static
String
WEB_SOP
=
"https://sop.kf.ai/#/sop"
;
//
public final static String WEB_SOP = "https://sop.kf.ai/#/sop";
public
final
static
String
WEB_SOP_DETAIL
=
"https://sop.kf.ai/#/sopdetail"
;
//
public final static String WEB_SOP_DETAIL = "https://sop.kf.ai/#/sopdetail";
public
final
static
String
WEB_ZHI_SHI
=
"https://sop.kf.ai/#/detail"
;
//
public final static String WEB_ZHI_SHI = "https://sop.kf.ai/#/detail";
public
final
static
String
CHECK_MULTI_WEB_SOP
=
"https://sop.kf.ai/#/manyServiceResult"
;
//
public final static String CHECK_MULTI_WEB_SOP = "https://sop.kf.ai/#/manyServiceResult";
public
final
static
String
MULTI_WEB_SOP
=
"https://sop.kf.ai/#/manySop"
;
//
public final static String MULTI_WEB_SOP = "https://sop.kf.ai/#/manySop";
public
static
final
boolean
IS_DEBUG
=
false
;
//
public static final boolean IS_DEBUG = false;
/**
/**
* 统一配置.
* 统一配置.
...
...
baseSDK/src/main/res/values/strings.xml
View file @
ef40aadf
...
@@ -757,5 +757,8 @@ C) 在甲方使用大鱼平å°æœåŠ¡è¿‡ç¨‹ä¸äº§ç”Ÿçš„业务数æ®ï¼Œå®¢æˆ·æ•°æ
...
@@ -757,5 +757,8 @@ C) 在甲方使用大鱼平å°æœåŠ¡è¿‡ç¨‹ä¸äº§ç”Ÿçš„业务数æ®ï¼Œå®¢æˆ·æ•°æ
<string
name=
"str_phone"
>
手机号
</string>
<string
name=
"str_phone"
>
手机号
</string>
<string
name=
"str_pwd"
>
登录密码
</string>
<string
name=
"str_pwd"
>
登录密码
</string>
<string
name=
"str_confirm_pwd"
>
确认密码
</string>
<string
name=
"str_confirm_pwd"
>
确认密码
</string>
<string
name=
"upload_avatar_fail"
>
上传头像失败
</string>
<string
name=
"register_success"
>
注册成功
</string>
<string
name=
"register_fail"
>
注册失败
</string>
</resources>
</resources>
orderCenter/src/main/java/com/dayu/order/api/OrderApiFactory.java
View file @
ef40aadf
...
@@ -39,7 +39,8 @@ public class OrderApiFactory {
...
@@ -39,7 +39,8 @@ public class OrderApiFactory {
}
}
public
static
Observable
<
BasePageBean
<
Order
>>
getOrders
(
int
state
,
int
engineerId
,
int
siteId
,
int
page
,
int
pageSize
)
{
public
static
Observable
<
BasePageBean
<
Order
>>
getOrders
(
int
state
,
int
engineerId
,
int
siteId
,
int
page
,
int
pageSize
)
{
return
Api
.
getService
(
OrderService
.
class
).
getOrders
(
state
,
engineerId
,
siteId
,
page
,
pageSize
).
compose
(
Api
.
applySchedulers
());
// return Api.getService(OrderService.class).getOrders(state, engineerId, siteId, page, pageSize).compose(Api.applySchedulers());
return
Api
.
getService
(
OrderService
.
class
).
getOrders
(
state
,
engineerId
,
page
,
pageSize
).
compose
(
Api
.
applySchedulers
());
}
}
public
static
Observable
<
Boolean
>
receiveOrder
(
int
orderId
,
int
engineerId
)
{
public
static
Observable
<
Boolean
>
receiveOrder
(
int
orderId
,
int
engineerId
)
{
...
@@ -59,7 +60,8 @@ public class OrderApiFactory {
...
@@ -59,7 +60,8 @@ public class OrderApiFactory {
}
}
public
static
Observable
<
Tab
>
getTabNum
(
int
userId
,
int
siteId
)
{
public
static
Observable
<
Tab
>
getTabNum
(
int
userId
,
int
siteId
)
{
return
Api
.
getService
(
OrderService
.
class
).
getTabNum
(
userId
,
siteId
).
compose
(
Api
.
applySchedulers
());
// return Api.getService(OrderService.class).getTabNum(userId, siteId).compose(Api.applySchedulers());
return
Api
.
getService
(
OrderService
.
class
).
getTabNum
(
userId
).
compose
(
Api
.
applySchedulers
());
}
}
public
static
Observable
<
OrderDetail
>
getOrderInfo
(
int
orderId
)
{
public
static
Observable
<
OrderDetail
>
getOrderInfo
(
int
orderId
)
{
...
@@ -159,6 +161,6 @@ public class OrderApiFactory {
...
@@ -159,6 +161,6 @@ public class OrderApiFactory {
}
}
public
static
Observable
<
BasePageBean
<
Order
>>
searchOrder
(
String
key
,
int
siteId
,
int
userAccount
,
int
status
,
int
page
,
int
pageSize
)
{
public
static
Observable
<
BasePageBean
<
Order
>>
searchOrder
(
String
key
,
int
siteId
,
int
userAccount
,
int
status
,
int
page
,
int
pageSize
)
{
return
Api
.
getService
(
OrderService
.
class
).
searchOrder
(
key
,
siteId
,
userAccount
,
status
,
page
,
pageSize
).
compose
(
Api
.
applySchedulers
());
return
Api
.
getService
(
OrderService
.
class
).
searchOrder
(
key
,
userAccount
,
status
,
page
,
pageSize
).
compose
(
Api
.
applySchedulers
());
}
}
}
}
orderCenter/src/main/java/com/dayu/order/api/OrderService.java
View file @
ef40aadf
...
@@ -64,9 +64,13 @@ interface OrderService {
...
@@ -64,9 +64,13 @@ interface OrderService {
@GET
(
OrderConstant
.
ORDERS
)
@GET
(
OrderConstant
.
ORDERS
)
Observable
<
BaseResponse
<
BasePageBean
<
Order
>>>
getOrders
(
@Query
(
"state"
)
int
state
,
Observable
<
BaseResponse
<
BasePageBean
<
Order
>>>
getOrders
(
@Query
(
"state"
)
int
state
,
@Query
(
"engineerId"
)
int
engineerId
,
@Query
(
"engineerId"
)
int
engineerId
,
@Query
(
"siteId"
)
int
siteId
,
@Query
(
"page"
)
int
page
,
@Query
(
"page"
)
int
page
,
@Query
(
"pageSize"
)
int
pageSize
);
@Query
(
"pageSize"
)
int
pageSize
);
// Observable<BaseResponse<BasePageBean<Order>>> getOrders(@Query("state") int state,
// @Query("engineerId") int engineerId,
// @Query("siteId") int siteId,
// @Query("page") int page,
// @Query("pageSize") int pageSize);
/**
/**
* 获取异常订单列表.
* 获取异常订单列表.
...
@@ -126,7 +130,8 @@ interface OrderService {
...
@@ -126,7 +130,8 @@ interface OrderService {
* @return
* @return
*/
*/
@GET
(
OrderConstant
.
TAB_NUM
)
@GET
(
OrderConstant
.
TAB_NUM
)
Observable
<
BaseResponse
<
Tab
>>
getTabNum
(
@Path
(
"userId"
)
int
userId
,
@Path
(
"siteId"
)
int
siteId
);
Observable
<
BaseResponse
<
Tab
>>
getTabNum
(
@Path
(
"userId"
)
int
userId
);
// Observable<BaseResponse<Tab>> getTabNum(@Path("userId") int userId, @Path("siteId") int siteId);
/**
/**
* 获取工单详情信息.
* 获取工单详情信息.
...
@@ -365,9 +370,14 @@ interface OrderService {
...
@@ -365,9 +370,14 @@ interface OrderService {
*/
*/
@GET
(
OrderConstant
.
SEARCH_ORDER
)
@GET
(
OrderConstant
.
SEARCH_ORDER
)
Observable
<
BaseResponse
<
BasePageBean
<
Order
>>>
searchOrder
(
@Query
(
"key"
)
String
key
,
Observable
<
BaseResponse
<
BasePageBean
<
Order
>>>
searchOrder
(
@Query
(
"key"
)
String
key
,
@Query
(
"siteId"
)
int
siteId
,
@Query
(
"engineerId"
)
int
engineerId
,
@Query
(
"engineerId"
)
int
engineerId
,
@Query
(
"status"
)
int
status
,
@Query
(
"status"
)
int
status
,
@Query
(
"page"
)
int
page
,
@Query
(
"page"
)
int
page
,
@Query
(
"pageSize"
)
int
pageSize
);
@Query
(
"pageSize"
)
int
pageSize
);
// Observable<BaseResponse<BasePageBean<Order>>> searchOrder(@Query("key") String key,
// @Query("siteId") int siteId,
// @Query("engineerId") int engineerId,
// @Query("status") int status,
// @Query("page") int page,
// @Query("pageSize") int pageSize);
}
}
orderCenter/src/main/java/com/dayu/order/common/OrderConstant.java
View file @
ef40aadf
...
@@ -61,9 +61,10 @@ public class OrderConstant {
...
@@ -61,9 +61,10 @@ public class OrderConstant {
*/
*/
public
final
static
String
ORDERS
=
"/api-order/"
+
"orders/findSimpleOrderVOByPage"
;
public
final
static
String
ORDERS
=
"/api-order/"
+
"orders/findSimpleOrderVOByPage"
;
/**
/**
* 获取首页tab状态的数量.
* 获取首页tab状态的数量
(统计接口)
.
*/
*/
public
final
static
String
TAB_NUM
=
"/api-order/"
+
"orders/{userId}/count/siteId/{siteId}"
;
// public final static String TAB_NUM = "/api-order/" + "orders/{userId}/count/siteId/{siteId}";
public
final
static
String
TAB_NUM
=
"/api-order/"
+
"orders/{userId}/count"
;
/**
/**
* 获取服务说明.
* 获取服务说明.
...
...
userCenter/src/main/java/com/dayu/usercenter/api/UserApiFactory.java
View file @
ef40aadf
...
@@ -9,6 +9,7 @@ import com.dayu.usercenter.data.protocol.AlipayInfo;
...
@@ -9,6 +9,7 @@ import com.dayu.usercenter.data.protocol.AlipayInfo;
import
com.dayu.usercenter.data.protocol.EngineerInfo
;
import
com.dayu.usercenter.data.protocol.EngineerInfo
;
import
com.dayu.usercenter.data.protocol.LicenceInfo
;
import
com.dayu.usercenter.data.protocol.LicenceInfo
;
import
com.dayu.usercenter.data.protocol.OrderRecord
;
import
com.dayu.usercenter.data.protocol.OrderRecord
;
import
com.dayu.usercenter.data.protocol.RegisterData
;
import
com.dayu.usercenter.data.protocol.TodayAchievement
;
import
com.dayu.usercenter.data.protocol.TodayAchievement
;
import
com.dayu.usercenter.data.protocol.TodayBalance
;
import
com.dayu.usercenter.data.protocol.TodayBalance
;
...
@@ -22,6 +23,9 @@ import okhttp3.RequestBody;
...
@@ -22,6 +23,9 @@ import okhttp3.RequestBody;
*/
*/
public
class
UserApiFactory
{
public
class
UserApiFactory
{
public
static
Observable
<
Boolean
>
register
(
RegisterData
data
)
{
return
Api
.
getService
(
UserService
.
class
).
register
(
data
).
compose
(
Api
.
applySchedulers
());
}
public
static
Observable
<
UserInfo
>
login
(
String
phone
,
String
smsCode
,
String
loginType
)
{
public
static
Observable
<
UserInfo
>
login
(
String
phone
,
String
smsCode
,
String
loginType
)
{
return
Api
.
getService
(
UserService
.
class
).
login
(
phone
,
smsCode
,
loginType
).
compose
(
Api
.
applySchedulers
());
return
Api
.
getService
(
UserService
.
class
).
login
(
phone
,
smsCode
,
loginType
).
compose
(
Api
.
applySchedulers
());
}
}
...
...
userCenter/src/main/java/com/dayu/usercenter/api/UserService.java
View file @
ef40aadf
...
@@ -11,6 +11,7 @@ import com.dayu.usercenter.data.protocol.AlipayInfo;
...
@@ -11,6 +11,7 @@ import com.dayu.usercenter.data.protocol.AlipayInfo;
import
com.dayu.usercenter.data.protocol.EngineerInfo
;
import
com.dayu.usercenter.data.protocol.EngineerInfo
;
import
com.dayu.usercenter.data.protocol.LicenceInfo
;
import
com.dayu.usercenter.data.protocol.LicenceInfo
;
import
com.dayu.usercenter.data.protocol.OrderRecord
;
import
com.dayu.usercenter.data.protocol.OrderRecord
;
import
com.dayu.usercenter.data.protocol.RegisterData
;
import
com.dayu.usercenter.data.protocol.TodayAchievement
;
import
com.dayu.usercenter.data.protocol.TodayAchievement
;
import
com.dayu.usercenter.data.protocol.TodayBalance
;
import
com.dayu.usercenter.data.protocol.TodayBalance
;
...
@@ -30,6 +31,13 @@ import retrofit2.http.Query;
...
@@ -30,6 +31,13 @@ import retrofit2.http.Query;
*/
*/
public
interface
UserService
{
public
interface
UserService
{
/**
/**
* 注册
*
* @return
*/
@POST
(
UserConstant
.
PWD_REGISTER_URL
)
Observable
<
BaseResponse
<
Boolean
>>
register
(
@Body
RegisterData
data
);
/**
* 登录
* 登录
*
*
* @return
* @return
...
...
userCenter/src/main/java/com/dayu/usercenter/common/UserConstant.java
View file @
ef40aadf
...
@@ -13,6 +13,10 @@ public class UserConstant {
...
@@ -13,6 +13,10 @@ public class UserConstant {
public
static
final
String
CODE
=
"code"
;
public
static
final
String
CODE
=
"code"
;
/**
/**
* 注册
*/
public
static
final
String
PWD_REGISTER_URL
=
"/api-user/engineerInfo/registerMobileEngineer"
;
/**
* 登录.
* 登录.
*/
*/
public
static
final
String
LOGIN_URL
=
"/check"
;
public
static
final
String
LOGIN_URL
=
"/check"
;
...
@@ -33,7 +37,8 @@ public class UserConstant {
...
@@ -33,7 +37,8 @@ public class UserConstant {
/**
/**
* 获取工程师信息.
* 获取工程师信息.
*/
*/
public
static
final
String
PERSONAL_CENTER
=
"/api-user/"
+
"engineerInfo/accountId/{accountId}"
;
// public static final String PERSONAL_CENTER = "/api-user/" + "engineerInfo/accountId/{accountId}";
public
static
final
String
PERSONAL_CENTER
=
"/api-user/"
+
"/engineerInfo/mobile/accountId/{accountId}"
;
/**
/**
* 工程师今日收益.
* 工程师今日收益.
*/
*/
...
...
userCenter/src/main/java/com/dayu/usercenter/data/protocol/RegisterData.java
View file @
ef40aadf
...
@@ -5,4 +5,15 @@ package com.dayu.usercenter.data.protocol;
...
@@ -5,4 +5,15 @@ package com.dayu.usercenter.data.protocol;
* on 2019\12\26 0026.
* on 2019\12\26 0026.
*/
*/
public
class
RegisterData
{
public
class
RegisterData
{
public
String
accountUrl
;
public
String
realName
;
public
String
mobile
;
public
String
password
;
public
RegisterData
(
String
accountUrl
,
String
realName
,
String
mobile
,
String
password
)
{
this
.
accountUrl
=
accountUrl
;
this
.
realName
=
realName
;
this
.
mobile
=
mobile
;
this
.
password
=
password
;
}
}
}
userCenter/src/main/java/com/dayu/usercenter/presenter/pwlogin/PwLoginPresenter.java
View file @
ef40aadf
...
@@ -100,18 +100,7 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
...
@@ -100,18 +100,7 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
mView
.
showDialog
();
mView
.
showDialog
();
UserApiFactory
.
getSiteId
(
Integer
.
parseInt
(
info
.
getAccountId
())).
subscribe
(
baseObserver
(
UserApiFactory
.
getSiteId
(
Integer
.
parseInt
(
info
.
getAccountId
())).
subscribe
(
baseObserver
(
integer
->
{
integer
->
{
info
.
setSiteId
(
integer
);
dealSiteId
(
info
,
integer
);
loginHx
(
info
.
getHxAccount
(),
info
.
getHxPwd
());
UserManager
.
getInstance
().
saveUser
(
info
);
if
(
info
.
getDetectStatus
()
==
1
)
{
if
(
UserManager
.
getInstance
().
getRole
()
==
Constants
.
ENGINEER
)
{
ARouter
.
getInstance
().
build
(
RouterPath
.
PATH_MAIN
).
navigation
();
}
else
if
(
UserManager
.
getInstance
().
getRole
()
==
Constants
.
MANAGER_ENGINEER
)
{
getStations
(
Integer
.
parseInt
(
info
.
getAccountId
()));
}
}
else
if
(
info
.
getDetectStatus
()
==
2
||
info
.
getDetectStatus
()
==
3
)
{
showLoginDialog
();
}
},
error
->
{
},
error
->
{
switch
(
error
.
subCode
)
{
switch
(
error
.
subCode
)
{
case
"USER0024"
:
//工程师不属于任何服务站
case
"USER0024"
:
//工程师不属于任何服务站
...
@@ -125,12 +114,28 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
...
@@ -125,12 +114,28 @@ public class PwLoginPresenter extends PwLoginContract.Presenter {
}
}
break
;
break
;
default
:
default
:
ToastUtils
.
showShortToast
(
R
.
string
.
login_faile
);
dealSiteId
(
info
,
-
1
);
// ToastUtils.showShortToast(R.string.login_faile);
break
;
break
;
}
}
}));
}));
}
}
private
void
dealSiteId
(
UserInfo
info
,
Integer
integer
)
{
info
.
setSiteId
(
integer
);
loginHx
(
info
.
getHxAccount
(),
info
.
getHxPwd
());
UserManager
.
getInstance
().
saveUser
(
info
);
if
(
info
.
getDetectStatus
()
==
1
)
{
if
(
UserManager
.
getInstance
().
getRole
()
==
Constants
.
ENGINEER
)
{
ARouter
.
getInstance
().
build
(
RouterPath
.
PATH_MAIN
).
navigation
();
}
else
if
(
UserManager
.
getInstance
().
getRole
()
==
Constants
.
MANAGER_ENGINEER
)
{
getStations
(
Integer
.
parseInt
(
info
.
getAccountId
()));
}
}
else
if
(
info
.
getDetectStatus
()
==
2
||
info
.
getDetectStatus
()
==
3
)
{
showLoginDialog
();
}
}
@Override
@Override
public
void
dumpAndSave
(
UserInfo
info
)
{
public
void
dumpAndSave
(
UserInfo
info
)
{
switch
(
UserManager
.
getInstance
().
getRole
(
info
))
{
switch
(
UserManager
.
getInstance
().
getRole
(
info
))
{
...
...
userCenter/src/main/java/com/dayu/usercenter/presenter/smslogin/SmsLoginPresenter.java
View file @
ef40aadf
...
@@ -167,18 +167,7 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
...
@@ -167,18 +167,7 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
mView
.
showDialog
();
mView
.
showDialog
();
UserApiFactory
.
getSiteId
(
Integer
.
parseInt
(
info
.
getAccountId
())).
subscribe
(
baseObserver
(
UserApiFactory
.
getSiteId
(
Integer
.
parseInt
(
info
.
getAccountId
())).
subscribe
(
baseObserver
(
integer
->
{
integer
->
{
info
.
setSiteId
(
integer
);
dealSiteId
(
info
,
integer
);
loginHx
(
info
.
getHxAccount
(),
info
.
getHxPwd
());
UserManager
.
getInstance
().
saveUser
(
info
);
if
(
info
.
getDetectStatus
()
==
1
)
{
if
(
UserManager
.
getInstance
().
getRole
()
==
Constants
.
ENGINEER
)
{
ARouter
.
getInstance
().
build
(
RouterPath
.
PATH_MAIN
).
navigation
();
}
else
if
(
UserManager
.
getInstance
().
getRole
()
==
Constants
.
MANAGER_ENGINEER
)
{
getStations
(
Integer
.
parseInt
(
info
.
getAccountId
()));
}
}
else
if
(
info
.
getDetectStatus
()
==
2
||
info
.
getDetectStatus
()
==
3
)
{
showLoginDialog
();
}
},
error
->
{
},
error
->
{
switch
(
error
.
subCode
)
{
switch
(
error
.
subCode
)
{
case
"USER0024"
:
//工程师不属于任何服务站
case
"USER0024"
:
//工程师不属于任何服务站
...
@@ -194,12 +183,28 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
...
@@ -194,12 +183,28 @@ public class SmsLoginPresenter extends SmsLoginContract.Presenter {
}
}
break
;
break
;
default
:
default
:
ToastUtils
.
showShortToast
(
R
.
string
.
login_faile
);
// ToastUtils.showShortToast(R.string.login_faile);
dealSiteId
(
info
,-
1
);
break
;
break
;
}
}
}));
}));
}
}
private
void
dealSiteId
(
UserInfo
info
,
Integer
integer
)
{
info
.
setSiteId
(
integer
);
loginHx
(
info
.
getHxAccount
(),
info
.
getHxPwd
());
UserManager
.
getInstance
().
saveUser
(
info
);
if
(
info
.
getDetectStatus
()
==
1
)
{
if
(
UserManager
.
getInstance
().
getRole
()
==
Constants
.
ENGINEER
)
{
ARouter
.
getInstance
().
build
(
RouterPath
.
PATH_MAIN
).
navigation
();
}
else
if
(
UserManager
.
getInstance
().
getRole
()
==
Constants
.
MANAGER_ENGINEER
)
{
getStations
(
Integer
.
parseInt
(
info
.
getAccountId
()));
}
}
else
if
(
info
.
getDetectStatus
()
==
2
||
info
.
getDetectStatus
()
==
3
)
{
showLoginDialog
();
}
}
private
void
showLoginDialog
()
{
private
void
showLoginDialog
()
{
mView
.
showLoginDialog
((
dialog
,
confirm
)
->
{
mView
.
showLoginDialog
((
dialog
,
confirm
)
->
{
if
(
confirm
)
{
if
(
confirm
)
{
...
...
userCenter/src/main/java/com/dayu/usercenter/ui/activity/PwLoginActivity.java
View file @
ef40aadf
...
@@ -12,11 +12,15 @@ import com.dayu.common.MyTextWatcher;
...
@@ -12,11 +12,15 @@ import com.dayu.common.MyTextWatcher;
import
com.dayu.usercenter.R
;
import
com.dayu.usercenter.R
;
import
com.dayu.usercenter.common.UserConstant
;
import
com.dayu.usercenter.common.UserConstant
;
import
com.dayu.usercenter.databinding.ActivityPwloginLayoutBinding
;
import
com.dayu.usercenter.databinding.ActivityPwloginLayoutBinding
;
import
com.dayu.usercenter.event.RegisterSuccessEvent
;
import
com.dayu.usercenter.presenter.pwlogin.PwLoginContract
;
import
com.dayu.usercenter.presenter.pwlogin.PwLoginContract
;
import
com.dayu.usercenter.presenter.pwlogin.PwLoginPresenter
;
import
com.dayu.usercenter.presenter.pwlogin.PwLoginPresenter
;
import
com.dayu.widgets.CustomDialog
;
import
com.dayu.widgets.CustomDialog
;
import
com.dayu.widgets.listener.OnCloseListener
;
import
com.dayu.widgets.listener.OnCloseListener
;
import
org.greenrobot.eventbus.EventBus
;
import
org.greenrobot.eventbus.Subscribe
;
/**
/**
* Created by luofan
* Created by luofan
* on 2018/7/3.
* on 2018/7/3.
...
@@ -32,6 +36,7 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo
...
@@ -32,6 +36,7 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo
@Override
@Override
public
void
initView
()
{
public
void
initView
()
{
EventBus
.
getDefault
().
register
(
this
);
mBind
.
toolbar
.
setNavigationOnClickListener
(
v
->
startActvityAndFinish
(
SmsLoginActivity
.
class
));
mBind
.
toolbar
.
setNavigationOnClickListener
(
v
->
startActvityAndFinish
(
SmsLoginActivity
.
class
));
mBind
.
showPwd
.
setOnClickListener
(
v
->
{
mBind
.
showPwd
.
setOnClickListener
(
v
->
{
if
(
mPwdState
==
1
)
{
if
(
mPwdState
==
1
)
{
...
@@ -80,6 +85,11 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo
...
@@ -80,6 +85,11 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo
}
}
}
}
@Subscribe
public
void
registerSuccess
(
RegisterSuccessEvent
event
){
finish
();
}
@Override
@Override
public
void
setPresenter
()
{
public
void
setPresenter
()
{
mBind
.
setPresenter
(
mPresenter
);
mBind
.
setPresenter
(
mPresenter
);
...
@@ -99,4 +109,10 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo
...
@@ -99,4 +109,10 @@ public class PwLoginActivity extends BaseActivity<PwLoginPresenter, ActivityPwlo
public
void
onBackPressed
()
{
public
void
onBackPressed
()
{
startActvityAndFinish
(
SmsLoginActivity
.
class
);
startActvityAndFinish
(
SmsLoginActivity
.
class
);
}
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
EventBus
.
getDefault
().
unregister
(
this
);
}
}
}
userCenter/src/main/java/com/dayu/usercenter/ui/activity/RegisterActivity.java
View file @
ef40aadf
package
com
.
dayu
.
usercenter
.
ui
.
activity
;
package
com
.
dayu
.
usercenter
.
ui
.
activity
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.text.Editable
;
import
android.text.Editable
;
import
android.text.TextUtils
;
import
android.text.TextUtils
;
import
android.view.View
;
import
android.view.View
;
...
@@ -10,11 +11,18 @@ import com.dayu.base.ui.activity.BaseActivity;
...
@@ -10,11 +11,18 @@ import com.dayu.base.ui.activity.BaseActivity;
import
com.dayu.base.ui.activity.DataBindingActivity
;
import
com.dayu.base.ui.activity.DataBindingActivity
;
import
com.dayu.base.ui.presenter.SImplePresenter
;
import
com.dayu.base.ui.presenter.SImplePresenter
;
import
com.dayu.common.BaseApplication
;
import
com.dayu.common.BaseApplication
;
import
com.dayu.common.Constants
;
import
com.dayu.common.MyTextWatcher
;
import
com.dayu.common.MyTextWatcher
;
import
com.dayu.usercenter.R
;
import
com.dayu.usercenter.R
;
import
com.dayu.usercenter.api.UserApiFactory
;
import
com.dayu.usercenter.common.UserConstant
;
import
com.dayu.usercenter.data.protocol.RegisterData
;
import
com.dayu.usercenter.databinding.ActivityRegisterBinding
;
import
com.dayu.usercenter.databinding.ActivityRegisterBinding
;
import
com.dayu.usercenter.event.RegisterSuccessEvent
;
import
com.dayu.utils.GlideImageLoader
;
import
com.dayu.utils.GlideImageLoader
;
import
com.dayu.utils.MD5Util
;
import
com.dayu.utils.PictrueUtils
;
import
com.dayu.utils.PictrueUtils
;
import
com.dayu.utils.ProgressUtil
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.utils.UtilsUserAccountMatcher
;
import
com.dayu.utils.UtilsUserAccountMatcher
;
import
com.luck.picture.lib.PictureSelector
;
import
com.luck.picture.lib.PictureSelector
;
...
@@ -22,6 +30,8 @@ import com.luck.picture.lib.config.PictureConfig;
...
@@ -22,6 +30,8 @@ import com.luck.picture.lib.config.PictureConfig;
import
com.luck.picture.lib.entity.LocalMedia
;
import
com.luck.picture.lib.entity.LocalMedia
;
import
com.umeng.analytics.MobclickAgent
;
import
com.umeng.analytics.MobclickAgent
;
import
org.greenrobot.eventbus.EventBus
;
import
java.io.File
;
import
java.io.File
;
import
java.util.List
;
import
java.util.List
;
...
@@ -102,24 +112,53 @@ public class RegisterActivity extends BaseActivity<SImplePresenter, ActivityRegi
...
@@ -102,24 +112,53 @@ public class RegisterActivity extends BaseActivity<SImplePresenter, ActivityRegi
MobclickAgent
.
onEvent
(
BaseApplication
.
getContext
(),
"check_header_pic_register"
);
MobclickAgent
.
onEvent
(
BaseApplication
.
getContext
(),
"check_header_pic_register"
);
}
else
if
(
vid
==
R
.
id
.
btn_cancel
||
vid
==
R
.
id
.
title_back
)
{
}
else
if
(
vid
==
R
.
id
.
btn_cancel
||
vid
==
R
.
id
.
title_back
)
{
finish
();
finish
();
}
else
if
(
vid
==
R
.
id
.
btn_submit
)
{
}
else
if
(
vid
==
R
.
id
.
btn_submit
)
{
ToastUtils
.
showShortToast
(
"submit"
);
// EventBus.getDefault().post(new RegisterSuccessEvent());
// Bundle bundle = new Bundle();
// bundle.putString(UserConstant.PHONE, mBind.edtPhone.getText().toString());
// startActivityAndFinish(PwLoginActivity.class,bundle);
if
(!
TextUtils
.
isEmpty
(
avatarPath
)){
uploadAvatar
();
}
else
{
register
(
""
);
}
}
}
}
}
public
void
uploadAvatar
()
{
public
void
uploadAvatar
()
{
ProgressUtil
.
startLoad
(
this
);
File
file
=
new
File
(
avatarPath
);
File
file
=
new
File
(
avatarPath
);
RequestBody
requestFile
=
RequestBody
.
create
(
MediaType
.
parse
(
"multipart/form-data"
),
file
);
RequestBody
requestFile
=
RequestBody
.
create
(
MediaType
.
parse
(
"multipart/form-data"
),
file
);
MultipartBody
.
Part
body
=
MultipartBody
.
Part
.
createFormData
(
"fileUpload"
,
file
.
getName
(),
requestFile
);
MultipartBody
.
Part
body
=
MultipartBody
.
Part
.
createFormData
(
"fileUpload"
,
file
.
getName
(),
requestFile
);
BaseApiFactory
.
uploadPhoto
(
body
).
subscribe
(
mPresenter
.
baseObserver
(
list
->
{
BaseApiFactory
.
uploadPhoto
(
body
).
subscribe
(
mPresenter
.
baseObserver
(
list
->
{
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
if
(
list
!=
null
&&
list
.
size
()
>
0
)
{
register
(
list
.
get
(
0
));
}
else
{
}
else
{
ToastUtils
.
showShortToast
(
R
.
string
.
modify_header_failed
);
ToastUtils
.
showShortToast
(
R
.
string
.
upload_avatar_fail
);
}
}
}));
}));
}
}
private
void
register
(
String
avatarUrl
)
{
ProgressUtil
.
startLoad
(
this
);
String
name
=
mBind
.
edtName
.
getText
().
toString
();
String
phone
=
mBind
.
edtPhone
.
getText
().
toString
();
String
pwd
=
mBind
.
edtPwd
.
getText
().
toString
();
RegisterData
rData
=
new
RegisterData
(
avatarUrl
,
name
,
phone
,
MD5Util
.
encrypt
(
pwd
));
UserApiFactory
.
register
(
rData
).
subscribe
(
mPresenter
.
baseObserver
(
success
->
{
if
(
success
){
ToastUtils
.
showShortToast
(
R
.
string
.
register_success
);
EventBus
.
getDefault
().
post
(
new
RegisterSuccessEvent
());
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
UserConstant
.
PHONE
,
phone
);
startActivityAndFinish
(
PwLoginActivity
.
class
,
bundle
);
}
else
{
ToastUtils
.
showShortToast
(
R
.
string
.
register_fail
);
}
}));
}
@Override
@Override
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
protected
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
)
{
...
...
userCenter/src/main/java/com/dayu/usercenter/ui/activity/SmsLoginActivity.java
View file @
ef40aadf
...
@@ -16,12 +16,16 @@ import com.dayu.common.MyTextWatcher;
...
@@ -16,12 +16,16 @@ import com.dayu.common.MyTextWatcher;
import
com.dayu.usercenter.R
;
import
com.dayu.usercenter.R
;
import
com.dayu.usercenter.common.UserConstant
;
import
com.dayu.usercenter.common.UserConstant
;
import
com.dayu.usercenter.databinding.ActivitySmsLoginBinding
;
import
com.dayu.usercenter.databinding.ActivitySmsLoginBinding
;
import
com.dayu.usercenter.event.RegisterSuccessEvent
;
import
com.dayu.utils.AppUtils
;
import
com.dayu.utils.AppUtils
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.utils.ToastUtils
;
import
com.dayu.utils.UIUtils
;
import
com.dayu.utils.UIUtils
;
import
com.dayu.utils.UtilsUserAccountMatcher
;
import
com.dayu.utils.UtilsUserAccountMatcher
;
import
com.umeng.analytics.MobclickAgent
;
import
com.umeng.analytics.MobclickAgent
;
import
org.greenrobot.eventbus.EventBus
;
import
org.greenrobot.eventbus.Subscribe
;
/**
/**
* Created by luofan
* Created by luofan
...
@@ -37,6 +41,7 @@ public class SmsLoginActivity extends DataBindingActivity<ActivitySmsLoginBindin
...
@@ -37,6 +41,7 @@ public class SmsLoginActivity extends DataBindingActivity<ActivitySmsLoginBindin
@Override
@Override
public
void
initView
()
{
public
void
initView
()
{
EventBus
.
getDefault
().
register
(
this
);
String
versionCode
=
AppUtils
.
getPackageNum
();
String
versionCode
=
AppUtils
.
getPackageNum
();
if
(
Constants
.
ENVIROMENT
.
equals
(
"debug"
))
{
if
(
Constants
.
ENVIROMENT
.
equals
(
"debug"
))
{
mBind
.
environment
.
setText
(
String
.
format
(
getString
(
R
.
string
.
enviroment_debug
),
versionCode
));
mBind
.
environment
.
setText
(
String
.
format
(
getString
(
R
.
string
.
enviroment_debug
),
versionCode
));
...
@@ -91,4 +96,15 @@ public class SmsLoginActivity extends DataBindingActivity<ActivitySmsLoginBindin
...
@@ -91,4 +96,15 @@ public class SmsLoginActivity extends DataBindingActivity<ActivitySmsLoginBindin
startActivity
(
new
Intent
(
mActivity
,
RegisterActivity
.
class
));
startActivity
(
new
Intent
(
mActivity
,
RegisterActivity
.
class
));
});
});
}
}
@Subscribe
public
void
registerSuccess
(
RegisterSuccessEvent
event
){
finish
();
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
EventBus
.
getDefault
().
unregister
(
this
);
}
}
}
userCenter/src/main/res/layout/activity_register.xml
View file @
ef40aadf
...
@@ -55,14 +55,13 @@
...
@@ -55,14 +55,13 @@
android:id=
"@+id/civ_avatar"
android:id=
"@+id/civ_avatar"
android:layout_width=
"80dp"
android:layout_width=
"80dp"
android:layout_height=
"80dp"
android:layout_height=
"80dp"
android:src=
"@drawable/user"
android:src=
"@drawable/user"
/>
/>
<TextView
<TextView
android:layout_marginLeft=
"5dp"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_gravity=
"center_vertical"
android:layout_marginLeft=
"5dp"
android:text=
"@string/click_add_avatar"
android:text=
"@string/click_add_avatar"
android:textColor=
"@color/bg_button"
/>
android:textColor=
"@color/bg_button"
/>
...
@@ -254,10 +253,10 @@
...
@@ -254,10 +253,10 @@
android:layout_marginLeft=
"15dp"
android:layout_marginLeft=
"15dp"
android:background=
"@drawable/bg_gray_react"
android:background=
"@drawable/bg_gray_react"
android:hint=
"@string/pls_confirm_pwd"
android:hint=
"@string/pls_confirm_pwd"
android:inputType=
"textPassword"
android:maxLength=
"18"
android:maxLength=
"18"
android:maxLines=
"1"
android:maxLines=
"1"
android:paddingLeft=
"10dp"
android:paddingLeft=
"10dp"
android:inputType=
"textPassword"
android:textSize=
"13sp"
/>
android:textSize=
"13sp"
/>
</LinearLayout>
</LinearLayout>
...
@@ -282,9 +281,9 @@
...
@@ -282,9 +281,9 @@
<Button
<Button
android:id=
"@+id/btn_cancel"
android:id=
"@+id/btn_cancel"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_weight=
"1"
android:layout_height=
"35dp"
android:layout_height=
"35dp"
android:layout_marginLeft=
"30dp"
android:layout_marginLeft=
"30dp"
android:layout_weight=
"1"
android:background=
"@drawable/tab_gray_react"
android:background=
"@drawable/tab_gray_react"
android:onClick=
"onClick"
android:onClick=
"onClick"
android:text=
"@string/cancle"
android:text=
"@string/cancle"
...
@@ -293,9 +292,9 @@
...
@@ -293,9 +292,9 @@
<Button
<Button
android:id=
"@+id/btn_submit"
android:id=
"@+id/btn_submit"
android:layout_width=
"0dp"
android:layout_width=
"0dp"
android:layout_weight=
"1"
android:layout_height=
"35dp"
android:layout_height=
"35dp"
android:layout_marginLeft=
"30dp"
android:layout_marginLeft=
"30dp"
android:layout_weight=
"1"
android:background=
"@drawable/tab_blue_react"
android:background=
"@drawable/tab_blue_react"
android:onClick=
"onClick"
android:onClick=
"onClick"
android:text=
"@string/submit"
android:text=
"@string/submit"
...
...
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