Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
supplier
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
王宇航
supplier
Commits
4a3165d6
Commit
4a3165d6
authored
Mar 12, 2020
by
Wyh
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
3-12 自動登陸判斷移到啟動頁
parent
7d64d603
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
378 additions
and
149 deletions
+378
-149
main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
+7
-6
public-base/src/main/java/com/gingersoft/gsa/cloud/ui/widget/dialog/ChooseRestaurantDialog.java
+16
-6
user-login/src/main/AndroidManifest.xml
+1
-1
user-login/src/main/debug/AndroidManifest.xml
+1
-1
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/BaseLoginContract.java
+39
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/LoginContract.java
+9
-20
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/LoginInterfaceImpl.java
+131
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/WelcomeContract.java
+2
-6
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/model/LoginModel.java
+2
-13
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/model/WelcomeModel.java
+13
-3
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/BaseLoginPresenter.java
+81
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/LoginPresenter.java
+32
-88
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/WelcomePresenter.java
+1
-2
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/ui/activity/LoginActivity.java
+0
-0
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/ui/activity/WelcomeActivity.java
+43
-3
No files found.
main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
View file @
4a3165d6
...
@@ -9,6 +9,13 @@ import android.view.KeyEvent;
...
@@ -9,6 +9,13 @@ import android.view.KeyEvent;
import
android.view.View
;
import
android.view.View
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.FragmentManager
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.billy.cc.core.component.CC
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
...
@@ -36,12 +43,6 @@ import com.tbruyelle.rxpermissions2.RxPermissions;
...
@@ -36,12 +43,6 @@ import com.tbruyelle.rxpermissions2.RxPermissions;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.FragmentManager
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
butterknife.BindView
;
import
butterknife.BindView
;
import
butterknife.BindViews
;
import
butterknife.BindViews
;
import
butterknife.OnClick
;
import
butterknife.OnClick
;
...
...
public-base/src/main/java/com/gingersoft/gsa/cloud/ui/widget/dialog/ChooseRestaurantDialog.java
View file @
4a3165d6
...
@@ -16,6 +16,12 @@ import android.view.animation.DecelerateInterpolator;
...
@@ -16,6 +16,12 @@ import android.view.animation.DecelerateInterpolator;
import
android.view.animation.TranslateAnimation
;
import
android.view.animation.TranslateAnimation
;
import
android.widget.FrameLayout
;
import
android.widget.FrameLayout
;
import
android.widget.LinearLayout
;
import
android.widget.LinearLayout
;
import
androidx.annotation.NonNull
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.base.R
;
import
com.gingersoft.gsa.cloud.base.R
;
import
com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter
;
import
com.gingersoft.gsa.cloud.ui.adapter.BasTextSectiontAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
...
@@ -34,11 +40,6 @@ import java.util.ArrayList;
...
@@ -34,11 +40,6 @@ import java.util.ArrayList;
import
java.util.List
;
import
java.util.List
;
import
java.util.Objects
;
import
java.util.Objects
;
import
androidx.annotation.NonNull
;
import
androidx.core.content.ContextCompat
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
/**
/**
* 作者:ELEGANT_BIN
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 版本:1.6.0
...
@@ -236,12 +237,15 @@ public class ChooseRestaurantDialog extends Dialog {
...
@@ -236,12 +237,15 @@ public class ChooseRestaurantDialog extends Dialog {
}
}
public
ChooseRestaurantDialog
build
()
{
public
ChooseRestaurantDialog
build
()
{
if
(
mDialog
!=
null
)
{
if
(
mDialog
!=
null
)
{
return
mDialog
;
return
mDialog
;
}
}
mDialog
=
new
ChooseRestaurantDialog
(
mContext
);
mDialog
=
new
ChooseRestaurantDialog
(
mContext
);
View
contentView
=
buildViews
();
View
contentView
=
buildViews
();
mDialog
.
setContentView
(
contentView
,
new
LinearLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
QMUIDisplayHelper
.
getScreenHeight
(
mContext
)));
mDialog
.
setContentView
(
contentView
,
new
LinearLayout
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
QMUIDisplayHelper
.
getScreenHeight
(
mContext
)));
if
(
mDismissListener
!=
null
){
mDialog
.
setOnDismissListener
(
mDismissListener
);
}
AndroidWorkaround
.
assistActivity
(
contentView
);
AndroidWorkaround
.
assistActivity
(
contentView
);
return
mDialog
;
return
mDialog
;
}
}
...
@@ -345,12 +349,18 @@ public class ChooseRestaurantDialog extends Dialog {
...
@@ -345,12 +349,18 @@ public class ChooseRestaurantDialog extends Dialog {
}
}
private
OnItemClickListener
mOnItemClickListener
;
private
OnItemClickListener
mOnItemClickListener
;
private
OnDismissListener
mDismissListener
;
public
BottomListSheetBuilder
setOnItemClickListener
(
OnItemClickListener
onItemClickListener
)
{
public
BottomListSheetBuilder
setOnItemClickListener
(
OnItemClickListener
onItemClickListener
)
{
mOnItemClickListener
=
onItemClickListener
;
mOnItemClickListener
=
onItemClickListener
;
return
this
;
return
this
;
}
}
public
BottomListSheetBuilder
setOnDismissListener
(
OnDismissListener
mDismissListener
)
{
this
.
mDismissListener
=
mDismissListener
;
return
this
;
}
public
interface
OnItemClickListener
{
public
interface
OnItemClickListener
{
void
onItemClick
(
ChooseRestaurantDialog
dialog
,
SectionTextItem
item
,
int
position
);
void
onItemClick
(
ChooseRestaurantDialog
dialog
,
SectionTextItem
item
,
int
position
);
...
...
user-login/src/main/AndroidManifest.xml
View file @
4a3165d6
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
<application
<application
android:name=
"com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:name=
"com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup=
"true"
android:allowBackup=
"true"
android:icon=
"@mipmap/ic_l
auncher
"
android:icon=
"@mipmap/ic_l
ogo
"
android:label=
"@string/user_login_name"
android:label=
"@string/user_login_name"
android:networkSecurityConfig=
"@xml/network_android"
android:networkSecurityConfig=
"@xml/network_android"
android:roundIcon=
"@mipmap/ic_logo"
android:roundIcon=
"@mipmap/ic_logo"
...
...
user-login/src/main/debug/AndroidManifest.xml
View file @
4a3165d6
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
<application
<application
android:name=
"com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:name=
"com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup=
"true"
android:allowBackup=
"true"
android:icon=
"@mipmap/ic_l
auncher
"
android:icon=
"@mipmap/ic_l
ogo
"
android:label=
"@string/user_login_name"
android:label=
"@string/user_login_name"
android:roundIcon=
"@mipmap/ic_launcher_round"
android:roundIcon=
"@mipmap/ic_launcher_round"
android:supportsRtl=
"true"
android:supportsRtl=
"true"
...
...
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/BaseLoginContract.java
0 → 100644
View file @
4a3165d6
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
contract
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.mvp.IView
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 12/21/2019 16:23
* <a href="mailto:jess.yan.effort@gmail.com">Contact me</a>
* <a href="https://github.com/JessYanCoding">Follow me</a>
* <a href="https://github.com/JessYanCoding/MVPArms">Star me</a>
* <a href="https://github.com/JessYanCoding/MVPArms/wiki">See me</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
*/
public
interface
BaseLoginContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
void
loginSuccess
(
LoginBean
info
);
void
startToSwitchServer
();
void
showChooseRestaurantDialog
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBean
,
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
);
}
}
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/LoginContract.java
View file @
4a3165d6
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
contract
;
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
contract
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.mvp.IView
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
/**
/**
* ================================================
* ================================================
* Description:
* Description:
...
@@ -21,21 +12,19 @@ import okhttp3.RequestBody;
...
@@ -21,21 +12,19 @@ import okhttp3.RequestBody;
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* <a href="https://github.com/JessYanCoding/MVPArmsTemplate">模版请保持更新</a>
* ================================================
* ================================================
*/
*/
public
interface
LoginContract
{
public
interface
LoginContract
extends
BaseLoginContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
interface
View
extends
BaseLoginContract
.
View
{
void
loginSuccess
(
LoginBean
info
);
// void loginSuccess(LoginBean info);
//
void
loginOut
();
// void startToSwitchServer();
void
startToSwitchServer
();
}
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
I
Model
{
interface
Model
extends
BaseLoginContract
.
Model
{
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
);
//
Observable<LoginBean> login(RequestBody requestBody);
//
Observable
<
Object
>
loginOut
(
RequestBody
requestBody
);
//
Observable<Object> loginOut( RequestBody requestBody);
}
}
}
}
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/LoginInterfaceImpl.java
0 → 100644
View file @
4a3165d6
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
contract
;
import
android.content.Intent
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
import
com.gingersoft.gsa.cloud.user.login.mvp.presenter.BaseLoginPresenter
;
import
com.gingersoft.gsa.cloud.user.login.mvp.ui.activity.SwitchServerActivity
;
import
com.jess.arms.base.BaseActivity
;
import
java.util.ArrayList
;
import
java.util.List
;
public
abstract
class
LoginInterfaceImpl
<
P
extends
BaseLoginPresenter
>
extends
BaseActivity
<
P
>
implements
BaseLoginContract
.
View
{
@Override
public
void
loginSuccess
(
LoginBean
info
)
{
saveLoginInfo
(
info
);
}
@Override
public
void
startToSwitchServer
()
{
startActivity
(
new
Intent
(
mContext
,
SwitchServerActivity
.
class
));
}
private
void
saveLoginInfo
(
LoginBean
loginBean
)
{
GsaCloudApplication
.
setBrandRestaurantInfos
(
mContext
,
""
);
if
(
loginBean
.
getData
()
!=
null
)
{
GsaCloudApplication
.
setLoginToken
(
mContext
,
loginBean
.
getData
().
getToken
());
if
(
loginBean
.
getData
().
getUser
()
!=
null
)
{
GsaCloudApplication
.
setMemberId
(
mContext
,
loginBean
.
getData
().
getUser
().
getUserId
());
GsaCloudApplication
.
setMemberName
(
mContext
,
loginBean
.
getData
().
getUser
().
getUserName
());
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
=
loginBean
.
getData
().
getUser
().
getBrands
();
if
(
brands
!=
null
)
{
String
brandRestaurantInfos
=
JsonUtils
.
toJson
(
brands
);
GsaCloudApplication
.
setBrandRestaurantInfos
(
mContext
,
brandRestaurantInfos
);
}
int
restaurantSize
=
0
;
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBeans
=
new
ArrayList
<>();
if
(
loginBean
.
getData
().
getUser
().
getBrands
()
!=
null
)
{
restaurantSize
=
getRestaurantSize
(
loginBean
.
getData
().
getUser
().
getBrands
());
brandsBeans
.
addAll
(
loginBean
.
getData
().
getUser
().
getBrands
());
}
if
(
restaurantSize
==
1
)
{
//只有一個品牌是直接進下載頁面
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
brandsBean
=
getOnlyBrand
(
loginBean
.
getData
().
getUser
().
getBrands
());
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
.
RestaurantsBean
restaurantsBean
=
getOnlyRestaurant
(
loginBean
.
getData
().
getUser
().
getBrands
());
if
(
brandsBean
!=
null
)
{
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
restaurantsBean
.
getRestaurantId
(),
restaurantsBean
.
getRestaurantName
());
}
jumpDownloadActivity
();
}
else
{
showChooseRestaurantDialog
(
brandsBeans
,
brands
);
}
}
}
}
protected
void
ChooseRestaurantItemClick
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
,
ChooseRestaurantDialog
dialog
,
SectionTextItem
item
)
{
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
brandsBean
=
getBrandByRestaurantId
(
brands
,
item
.
getId
());
if
(
brandsBean
!=
null
)
{
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
item
.
getId
(),
item
.
getText
());
}
dialog
.
dismiss
();
jumpDownloadActivity
();
}
protected
void
saveBrandAndRestaurantInfo
(
int
brandId
,
String
brandName
,
int
restaurantId
,
String
restaurantName
)
{
GsaCloudApplication
.
setBrandId
(
mContext
,
brandId
);
GsaCloudApplication
.
setBrandName
(
mContext
,
brandName
);
GsaCloudApplication
.
setRestaurantId
(
mContext
,
restaurantId
);
GsaCloudApplication
.
setRestaurantName
(
mContext
,
restaurantName
);
}
private
int
getRestaurantSize
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
int
size
=
0
;
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
size
+=
brands
.
get
(
i
).
getRestaurants
().
size
();
}
return
size
;
}
private
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
getOnlyBrand
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
return
brands
.
get
(
i
);
}
}
}
return
null
;
}
private
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
.
RestaurantsBean
getOnlyRestaurant
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
return
brands
.
get
(
i
).
getRestaurants
().
get
(
j
);
}
}
}
return
null
;
}
private
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
getBrandByRestaurantId
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
,
int
restaurantId
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
().
get
(
j
).
getRestaurantId
()
==
restaurantId
)
{
return
brands
.
get
(
i
);
}
}
}
}
return
null
;
}
private
void
jumpDownloadActivity
()
{
CC
.
obtainBuilder
(
"Component.Download"
)
.
setActionName
(
"showDownloadActivity"
)
.
build
()
.
call
();
killMyself
();
}
}
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/contract/WelcomeContract.java
View file @
4a3165d6
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
contract
;
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
contract
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
public
interface
WelcomeContract
{
public
interface
WelcomeContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
I
View
{
interface
View
extends
BaseLoginContract
.
View
{
}
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
I
Model
{
interface
Model
extends
BaseLoginContract
.
Model
{
}
}
}
}
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/model/LoginModel.java
View file @
4a3165d6
...
@@ -2,20 +2,17 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model;
...
@@ -2,20 +2,17 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model;
import
android.app.Application
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract
;
import
com.gingersoft.gsa.cloud.user.login.mvp.server.LoginService
;
import
com.gingersoft.gsa.cloud.user.login.mvp.server.LoginService
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.di.scope.ActivityScope
;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract
;
import
io.reactivex.Observable
;
import
io.reactivex.Observable
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
okhttp3.RequestBody
;
import
okhttp3.RequestBody
;
...
@@ -56,11 +53,4 @@ public class LoginModel extends BaseModel implements LoginContract.Model{
...
@@ -56,11 +53,4 @@ public class LoginModel extends BaseModel implements LoginContract.Model{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
login
(
requestBody
);
.
login
(
requestBody
);
}
}
@Override
public
Observable
<
Object
>
loginOut
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
loginOut
(
requestBody
);
}
}
}
\ No newline at end of file
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/model/WelcomeModel.java
View file @
4a3165d6
...
@@ -2,15 +2,18 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model;
...
@@ -2,15 +2,18 @@ package com.gingersoft.gsa.cloud.user.login.mvp.model;
import
android.app.Application
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract
;
import
com.gingersoft.gsa.cloud.user.login.mvp.server.LoginService
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.di.scope.ActivityScope
;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
@ActivityScope
@ActivityScope
...
@@ -31,4 +34,10 @@ public class WelcomeModel extends BaseModel implements WelcomeContract.Model {
...
@@ -31,4 +34,10 @@ public class WelcomeModel extends BaseModel implements WelcomeContract.Model {
this
.
mGson
=
null
;
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
this
.
mApplication
=
null
;
}
}
@Override
public
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
login
(
requestBody
);
}
}
}
\ No newline at end of file
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/BaseLoginPresenter.java
0 → 100644
View file @
4a3165d6
package
com
.
gingersoft
.
gsa
.
cloud
.
user
.
login
.
mvp
.
presenter
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.BaseLoginContract
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
javax.inject.Inject
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
okhttp3.FormBody
;
import
okhttp3.RequestBody
;
@ActivityScope
public
class
BaseLoginPresenter
<
M
extends
BaseLoginContract
.
Model
,
V
extends
BaseLoginContract
.
View
>
extends
BasePresenter
<
BaseLoginContract
.
Model
,
BaseLoginContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
@Inject
public
BaseLoginPresenter
(
BaseLoginContract
.
Model
model
,
BaseLoginContract
.
View
rootView
)
{
super
(
model
,
rootView
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mErrorHandler
=
null
;
this
.
mAppManager
=
null
;
this
.
mImageLoader
=
null
;
this
.
mApplication
=
null
;
}
public
void
login
(
String
account
,
String
pwd
)
{
if
(
account
.
equals
(
"88888888"
)
&&
pwd
.
equals
(
"cc81081168"
))
{
mRootView
.
startToSwitchServer
();
return
;
}
RequestBody
requestBody
;
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"userName"
,
account
.
trim
()
+
""
)
.
add
(
"passWord"
,
pwd
.
trim
()
+
""
)
.
build
();
mModel
.
login
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
"登錄中..."
))
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
LoginBean
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
@NonNull
LoginBean
info
)
{
if
(
info
.
isSuccess
())
{
GsaCloudApplication
.
isLogin
=
true
;
GsaCloudApplication
.
userName
=
info
.
getData
().
getUser
().
getUserName
();
mRootView
.
showMessage
(
"登陸成功"
);
mRootView
.
loginSuccess
(
info
);
}
else
{
GsaCloudApplication
.
isLogin
=
false
;
mRootView
.
showMessage
(
info
.
getErrMsg
());
}
}
});
}
}
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/LoginPresenter.java
View file @
4a3165d6
...
@@ -2,30 +2,14 @@ package com.gingersoft.gsa.cloud.user.login.mvp.presenter;
...
@@ -2,30 +2,14 @@ package com.gingersoft.gsa.cloud.user.login.mvp.presenter;
import
android.app.Application
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.LanguageUtils
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.user.login.R
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginContract
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.PermissionUtil
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
okhttp3.FormBody
;
import
okhttp3.RequestBody
;
/**
/**
...
@@ -41,7 +25,7 @@ import okhttp3.RequestBody;
...
@@ -41,7 +25,7 @@ import okhttp3.RequestBody;
* ================================================
* ================================================
*/
*/
@ActivityScope
@ActivityScope
public
class
LoginPresenter
extends
BasePresenter
<
LoginContract
.
Model
,
LoginContract
.
View
>
{
public
class
LoginPresenter
extends
Base
Login
Presenter
<
LoginContract
.
Model
,
LoginContract
.
View
>
{
@Inject
@Inject
RxErrorHandler
mErrorHandler
;
RxErrorHandler
mErrorHandler
;
@Inject
@Inject
...
@@ -51,7 +35,6 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
...
@@ -51,7 +35,6 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
@Inject
@Inject
AppManager
mAppManager
;
AppManager
mAppManager
;
@Inject
@Inject
public
LoginPresenter
(
LoginContract
.
Model
model
,
LoginContract
.
View
rootView
)
{
public
LoginPresenter
(
LoginContract
.
Model
model
,
LoginContract
.
View
rootView
)
{
super
(
model
,
rootView
);
super
(
model
,
rootView
);
...
@@ -66,76 +49,37 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
...
@@ -66,76 +49,37 @@ public class LoginPresenter extends BasePresenter<LoginContract.Model, LoginCont
this
.
mApplication
=
null
;
this
.
mApplication
=
null
;
}
}
// public void login(String account, String pwd) {
public
void
login
(
String
account
,
String
pwd
)
{
// if (account.equals("88888888") && pwd.equals("cc81081168")) {
if
(
account
.
equals
(
"88888888"
)
&&
pwd
.
equals
(
"cc81081168"
)){
// mRootView.startToSwitchServer();
mRootView
.
startToSwitchServer
();
// return;
return
;
// }
}
// RequestBody requestBody;
RequestBody
requestBody
;
if
(
account
.
equals
(
""
))
{
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"userName"
,
"1"
)
.
add
(
"passWord"
,
"123456"
)
.
build
();
// requestBody = new FormBody.Builder()
// requestBody = new FormBody.Builder()
//
.add("userName", "19901001
")
//
.add("userName", account.trim() + "
")
//
.add("passWord", "123456
")
//
.add("passWord", pwd.trim() + "
")
// .build();
// .build();
}
else
{
// mModel.login(requestBody)
requestBody
=
new
FormBody
.
Builder
()
// .subscribeOn(Schedulers.io())
.
add
(
"userName"
,
account
.
trim
()
+
""
)
// .doOnSubscribe(disposable -> mRootView.showLoading("登錄中..."))
.
add
(
"passWord"
,
pwd
.
trim
()
+
""
)
// .subscribeOn(AndroidSchedulers.mainThread())
.
build
();
// .observeOn(AndroidSchedulers.mainThread())
}
// .doAfterTerminate(() -> mRootView.hideLoading())
// .compose(RxLifecycleUtils.bindToLifecycle(mRootView))
mModel
.
login
(
requestBody
)
// .subscribe(new ErrorHandleSubscriber<LoginBean>(mErrorHandler) {
.
subscribeOn
(
Schedulers
.
io
())
//
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
"登錄中..."
))
// @Override
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
// public void onNext(@NonNull LoginBean info) {
.
observeOn
(
AndroidSchedulers
.
mainThread
())
// if (info.isSuccess()) {
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
// GsaCloudApplication.isLogin = true;
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
// GsaCloudApplication.userName = info.getData().getUser().getUserName();
.
subscribe
(
new
ErrorHandleSubscriber
<
LoginBean
>(
mErrorHandler
)
{
// mRootView.showMessage("登陸成功");
// mRootView.loginSuccess(info);
@Override
// } else {
public
void
onNext
(
@NonNull
LoginBean
info
)
{
// GsaCloudApplication.isLogin = false;
if
(
info
!=
null
&&
info
.
isSuccess
())
{
// mRootView.showMessage(info.getErrMsg());
GsaCloudApplication
.
isLogin
=
true
;
// }
GsaCloudApplication
.
userName
=
info
.
getData
().
getUser
().
getUserName
();
// }
mRootView
.
showMessage
(
"登陸成功"
);
// });
mRootView
.
loginSuccess
(
info
);
// }
}
else
{
GsaCloudApplication
.
isLogin
=
false
;
mRootView
.
showMessage
(
info
.
getErrMsg
());
}
}
});
}
public
void
loginOut
()
{
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"userName"
,
""
)
.
add
(
"passWord"
,
""
)
.
build
();
mModel
.
loginOut
(
requestBody
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
null
))
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
Object
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
@NonNull
Object
info
)
{
GsaCloudApplication
.
isLogin
=
false
;
mRootView
.
loginOut
();
}
});
}
}
}
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/presenter/WelcomePresenter.java
View file @
4a3165d6
...
@@ -6,7 +6,6 @@ import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract;
...
@@ -6,7 +6,6 @@ import com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.mvp.BasePresenter
;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
...
@@ -14,7 +13,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
...
@@ -14,7 +13,7 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
@ActivityScope
@ActivityScope
public
class
WelcomePresenter
extends
BasePresenter
<
WelcomeContract
.
Model
,
WelcomeContract
.
View
>
{
public
class
WelcomePresenter
extends
Base
Login
Presenter
<
WelcomeContract
.
Model
,
WelcomeContract
.
View
>
{
@Inject
@Inject
RxErrorHandler
mErrorHandler
;
RxErrorHandler
mErrorHandler
;
@Inject
@Inject
...
...
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/ui/activity/LoginActivity.java
View file @
4a3165d6
This diff is collapsed.
Click to expand it.
user-login/src/main/java/com/gingersoft/gsa/cloud/user/login/mvp/ui/activity/WelcomeActivity.java
View file @
4a3165d6
...
@@ -9,23 +9,31 @@ import androidx.annotation.NonNull;
...
@@ -9,23 +9,31 @@ import androidx.annotation.NonNull;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
com.gingersoft.gsa.cloud.base.utils.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
import
com.gingersoft.gsa.cloud.user.login.R
;
import
com.gingersoft.gsa.cloud.user.login.R
;
import
com.gingersoft.gsa.cloud.user.login.di.component.DaggerWelcomeComponent
;
import
com.gingersoft.gsa.cloud.user.login.di.component.DaggerWelcomeComponent
;
import
com.gingersoft.gsa.cloud.user.login.di.module.WelcomeModule
;
import
com.gingersoft.gsa.cloud.user.login.di.module.WelcomeModule
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.LoginInterfaceImpl
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract
;
import
com.gingersoft.gsa.cloud.user.login.mvp.contract.WelcomeContract
;
import
com.gingersoft.gsa.cloud.user.login.mvp.presenter.WelcomePresenter
;
import
com.gingersoft.gsa.cloud.user.login.mvp.presenter.WelcomePresenter
;
import
com.jess.arms.base.BaseActivity
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.ArmsUtils
;
import
java.util.List
;
import
butterknife.BindView
;
import
butterknife.BindView
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
public
class
WelcomeActivity
extends
BaseActivity
<
WelcomePresenter
>
implements
WelcomeContract
.
View
{
public
class
WelcomeActivity
extends
LoginInterfaceImpl
<
WelcomePresenter
>
implements
WelcomeContract
.
View
{
@BindView
(
R
.
id
.
content_view
)
@BindView
(
R
.
id
.
content_view
)
ConstraintLayout
contentView
;
ConstraintLayout
contentView
;
@Override
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerWelcomeComponent
//如找不到该类,请编译一下项目
DaggerWelcomeComponent
//如找不到该类,请编译一下项目
...
@@ -55,7 +63,12 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W
...
@@ -55,7 +63,12 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W
@Override
@Override
public
void
onAnimationEnd
(
Animation
animation
)
{
public
void
onAnimationEnd
(
Animation
animation
)
{
startActivity
(
new
Intent
(
mContext
,
LoginActivity
.
class
));
// startActivity(new Intent(mContext, LoginActivity.class));
if
((
boolean
)
SPUtils
.
get
(
mContext
,
UserConstans
.
AUTO_LOGIN
,
false
))
{
//自動登陸
String
pwd
=
Aes
.
aesDecrypt
((
String
)
SPUtils
.
get
(
mContext
,
UserConstans
.
LOGIN_PASSWORD
,
""
));
mPresenter
.
login
(
SPUtils
.
get
(
mContext
,
UserConstans
.
LOGIN_USERNAME
,
""
)
+
""
,
pwd
);
}
}
}
@Override
@Override
...
@@ -117,4 +130,31 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W
...
@@ -117,4 +130,31 @@ public class WelcomeActivity extends BaseActivity<WelcomePresenter> implements W
public
void
killMyself
()
{
public
void
killMyself
()
{
finish
();
finish
();
}
}
@Override
public
void
loginSuccess
(
LoginBean
info
)
{
super
.
loginSuccess
(
info
);
}
private
boolean
isChooseRestaurant
=
false
;
@Override
public
void
showChooseRestaurantDialog
(
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brandsBeans
,
List
<
LoginBean
.
DataBean
.
UserBean
.
BrandsBean
>
brands
)
{
new
ChooseRestaurantDialog
.
BottomListSheetBuilder
(
mContext
)
.
addBrandItems
(
brandsBeans
)
.
setOnItemClickListener
((
dialog
,
item
,
position
)
->
{
isChooseRestaurant
=
true
;
ChooseRestaurantItemClick
(
brands
,
dialog
,
item
);
})
.
setOnDismissListener
(
dialog
->
{
if
(!
isChooseRestaurant
)
{
//沒有選擇餐廳,就回到登陸頁面
startActivity
(
new
Intent
(
mContext
,
LoginActivity
.
class
));
}
killMyself
();
})
.
build
()
.
show
();
}
}
}
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