Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
lib_base
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sikang
lib_base
Commits
fcbdd49a
Commit
fcbdd49a
authored
Oct 11, 2018
by
sikang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
librarys
parent
9b4a5f15
Hide whitespace changes
Inline
Side-by-side
Showing
73 changed files
with
1037 additions
and
228 deletions
+1037
-228
build.gradle
+27
-21
libs/armeabi/libsignal.so
+0
-0
proguard-rules.pro
+4
-8
src/main/AndroidManifest.xml
+101
-1
src/main/java/tech/starwin/LibConfig.java
+49
-1
src/main/java/tech/starwin/base/BaseActivity.java
+17
-7
src/main/java/tech/starwin/base/BaseFragment.java
+6
-6
src/main/java/tech/starwin/base/BasePresenter.java
+3
-4
src/main/java/tech/starwin/common/impl/HttpObserver.java
+2
-0
src/main/java/tech/starwin/common/impl/OnEventClickListener.java
+22
-0
src/main/java/tech/starwin/common/impl/OnNoShakeClickListener.java
+7
-6
src/main/java/tech/starwin/common/receiver/DownloadReceiver.java
+0
-16
src/main/java/tech/starwin/common/service/MsgHandleService.java
+44
-0
src/main/java/tech/starwin/common/service/MsgInstanceIdService.java
+18
-0
src/main/java/tech/starwin/mvp/api/LoanApi.java
+49
-0
src/main/java/tech/starwin/mvp/api/UploadApi.java
+25
-2
src/main/java/tech/starwin/mvp/api/UserApi.java
+87
-69
src/main/java/tech/starwin/mvp/beans/BannerMessageDto.java
+3
-1
src/main/java/tech/starwin/mvp/beans/BasicAck.java
+3
-1
src/main/java/tech/starwin/mvp/beans/CertBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/ContactInfoBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/DepositMethodsBean.java
+2
-1
src/main/java/tech/starwin/mvp/beans/DepositResponseBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/EmploymentBean.java
+62
-12
src/main/java/tech/starwin/mvp/beans/EmploymentServerBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/HistoryLoanAppInfoBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/IdentifyBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/InviteResult.java
+3
-1
src/main/java/tech/starwin/mvp/beans/InviteeBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/InviteePersonBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/LatestLoanAppBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/LoanAppHelpCenterTipsBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/LoanRange.java
+3
-1
src/main/java/tech/starwin/mvp/beans/LoaningAmoutBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/LoginRequestBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/LoginStatusBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/MessageBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/MsgInboxBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/PersonalInfoBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/PersonalInfoServerBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/PhotoInfo.java
+3
-2
src/main/java/tech/starwin/mvp/beans/ProgressBean.java
+3
-1
src/main/java/tech/starwin/mvp/beans/RecordFilesResponse.java
+2
-1
src/main/java/tech/starwin/mvp/beans/RegionBean.java
+2
-1
src/main/java/tech/starwin/mvp/beans/ResponseErrorBody.java
+3
-1
src/main/java/tech/starwin/mvp/beans/Result.java
+3
-1
src/main/java/tech/starwin/mvp/beans/UserBankInfo.java
+3
-1
src/main/java/tech/starwin/mvp/beans/UserInfo.java
+3
-1
src/main/java/tech/starwin/mvp/beans/YWUser.java
+3
-1
src/main/java/tech/starwin/mvp/presenter/LoanPresenter.java
+15
-0
src/main/java/tech/starwin/mvp/presenter/UploadPresenter.java
+39
-6
src/main/java/tech/starwin/mvp/presenter/UserPresenter.java
+34
-0
src/main/java/tech/starwin/network/DefaultHeaderAddInterceptor.java
+62
-0
src/main/java/tech/starwin/network/Gateway.java
+3
-0
src/main/java/tech/starwin/network/NullOnEmptyConverterFactory.java
+3
-1
src/main/java/tech/starwin/network/ServiceGenerator.java
+1
-0
src/main/java/tech/starwin/signal/JNISignal.java
+15
-0
src/main/java/tech/starwin/utils/FireBaseHelper.java
+75
-0
src/main/java/tech/starwin/utils/GeneralUtils.java
+42
-0
src/main/java/tech/starwin/utils/LogUtils.java
+9
-0
src/main/java/tech/starwin/utils/LoginManager.java
+26
-7
src/main/java/tech/starwin/utils/MultipartBodyMaker.java
+6
-1
src/main/java/tech/starwin/utils/context_utils/AvoidOnResultFragment.java
+1
-1
src/main/java/tech/starwin/utils/context_utils/EasyActivityResult.java
+6
-1
src/main/java/tech/starwin/utils/context_utils/FragmentLauncher.java
+1
-1
src/main/java/tech/starwin/utils/context_utils/IntentHolder.java
+19
-1
src/main/java/tech/starwin/utils/context_utils/PermissionsHelper.java
+14
-4
src/main/java/tech/starwin/utils/ui_utils/DialogFactory.java
+32
-6
src/main/java/tech/starwin/utils/ui_utils/UIHelper.java
+7
-4
src/main/java/tech/starwin/widget/LoadDialog.java
+4
-2
src/main/java/tech/starwin/widget/ProgressDialog.java
+7
-4
src/main/res/layout/base_progress_loading.xml
+2
-4
src/main/res/values/strings.xml
+1
-0
No files found.
build.gradle
View file @
fcbdd49a
...
@@ -16,26 +16,15 @@ android {
...
@@ -16,26 +16,15 @@ android {
}
}
}
}
buildTypes
{
buildTypes
{
debug
{
release
{
// 显示Log
debuggable
true
versionNameSuffix
"-debug"
minifyEnabled
false
minifyEnabled
false
zipAlignEnabled
false
shrinkResources
false
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
}
}
}
release
{
sourceSets
{
// 不显示Log
main
{
debuggable
false
jniLibs
.
srcDirs
=
[
'libs'
]
//混淆
minifyEnabled
true
//Zipalign优化
zipAlignEnabled
true
// 移除无用的resource文件
shrinkResources
false
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
}
}
}
}
}
}
...
@@ -47,10 +36,10 @@ dependencies {
...
@@ -47,10 +36,10 @@ dependencies {
androidTestImplementation
'com.android.support.test:runner:1.0.2'
androidTestImplementation
'com.android.support.test:runner:1.0.2'
androidTestImplementation
'com.android.support.test.espresso:espresso-core:3.0.2'
androidTestImplementation
'com.android.support.test.espresso:espresso-core:3.0.2'
//
//
support包
implementation
"com.android.support:appcompat-v7:26.1.0"
api
"com.android.support:appcompat-v7:26.1.0"
implementation
"com.android.support:support-v4:26.1.0"
api
"com.android.support:support-v4:26.1.0"
implementation
"com.android.support:recyclerview-v7:26.1.0"
api
"com.android.support:recyclerview-v7:26.1.0"
//QMUI
//QMUI
api
'com.qmuiteam:qmui:1.1.3'
api
'com.qmuiteam:qmui:1.1.3'
...
@@ -65,8 +54,12 @@ dependencies {
...
@@ -65,8 +54,12 @@ dependencies {
//Gson
//Gson
api
'com.google.code.gson:gson:2.8.2'
api
'com.google.code.gson:gson:2.8.2'
//bugly
api
'com.tencent.bugly:crashreport:2.6.6.1'
api
'com.tencent.bugly:nativecrashreport:3.3.1'
//rxjava
//rxjava
api
"io.reactivex.rxjava2:rxjava:2.2.1"
api
'com.jakewharton.rxbinding2:rxbinding:2.2.0'
api
'io.reactivex.rxjava2:rxandroid:2.1.0'
api
'io.reactivex.rxjava2:rxandroid:2.1.0'
//rxpermissions
//rxpermissions
api
'com.github.tbruyelle:rxpermissions:0.10.2'
api
'com.github.tbruyelle:rxpermissions:0.10.2'
...
@@ -81,10 +74,23 @@ dependencies {
...
@@ -81,10 +74,23 @@ dependencies {
api
'com.squareup.retrofit2:converter-gson:2.4.0'
api
'com.squareup.retrofit2:converter-gson:2.4.0'
api
'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
api
'com.squareup.retrofit2:adapter-rxjava2:2.4.0'
//firebase core
api
'com.google.firebase:firebase-core:16.0.3'
//firebase cloud message
api
'com.google.firebase:firebase-messaging:17.3.2'
//firebase remoteConfig
api
'com.google.firebase:firebase-config:16.0.0'
//camerakit
//camerakit
api
'com.wonderkiln:camerakit:0.13.1'
api
'com.wonderkiln:camerakit:0.13.1'
//facebook accountKit
//facebook accountKit
api
'com.facebook.android:account-kit-sdk:4.37.0'
api
'com.facebook.android:account-kit-sdk:4.37.0'
api
'com.google.android.gms:play-services-auth:15.0.1'
api
'com.google.android.gms:play-services-auth-api-phone:15.0.1'
//zendesk
api
group:
'com.zendesk'
,
name:
'support'
,
version:
'2.1.1'
}
}
libs/armeabi/libsignal.so
0 → 100755
View file @
fcbdd49a
File added
proguard-rules.pro
View file @
fcbdd49a
...
@@ -18,6 +18,7 @@
...
@@ -18,6 +18,7 @@
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
# public *;
#}
#}
-
ignorewarnings
#指定代码的压缩级别
#指定代码的压缩级别
-
optimizationpasses
5
-
optimizationpasses
5
...
@@ -175,11 +176,8 @@
...
@@ -175,11 +176,8 @@
*
*[] $VALUES;
*
*[] $VALUES;
public *;
public *;
}
}
# for DexGuard only
#zendesk
#-keepresourcexmlelements manifest
/application/meta-data@value=GlideModule
-keep class zendesk.
*
*{*;}
-keep class com.daunkredit.program.sulu.bean.*
*{*;}
# OkHttp3
# OkHttp3
-dontwarn okhttp3.logging.
*
*
-dontwarn okhttp3.logging.
*
*
-keep class okhttp3.internal.
*
*{*;}
-keep class okhttp3.internal.
*
*{*;}
...
@@ -230,7 +228,7 @@
...
@@ -230,7 +228,7 @@
######引用的其他Module可以直接在app的这个混淆文件里配置
######引用的其他Module可以直接在app的这个混淆文件里配置
# 如果使用了Gson之类的工具要使被它解析的JavaBean类即实体类不被混淆。
# 如果使用了Gson之类的工具要使被它解析的JavaBean类即实体类不被混淆。
-keep class tech.starwin.beans.
*
* { *; }
-keep class tech.starwin.
mvp.
beans.
*
* { *; }
#-libraryjars ..
/android-gif-drawable-1.2.5/src/main/jniLibs/x86/libpl_droidsonroids_gif.so
#-libraryjars ..
/android-gif-drawable-1.2.5/src/main/jniLibs/x86/libpl_droidsonroids_gif.so
#-libraryjars ../android-gif-drawable-1.2.5/src/main/jniLibs/x86_64/libpl_droidsonroids_gif.so
#-libraryjars ../android-gif-drawable-1.2.5/src/main/jniLibs/x86_64/libpl_droidsonroids_gif.so
...
@@ -332,8 +330,6 @@
...
@@ -332,8 +330,6 @@
-keep class com.appsflyer.
*
* {*;}
-keep class com.appsflyer.
*
* {*;}
-keep interface com.appsflyer.
*
* {*;}
-keep interface com.appsflyer.
*
* {*;}
-keep class com.daunkredit.program.sulu.view.camera.
*
* {*;}
-keep interface com.daunkredit.program.sulu.view.camera.
*
* {*;}
#
#
-keep class java.
*
* {*;}
-keep class java.
*
* {*;}
-keep class com.coremedia.
*
* {*;}
-keep class com.coremedia.
*
* {*;}
...
...
src/main/AndroidManifest.xml
View file @
fcbdd49a
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"tech.starwin"
/>
xmlns:tools=
"http://schemas.android.com/tools"
package=
"tech.starwin"
>
<!--写入SD卡-->
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<!--读取SD卡-->
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<!--允许挂载和反挂载文件系统可移动存储-->
<uses-permission
android:name=
"android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
tools:ignore=
"ProtectedPermissions"
/>
<!--系统对话框-->
<uses-permission
android:name=
"android.permission.SYSTEM_ALERT_WINDOW"
/>
<!--相机-->
<uses-permission
android:name=
"android.permission.CAMERA"
/>
<!--相机聚焦-->
<uses-feature
android:name=
"android.hardware.camera"
/>
<uses-feature
android:name=
"android.hardware.camera.autofocus"
/>
<!--读取Log-->
<uses-permission
android:name=
"android.permission.READ_CALL_LOG"
/>
<!--读取短信-->
<uses-permission
android:name=
"android.permission.READ_SMS"
/>
<!--发送短信-->
<uses-permission
android:name=
"android.permission.SEND_SMS"
/>
<!--读取手机状态-->
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<!--访问手机网络状态-->
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<!--使用音频-->
<uses-permission
android:name=
"android.permission.RECORD_AUDIO"
/>
<!--访问网络-->
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<!--读取联系人信息-->
<uses-permission
android:name=
"android.permission.READ_CONTACTS"
/>
<!--访问wifi状态-->
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<!--读取系统设置-->
<uses-permission
android:name=
"android.permission.READ_SETTINGS"
/>
<!--读取日志-->
<uses-permission
android:name=
"android.permission.READ_LOGS"
tools:ignore=
"ProtectedPermissions"
/>
<!--操作系统设置-->
<uses-permission
android:name=
"android.permission.WRITE_SETTINGS"
tools:ignore=
"ProtectedPermissions"
/>
<!--打电话-->
<uses-permission
android:name=
"android.permission.CALL_PHONE"
/>
<uses-permission
android:name=
"android.permission.GET_TASKS"
/>
<!--锁屏唤醒-->
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<!--操作音频设置-->
<uses-permission
android:name=
"android.permission.MODIFY_AUDIO_SETTINGS"
/>
<!--震动传感器-->
<uses-permission
android:name=
"android.permission.VIBRATE"
/>
<!--读取系统设置-->
<uses-permission
android:name=
"android.permission.READ_SETTINGS"
/>
<application>
<!--适应全面屏-->
<meta-data
android:name=
"android.max_aspect"
android:value=
"2.5"
/>
<!--FireBase 推送-->
<meta-data
android:name=
"com.google.firebase.messaging.default_notification_channel_id"
android:value=
"${CHANNEL_NAME}"
/>
<meta-data
android:name=
"firebase_messaging_auto_init_enabled"
android:value=
"false"
/>
<service
android:name=
".common.service.MsgHandleService"
>
<intent-filter>
<action
android:name=
"com.google.firebase.MESSAGING_EVENT"
/>
</intent-filter>
</service>
<service
android:name=
".common.service.MsgInstanceIdService"
>
<intent-filter>
<action
android:name=
"com.google.firebase.INSTANCE_ID_EVENT"
/>
</intent-filter>
</service>
<!--Facebook AccountKit-->
<meta-data
android:name=
"com.facebook.accountkit.ApplicationName"
android:value=
"@string/app_name"
/>
<meta-data
android:name=
"com.facebook.sdk.ApplicationId"
android:value=
"@string/FACEBOOK_APP_ID"
/>
<meta-data
android:name=
"com.facebook.accountkit.ClientToken"
android:value=
"@string/ACCOUNT_KIT_CLIENT_TOKEN"
/>
<activity
android:name=
"com.facebook.accountkit.ui.AccountKitActivity"
android:screenOrientation=
"portrait"
/>
</application>
</manifest>
\ No newline at end of file
src/main/java/tech/starwin/LibConfig.java
View file @
fcbdd49a
package
tech
.
starwin
;
package
tech
.
starwin
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.app.Application
;
import
android.content.Context
;
import
android.content.Context
;
import
android.support.annotation.NonNull
;
import
android.view.View
;
import
android.view.View
;
import
android.widget.Toast
;
import
com.google.android.gms.tasks.OnCompleteListener
;
import
com.google.android.gms.tasks.Task
;
import
com.google.firebase.FirebaseApp
;
import
com.google.firebase.remoteconfig.FirebaseRemoteConfig
;
import
com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings
;
import
com.scwang.smartrefresh.layout.SmartRefreshLayout
;
import
com.scwang.smartrefresh.layout.SmartRefreshLayout
;
import
com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreator
;
import
com.scwang.smartrefresh.layout.api.DefaultRefreshFooterCreator
;
import
com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreator
;
import
com.scwang.smartrefresh.layout.api.DefaultRefreshHeaderCreator
;
...
@@ -12,10 +20,22 @@ import com.scwang.smartrefresh.layout.api.RefreshHeader;
...
@@ -12,10 +20,22 @@ import com.scwang.smartrefresh.layout.api.RefreshHeader;
import
com.scwang.smartrefresh.layout.api.RefreshLayout
;
import
com.scwang.smartrefresh.layout.api.RefreshLayout
;
import
com.scwang.smartrefresh.layout.footer.ClassicsFooter
;
import
com.scwang.smartrefresh.layout.footer.ClassicsFooter
;
import
com.scwang.smartrefresh.layout.header.ClassicsHeader
;
import
com.scwang.smartrefresh.layout.header.ClassicsHeader
;
import
com.tencent.bugly.crashreport.CrashReport
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Modifier
;
import
tech.starwin.R
;
import
tech.starwin.R
;
import
tech.starwin.mvp.beans.InviteResult
;
import
tech.starwin.network.Gateway
;
import
tech.starwin.network.Gateway
;
import
tech.starwin.utils.FireBaseHelper
;
import
tech.starwin.utils.PreferencesManager
;
import
tech.starwin.utils.PreferencesManager
;
import
zendesk.core.AnonymousIdentity
;
import
zendesk.core.Identity
;
import
zendesk.core.Zendesk
;
import
zendesk.support.Support
;
import
static
com
.
facebook
.
accountkit
.
internal
.
AccountKitController
.
getApplicationContext
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
...
@@ -44,6 +64,11 @@ public class LibConfig {
...
@@ -44,6 +64,11 @@ public class LibConfig {
public
static
String
GATEWAY_HOST_G0
;
public
static
String
GATEWAY_HOST_G0
;
public
static
String
GATEWAY_HOST_G1
;
public
static
String
GATEWAY_HOST_G1
;
public
static
String
HARVESTER_IP
;
public
static
String
HARVESTER_IP
;
public
static
String
ZENDESK_URL
;
public
static
String
ZENDESK_APP_ID
;
public
static
String
ZENDESK_OAUTH_CLIENT_ID
;
public
static
int
LOADING_ICON
;
//loading图标
public
static
int
LOADING_BACKGROUND
;
//loading旋转背景
public
static
int
HARVESTER_PORT
;
public
static
int
HARVESTER_PORT
;
public
static
ButterKnifeBinder
butterKnifeBinder
;
public
static
ButterKnifeBinder
butterKnifeBinder
;
...
@@ -56,16 +81,38 @@ public class LibConfig {
...
@@ -56,16 +81,38 @@ public class LibConfig {
/**
/**
*
为Library绑定一个Context
*
初始化 BaseLibrary
*/
*/
public
static
void
initLib
(
Application
application
)
{
public
static
void
initLib
(
Application
application
)
{
if
(
application
!=
null
)
{
if
(
application
!=
null
)
{
CONTEXT
=
application
;
CONTEXT
=
application
;
//init FireBase RemoteConfig
//RemoteConfig
FirebaseRemoteConfig
.
getInstance
().
setConfigSettings
(
new
FirebaseRemoteConfigSettings
.
Builder
()
.
setDeveloperModeEnabled
(
LibConfig
.
DEBUG
)
.
build
()
);
FireBaseHelper
.
fetchRemoteConfig
();
//init SharePreferences
PreferencesManager
.
get
().
init
(
application
);
PreferencesManager
.
get
().
init
(
application
);
//init gateway
Gateway
.
init
(
PreferencesManager
.
get
().
getGatewayInfo
());
Gateway
.
init
(
PreferencesManager
.
get
().
getGatewayInfo
());
//init Bugly
CrashReport
.
initCrashReport
(
getApplicationContext
(),
BUGLY_APP_ID
,
DEBUG
);
//init zendesk
Zendesk
.
INSTANCE
.
init
(
application
,
ZENDESK_URL
,
ZENDESK_APP_ID
,
ZENDESK_OAUTH_CLIENT_ID
);
Support
.
INSTANCE
.
init
(
Zendesk
.
INSTANCE
);
//匿名
Zendesk
.
INSTANCE
.
setIdentity
(
new
AnonymousIdentity
());
}
}
}
}
/**
/**
* 用于在Base 中 实现Butterknife.bind()的功能
* 用于在Base 中 实现Butterknife.bind()的功能
*
*
...
@@ -115,4 +162,5 @@ public class LibConfig {
...
@@ -115,4 +162,5 @@ public class LibConfig {
}
}
});
});
}
}
}
}
src/main/java/tech/starwin/base/BaseActivity.java
View file @
fcbdd49a
...
@@ -7,10 +7,12 @@ import android.support.annotation.NonNull;
...
@@ -7,10 +7,12 @@ import android.support.annotation.NonNull;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.Fragment
;
import
android.support.v7.app.AppCompatActivity
;
import
android.support.v7.app.AppCompatActivity
;
import
android.text.TextUtils
;
import
android.view.LayoutInflater
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.ViewGroup
;
import
com.google.firebase.messaging.RemoteMessage
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.trello.rxlifecycle2.LifecycleTransformer
;
import
com.trello.rxlifecycle2.LifecycleTransformer
;
import
com.trello.rxlifecycle2.RxLifecycle
;
import
com.trello.rxlifecycle2.RxLifecycle
;
...
@@ -21,10 +23,11 @@ import io.reactivex.Observable;
...
@@ -21,10 +23,11 @@ import io.reactivex.Observable;
import
io.reactivex.subjects.BehaviorSubject
;
import
io.reactivex.subjects.BehaviorSubject
;
import
tech.starwin.LibConfig
;
import
tech.starwin.LibConfig
;
import
tech.starwin.R
;
import
tech.starwin.R
;
import
tech.starwin.common.service.MsgHandleService
;
import
tech.starwin.mvp.IView
;
import
tech.starwin.mvp.IView
;
import
tech.starwin.utils.PresenterHoler
;
import
tech.starwin.utils.PresenterHoler
;
import
tech.starwin.utils.
activity
_utils.FragmentLauncher
;
import
tech.starwin.utils.
context
_utils.FragmentLauncher
;
import
tech.starwin.
utils.ui_utils.ProgressHolder
;
import
tech.starwin.
widget.ProgressDialog
;
/**
/**
* Created by SiKang on 2018/9/14.
* Created by SiKang on 2018/9/14.
...
@@ -49,7 +52,7 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
...
@@ -49,7 +52,7 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
/**
/**
* loading、error 提示
* loading、error 提示
*/
*/
protected
Progress
Holder
progressHolder
;
protected
Progress
Dialog
progressDialog
;
private
Object
unBinder
;
private
Object
unBinder
;
...
@@ -60,7 +63,7 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
...
@@ -60,7 +63,7 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
super
.
onCreate
(
savedInstanceState
);
super
.
onCreate
(
savedInstanceState
);
TAG
=
getClass
().
getSimpleName
();
TAG
=
getClass
().
getSimpleName
();
lifecycleSubject
.
onNext
(
ActivityEvent
.
CREATE
);
lifecycleSubject
.
onNext
(
ActivityEvent
.
CREATE
);
progress
Holder
=
new
ProgressHolder
(
this
);
progress
Dialog
=
new
ProgressDialog
(
this
);
presenterHelper
=
new
PresenterHoler
(
this
);
presenterHelper
=
new
PresenterHoler
(
this
);
//初始化根布局
//初始化根布局
initRootLayout
();
initRootLayout
();
...
@@ -69,6 +72,13 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
...
@@ -69,6 +72,13 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
@Override
@Override
protected
void
onStart
()
{
protected
void
onStart
()
{
super
.
onStart
();
super
.
onStart
();
//如果是通过FireBase CloudMessage 调起的界面,将消息交给Service处理
String
action
=
getIntent
().
getAction
()
==
null
?
""
:
getIntent
().
getAction
();
String
from
=
getIntent
().
getStringExtra
(
"from"
);
if
(
action
.
equals
(
"android.intent.action.MAIN"
)
&&
!
TextUtils
.
isEmpty
(
from
))
{
MsgHandleService
.
handleMsg
(
this
,
new
RemoteMessage
(
getIntent
().
getExtras
()));
}
lifecycleSubject
.
onNext
(
ActivityEvent
.
START
);
lifecycleSubject
.
onNext
(
ActivityEvent
.
START
);
}
}
...
@@ -82,7 +92,7 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
...
@@ -82,7 +92,7 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
protected
void
onPause
()
{
protected
void
onPause
()
{
super
.
onPause
();
super
.
onPause
();
lifecycleSubject
.
onNext
(
ActivityEvent
.
PAUSE
);
lifecycleSubject
.
onNext
(
ActivityEvent
.
PAUSE
);
progress
Holder
.
dissmissLoading
();
progress
Dialog
.
dissmissLoading
();
}
}
@Override
@Override
...
@@ -130,14 +140,14 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
...
@@ -130,14 +140,14 @@ public abstract class BaseActivity extends AppCompatActivity implements IView {
@Override
@Override
public
void
onHttpStart
(
String
action
,
boolean
isShowLoading
)
{
public
void
onHttpStart
(
String
action
,
boolean
isShowLoading
)
{
if
(
isShowLoading
)
{
if
(
isShowLoading
)
{
progress
Holder
.
showLoading
();
progress
Dialog
.
showLoading
();
}
}
}
}
@Override
@Override
public
void
onHttpFinish
(
String
action
)
{
public
void
onHttpFinish
(
String
action
)
{
progress
Holder
.
dissmissLoading
();
progress
Dialog
.
dissmissLoading
();
}
}
...
...
src/main/java/tech/starwin/base/BaseFragment.java
View file @
fcbdd49a
...
@@ -22,7 +22,7 @@ import tech.starwin.LibConfig;
...
@@ -22,7 +22,7 @@ import tech.starwin.LibConfig;
import
tech.starwin.R
;
import
tech.starwin.R
;
import
tech.starwin.mvp.IView
;
import
tech.starwin.mvp.IView
;
import
tech.starwin.utils.PresenterHoler
;
import
tech.starwin.utils.PresenterHoler
;
import
tech.starwin.
utils.ui_utils.ProgressHolder
;
import
tech.starwin.
widget.ProgressDialog
;
import
tech.starwin.utils.ui_utils.UIHelper
;
import
tech.starwin.utils.ui_utils.UIHelper
;
/**
/**
...
@@ -45,7 +45,7 @@ public abstract class BaseFragment extends Fragment implements IView {
...
@@ -45,7 +45,7 @@ public abstract class BaseFragment extends Fragment implements IView {
/**
/**
* loading、error 提示
* loading、error 提示
*/
*/
protected
Progress
Holder
progressHolder
;
protected
Progress
Dialog
progressDialog
;
/**
/**
* LifeCycle
* LifeCycle
...
@@ -61,7 +61,7 @@ public abstract class BaseFragment extends Fragment implements IView {
...
@@ -61,7 +61,7 @@ public abstract class BaseFragment extends Fragment implements IView {
TAG
=
getClass
().
getName
();
TAG
=
getClass
().
getName
();
lifecycleSubject
.
onNext
(
ActivityEvent
.
CREATE
);
lifecycleSubject
.
onNext
(
ActivityEvent
.
CREATE
);
presenterHelper
=
new
PresenterHoler
(
this
);
presenterHelper
=
new
PresenterHoler
(
this
);
progress
Holder
=
new
ProgressHolder
(
getActivity
());
progress
Dialog
=
new
ProgressDialog
(
getActivity
());
mContentView
=
(
ViewGroup
)
LayoutInflater
.
from
(
getActivity
()).
inflate
(
R
.
layout
.
base_activity_root
,
null
);
mContentView
=
(
ViewGroup
)
LayoutInflater
.
from
(
getActivity
()).
inflate
(
R
.
layout
.
base_activity_root
,
null
);
if
(
useTopBar
())
{
if
(
useTopBar
())
{
mTopBar
=
LayoutInflater
.
from
(
getActivity
()).
inflate
(
R
.
layout
.
base_topbar
,
mContentView
,
true
).
findViewById
(
R
.
id
.
layout_topbar
);
mTopBar
=
LayoutInflater
.
from
(
getActivity
()).
inflate
(
R
.
layout
.
base_topbar
,
mContentView
,
true
).
findViewById
(
R
.
id
.
layout_topbar
);
...
@@ -105,13 +105,13 @@ public abstract class BaseFragment extends Fragment implements IView {
...
@@ -105,13 +105,13 @@ public abstract class BaseFragment extends Fragment implements IView {
@Override
@Override
public
void
onHttpStart
(
String
action
,
boolean
isShowLoading
)
{
public
void
onHttpStart
(
String
action
,
boolean
isShowLoading
)
{
if
(
isShowLoading
)
{
if
(
isShowLoading
)
{
progress
Holder
.
showLoading
();
progress
Dialog
.
showLoading
();
}
}
}
}
@Override
@Override
public
void
onHttpFinish
(
String
action
)
{
public
void
onHttpFinish
(
String
action
)
{
progress
Holder
.
dissmissLoading
();
progress
Dialog
.
dissmissLoading
();
}
}
...
@@ -132,7 +132,7 @@ public abstract class BaseFragment extends Fragment implements IView {
...
@@ -132,7 +132,7 @@ public abstract class BaseFragment extends Fragment implements IView {
public
void
onPause
()
{
public
void
onPause
()
{
super
.
onPause
();
super
.
onPause
();
lifecycleSubject
.
onNext
(
ActivityEvent
.
PAUSE
);
lifecycleSubject
.
onNext
(
ActivityEvent
.
PAUSE
);
progress
Holder
.
dissmissLoading
();
progress
Dialog
.
dissmissLoading
();
}
}
@Override
@Override
...
...
src/main/java/tech/starwin/base/BasePresenter.java
View file @
fcbdd49a
...
@@ -78,16 +78,15 @@ public class BasePresenter<T> {
...
@@ -78,16 +78,15 @@ public class BasePresenter<T> {
});
});
}
}
@SuppressLint
(
"CheckResult"
)
protected
<
T
>
void
handleRequest
(
Call
<
T
>
call
,
final
Observer
<
T
>
observer
)
{
protected
<
T
>
void
handleRequest
(
Call
<
T
>
call
,
final
Observer
<
T
>
observer
)
{
observer
.
onSubscribe
(
null
);
observer
.
onSubscribe
(
null
);
call
.
enqueue
(
new
Callback
<
T
>()
{
call
.
enqueue
(
new
Callback
<
T
>()
{
@Override
@Override
public
void
onResponse
(
Call
<
T
>
call
,
final
Response
<
T
>
response
)
{
public
void
onResponse
(
Call
<
T
>
call
,
final
Response
<
T
>
response
)
{
bindLifecycle
(
new
Consumer
<
Boolean
>
()
{
bindLifecycle
(
new
Consumer
()
{
@Override
@Override
public
void
accept
(
Boolean
aBoolean
)
throws
Exception
{
public
void
accept
(
Object
o
)
throws
Exception
{
observer
.
onNext
(
response
.
body
());
}
}
});
});
...
...
src/main/java/tech/starwin/common/impl/HttpObserver.java
View file @
fcbdd49a
...
@@ -48,6 +48,8 @@ public abstract class HttpObserver<T> implements Observer<T> {
...
@@ -48,6 +48,8 @@ public abstract class HttpObserver<T> implements Observer<T> {
}
}
}
else
if
(
msg
.
contains
(
"java.lang.IllegalStateException"
))
{
}
else
if
(
msg
.
contains
(
"java.lang.IllegalStateException"
))
{
onError
(
Error
.
APP_ERROR
,
LibConfig
.
getContext
().
getString
(
R
.
string
.
text_app_error
));
onError
(
Error
.
APP_ERROR
,
LibConfig
.
getContext
().
getString
(
R
.
string
.
text_app_error
));
}
else
if
(
msg
.
contains
(
"body is null"
))
{
onSuccess
(
null
);
}
}
}
}
...
...
src/main/java/tech/starwin/common/impl/OnEventClickListener.java
0 → 100644
View file @
fcbdd49a
package
tech
.
starwin
.
common
.
impl
;
import
android.view.View
;
import
tech.starwin.utils.FireBaseHelper
;
import
tech.starwin.utils.LogUtils
;
/**
* Created by SiKang on 2018/10/11.
*/
public
abstract
class
OnEventClickListener
implements
View
.
OnClickListener
{
@Override
public
void
onClick
(
View
v
)
{
FireBaseHelper
.
LogClickEventByTag
(
v
);
onEventClick
(
v
);
}
public
abstract
void
onEventClick
(
View
v
);
}
src/main/java/tech/starwin/common/impl/OnNoShakeClickListener.java
View file @
fcbdd49a
...
@@ -5,7 +5,7 @@ import android.view.View;
...
@@ -5,7 +5,7 @@ import android.view.View;
/**
/**
* Created by SiKang on 2018/9/18.
* Created by SiKang on 2018/9/18.
*/
*/
public
abstract
class
OnNoShakeClickListener
implements
View
.
On
ClickListener
{
public
abstract
class
OnNoShakeClickListener
extends
OnEvent
ClickListener
{
public
abstract
void
onNoShakeClick
(
View
view
);
public
abstract
void
onNoShakeClick
(
View
view
);
public
int
lockTime
=
1500
;
public
int
lockTime
=
1500
;
...
@@ -18,14 +18,15 @@ public abstract class OnNoShakeClickListener implements View.OnClickListener {
...
@@ -18,14 +18,15 @@ public abstract class OnNoShakeClickListener implements View.OnClickListener {
}
}
@Override
@Override
public
void
onClick
(
final
View
view
)
{
public
void
onClick
(
final
View
v
)
{
view
.
setClickable
(
false
);
super
.
onClick
(
v
);
view
.
postDelayed
(
new
Runnable
()
{
v
.
setClickable
(
false
);
v
.
postDelayed
(
new
Runnable
()
{
@Override
@Override
public
void
run
()
{
public
void
run
()
{
v
iew
.
setClickable
(
true
);
v
.
setClickable
(
true
);
}
}
},
lockTime
);
},
lockTime
);
onNoShakeClick
(
v
iew
);
onNoShakeClick
(
v
);
}
}
}
}
src/main/java/tech/starwin/common/receiver/DownloadReceiver.java
deleted
100644 → 0
View file @
9b4a5f15
package
tech
.
starwin
.
common
.
receiver
;
import
android.content.BroadcastReceiver
;
import
android.content.Context
;
import
android.content.Intent
;
/**
* Created by SiKang on 2018/9/28.
*/
public
class
DownloadReceiver
extends
BroadcastReceiver
{
@Override
public
void
onReceive
(
Context
context
,
Intent
intent
)
{
}
}
src/main/java/tech/starwin/common/service/MsgHandleService.java
0 → 100644
View file @
fcbdd49a
package
tech
.
starwin
.
common
.
service
;
import
android.content.Context
;
import
android.content.Intent
;
import
com.google.firebase.messaging.FirebaseMessagingService
;
import
com.google.firebase.messaging.RemoteMessage
;
import
org.greenrobot.eventbus.EventBus
;
/**
* Created by SiKang on 2018/9/27.
*/
public
class
MsgHandleService
extends
FirebaseMessagingService
{
public
static
final
String
TAG
=
"MsgHandleService"
;
public
static
final
String
RECEIVED_FIREBASE_MESSAGE
=
"action.receivedFireBaseMessage"
;
@Override
public
void
onMessageReceived
(
RemoteMessage
remoteMessage
)
{
handleMsg
(
this
,
remoteMessage
);
}
@Override
public
void
onDeletedMessages
()
{
}
/**
* 处理推送内容
*/
public
static
void
handleMsg
(
Context
context
,
RemoteMessage
remoteMessage
)
{
if
(
remoteMessage
!=
null
)
{
//EventBus通知
EventBus
.
getDefault
().
post
(
remoteMessage
);
//广播形式通知
Intent
intent
=
remoteMessage
.
toIntent
();
intent
.
setAction
(
RECEIVED_FIREBASE_MESSAGE
);
context
.
sendBroadcast
(
intent
);
}
}
}
src/main/java/tech/starwin/common/service/MsgInstanceIdService.java
0 → 100644
View file @
fcbdd49a
package
tech
.
starwin
.
common
.
service
;
import
com.google.firebase.iid.FirebaseInstanceId
;
import
com.google.firebase.iid.FirebaseInstanceIdService
;
import
tech.starwin.utils.LogUtils
;
/**
* Created by SiKang on 2018/9/27.
*/
public
class
MsgInstanceIdService
extends
FirebaseInstanceIdService
{
public
static
final
String
TAG
=
"MsgInstanceIdService"
;
@Override
public
void
onTokenRefresh
()
{
String
refreshedToken
=
FirebaseInstanceId
.
getInstance
().
getToken
();
LogUtils
.
d
(
TAG
,
"message token:"
+
refreshedToken
);
}
}
src/main/java/tech/starwin/mvp/api/LoanApi.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
api
;
package
tech
.
starwin
.
mvp
.
api
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
okhttp3.ResponseBody
;
import
retrofit2.http.Field
;
import
retrofit2.http.FormUrlEncoded
;
import
retrofit2.http.GET
;
import
retrofit2.http.GET
;
import
retrofit2.http.Header
;
import
retrofit2.http.Header
;
import
retrofit2.http.POST
;
import
retrofit2.http.Query
;
import
tech.starwin.mvp.beans.DepositMethodsBean
;
import
tech.starwin.mvp.beans.DepositResponseBean
;
import
tech.starwin.mvp.beans.HistoryLoanAppInfoBean
;
import
tech.starwin.mvp.beans.LatestLoanAppBean
;
import
tech.starwin.mvp.beans.LatestLoanAppBean
;
import
tech.starwin.mvp.beans.LoanRange
;
import
tech.starwin.mvp.beans.LoanRange
;
import
tech.starwin.mvp.beans.ProgressBean
;
import
tech.starwin.mvp.beans.ProgressBean
;
...
@@ -37,4 +47,43 @@ public interface LoanApi {
...
@@ -37,4 +47,43 @@ public interface LoanApi {
@GET
(
"loanapp/latest/v2"
)
@GET
(
"loanapp/latest/v2"
)
Observable
<
LatestLoanAppBean
>
getLatestLoanApp
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
LatestLoanAppBean
>
getLatestLoanApp
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 取消贷款
*/
@FormUrlEncoded
@POST
(
"loanapp/cancel"
)
Observable
<
ResponseBody
>
cancelLoan
(
@Field
(
"loanAppId"
)
String
loanAppId
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 我的贷款记录
*/
@GET
(
"loanapp/all/v2"
)
Observable
<
List
<
HistoryLoanAppInfoBean
>>
getLoanAppAll
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 获取付款方式
*/
@GET
(
"loanapp/deposit/methods"
)
Observable
<
DepositMethodsBean
>
getDepostMethods
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 还款
*
* @param loanAppId 贷款订单id
* @param method 还款方式
* @param amout 还款金额
*/
@POST
(
"loanapp/deposit"
)
Observable
<
DepositResponseBean
>
doDeposit
(
@Query
(
"loanAppId"
)
String
loanAppId
,
@Query
(
"currency"
)
String
currency
,
@Query
(
"depositMethod"
)
String
method
,
@Query
(
"amount"
)
double
amout
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
}
}
src/main/java/tech/starwin/mvp/api/UploadApi.java
View file @
fcbdd49a
...
@@ -18,6 +18,13 @@ import tech.starwin.mvp.beans.OcrResultBean;
...
@@ -18,6 +18,13 @@ import tech.starwin.mvp.beans.OcrResultBean;
import
tech.starwin.mvp.beans.RecordFilesResponse
;
import
tech.starwin.mvp.beans.RecordFilesResponse
;
public
interface
UploadApi
{
public
interface
UploadApi
{
/**
* 上传照片
*
* @param fileType 照片类型 KTP_PHOTO:身份证;
* EMPLOYMENT_PHOTO:工作证件;
* CONTRACT_VIDEO:合同;
*/
@Multipart
@Multipart
@PUT
(
"record/files"
)
@PUT
(
"record/files"
)
Call
<
ResponseBody
>
uploadPhoto
(
Call
<
ResponseBody
>
uploadPhoto
(
...
@@ -49,10 +56,25 @@ public interface UploadApi {
...
@@ -49,10 +56,25 @@ public interface UploadApi {
@Query
(
"imei"
)
String
imei
,
@Query
(
"imei"
)
String
imei
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@Multipart
/*@PUT("/loanapp/verify/face") face++*/
@PUT
(
"/loanapp/verify/yitu"
)
Observable
<
BasicAck
>
faceVerify
(
@Query
(
"loanType"
)
String
loanType
,
@Query
(
"amount"
)
double
amount
,
@Query
(
"period"
)
int
period
,
@Query
(
"periodUnit"
)
String
periodUnit
,
@Part
MultipartBody
.
Part
imageBest
,
@Part
MultipartBody
.
Part
imageEnv
,
@Part
MultipartBody
.
Part
delta
,
@Query
(
"imei"
)
String
imei
,
@Query
(
"productId"
)
long
productId
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
/**
* 身份证ocr识别
* 身份证ocr识别
*
*
/
*/
@Multipart
@Multipart
@PUT
(
"/record/ocr"
)
@PUT
(
"/record/ocr"
)
Call
<
OcrResultBean
>
identityOcr
(
@Part
List
<
MultipartBody
.
Part
>
parts
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Call
<
OcrResultBean
>
identityOcr
(
@Part
MultipartBody
.
Part
part
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
}
}
\ No newline at end of file
src/main/java/tech/starwin/mvp/api/UserApi.java
View file @
fcbdd49a
...
@@ -114,6 +114,21 @@ public interface UserApi {
...
@@ -114,6 +114,21 @@ public interface UserApi {
@GET
@GET
Observable
<
GatewayInfoBean
>
getGateway
(
@Url
String
url
);
Observable
<
GatewayInfoBean
>
getGateway
(
@Url
String
url
);
/**
* 提交联系人信息
*/
@FormUrlEncoded
@PUT
(
"record/contact"
)
Observable
<
ResponseBody
>
submitContactInfo
(
@Field
(
"parentName"
)
String
parentName
,
@Field
(
"parentMobile"
)
String
parentMobile
,
@Field
(
"friendName"
)
String
friendName
,
@Field
(
"friendMobile"
)
String
friendMobile
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 提交工作认证信息
*/
@FormUrlEncoded
@FormUrlEncoded
@PUT
(
"record/employment"
)
@PUT
(
"record/employment"
)
Observable
<
ResponseBody
>
submitEmploymentInfo
(
@Field
(
"companyName"
)
String
companyName
,
Observable
<
ResponseBody
>
submitEmploymentInfo
(
@Field
(
"companyName"
)
String
companyName
,
...
@@ -128,6 +143,10 @@ public interface UserApi {
...
@@ -128,6 +143,10 @@ public interface UserApi {
// @Field("workEmail") String workEmail,
// @Field("workEmail") String workEmail,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 提交个人信息
*/
@FormUrlEncoded
@FormUrlEncoded
@PUT
(
"record/personalinfo"
)
@PUT
(
"record/personalinfo"
)
Observable
<
ResponseBody
>
submitPersonalInfo
(
@Field
(
"fullName"
)
String
fullName
,
Observable
<
ResponseBody
>
submitPersonalInfo
(
@Field
(
"fullName"
)
String
fullName
,
...
@@ -146,126 +165,99 @@ public interface UserApi {
...
@@ -146,126 +165,99 @@ public interface UserApi {
@Field
(
"facebookId"
)
String
facebookId
,
@Field
(
"facebookId"
)
String
facebookId
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@FormUrlEncoded
/**
@PUT
(
"record/contact"
)
* 刷新token
Observable
<
ResponseBody
>
submitContactInfo
(
@Field
(
"parentName"
)
String
parentName
,
*/
@Field
(
"parentMobile"
)
String
parentMobile
,
@Field
(
"friendName"
)
String
friendName
,
@Field
(
"friendMobile"
)
String
friendMobile
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@FormUrlEncoded
@POST
(
"loanapp"
)
Observable
<
ResponseBody
>
applyLoanApp
(
@Field
(
"loanType"
)
String
loanType
,
@Field
(
"amount"
)
String
amount
,
@Field
(
"period"
)
String
period
,
@Field
(
"periodUnit"
)
String
periodUnit
,
@Field
(
"bankCode"
)
String
bankCode
,
@Field
(
"cardNo"
)
String
cardNo
,
@Field
(
"applyFor"
)
String
applyFor
,
@Field
(
"applyChannel"
)
String
applyChannel
,
@Field
(
"applyPlatform"
)
String
applyPlatform
,
@Field
(
"couponId"
)
long
couponId
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
,
@Header
(
"imei"
)
String
imei
);
@POST
(
"auth/refresh"
)
@POST
(
"auth/refresh"
)
Observable
<
Result
<
TokenInfoBean
>>
refreshToken
(
@Query
(
"mobile"
)
String
mobile
,
Observable
<
Result
<
TokenInfoBean
>>
refreshToken
(
@Query
(
"mobile"
)
String
mobile
,
@Query
(
"tokenInvalid"
)
String
refreshToken
);
@Query
(
"tokenInvalid"
)
String
refreshToken
);
/**
* 退出登录
*/
@FormUrlEncoded
@FormUrlEncoded
@POST
(
"auth/logout"
)
@POST
(
"auth/logout"
)
Observable
<
ResponseBody
>
logout
(
@Field
(
"token"
)
String
token
);
Observable
<
ResponseBody
>
logout
(
@Field
(
"token"
)
String
token
);
@GET
(
"loanapp/deposit/methods"
)
Observable
<
DepositMethodsBean
>
getDepostMethods
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@POST
(
"loanapp/deposit"
)
Observable
<
DepositResponseBean
>
doDeposit
(
@Query
(
"loanAppId"
)
String
loanAppId
,
@Query
(
"currency"
)
String
currency
,
@Query
(
"depositMethod"
)
String
method
,
@Query
(
"amount"
)
double
amout
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@FormUrlEncoded
@PUT
(
"loanapp/deposit"
)
Observable
<
ResponseBody
>
sendPayCode
(
@Field
(
"depositId"
)
String
loanAppId
,
@Field
(
"outerTransactionId"
)
String
paymentCode
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@GET
(
"loanapp/all/v2"
)
Observable
<
List
<
HistoryLoanAppInfoBean
>>
getLoanAppAll
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@GET
(
"record/progress"
)
Observable
<
ProgressBean
>
progress
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@FormUrlEncoded
@POST
(
"loanapp/cancel"
)
Observable
<
ResponseBody
>
cancelLoan
(
@Field
(
"loanAppId"
)
String
loanAppId
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 消息列表
*/
@GET
(
"info/inbox/all"
)
@GET
(
"info/inbox/all"
)
Observable
<
List
<
MsgInboxBean
>>
getMsgInbox
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
List
<
MsgInboxBean
>>
getMsgInbox
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 已读消息列表
*/
@FormUrlEncoded
@FormUrlEncoded
@POST
(
"info/inbox/read"
)
@POST
(
"info/inbox/read"
)
Observable
<
ResponseBody
>
sendReadMsg
(
@Field
(
"msgId"
)
String
msgId
,
Observable
<
ResponseBody
>
sendReadMsg
(
@Field
(
"msgId"
)
String
msgId
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 获取联系人信息
*/
@GET
(
"record/contact"
)
@GET
(
"record/contact"
)
Observable
<
ContactInfoBean
>
getContactInfo
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
ContactInfoBean
>
getContactInfo
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 获取工作认证信息
*/
@GET
(
"record/employment"
)
@GET
(
"record/employment"
)
Observable
<
EmploymentServerBean
>
getEmploymentInfo
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
EmploymentServerBean
>
getEmploymentInfo
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@GET
(
"chat/account"
)
Observable
<
YWUser
>
getChatUserInfo
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
/**
* obtain latest version
* 最新版本号
*
* @return
*/
*/
@GET
(
"version/latest"
)
@GET
(
"version/latest"
)
Observable
<
ResponseBody
>
getVersionInfo
();
Observable
<
ResponseBody
>
getVersionInfo
();
/**
/**
* obtain loan range(min --- max)
* 获取邀请码
*
* @return
*/
*/
@GET
(
"loanapp/range"
)
Observable
<
LoanRange
>
getLoanRange
();
@GET
(
"invitation/mine/code"
)
@GET
(
"invitation/mine/code"
)
Observable
<
ResponseBody
>
getInviteCode
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
ResponseBody
>
getInviteCode
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@GET
(
"invitation/mine/invitee"
)
@GET
(
"invitation/mine/invitee"
)
Observable
<
InviteeBean
>
getInviteInfo
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
InviteeBean
>
getInviteInfo
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 已邀请的用户
*/
@GET
(
"invitation/mine/invitee/list"
)
Observable
<
ArrayList
<
InviteePersonBean
>>
getInvitedList
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 获取可用优惠券
*/
@GET
(
"coupon/available"
)
@GET
(
"coupon/available"
)
Observable
<
List
<
CouponBean
>>
getAvailableCoupon
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
List
<
CouponBean
>>
getAvailableCoupon
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 获取已使用的优惠券
*/
@GET
(
"coupon/used"
)
@GET
(
"coupon/used"
)
Observable
<
List
<
CouponBean
>>
getUsedCoupon
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
List
<
CouponBean
>>
getUsedCoupon
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 获取过期优惠券
*/
@GET
(
"coupon/outdated"
)
@GET
(
"coupon/outdated"
)
Observable
<
List
<
CouponBean
>>
getOutdatedCoupon
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
Observable
<
List
<
CouponBean
>>
getOutdatedCoupon
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
/**
* 获取活动Bannder信息
*/
@GET
(
"banner"
)
@GET
(
"banner"
)
Observable
<
ArrayList
<
ActivityInfoBean
>>
getActivityList
();
Observable
<
ArrayList
<
ActivityInfoBean
>>
getActivityList
();
@GET
(
"invitation/mine/invitee/list"
)
/**
Observable
<
ArrayList
<
InviteePersonBean
>>
getInvitedList
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
*
* */
@GET
(
"loanapp/repayment-amount-detail"
)
@GET
(
"loanapp/repayment-amount-detail"
)
Observable
<
LoaningAmoutBean
>
getLoanAmoutData
(
@Query
(
"principal"
)
double
amount
,
@Query
(
"period"
)
int
day
,
@Query
(
"periodUnit"
)
String
periodUnit
);
Observable
<
LoaningAmoutBean
>
getLoanAmoutData
(
@Query
(
"principal"
)
double
amount
,
@Query
(
"period"
)
int
day
,
@Query
(
"periodUnit"
)
String
periodUnit
);
...
@@ -291,5 +283,31 @@ public interface UserApi {
...
@@ -291,5 +283,31 @@ public interface UserApi {
@GET
(
"loanapp/display"
)
@GET
(
"loanapp/display"
)
Observable
<
DisplayBean
>
display
();
Observable
<
DisplayBean
>
display
();
@FormUrlEncoded
@PUT
(
"loanapp/deposit"
)
Observable
<
ResponseBody
>
sendPayCode
(
@Field
(
"depositId"
)
String
loanAppId
,
@Field
(
"outerTransactionId"
)
String
paymentCode
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
@FormUrlEncoded
@POST
(
"loanapp"
)
Observable
<
ResponseBody
>
applyLoanApp
(
@Field
(
"loanType"
)
String
loanType
,
@Field
(
"amount"
)
String
amount
,
@Field
(
"period"
)
String
period
,
@Field
(
"periodUnit"
)
String
periodUnit
,
@Field
(
"bankCode"
)
String
bankCode
,
@Field
(
"cardNo"
)
String
cardNo
,
@Field
(
"applyFor"
)
String
applyFor
,
@Field
(
"applyChannel"
)
String
applyChannel
,
@Field
(
"applyPlatform"
)
String
applyPlatform
,
@Field
(
"couponId"
)
long
couponId
,
@Header
(
"X-AUTH-TOKEN"
)
String
token
,
@Header
(
"imei"
)
String
imei
);
@GET
(
"chat/account"
)
Observable
<
YWUser
>
getChatUserInfo
(
@Header
(
"X-AUTH-TOKEN"
)
String
token
);
}
}
src/main/java/tech/starwin/mvp/beans/BannerMessageDto.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
public
class
BannerMessageDto
{
import
java.io.Serializable
;
public
class
BannerMessageDto
implements
Serializable
{
public
long
id
;
public
long
id
;
public
String
content
;
public
String
content
;
...
...
src/main/java/tech/starwin/mvp/beans/BasicAck.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
*/
*/
public
class
BasicAck
{
public
class
BasicAck
implements
Serializable
{
private
String
code
;
private
String
code
;
private
String
message
;
private
String
message
;
private
String
data
;
private
String
data
;
...
...
src/main/java/tech/starwin/mvp/beans/CertBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/20.
* Created by SiKang on 2018/9/20.
*/
*/
public
class
CertBean
{
public
class
CertBean
implements
Serializable
{
public
boolean
isComplete
;
public
boolean
isComplete
;
}
}
src/main/java/tech/starwin/mvp/beans/ContactInfoBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 2017/3/1.
* Created by Miaoke on 2017/3/1.
*/
*/
public
class
ContactInfoBean
{
public
class
ContactInfoBean
implements
Serializable
{
/**
/**
* friendMobile : string
* friendMobile : string
...
...
src/main/java/tech/starwin/mvp/beans/DepositMethodsBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* Created by Miaoke on 2017/3/13.
* Created by Miaoke on 2017/3/13.
*/
*/
public
class
DepositMethodsBean
{
public
class
DepositMethodsBean
implements
Serializable
{
private
List
<
String
>
depositMethods
;
private
List
<
String
>
depositMethods
;
...
...
src/main/java/tech/starwin/mvp/beans/DepositResponseBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 2017/3/13.
* Created by Miaoke on 2017/3/13.
*/
*/
public
class
DepositResponseBean
{
public
class
DepositResponseBean
implements
Serializable
{
/**
/**
...
...
src/main/java/tech/starwin/mvp/beans/EmploymentBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 2017/3/1.
* Created by Miaoke on 2017/3/1.
*/
*/
public
class
EmploymentBean
{
public
class
EmploymentBean
implements
Serializable
{
/**
/**
...
@@ -21,15 +23,15 @@ public class EmploymentBean {
...
@@ -21,15 +23,15 @@ public class EmploymentBean {
* workEmail : string
* workEmail : string
*/
*/
p
ublic
String
companyName
;
p
rivate
String
companyName
;
p
ublic
RegionBean
.
RegionsBean
companyProvince
;
p
rivate
RegionBean
.
RegionsBean
companyProvince
;
p
ublic
RegionBean
.
RegionsBean
companyCity
;
p
rivate
RegionBean
.
RegionsBean
companyCity
;
p
ublic
RegionBean
.
RegionsBean
companyDistrict
;
p
rivate
RegionBean
.
RegionsBean
companyDistrict
;
p
ublic
RegionBean
.
RegionsBean
companyArea
;
p
rivate
RegionBean
.
RegionsBean
companyArea
;
p
ublic
String
companyAddress
;
p
rivate
String
companyAddress
;
p
ublic
String
companyPhone
;
p
rivate
String
companyPhone
;
p
ublic
String
salary
;
p
rivate
String
salary
;
p
ublic
String
mJ
obType
;
p
rivate
String
j
obType
;
public
EmploymentBean
()
{
public
EmploymentBean
()
{
}
}
...
@@ -53,27 +55,75 @@ public class EmploymentBean {
...
@@ -53,27 +55,75 @@ public class EmploymentBean {
}
}
public
String
getCompanyName
()
{
return
companyName
;
}
public
void
setCompanyName
(
String
companyName
)
{
public
void
setCompanyName
(
String
companyName
)
{
this
.
companyName
=
companyName
;
this
.
companyName
=
companyName
;
}
}
public
RegionBean
.
RegionsBean
getCompanyProvince
()
{
return
companyProvince
;
}
public
void
setCompanyProvince
(
RegionBean
.
RegionsBean
companyProvince
)
{
this
.
companyProvince
=
companyProvince
;
}
public
RegionBean
.
RegionsBean
getCompanyCity
()
{
return
companyCity
;
}
public
void
setCompanyCity
(
RegionBean
.
RegionsBean
companyCity
)
{
this
.
companyCity
=
companyCity
;
}
public
RegionBean
.
RegionsBean
getCompanyDistrict
()
{
return
companyDistrict
;
}
public
void
setCompanyDistrict
(
RegionBean
.
RegionsBean
companyDistrict
)
{
this
.
companyDistrict
=
companyDistrict
;
}
public
RegionBean
.
RegionsBean
getCompanyArea
()
{
return
companyArea
;
}
public
void
setCompanyArea
(
RegionBean
.
RegionsBean
companyArea
)
{
this
.
companyArea
=
companyArea
;
}
public
String
getCompanyAddress
()
{
return
companyAddress
;
}
public
void
setCompanyAddress
(
String
companyAddress
)
{
public
void
setCompanyAddress
(
String
companyAddress
)
{
this
.
companyAddress
=
companyAddress
;
this
.
companyAddress
=
companyAddress
;
}
}
public
String
getCompanyPhone
()
{
return
companyPhone
;
}
public
void
setCompanyPhone
(
String
companyPhone
)
{
public
void
setCompanyPhone
(
String
companyPhone
)
{
this
.
companyPhone
=
companyPhone
;
this
.
companyPhone
=
companyPhone
;
}
}
public
String
getSalary
()
{
return
salary
;
}
public
void
setSalary
(
String
salary
)
{
public
void
setSalary
(
String
salary
)
{
this
.
salary
=
salary
;
this
.
salary
=
salary
;
}
}
public
String
getJobType
()
{
return
jobType
;
}
public
void
setJobType
(
String
jobType
)
{
public
void
setJobType
(
String
jobType
)
{
mJ
obType
=
jobType
;
this
.
j
obType
=
jobType
;
}
}
}
}
src/main/java/tech/starwin/mvp/beans/EmploymentServerBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 31/03/2017.
* Created by Miaoke on 31/03/2017.
*/
*/
public
class
EmploymentServerBean
{
public
class
EmploymentServerBean
implements
Serializable
{
/**
/**
* companyAddress : string
* companyAddress : string
...
...
src/main/java/tech/starwin/mvp/beans/HistoryLoanAppInfoBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* @作者:XJY
* @作者:XJY
* @创建日期: 2017/3/15 14:58
* @创建日期: 2017/3/15 14:58
...
@@ -9,7 +11,7 @@ package tech.starwin.mvp.beans;
...
@@ -9,7 +11,7 @@ package tech.starwin.mvp.beans;
* @更新描述:${TODO}
* @更新描述:${TODO}
*/
*/
public
class
HistoryLoanAppInfoBean
extends
LoanAppBeanFather
{
public
class
HistoryLoanAppInfoBean
extends
LoanAppBeanFather
implements
Serializable
{
/**
/**
...
...
src/main/java/tech/starwin/mvp/beans/IdentifyBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
*/
*/
public
class
IdentifyBean
{
public
class
IdentifyBean
implements
Serializable
{
private
String
name
;
private
String
name
;
private
String
ktp
;
private
String
ktp
;
private
String
gender
;
private
String
gender
;
...
...
src/main/java/tech/starwin/mvp/beans/InviteResult.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
*/
*/
public
class
InviteResult
{
public
class
InviteResult
implements
Serializable
{
private
InviteePersonBean
list
;
private
InviteePersonBean
list
;
private
InviteeBean
bean
;
private
InviteeBean
bean
;
private
String
code
;
private
String
code
;
...
...
src/main/java/tech/starwin/mvp/beans/InviteeBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
*/
*/
public
class
InviteeBean
{
public
class
InviteeBean
implements
Serializable
{
private
int
completeLoanApplyCount
;
private
int
completeLoanApplyCount
;
private
int
inviteeCount
;
private
int
inviteeCount
;
...
...
src/main/java/tech/starwin/mvp/beans/InviteePersonBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
*/
*/
public
class
InviteePersonBean
{
public
class
InviteePersonBean
implements
Serializable
{
private
String
mobile
;
private
String
mobile
;
private
String
realName
;
private
String
realName
;
private
String
registerTime
;
private
String
registerTime
;
...
...
src/main/java/tech/starwin/mvp/beans/LatestLoanAppBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 2017/3/6.
* Created by Miaoke on 2017/3/6.
*/
*/
public
class
LatestLoanAppBean
extends
LoanAppBeanFather
{
public
class
LatestLoanAppBean
extends
LoanAppBeanFather
implements
Serializable
{
/**
/**
...
...
src/main/java/tech/starwin/mvp/beans/LoanAppHelpCenterTipsBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* @作者:My
* @作者:My
* @创建日期: 2017/3/20 11:35
* @创建日期: 2017/3/20 11:35
...
@@ -9,7 +11,7 @@ package tech.starwin.mvp.beans;
...
@@ -9,7 +11,7 @@ package tech.starwin.mvp.beans;
* @更新描述:${TODO}
* @更新描述:${TODO}
*/
*/
public
class
LoanAppHelpCenterTipsBean
{
public
class
LoanAppHelpCenterTipsBean
implements
Serializable
{
public
String
mTitle
;
public
String
mTitle
;
public
String
mDetail
;
public
String
mDetail
;
}
}
src/main/java/tech/starwin/mvp/beans/LoanRange.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* @作者:My
* @作者:My
* @创建日期: 2017/7/19 17:47
* @创建日期: 2017/7/19 17:47
...
@@ -9,7 +11,7 @@ package tech.starwin.mvp.beans;
...
@@ -9,7 +11,7 @@ package tech.starwin.mvp.beans;
* @更新描述:${TODO}
* @更新描述:${TODO}
*/
*/
public
class
LoanRange
{
public
class
LoanRange
implements
Serializable
{
private
Double
amountStep
;
private
Double
amountStep
;
private
Double
interestRate
;
private
Double
interestRate
;
private
Double
maxAmount
;
private
Double
maxAmount
;
...
...
src/main/java/tech/starwin/mvp/beans/LoaningAmoutBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
*/
*/
public
class
LoaningAmoutBean
{
public
class
LoaningAmoutBean
implements
Serializable
{
private
double
dueAmount
;
private
double
dueAmount
;
private
double
interest
;
private
double
interest
;
private
double
serviceFee
;
private
double
serviceFee
;
...
...
src/main/java/tech/starwin/mvp/beans/LoginRequestBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by localuser on 2017/2/27.
* Created by localuser on 2017/2/27.
*/
*/
public
class
LoginRequestBean
{
public
class
LoginRequestBean
implements
Serializable
{
public
Mobile
mobile
;
public
Mobile
mobile
;
public
SMSCode
smsCode
;
public
SMSCode
smsCode
;
...
...
src/main/java/tech/starwin/mvp/beans/LoginStatusBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* @作者:My
* @作者:My
* @创建日期: 2017/4/5 17:17
* @创建日期: 2017/4/5 17:17
...
@@ -10,6 +12,6 @@ package tech.starwin.mvp.beans;
...
@@ -10,6 +12,6 @@ package tech.starwin.mvp.beans;
* @更新描述:${TODO}
* @更新描述:${TODO}
*/
*/
public
class
LoginStatusBean
{
public
class
LoginStatusBean
implements
Serializable
{
public
long
mChangTime
=
1L
;
public
long
mChangTime
=
1L
;
}
}
src/main/java/tech/starwin/mvp/beans/MessageBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
*/
*/
public
class
MessageBean
{
public
class
MessageBean
implements
Serializable
{
private
boolean
fromMe
;
private
boolean
fromMe
;
private
String
time
;
private
String
time
;
private
String
message
;
private
String
message
;
...
...
src/main/java/tech/starwin/mvp/beans/MsgInboxBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 2017/3/24.
* Created by Miaoke on 2017/3/24.
*/
*/
public
class
MsgInboxBean
{
public
class
MsgInboxBean
implements
Serializable
{
/**
/**
* createTime : 2017-03-24T09:56:37.757Z
* createTime : 2017-03-24T09:56:37.757Z
...
...
src/main/java/tech/starwin/mvp/beans/PersonalInfoBean.java
View file @
fcbdd49a
...
@@ -2,12 +2,14 @@ package tech.starwin.mvp.beans;
...
@@ -2,12 +2,14 @@ package tech.starwin.mvp.beans;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 2017/3/1.
* Created by Miaoke on 2017/3/1.
*/
*/
public
class
PersonalInfoBean
{
public
class
PersonalInfoBean
implements
Serializable
{
/**
/**
...
...
src/main/java/tech/starwin/mvp/beans/PersonalInfoServerBean.java
View file @
fcbdd49a
...
@@ -2,11 +2,13 @@ package tech.starwin.mvp.beans;
...
@@ -2,11 +2,13 @@ package tech.starwin.mvp.beans;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 31/03/2017.
* Created by Miaoke on 31/03/2017.
*/
*/
public
class
PersonalInfoServerBean
{
public
class
PersonalInfoServerBean
implements
Serializable
{
/**
/**
* address : string
* address : string
...
...
src/main/java/tech/starwin/mvp/beans/PhotoInfo.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.File
;
import
java.io.File
;
import
java.io.Serializable
;
/**
/**
* @作者:My
* @作者:My
...
@@ -11,8 +12,8 @@ import java.io.File;
...
@@ -11,8 +12,8 @@ import java.io.File;
* @更新描述:${TODO}
* @更新描述:${TODO}
*/
*/
public
class
PhotoInfo
{
public
class
PhotoInfo
implements
Serializable
{
public
File
mFile
;
public
File
mFile
;
public
boolean
isKTP
;
public
boolean
isKTP
;
}
}
src/main/java/tech/starwin/mvp/beans/ProgressBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 2017/3/20.
* Created by Miaoke on 2017/3/20.
*/
*/
public
class
ProgressBean
{
public
class
ProgressBean
implements
Serializable
{
/**
/**
* personalInfoPart : false
* personalInfoPart : false
...
...
src/main/java/tech/starwin/mvp/beans/RecordFilesResponse.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* Created by localuser on 2017/3/1.
* Created by localuser on 2017/3/1.
*/
*/
public
class
RecordFilesResponse
{
public
class
RecordFilesResponse
implements
Serializable
{
private
List
<
FilesBean
>
files
;
private
List
<
FilesBean
>
files
;
public
List
<
FilesBean
>
getFiles
()
{
public
List
<
FilesBean
>
getFiles
()
{
...
...
src/main/java/tech/starwin/mvp/beans/RegionBean.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* Created by Miaoke on 2017/3/10.
* Created by Miaoke on 2017/3/10.
*/
*/
public
class
RegionBean
{
public
class
RegionBean
implements
Serializable
{
private
List
<
RegionsBean
>
regions
;
private
List
<
RegionsBean
>
regions
;
...
...
src/main/java/tech/starwin/mvp/beans/ResponseErrorBody.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by Miaoke on 30/03/2017.
* Created by Miaoke on 30/03/2017.
*/
*/
public
class
ResponseErrorBody
{
public
class
ResponseErrorBody
implements
Serializable
{
/**
/**
* error : err.auth.access.denied
* error : err.auth.access.denied
...
...
src/main/java/tech/starwin/mvp/beans/Result.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/14.
* Created by SiKang on 2018/9/14.
*/
*/
public
class
Result
<
T
>
{
public
class
Result
<
T
>
implements
Serializable
{
public
int
code
;
public
int
code
;
public
String
msg
;
public
String
msg
;
public
T
data
;
public
T
data
;
...
...
src/main/java/tech/starwin/mvp/beans/UserBankInfo.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* Created by SiKang on 2018/9/30.
* Created by SiKang on 2018/9/30.
*/
*/
public
class
UserBankInfo
{
public
class
UserBankInfo
implements
Serializable
{
private
String
bankCode
;
private
String
bankCode
;
private
String
branch
;
private
String
branch
;
private
String
cardNo
;
private
String
cardNo
;
...
...
src/main/java/tech/starwin/mvp/beans/UserInfo.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
public
class
UserInfo
{
import
java.io.Serializable
;
public
class
UserInfo
implements
Serializable
{
public
String
headIcon
;
public
String
headIcon
;
public
String
nicky
;
public
String
nicky
;
...
...
src/main/java/tech/starwin/mvp/beans/YWUser.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
beans
;
package
tech
.
starwin
.
mvp
.
beans
;
import
java.io.Serializable
;
/**
/**
* @作者:My
* @作者:My
* @创建日期: 2017/3/31 16:55
* @创建日期: 2017/3/31 16:55
...
@@ -9,7 +11,7 @@ package tech.starwin.mvp.beans;
...
@@ -9,7 +11,7 @@ package tech.starwin.mvp.beans;
* @更新描述:${TODO}
* @更新描述:${TODO}
*/
*/
public
class
YWUser
{
public
class
YWUser
implements
Serializable
{
/**
/**
* userid : 59523e9f4736c2cab70a470f088b53dd
* userid : 59523e9f4736c2cab70a470f088b53dd
...
...
src/main/java/tech/starwin/mvp/presenter/LoanPresenter.java
View file @
fcbdd49a
...
@@ -42,5 +42,20 @@ public class LoanPresenter extends BasePresenter<LoanApi> {
...
@@ -42,5 +42,20 @@ public class LoanPresenter extends BasePresenter<LoanApi> {
handleRequest
(
action
,
apiService
.
getLatestLoanApp
(
LoginManager
.
get
().
getToken
()));
handleRequest
(
action
,
apiService
.
getLatestLoanApp
(
LoginManager
.
get
().
getToken
()));
}
}
/**
* 获取贷款记录
*/
public
void
getLoanHistory
(
String
action
)
{
handleRequest
(
action
,
apiService
.
getLoanAppAll
(
LoginManager
.
get
().
getToken
()));
}
/**
* 取消贷款
* */
public
void
cancelLoan
(
String
action
,
String
loanAppId
){
handleRequest
(
action
,
apiService
.
cancelLoan
(
loanAppId
,
LoginManager
.
get
().
getToken
()));
}
}
}
src/main/java/tech/starwin/mvp/presenter/UploadPresenter.java
View file @
fcbdd49a
package
tech
.
starwin
.
mvp
.
presenter
;
package
tech
.
starwin
.
mvp
.
presenter
;
import
android.annotation.SuppressLint
;
import
android.support.annotation.NonNull
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
...
@@ -8,11 +10,17 @@ import com.google.gson.Gson;
...
@@ -8,11 +10,17 @@ import com.google.gson.Gson;
import
java.io.File
;
import
java.io.File
;
import
java.util.List
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
io.reactivex.functions.BiFunction
;
import
okhttp3.MultipartBody
;
import
okhttp3.MultipartBody
;
import
okhttp3.ResponseBody
;
import
tech.starwin.base.BasePresenter
;
import
tech.starwin.base.BasePresenter
;
import
tech.starwin.common.impl.HttpObserver
;
import
tech.starwin.common.impl.HttpObserver
;
import
tech.starwin.mvp.api.UploadApi
;
import
tech.starwin.mvp.api.UploadApi
;
import
tech.starwin.mvp.api.UserApi
;
import
tech.starwin.mvp.beans.EmploymentBean
;
import
tech.starwin.mvp.beans.OcrResultBean
;
import
tech.starwin.mvp.beans.OcrResultBean
;
import
tech.starwin.network.ServiceGenerator
;
import
tech.starwin.utils.LoginManager
;
import
tech.starwin.utils.LoginManager
;
import
tech.starwin.utils.MultipartBodyMaker
;
import
tech.starwin.utils.MultipartBodyMaker
;
...
@@ -28,12 +36,8 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
...
@@ -28,12 +36,8 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
/**
/**
* 身份证ocr识别
* 身份证ocr识别
*/
*/
public
void
identityOcr
(
final
String
action
,
@Nullable
File
file
)
{
public
void
identityOcr
(
final
String
action
,
@NonNull
File
file
)
{
List
<
MultipartBody
.
Part
>
parts
=
new
MultipartBodyMaker
.
Builder
()
handleRequest
(
apiService
.
identityOcr
(
MultipartBodyMaker
.
makeSimplePart
(
"file"
,
file
),
LoginManager
.
get
().
getToken
()),
new
HttpObserver
<
OcrResultBean
>()
{
.
addDataPart
(
"file"
,
file
)
.
build
().
makeParts
();
handleRequest
(
apiService
.
identityOcr
(
parts
,
LoginManager
.
get
().
getToken
()),
new
HttpObserver
<
OcrResultBean
>()
{
@Override
@Override
public
void
onStart
()
{
public
void
onStart
()
{
view
.
onHttpStart
(
action
,
true
);
view
.
onHttpStart
(
action
,
true
);
...
@@ -59,4 +63,33 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
...
@@ -59,4 +63,33 @@ public class UploadPresenter extends BasePresenter<UploadApi> {
}
}
});
});
}
}
/**
* 上传工作证件照片
*/
@SuppressLint
(
"CheckResult"
)
public
void
uploadEmploymentImg
(
final
String
action
,
EmploymentBean
employmentBean
,
@NonNull
File
file
)
{
handleRequest
(
apiService
.
uploadPhoto
(
MultipartBodyMaker
.
makeSimplePart
(
"file"
,
file
),
"EMPLOYMENT_PHOTO"
,
LoginManager
.
get
().
getToken
()),
new
HttpObserver
<
ResponseBody
>()
{
@Override
public
void
onStart
()
{
view
.
onHttpStart
(
action
,
true
);
}
@Override
public
void
onSuccess
(
ResponseBody
responseBody
)
{
view
.
onHttpSuccess
(
action
,
responseBody
);
}
@Override
public
void
onError
(
int
code
,
String
msg
)
{
view
.
onHttpError
(
action
,
msg
);
}
@Override
public
void
onFinish
()
{
view
.
onHttpFinish
(
action
);
}
});
}
}
}
src/main/java/tech/starwin/mvp/presenter/UserPresenter.java
View file @
fcbdd49a
...
@@ -8,12 +8,15 @@ import io.reactivex.ObservableSource;
...
@@ -8,12 +8,15 @@ import io.reactivex.ObservableSource;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.functions.Function
;
import
io.reactivex.functions.Function
;
import
io.reactivex.functions.Predicate
;
import
io.reactivex.functions.Predicate
;
import
okhttp3.ResponseBody
;
import
tech.starwin.base.BasePresenter
;
import
tech.starwin.base.BasePresenter
;
import
tech.starwin.common.impl.HttpObserver
;
import
tech.starwin.common.impl.HttpObserver
;
import
tech.starwin.mvp.api.UserApi
;
import
tech.starwin.mvp.api.UserApi
;
import
tech.starwin.mvp.beans.EmploymentBean
;
import
tech.starwin.mvp.beans.GatewayInfoBean
;
import
tech.starwin.mvp.beans.GatewayInfoBean
;
import
tech.starwin.mvp.beans.TokenInfoBean
;
import
tech.starwin.mvp.beans.TokenInfoBean
;
import
tech.starwin.network.Gateway
;
import
tech.starwin.network.Gateway
;
import
tech.starwin.network.ServiceGenerator
;
import
tech.starwin.utils.LoginManager
;
import
tech.starwin.utils.LoginManager
;
/**
/**
...
@@ -152,6 +155,37 @@ public class UserPresenter extends BasePresenter<UserApi> {
...
@@ -152,6 +155,37 @@ public class UserPresenter extends BasePresenter<UserApi> {
handleRequest
(
action
,
apiService
.
getRegion
(
level
,
id
));
handleRequest
(
action
,
apiService
.
getRegion
(
level
,
id
));
}
}
/**
* 提交联系人信息
*/
public
void
submitContactInfo
(
String
action
,
String
parentName
,
String
parentPhone
,
String
friendName
,
String
friendPhone
)
{
handleRequest
(
action
,
apiService
.
submitContactInfo
(
parentName
,
parentPhone
,
friendName
,
friendPhone
,
LoginManager
.
get
().
getToken
()));
}
/**
* 提交联系人信息
*/
public
void
submitEmploymentInfo
(
String
action
,
EmploymentBean
employmentBean
)
{
Observable
<
ResponseBody
>
observable
=
ServiceGenerator
.
getService
(
UserApi
.
class
)
.
submitEmploymentInfo
(
employmentBean
.
getCompanyName
(),
employmentBean
.
getCompanyProvince
().
getName
(),
employmentBean
.
getCompanyCity
().
getName
(),
employmentBean
.
getCompanyDistrict
().
getName
(),
employmentBean
.
getCompanyArea
().
getName
(),
employmentBean
.
getCompanyAddress
(),
employmentBean
.
getCompanyPhone
(),
employmentBean
.
getJobType
(),
employmentBean
.
getSalary
(),
LoginManager
.
get
().
getToken
());
handleRequest
(
action
,
observable
);
}
// /**
// /**
// * 获取身份证图片 + 获取用户个人信息
// * 获取身份证图片 + 获取用户个人信息
// */
// */
...
...
src/main/java/tech/starwin/network/DefaultHeaderAddInterceptor.java
0 → 100644
View file @
fcbdd49a
package
tech
.
starwin
.
network
;
import
java.io.IOException
;
import
okhttp3.Headers
;
import
okhttp3.Interceptor
;
import
okhttp3.MediaType
;
import
okhttp3.Request
;
import
okhttp3.RequestBody
;
import
okhttp3.Response
;
import
okhttp3.internal.Util
;
import
tech.starwin.LibConfig
;
/**
* Created by XLEO on 2018/1/30.
*/
class
DefaultHeaderAddInterceptor
implements
Interceptor
{
@Override
public
Response
intercept
(
Chain
chain
)
throws
IOException
{
Request
userRequest
=
chain
.
request
();
Request
.
Builder
requestBuilder
=
userRequest
.
newBuilder
();
RequestBody
body
=
userRequest
.
body
();
if
(
body
!=
null
)
{
MediaType
contentType
=
body
.
contentType
();
if
(
contentType
!=
null
)
{
requestBuilder
.
header
(
"Content-Type"
,
contentType
.
toString
());
}
long
contentLength
=
body
.
contentLength
();
if
(
contentLength
!=
-
1L
)
{
requestBuilder
.
header
(
"Content-Length"
,
Long
.
toString
(
contentLength
));
requestBuilder
.
removeHeader
(
"Transfer-Encoding"
);
}
else
{
requestBuilder
.
header
(
"Transfer-Encoding"
,
"chunked"
);
requestBuilder
.
removeHeader
(
"Content-Length"
);
}
}
if
(
userRequest
.
header
(
"Host"
)
==
null
)
{
requestBuilder
.
header
(
"Host"
,
Util
.
hostHeader
(
userRequest
.
url
(),
false
));
}
if
(
userRequest
.
header
(
"Connection"
)
==
null
)
{
requestBuilder
.
header
(
"Connection"
,
"Keep-Alive"
);
}
boolean
transparentGzip
=
false
;
if
(
userRequest
.
header
(
"Accept-Encoding"
)
==
null
&&
userRequest
.
header
(
"Range"
)
==
null
)
{
transparentGzip
=
true
;
requestBuilder
.
header
(
"Accept-Encoding"
,
"gzip"
);
}
requestBuilder
.
header
(
"X-APP-TYPE"
,
"ANDROID"
)
.
header
(
"X-APP-VERSION"
,
String
.
valueOf
(
LibConfig
.
VERSION_CODE
))
.
header
(
"X-APP-PACKAGE-NAME"
,
LibConfig
.
APPLICATION_ID
);
return
chain
.
proceed
(
requestBuilder
.
build
());
}
}
src/main/java/tech/starwin/network/Gateway.java
View file @
fcbdd49a
package
tech
.
starwin
.
network
;
package
tech
.
starwin
.
network
;
import
com.google.firebase.remoteconfig.FirebaseRemoteConfig
;
import
java.util.Arrays
;
import
java.util.Arrays
;
import
java.util.List
;
import
java.util.List
;
import
tech.starwin.LibConfig
;
import
tech.starwin.LibConfig
;
import
tech.starwin.mvp.beans.GatewayInfoBean
;
import
tech.starwin.mvp.beans.GatewayInfoBean
;
import
tech.starwin.utils.LogUtils
;
/**
/**
* Created by SiKang on 2018/9/28.
* Created by SiKang on 2018/9/28.
...
...
src/main/java/tech/starwin/network/NullOnEmptyConverterFactory.java
View file @
fcbdd49a
...
@@ -16,7 +16,9 @@ public class NullOnEmptyConverterFactory extends Converter.Factory {
...
@@ -16,7 +16,9 @@ public class NullOnEmptyConverterFactory extends Converter.Factory {
return
new
Converter
<
ResponseBody
,
Object
>()
{
return
new
Converter
<
ResponseBody
,
Object
>()
{
@Override
@Override
public
Object
convert
(
ResponseBody
body
)
throws
IOException
{
public
Object
convert
(
ResponseBody
body
)
throws
IOException
{
if
(
body
.
contentLength
()
==
0
)
return
null
;
if
(
body
.
contentLength
()
==
0
)
{
throw
new
NullPointerException
(
"body is null!"
);
}
return
delegate
.
convert
(
body
);
return
delegate
.
convert
(
body
);
}
}
};
};
...
...
src/main/java/tech/starwin/network/ServiceGenerator.java
View file @
fcbdd49a
...
@@ -29,6 +29,7 @@ public class ServiceGenerator {
...
@@ -29,6 +29,7 @@ public class ServiceGenerator {
.
connectTimeout
(
TIME_OUT
,
TimeUnit
.
SECONDS
)
.
connectTimeout
(
TIME_OUT
,
TimeUnit
.
SECONDS
)
.
writeTimeout
(
TIME_OUT
,
TimeUnit
.
SECONDS
)
.
writeTimeout
(
TIME_OUT
,
TimeUnit
.
SECONDS
)
.
readTimeout
(
TIME_OUT
,
TimeUnit
.
SECONDS
)
.
readTimeout
(
TIME_OUT
,
TimeUnit
.
SECONDS
)
.
addInterceptor
(
new
DefaultHeaderAddInterceptor
())
.
build
();
.
build
();
serviceMap
=
new
HashMap
<>();
serviceMap
=
new
HashMap
<>();
...
...
src/main/java/tech/starwin/signal/JNISignal.java
0 → 100644
View file @
fcbdd49a
package
tech
.
starwin
.
signal
;
import
android.content.Context
;
/**
* Created by SiKang on 2018/10/10.
*/
public
class
JNISignal
{
static
{
System
.
loadLibrary
(
"signal"
);
}
public
static
native
String
getSignal
(
Context
context
);
}
src/main/java/tech/starwin/utils/FireBaseHelper.java
0 → 100644
View file @
fcbdd49a
package
tech
.
starwin
.
utils
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.support.annotation.NonNull
;
import
android.text.TextUtils
;
import
android.view.View
;
import
android.widget.Button
;
import
android.widget.TextView
;
import
com.google.android.gms.tasks.OnCompleteListener
;
import
com.google.android.gms.tasks.Task
;
import
com.google.firebase.analytics.FirebaseAnalytics
;
import
com.google.firebase.remoteconfig.FirebaseRemoteConfig
;
/**
* Created by SiKang on 2018/10/11.
*/
public
class
FireBaseHelper
{
public
static
final
String
REST_URL
=
"rest_url"
;
/**
* click埋点,ITEM_NAME = view.getTag()
*/
public
static
void
LogClickEventByTag
(
View
view
)
{
if
(
view
.
getTag
()
!=
null
&&
view
.
getTag
()
instanceof
String
)
{
logClickEvent
(
view
.
getContext
(),
(
String
)
view
.
getTag
());
}
}
/**
* click埋点 ITEM_NAME = view.getText()
*/
public
static
void
LogClickEventByText
(
View
view
)
{
String
itemName
=
""
;
if
(
view
instanceof
TextView
)
{
itemName
=
((
TextView
)
view
).
getText
().
toString
();
}
else
if
(
view
instanceof
Button
)
{
itemName
=
((
Button
)
view
).
getText
().
toString
();
}
if
(!
TextUtils
.
isEmpty
(
itemName
))
{
logClickEvent
(
view
.
getContext
(),
itemName
);
}
}
/**
* click埋点
*/
public
static
void
logClickEvent
(
Context
context
,
String
itemName
)
{
Bundle
bundle
=
new
Bundle
();
bundle
.
putString
(
FirebaseAnalytics
.
Param
.
CONTENT_TYPE
,
"click_"
+
itemName
);
FirebaseAnalytics
.
getInstance
(
context
).
logEvent
(
FirebaseAnalytics
.
Event
.
SELECT_CONTENT
,
bundle
);
}
/**
* 获取FireBase RemoteConfig 并激活
*/
private
static
final
int
CACHE_EXPIRATION_SECONDS
=
60
*
5
;
//remoteConfig 刷新频率
public
static
void
fetchRemoteConfig
()
{
final
FirebaseRemoteConfig
config
=
FirebaseRemoteConfig
.
getInstance
();
config
.
fetch
(
CACHE_EXPIRATION_SECONDS
)
.
addOnCompleteListener
(
new
OnCompleteListener
<
Void
>()
{
@Override
public
void
onComplete
(
@NonNull
Task
<
Void
>
task
)
{
if
(
task
.
isSuccessful
())
{
config
.
activateFetched
();
}
}
});
}
}
src/main/java/tech/starwin/utils/GeneralUtils.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
;
package
tech
.
starwin
.
utils
;
import
android.annotation.SuppressLint
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.pm.PackageInfo
;
import
android.content.pm.PackageInfo
;
import
android.content.pm.PackageManager
;
import
android.content.pm.PackageManager
;
import
android.provider.Settings
;
import
android.support.annotation.NonNull
;
import
android.support.annotation.NonNull
;
import
android.support.annotation.Nullable
;
import
android.support.annotation.Nullable
;
import
android.support.v4.app.FragmentManager
;
import
android.support.v4.app.FragmentManager
;
...
@@ -18,11 +20,14 @@ import java.io.IOException;
...
@@ -18,11 +20,14 @@ import java.io.IOException;
import
java.io.ObjectInputStream
;
import
java.io.ObjectInputStream
;
import
java.io.ObjectOutputStream
;
import
java.io.ObjectOutputStream
;
import
java.lang.reflect.Field
;
import
java.lang.reflect.Field
;
import
java.security.MessageDigest
;
import
java.security.NoSuchAlgorithmException
;
import
java.text.DateFormat
;
import
java.text.DateFormat
;
import
java.text.ParseException
;
import
java.text.ParseException
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
import
java.util.UUID
;
import
tech.starwin.R
;
import
tech.starwin.R
;
...
@@ -183,6 +188,43 @@ public class GeneralUtils {
...
@@ -183,6 +188,43 @@ public class GeneralUtils {
return
null
;
return
null
;
}
}
/**
* MD5
*/
public
static
String
MD5
(
String
key
)
{
String
cacheKey
;
try
{
final
MessageDigest
mDigest
=
MessageDigest
.
getInstance
(
"MD5"
);
mDigest
.
update
(
key
.
getBytes
());
cacheKey
=
bytesToHexString
(
mDigest
.
digest
());
}
catch
(
NoSuchAlgorithmException
e
)
{
cacheKey
=
String
.
valueOf
(
key
.
hashCode
());
}
return
cacheKey
;
}
private
static
String
bytesToHexString
(
byte
[]
bytes
)
{
StringBuilder
sb
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
String
hex
=
Integer
.
toHexString
(
0xFF
&
bytes
[
i
]);
if
(
hex
.
length
()
==
1
)
{
sb
.
append
(
'0'
);
}
sb
.
append
(
hex
);
}
return
sb
.
toString
();
}
/**
* 获取AndroidID
*/
@SuppressLint
(
"HardwareIds"
)
public
static
String
getAndroidID
(
Context
context
)
{
return
Settings
.
Secure
.
getString
(
context
.
getContentResolver
(),
Settings
.
Secure
.
ANDROID_ID
);
}
public
static
void
findAndModifyOpInBackStackRecord
(
FragmentManager
fragmentManager
,
int
backStackIndex
,
OPHandler
handler
)
{
public
static
void
findAndModifyOpInBackStackRecord
(
FragmentManager
fragmentManager
,
int
backStackIndex
,
OPHandler
handler
)
{
if
(
fragmentManager
==
null
||
handler
==
null
)
{
if
(
fragmentManager
==
null
||
handler
==
null
)
{
...
...
src/main/java/tech/starwin/utils/LogUtils.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
;
package
tech
.
starwin
.
utils
;
import
android.content.Context
;
import
android.os.Bundle
;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.util.Log
;
import
android.view.View
;
import
android.widget.Button
;
import
android.widget.ImageButton
;
import
android.widget.TextView
;
import
com.google.firebase.analytics.FirebaseAnalytics
;
import
tech.starwin.BuildConfig
;
import
tech.starwin.BuildConfig
;
...
...
src/main/java/tech/starwin/utils/LoginManager.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
;
package
tech
.
starwin
.
utils
;
import
android.content.
ActivityNotFoundException
;
import
android.content.
Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.content.pm.PackageManager
;
import
android.content.pm.ResolveInfo
;
import
android.support.v4.app.FragmentActivity
;
import
android.support.v4.app.FragmentActivity
;
import
com.facebook.accountkit.AccountKitError
;
import
com.facebook.accountkit.AccountKitError
;
...
@@ -10,15 +12,18 @@ import com.facebook.accountkit.ui.AccountKitActivity;
...
@@ -10,15 +12,18 @@ import com.facebook.accountkit.ui.AccountKitActivity;
import
com.facebook.accountkit.ui.AccountKitConfiguration
;
import
com.facebook.accountkit.ui.AccountKitConfiguration
;
import
com.facebook.accountkit.ui.LoginType
;
import
com.facebook.accountkit.ui.LoginType
;
import
java.util.List
;
import
tech.starwin.LibConfig
;
import
tech.starwin.LibConfig
;
import
tech.starwin.mvp.beans.TokenInfoBean
;
import
tech.starwin.mvp.beans.TokenInfoBean
;
import
tech.starwin.utils.
activity
_utils.EasyActivityResult
;
import
tech.starwin.utils.
context
_utils.EasyActivityResult
;
import
tech.starwin.utils.
activity
_utils.IntentHolder
;
import
tech.starwin.utils.
context
_utils.IntentHolder
;
/**
/**
* Created by SiKang on 2018/9/19.
* Created by SiKang on 2018/9/19.
*/
*/
public
class
LoginManager
{
public
class
LoginManager
{
public
static
final
String
TAG
=
"LoginManager"
;
private
static
LoginManager
loginManager
;
private
static
LoginManager
loginManager
;
private
TokenInfoBean
tokenInfo
;
private
TokenInfoBean
tokenInfo
;
...
@@ -43,12 +48,12 @@ public class LoginManager {
...
@@ -43,12 +48,12 @@ public class LoginManager {
//清除登录状态
//清除登录状态
PreferencesManager
.
get
().
clearLoginInfo
();
PreferencesManager
.
get
().
clearLoginInfo
();
tokenInfo
=
null
;
tokenInfo
=
null
;
try
{
//跳转登录界面
//跳转登录界面
if
(
isActionSupport
(
LibConfig
.
getContext
(),
LibConfig
.
LOGIN_ACTIVITY_ACTION
))
{
new
IntentHolder
.
Builder
(
LibConfig
.
getContext
(),
LibConfig
.
LOGIN_ACTIVITY_ACTION
)
new
IntentHolder
.
Builder
(
LibConfig
.
getContext
(),
LibConfig
.
LOGIN_ACTIVITY_ACTION
)
.
build
().
start
();
.
build
().
start
();
}
catch
(
ActivityNotFoundException
e
)
{
}
else
{
throw
new
RuntimeException
(
"找不到LoginActivity,请在build.gradle中配置正确的 ‘LOGIN_ACTIVITY_ACTION’ "
);
LogUtils
.
e
(
TAG
,
"找不到LoginActivity,请在build.gradle中配置正确的 ‘LOGIN_ACTIVITY_ACTION’ "
);
}
}
}
}
...
@@ -122,4 +127,18 @@ public class LoginManager {
...
@@ -122,4 +127,18 @@ public class LoginManager {
void
onLoginCancelled
();
void
onLoginCancelled
();
}
}
/**
* 是否存在某个可跳转的action
*/
private
boolean
isActionSupport
(
Context
context
,
String
action
)
{
final
PackageManager
packageManager
=
context
.
getPackageManager
();
final
Intent
intent
=
new
Intent
(
action
);
List
<
ResolveInfo
>
resolveInfo
=
packageManager
.
queryIntentActivities
(
intent
,
PackageManager
.
MATCH_DEFAULT_ONLY
);
if
(
resolveInfo
.
size
()
>
0
)
{
return
true
;
}
return
false
;
}
}
}
src/main/java/tech/starwin/utils/MultipartBodyMaker.java
View file @
fcbdd49a
...
@@ -9,7 +9,6 @@ import okhttp3.RequestBody;
...
@@ -9,7 +9,6 @@ import okhttp3.RequestBody;
/**
/**
* Created by SiKang on 2018/9/28.
* Created by SiKang on 2018/9/28.
*
*/
*/
public
class
MultipartBodyMaker
{
public
class
MultipartBodyMaker
{
MultipartBody
.
Builder
builder
;
MultipartBody
.
Builder
builder
;
...
@@ -22,6 +21,12 @@ public class MultipartBodyMaker {
...
@@ -22,6 +21,12 @@ public class MultipartBodyMaker {
return
builder
.
build
().
parts
();
return
builder
.
build
().
parts
();
}
}
public
static
MultipartBody
.
Part
makeSimplePart
(
String
name
,
File
file
)
{
MediaType
mediaType
=
MediaType
.
parse
(
FileUtils
.
getMimeType
(
file
));
RequestBody
requestFile
=
RequestBody
.
create
(
mediaType
,
file
);
return
MultipartBody
.
Part
.
createFormData
(
name
,
file
.
getName
(),
requestFile
);
}
public
static
class
Builder
{
public
static
class
Builder
{
MultipartBody
.
Builder
builder
;
MultipartBody
.
Builder
builder
;
...
...
src/main/java/tech/starwin/utils/
activity
_utils/AvoidOnResultFragment.java
→
src/main/java/tech/starwin/utils/
context
_utils/AvoidOnResultFragment.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
.
activity
_utils
;
package
tech
.
starwin
.
utils
.
context
_utils
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.os.Bundle
;
...
...
src/main/java/tech/starwin/utils/
activity
_utils/EasyActivityResult.java
→
src/main/java/tech/starwin/utils/
context
_utils/EasyActivityResult.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
.
activity
_utils
;
package
tech
.
starwin
.
utils
.
context
_utils
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.FragmentActivity
;
import
android.support.v4.app.FragmentActivity
;
...
@@ -43,6 +44,10 @@ public class EasyActivityResult {
...
@@ -43,6 +44,10 @@ public class EasyActivityResult {
mAvoidOnResultFragment
.
startForResult
(
intent
,
requestCode
,
activityReesult
);
mAvoidOnResultFragment
.
startForResult
(
intent
,
requestCode
,
activityReesult
);
}
}
public
void
startForResult
(
Class
<?
extends
Activity
>
activity
,
int
requestCode
,
OnResultListener
activityReesult
)
{
mAvoidOnResultFragment
.
startForResult
(
new
Intent
(
mAvoidOnResultFragment
.
getContext
(),
activity
),
requestCode
,
activityReesult
);
}
public
interface
OnResultListener
{
public
interface
OnResultListener
{
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
);
void
onActivityResult
(
int
requestCode
,
int
resultCode
,
Intent
data
);
}
}
...
...
src/main/java/tech/starwin/utils/
activity
_utils/FragmentLauncher.java
→
src/main/java/tech/starwin/utils/
context
_utils/FragmentLauncher.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
.
activity
_utils
;
package
tech
.
starwin
.
utils
.
context
_utils
;
import
android.support.annotation.IdRes
;
import
android.support.annotation.IdRes
;
import
android.support.v4.app.Fragment
;
import
android.support.v4.app.Fragment
;
...
...
src/main/java/tech/starwin/utils/
activity
_utils/IntentHolder.java
→
src/main/java/tech/starwin/utils/
context
_utils/IntentHolder.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
.
activity
_utils
;
package
tech
.
starwin
.
utils
.
context
_utils
;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.content.Context
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
@@ -27,6 +28,9 @@ public class IntentHolder {
...
@@ -27,6 +28,9 @@ public class IntentHolder {
* 打开Activity
* 打开Activity
*/
*/
public
void
start
()
{
public
void
start
()
{
if
(
context
==
null
)
{
return
;
}
context
.
startActivity
(
intent
);
context
.
startActivity
(
intent
);
if
(
context
instanceof
Activity
)
{
if
(
context
instanceof
Activity
)
{
((
Activity
)
context
).
overridePendingTransition
(
R
.
anim
.
slide_in_right
,
R
.
anim
.
slide_out_left
);
((
Activity
)
context
).
overridePendingTransition
(
R
.
anim
.
slide_in_right
,
R
.
anim
.
slide_out_left
);
...
@@ -37,6 +41,8 @@ public class IntentHolder {
...
@@ -37,6 +41,8 @@ public class IntentHolder {
* 在新的Task种打开Activity
* 在新的Task种打开Activity
*/
*/
public
void
startWithNewTask
()
{
public
void
startWithNewTask
()
{
if
(
context
==
null
)
return
;
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
context
.
startActivity
(
intent
);
context
.
startActivity
(
intent
);
}
}
...
@@ -49,6 +55,10 @@ public class IntentHolder {
...
@@ -49,6 +55,10 @@ public class IntentHolder {
private
Intent
intent
;
private
Intent
intent
;
private
Context
fromContext
;
private
Context
fromContext
;
public
Builder
()
{
}
public
<
C
extends
Activity
>
Builder
(
Context
from
,
Class
<
C
>
target
)
{
public
<
C
extends
Activity
>
Builder
(
Context
from
,
Class
<
C
>
target
)
{
this
.
fromContext
=
from
;
this
.
fromContext
=
from
;
intent
=
new
Intent
(
fromContext
,
target
);
intent
=
new
Intent
(
fromContext
,
target
);
...
@@ -92,6 +102,14 @@ public class IntentHolder {
...
@@ -92,6 +102,14 @@ public class IntentHolder {
public
IntentHolder
build
()
{
public
IntentHolder
build
()
{
return
new
IntentHolder
(
fromContext
,
intent
);
return
new
IntentHolder
(
fromContext
,
intent
);
}
}
public
Intent
toIntent
()
{
return
intent
;
}
public
Bundle
toBundle
()
{
return
intent
.
getExtras
();
}
}
}
}
}
...
...
src/main/java/tech/starwin/utils/
activity
_utils/PermissionsHelper.java
→
src/main/java/tech/starwin/utils/
context
_utils/PermissionsHelper.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
.
activity
_utils
;
package
tech
.
starwin
.
utils
.
context
_utils
;
import
android.Manifest
;
import
android.Manifest
;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
...
@@ -48,19 +48,29 @@ public class PermissionsHelper {
...
@@ -48,19 +48,29 @@ public class PermissionsHelper {
}
}
@SuppressLint
(
"CheckResult"
)
@SuppressLint
(
"CheckResult"
)
private
static
void
getPermission
(
RxPermissions
rxPermissions
,
String
[]
permissions
,
final
OnPermissionListener
listener
)
{
private
static
void
getPermission
(
RxPermissions
rxPermissions
,
final
String
[]
permissions
,
final
OnPermissionListener
listener
)
{
rxPermissions
rxPermissions
.
requestEach
(
permissions
)
.
requestEach
(
permissions
)
.
subscribe
(
new
Consumer
<
Permission
>()
{
.
subscribe
(
new
Consumer
<
Permission
>()
{
int
index
=
0
;
int
refuseCount
=
0
;
@Override
@Override
public
void
accept
(
Permission
permission
)
throws
Exception
{
public
void
accept
(
Permission
permission
)
throws
Exception
{
if
(
permission
.
granted
)
{
if
(
permission
.
granted
)
{
listener
.
onAllow
(
permission
);
if
(
index
==
permissions
.
length
-
1
&&
refuseCount
==
0
)
{
listener
.
onAllow
(
permission
,
true
);
}
else
{
listener
.
onAllow
(
permission
,
false
);
}
}
else
if
(
permission
.
shouldShowRequestPermissionRationale
)
{
}
else
if
(
permission
.
shouldShowRequestPermissionRationale
)
{
refuseCount
++;
listener
.
onRefuse
(
permission
);
listener
.
onRefuse
(
permission
);
}
else
{
}
else
{
refuseCount
++;
listener
.
onRefuseAndNeverAskAgain
(
permission
);
listener
.
onRefuseAndNeverAskAgain
(
permission
);
}
}
index
++;
}
}
});
});
}
}
...
@@ -122,7 +132,7 @@ public class PermissionsHelper {
...
@@ -122,7 +132,7 @@ public class PermissionsHelper {
/**
/**
* 允许权限
* 允许权限
*/
*/
void
onAllow
(
Permission
permission
);
void
onAllow
(
Permission
permission
,
boolean
allAllowed
);
/**
/**
* 拒绝权限,下次再问
* 拒绝权限,下次再问
...
...
src/main/java/tech/starwin/utils/ui_utils/DialogFactory.java
View file @
fcbdd49a
...
@@ -10,6 +10,7 @@ import android.content.DialogInterface;
...
@@ -10,6 +10,7 @@ import android.content.DialogInterface;
import
android.os.Build
;
import
android.os.Build
;
import
android.text.InputType
;
import
android.text.InputType
;
import
android.widget.EditText
;
import
android.widget.EditText
;
import
android.widget.Toast
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialog
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialog
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialogAction
;
...
@@ -29,7 +30,7 @@ import io.reactivex.functions.Consumer;
...
@@ -29,7 +30,7 @@ import io.reactivex.functions.Consumer;
public
class
DialogFactory
{
public
class
DialogFactory
{
/**
/**
* 创建
提示类消息弹窗
* 创建
一个半透明背景带有Icon的Dialog (Loading、Error等)
*/
*/
public
static
Dialog
createTipDialog
(
Context
context
,
@QMUITipDialog
.
Builder
.
IconType
int
mode
,
String
tipWord
)
{
public
static
Dialog
createTipDialog
(
Context
context
,
@QMUITipDialog
.
Builder
.
IconType
int
mode
,
String
tipWord
)
{
return
new
QMUITipDialog
.
Builder
(
context
)
return
new
QMUITipDialog
.
Builder
(
context
)
...
@@ -39,19 +40,40 @@ public class DialogFactory {
...
@@ -39,19 +40,40 @@ public class DialogFactory {
}
}
/**
/**
* 创建
提示类
对话框
* 创建
一个带有文本提示的
对话框
*/
*/
public
static
Dialog
createMessageDialog
(
Context
context
,
String
message
,
String
btnText
,
QMUIDialogAction
.
ActionListener
listener
)
{
public
static
Dialog
createMessageDialog
(
Context
context
,
String
title
,
String
message
,
String
btnText
)
{
return
new
QMUIDialog
.
MessageDialogBuilder
(
context
)
return
new
QMUIDialog
.
MessageDialogBuilder
(
context
)
.
setTitle
(
"Tip"
)
.
setTitle
(
title
)
.
setMessage
(
message
)
.
setMessage
(
message
)
.
addAction
(
"cancel"
,
new
QMUIDialogAction
.
ActionListener
()
{
.
addAction
(
btnText
,
new
QMUIDialogAction
.
ActionListener
()
{
@Override
@Override
public
void
onClick
(
QMUIDialog
dialog
,
int
index
)
{
public
void
onClick
(
QMUIDialog
dialog
,
int
index
)
{
dialog
.
dismiss
();
dialog
.
dismiss
();
}
}
})
})
.
addAction
(
btnText
,
listener
)
.
create
();
}
/**
* 创建一个带有文本提示和两个含义相对按钮的对话框
*/
public
static
Dialog
createYesOrNoDialog
(
Context
context
,
String
title
,
String
msg
,
String
yesBtnText
,
String
noBtnText
,
final
OnYesOrNoListener
onYesOrNoListener
)
{
return
new
QMUIDialog
.
MessageDialogBuilder
(
context
)
.
setTitle
(
title
)
.
setMessage
(
msg
)
.
addAction
(
0
,
noBtnText
,
QMUIDialogAction
.
ACTION_PROP_NEGATIVE
,
new
QMUIDialogAction
.
ActionListener
()
{
@Override
public
void
onClick
(
QMUIDialog
dialog
,
int
index
)
{
onYesOrNoListener
.
onClick
(
dialog
,
false
);
}
})
.
addAction
(
yesBtnText
,
new
QMUIDialogAction
.
ActionListener
()
{
@Override
public
void
onClick
(
QMUIDialog
dialog
,
int
index
)
{
onYesOrNoListener
.
onClick
(
dialog
,
true
);
}
})
.
create
();
.
create
();
}
}
...
@@ -151,6 +173,10 @@ public class DialogFactory {
...
@@ -151,6 +173,10 @@ public class DialogFactory {
void
onClick
(
QMUIDialog
dialog
,
int
[]
checkedItemIndexes
);
void
onClick
(
QMUIDialog
dialog
,
int
[]
checkedItemIndexes
);
}
}
public
interface
OnYesOrNoListener
{
void
onClick
(
Dialog
dialog
,
boolean
choice
);
}
public
static
void
dismiss
(
Dialog
dialog
)
{
public
static
void
dismiss
(
Dialog
dialog
)
{
if
(
dialog
!=
null
)
{
if
(
dialog
!=
null
)
{
Context
context
=
((
ContextWrapper
)
dialog
.
getContext
()).
getBaseContext
();
Context
context
=
((
ContextWrapper
)
dialog
.
getContext
()).
getBaseContext
();
...
...
src/main/java/tech/starwin/utils/ui_utils/UIHelper.java
View file @
fcbdd49a
...
@@ -45,10 +45,12 @@ public class UIHelper {
...
@@ -45,10 +45,12 @@ public class UIHelper {
* 为View添加ClickListener
* 为View添加ClickListener
*/
*/
public
static
<
T
extends
View
.
OnClickListener
>
void
bindClickListener
(
T
listener
,
View
...
views
)
{
public
static
<
T
extends
View
.
OnClickListener
>
void
bindClickListener
(
T
listener
,
View
...
views
)
{
if
(
views
.
length
==
0
||
listener
==
null
)
if
(
views
.
length
==
0
||
listener
==
null
)
{
return
;
return
;
for
(
View
view
:
views
)
}
for
(
View
view
:
views
)
{
view
.
setOnClickListener
(
listener
);
view
.
setOnClickListener
(
listener
);
}
}
}
/**
/**
...
@@ -180,7 +182,7 @@ public class UIHelper {
...
@@ -180,7 +182,7 @@ public class UIHelper {
/**
/**
* 创建一个(icon + text)类型的Tab按钮
* 创建一个(icon + text)类型的Tab按钮
*/
*/
public
static
QMUITabSegment
.
Tab
createTab
(
Context
context
,
@DrawableRes
int
normalIcon
,
@DrawableRes
int
selectIcon
,
String
text
)
{
public
static
QMUITabSegment
.
Tab
createTab
(
Context
context
,
@DrawableRes
int
normalIcon
,
@DrawableRes
int
selectIcon
,
String
text
)
{
return
new
QMUITabSegment
.
Tab
(
return
new
QMUITabSegment
.
Tab
(
ContextCompat
.
getDrawable
(
context
,
normalIcon
),
ContextCompat
.
getDrawable
(
context
,
normalIcon
),
ContextCompat
.
getDrawable
(
context
,
selectIcon
),
ContextCompat
.
getDrawable
(
context
,
selectIcon
),
...
@@ -191,7 +193,7 @@ public class UIHelper {
...
@@ -191,7 +193,7 @@ public class UIHelper {
/**
/**
* 创建一个(icon + text)类型的Tab按钮,并按指定尺寸显示icon
* 创建一个(icon + text)类型的Tab按钮,并按指定尺寸显示icon
*/
*/
public
static
QMUITabSegment
.
Tab
createTab
(
Context
context
,
int
iconWidtn
,
int
iconHeight
,
@DrawableRes
int
normalIcon
,
@DrawableRes
int
selectIcon
,
String
text
)
{
public
static
QMUITabSegment
.
Tab
createTab
(
Context
context
,
int
iconWidtn
,
int
iconHeight
,
@DrawableRes
int
normalIcon
,
@DrawableRes
int
selectIcon
,
String
text
)
{
Bitmap
normalBitmap
=
BitmapFactory
.
decodeResource
(
context
.
getResources
(),
Bitmap
normalBitmap
=
BitmapFactory
.
decodeResource
(
context
.
getResources
(),
normalIcon
);
normalIcon
);
Bitmap
selectBitmap
=
BitmapFactory
.
decodeResource
(
context
.
getResources
(),
Bitmap
selectBitmap
=
BitmapFactory
.
decodeResource
(
context
.
getResources
(),
...
@@ -258,4 +260,5 @@ public class UIHelper {
...
@@ -258,4 +260,5 @@ public class UIHelper {
.
subscribe
();
.
subscribe
();
}
}
}
}
src/main/java/tech/starwin/
utils/ui_utils
/LoadDialog.java
→
src/main/java/tech/starwin/
widget
/LoadDialog.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
.
ui_utils
;
package
tech
.
starwin
.
widget
;
import
android.animation.ObjectAnimator
;
import
android.animation.ObjectAnimator
;
import
android.app.Dialog
;
import
android.app.Dialog
;
...
@@ -9,6 +9,7 @@ import android.view.View;
...
@@ -9,6 +9,7 @@ import android.view.View;
import
android.view.animation.Animation
;
import
android.view.animation.Animation
;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
tech.starwin.LibConfig
;
import
tech.starwin.R
;
import
tech.starwin.R
;
/**
/**
...
@@ -22,9 +23,10 @@ public class LoadDialog extends Dialog {
...
@@ -22,9 +23,10 @@ public class LoadDialog extends Dialog {
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
base_progress_loading
,
null
,
false
);
View
view
=
LayoutInflater
.
from
(
context
).
inflate
(
R
.
layout
.
base_progress_loading
,
null
,
false
);
setContentView
(
view
);
setContentView
(
view
);
setCanceledOnTouchOutside
(
false
);
setCanceledOnTouchOutside
(
false
);
// TODO 动态配置loadingIcon
ImageView
rotationView
=
view
.
findViewById
(
R
.
id
.
progress_dialog_loadingImv
);
ImageView
rotationView
=
view
.
findViewById
(
R
.
id
.
progress_dialog_loadingImv
);
ImageView
iconView
=
view
.
findViewById
(
R
.
id
.
progress_dialog_iconImv
);
ImageView
iconView
=
view
.
findViewById
(
R
.
id
.
progress_dialog_iconImv
);
rotationView
.
setImageResource
(
LibConfig
.
LOADING_BACKGROUND
);
iconView
.
setImageResource
(
LibConfig
.
LOADING_ICON
);
//初始化动画
//初始化动画
mLoadAnimation
=
ObjectAnimator
.
ofFloat
(
rotationView
,
"rotation"
,
0
,
360
);
mLoadAnimation
=
ObjectAnimator
.
ofFloat
(
rotationView
,
"rotation"
,
0
,
360
);
mLoadAnimation
.
setDuration
(
1000
);
mLoadAnimation
.
setDuration
(
1000
);
...
...
src/main/java/tech/starwin/
utils/ui_utils/ProgressHolder
.java
→
src/main/java/tech/starwin/
widget/ProgressDialog
.java
View file @
fcbdd49a
package
tech
.
starwin
.
utils
.
ui_utils
;
package
tech
.
starwin
.
widget
;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
import
android.app.Dialog
;
import
android.app.Dialog
;
...
@@ -7,21 +7,24 @@ import android.support.annotation.NonNull;
...
@@ -7,21 +7,24 @@ import android.support.annotation.NonNull;
import
com.qmuiteam.qmui.widget.dialog.QMUITipDialog
;
import
com.qmuiteam.qmui.widget.dialog.QMUITipDialog
;
import
tech.starwin.utils.ui_utils.DialogFactory
;
import
tech.starwin.widget.LoadDialog
;
/**
/**
* Created by SiKang on 2018/9/19.
* Created by SiKang on 2018/9/19.
*/
*/
public
class
Progress
Holder
{
public
class
Progress
Dialog
{
//loading dialog
//loading dialog
private
Dialog
loadingDialog
;
private
Dialog
loadingDialog
;
private
Context
context
;
private
Context
context
;
public
Progress
Holder
(
@NonNull
Context
context
)
{
public
Progress
Dialog
(
@NonNull
Context
context
)
{
this
.
context
=
context
;
this
.
context
=
context
;
this
.
loadingDialog
=
new
LoadDialog
(
context
);
this
.
loadingDialog
=
new
LoadDialog
(
context
);
}
}
public
Progress
Holder
(
@NonNull
Dialog
loadingDialog
)
{
public
Progress
Dialog
(
@NonNull
Dialog
loadingDialog
)
{
this
.
context
=
loadingDialog
.
getContext
();
this
.
context
=
loadingDialog
.
getContext
();
this
.
loadingDialog
=
loadingDialog
;
this
.
loadingDialog
=
loadingDialog
;
}
}
...
...
src/main/res/layout/base_progress_loading.xml
View file @
fcbdd49a
...
@@ -8,13 +8,11 @@
...
@@ -8,13 +8,11 @@
android:id=
"@+id/progress_dialog_loadingImv"
android:id=
"@+id/progress_dialog_loadingImv"
android:layout_width=
"@dimen/x_300"
android:layout_width=
"@dimen/x_300"
android:layout_height=
"@dimen/x_300"
android:layout_height=
"@dimen/x_300"
android:layout_centerInParent=
"true"
android:layout_centerInParent=
"true"
/>
android:src=
"@mipmap/ic_launcher"
/>
<ImageView
<ImageView
android:id=
"@+id/progress_dialog_iconImv"
android:id=
"@+id/progress_dialog_iconImv"
android:layout_width=
"@dimen/x_150"
android:layout_width=
"@dimen/x_150"
android:layout_height=
"@dimen/x_150"
android:layout_height=
"@dimen/x_150"
android:layout_centerInParent=
"true"
android:layout_centerInParent=
"true"
/>
android:src=
"@mipmap/ic_launcher"
/>
</RelativeLayout>
</RelativeLayout>
src/main/res/values/strings.xml
View file @
fcbdd49a
...
@@ -5,6 +5,7 @@
...
@@ -5,6 +5,7 @@
<string
name=
"null_response"
>
NO Data
</string>
<string
name=
"null_response"
>
NO Data
</string>
<string
name=
"moneySymbol"
>
Rp.
</string>
<string
name=
"moneySymbol"
>
Rp.
</string>
<string
name=
"loading_loading"
>
loading....
</string>
<string
name=
"loading_loading"
>
loading....
</string>
<string
name=
"years"
>
tahun
</string>
<string
name=
"years"
>
tahun
</string>
<string
name=
"months"
>
bulan
</string>
<string
name=
"months"
>
bulan
</string>
...
...
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