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
738da8ae
Commit
738da8ae
authored
Aug 08, 2020
by
宁斌
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/master'
parents
a82553ee
a8ba4a08
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
40 changed files
with
821 additions
and
197 deletions
+821
-197
arms/src/main/java/com/jess/arms/base/BaseActivity.java
+0
-4
arms/src/main/java/com/jess/arms/utils/StatusBarUtil.java
+0
-0
arms/src/main/res/values/ids.xml
+8
-0
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/OrderDetail.java
+2
-2
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/RestaurantInfoUtils.java
+13
-3
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/gson/GsonUtils.java
+29
-7
base-module/src/main/java/com/gingersoft/gsa/cloud/base/widget/DialogUtils.java
+7
-5
base-module/src/main/java/com/gingersoft/gsa/cloud/globalconfig/applyOptions/MyGlobalHttpHandler.java
+5
-4
base-module/src/main/res/values/ids.xml
+0
-3
login-module/src/main/debug/AndroidManifest.xml
+16
-16
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/bean/LoginLimitBean.java
+41
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/BaseLoginContract.java
+13
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/LoginInterfaceImpl.java
+78
-53
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/BaseLoginModel.java
+61
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/LoginModel.java
+1
-37
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/WelcomeModel.java
+1
-35
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/presenter/BaseLoginPresenter.java
+81
-3
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/server/LoginService.java
+9
-3
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/di/component/ChooseRestaurantComponent.java
+16
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/di/module/ChooseRestaurantModule.java
+36
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/contract/ChooseRestaurantContract.java
+16
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/model/ChooseRestaurantModel.java
+33
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/presenter/ChooseRestaurantPresenter.java
+40
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/ChooseRestaurantActivity.java
+95
-0
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/LoginActivity.java
+15
-6
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/WelcomeActivity.java
+0
-3
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/adapter/LoginLimitAdapter.java
+26
-0
login-module/src/main/res/drawable/shape_topleft_topright.xml
+9
-0
login-module/src/main/res/layout/activity_choose_restaurant.xml
+10
-0
login-module/src/main/res/layout/activity_welcome.xml
+5
-6
login-module/src/main/res/layout/login_limit_dialog_layout.xml
+63
-0
login-module/src/main/res/layout/login_limit_item.xml
+52
-0
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/SettlementReportActivity.java
+2
-0
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/data/model/bean/MessageBean.kt
+4
-0
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/activity/OrderDetailsActivity.kt
+2
-2
other_order_mode/src/main/res/layout/activity_order_details.xml
+1
-1
other_order_mode/src/main/res/layout/item_orderdetails_bill_info.xml
+29
-0
other_order_mode/src/main/res/layout/layout_order_info_dialog.xml
+1
-1
other_order_mode/src/main/res/layout/layout_order_info_dialog_new.xml
+1
-1
qm-skin-maker/src/main/res/values/theme.xml
+0
-2
No files found.
arms/src/main/java/com/jess/arms/base/BaseActivity.java
View file @
738da8ae
...
@@ -32,13 +32,10 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable;
...
@@ -32,13 +32,10 @@ import com.jess.arms.integration.lifecycle.ActivityLifecycleable;
import
com.jess.arms.mvp.IPresenter
;
import
com.jess.arms.mvp.IPresenter
;
import
com.jess.arms.utils.AndroidWorkaround
;
import
com.jess.arms.utils.AndroidWorkaround
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.qmuiteam.qmui.arch.QMUIActivity
;
import
com.qmuiteam.qmui.skin.QMUISkinManager
;
import
com.trello.rxlifecycle2.android.ActivityEvent
;
import
com.trello.rxlifecycle2.android.ActivityEvent
;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
androidx.lifecycle.Lifecycle
;
import
butterknife.ButterKnife
;
import
butterknife.ButterKnife
;
import
butterknife.Unbinder
;
import
butterknife.Unbinder
;
import
io.reactivex.subjects.BehaviorSubject
;
import
io.reactivex.subjects.BehaviorSubject
;
...
@@ -84,7 +81,6 @@ public abstract class BaseActivity<P extends IPresenter> extends AppCompatActivi
...
@@ -84,7 +81,6 @@ public abstract class BaseActivity<P extends IPresenter> extends AppCompatActivi
@Override
@Override
public
View
onCreateView
(
String
name
,
Context
context
,
AttributeSet
attrs
)
{
public
View
onCreateView
(
String
name
,
Context
context
,
AttributeSet
attrs
)
{
View
view
=
convertAutoView
(
name
,
context
,
attrs
);
View
view
=
convertAutoView
(
name
,
context
,
attrs
);
return
view
==
null
?
super
.
onCreateView
(
name
,
context
,
attrs
)
:
view
;
return
view
==
null
?
super
.
onCreateView
(
name
,
context
,
attrs
)
:
view
;
}
}
...
...
arms/src/main/java/com/jess/arms/utils/StatusBarUtil.java
0 → 100644
View file @
738da8ae
This diff is collapsed.
Click to expand it.
arms/src/main/res/values/ids.xml
0 → 100644
View file @
738da8ae
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item
type=
"id"
name=
"statusbarutil_fake_status_bar_view"
/>
<item
type=
"id"
name=
"statusbarutil_translucent_view"
/>
</resources>
\ No newline at end of file
base-module/src/main/java/com/gingersoft/gsa/cloud/base/common/bean/OrderDetail.java
View file @
738da8ae
...
@@ -704,14 +704,14 @@ public class OrderDetail implements Serializable {
...
@@ -704,14 +704,14 @@ public class OrderDetail implements Serializable {
if
(
productnameBean
.
getChild
()
!=
null
)
{
if
(
productnameBean
.
getChild
()
!=
null
)
{
for
(
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
.
ChildBeanX
childBeanX
:
productnameBean
.
getChild
())
{
for
(
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
.
ChildBeanX
childBeanX
:
productnameBean
.
getChild
())
{
if
(
childBeanX
!=
null
)
{
if
(
childBeanX
!=
null
)
{
//判斷是否
打印
,為true的時候會同時打印主項
//判斷是否
選擇了打印至賬單
,為true的時候會同時打印主項
if
(
childBeanX
.
getPrintToBill
()
==
1
)
{
if
(
childBeanX
.
getPrintToBill
()
==
1
)
{
isCheck
=
true
;
isCheck
=
true
;
break
;
break
;
}
}
if
(
childBeanX
.
getChild
()
!=
null
)
{
if
(
childBeanX
.
getChild
()
!=
null
)
{
for
(
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
.
ChildBeanX
.
ChildBean
childBean
:
childBeanX
.
getChild
())
{
for
(
OrderDetails
.
DataBean
.
PRODUCTNAMEBean
.
ChildBeanX
.
ChildBean
childBean
:
childBeanX
.
getChild
())
{
//判斷是否
打印,為true的時候會同時打印主
項
//判斷是否
選擇了打印至賬單,為true的時候會同時打印上一項細
項
if
(
childBean
.
getPrintToBill
()
==
1
)
{
if
(
childBean
.
getPrintToBill
()
==
1
)
{
isCheck2
=
true
;
isCheck2
=
true
;
break
;
break
;
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/RestaurantInfoUtils.java
View file @
738da8ae
...
@@ -30,7 +30,7 @@ public class RestaurantInfoUtils {
...
@@ -30,7 +30,7 @@ public class RestaurantInfoUtils {
public
static
int
getRestaurantSize
(
Context
context
)
{
public
static
int
getRestaurantSize
(
Context
context
)
{
int
size
=
0
;
int
size
=
0
;
List
<
BrandsBean
.
BrandsData
>
brandsBeans
=
getBrandList
(
context
);
List
<
BrandsBean
.
BrandsData
>
brandsBeans
=
getBrandList
(
context
);
if
(
brandsBeans
==
null
)
{
if
(
brandsBeans
==
null
)
{
return
0
;
return
0
;
}
}
for
(
int
i
=
0
;
i
<
brandsBeans
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
brandsBeans
.
size
();
i
++)
{
...
@@ -40,14 +40,24 @@ public class RestaurantInfoUtils {
...
@@ -40,14 +40,24 @@ public class RestaurantInfoUtils {
return
size
;
return
size
;
}
}
public
static
int
getRestaurantSize
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
if
(
brands
==
null
)
{
return
0
;
}
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
;
}
public
static
BrandsBean
.
BrandsData
getOnlyBrand
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
public
static
BrandsBean
.
BrandsData
getOnlyBrand
(
List
<
BrandsBean
.
BrandsData
>
brands
)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
brands
.
size
();
i
++)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
if
(
brands
.
get
(
i
).
getRestaurants
()
!=
null
)
{
for
(
int
j
=
0
;
j
<
brands
.
get
(
i
).
getRestaurants
().
size
();
j
++)
{
return
brands
.
get
(
i
);
return
brands
.
get
(
i
);
}
}
}
}
}
return
null
;
return
null
;
}
}
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/utils/gson/GsonUtils.java
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
base
.
utils
.
gson
;
package
com
.
gingersoft
.
gsa
.
cloud
.
base
.
utils
.
gson
;
import
com.google.gson.Gson
;
import
com.google.gson.Gson
;
import
com.google.gson.JsonArray
;
import
com.google.gson.JsonElement
;
import
com.google.gson.JsonParser
;
import
com.google.gson.reflect.TypeToken
;
import
com.google.gson.reflect.TypeToken
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -55,19 +59,37 @@ public class GsonUtils {
...
@@ -55,19 +59,37 @@ public class GsonUtils {
return
t
;
return
t
;
}
}
// 有問題,轉換出來的類型不對
// /**
// * 转成list
// *
// * @param gsonString
// * @param cls
// * @return
// */
// public static <T> List<T> GsonToList(String gsonString, Class<T> cls) {
// List<T> list = null;
// if (gson != null) {
// list = gson.fromJson(gsonString, new TypeToken<List<T>>() {
// }.getType());
// }
// return list;
// }
/**
/**
* 转成list
*
json字符串
转成list
*
*
* @param gsonString
* @param cls
* @param cls
* @return
* @return
*/
*/
public
static
<
T
>
List
<
T
>
GsonToList
(
String
gsonString
,
Class
<
T
>
cls
)
{
public
static
<
T
>
List
<
T
>
jsonToList
(
String
json
,
Class
<
T
>
cls
)
{
List
<
T
>
list
=
null
;
ArrayList
<
T
>
mList
=
new
ArrayList
<>();
if
(
gson
!=
null
)
{
list
=
gson
.
fromJson
(
gsonString
,
new
TypeToken
<
List
<
T
>>()
{}.
getType
());
JsonArray
array
=
new
JsonParser
().
parse
(
json
).
getAsJsonArray
();
for
(
final
JsonElement
elem
:
array
)
{
mList
.
add
(
gson
.
fromJson
(
elem
,
cls
));
}
}
return
l
ist
;
return
mL
ist
;
}
}
/**
/**
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/base/widget/DialogUtils.java
View file @
738da8ae
...
@@ -17,6 +17,10 @@ import android.view.WindowManager;
...
@@ -17,6 +17,10 @@ import android.view.WindowManager;
import
android.widget.ImageView
;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
android.widget.TextView
;
import
androidx.lifecycle.Lifecycle
;
import
androidx.lifecycle.LifecycleObserver
;
import
androidx.lifecycle.OnLifecycleEvent
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.Glide
;
import
com.bumptech.glide.load.engine.DiskCacheStrategy
;
import
com.bumptech.glide.load.engine.DiskCacheStrategy
;
import
com.bumptech.glide.load.resource.bitmap.RoundedCorners
;
import
com.bumptech.glide.load.resource.bitmap.RoundedCorners
;
...
@@ -29,13 +33,10 @@ import java.util.List;
...
@@ -29,13 +33,10 @@ import java.util.List;
/**
/**
* Created by Wyh on 2019/11/1.
* Created by Wyh on 2019/11/1.
*/
*/
public
abstract
class
DialogUtils
{
public
abstract
class
DialogUtils
implements
LifecycleObserver
{
// private Context mContext;
private
static
Dialog
dialog
;
private
static
Dialog
dialog
;
private
View
view
;
private
View
view
;
private
int
style
=
R
.
style
.
PhotoDialog
;
private
int
style
=
R
.
style
.
PhotoDialog
;
// private int mWidth = WindowManager.LayoutParams.WRAP_CONTENT;
// private int mHeight = WindowManager.LayoutParams.WRAP_CONTENT;
private
ViewHepler
viewHepler
;
private
ViewHepler
viewHepler
;
public
DialogUtils
(
Context
mContext
,
int
xmlLayout
)
{
public
DialogUtils
(
Context
mContext
,
int
xmlLayout
)
{
...
@@ -44,7 +45,7 @@ public abstract class DialogUtils {
...
@@ -44,7 +45,7 @@ public abstract class DialogUtils {
}
}
private
void
init
(
Context
context
)
{
private
void
init
(
Context
context
)
{
dismiss
();
//
dismiss();
dialog
=
new
Dialog
(
context
);
dialog
=
new
Dialog
(
context
);
viewHepler
=
getViewHepler
(
context
);
viewHepler
=
getViewHepler
(
context
);
initLayout
(
viewHepler
,
dialog
);
initLayout
(
viewHepler
,
dialog
);
...
@@ -150,6 +151,7 @@ public abstract class DialogUtils {
...
@@ -150,6 +151,7 @@ public abstract class DialogUtils {
return
dialog
;
return
dialog
;
}
}
@OnLifecycleEvent
(
Lifecycle
.
Event
.
ON_PAUSE
)
public
DialogUtils
dismiss
()
{
public
DialogUtils
dismiss
()
{
if
(
dialog
!=
null
)
if
(
dialog
!=
null
)
dialog
.
dismiss
();
dialog
.
dismiss
();
...
...
base-module/src/main/java/com/gingersoft/gsa/cloud/globalconfig/applyOptions/MyGlobalHttpHandler.java
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
globalconfig
.
applyOptions
;
package
com
.
gingersoft
.
gsa
.
cloud
.
globalconfig
.
applyOptions
;
import
android.util.Log
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.constans.AppConstans
;
import
com.jess.arms.http.GlobalHttpHandler
;
import
com.jess.arms.http.GlobalHttpHandler
;
import
com.jess.arms.utils.DeviceUtils
;
import
com.jess.arms.utils.DeviceUtils
;
import
okhttp3.Headers
;
import
okhttp3.Headers
;
import
okhttp3.Interceptor
;
import
okhttp3.Interceptor
;
import
okhttp3.Request
;
import
okhttp3.Request
;
...
@@ -46,9 +45,11 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
...
@@ -46,9 +45,11 @@ public class MyGlobalHttpHandler implements GlobalHttpHandler {
Headers
headers
=
request
.
headers
();
Headers
headers
=
request
.
headers
();
for
(
int
i
=
0
;
i
<
headers
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
headers
.
size
();
i
++)
{
builder
.
set
(
headers
.
name
(
i
),
headers
.
value
(
i
));
builder
.
set
(
headers
.
name
(
i
),
headers
.
value
(
i
));
}
}
if
(
GsaCloudApplication
.
isLogin
)
if
(
GsaCloudApplication
.
isLogin
){
builder
.
set
(
"token"
,
token
);
builder
.
set
(
"token"
,
token
);
}
// builder.set("Domain-Name", "common");
// builder.set("Domain-Name", "common");
return
chain
.
request
().
newBuilder
()
return
chain
.
request
().
newBuilder
()
.
headers
(
builder
.
build
())
.
headers
(
builder
.
build
())
...
...
base-module/src/main/res/values/ids.xml
View file @
738da8ae
...
@@ -25,6 +25,4 @@
...
@@ -25,6 +25,4 @@
<item
name=
"layout_for_test"
type=
"id"
/>
<item
name=
"layout_for_test"
type=
"id"
/>
<item
name=
"topbar_heart_disconnect"
type=
"id"
/>
<item
name=
"topbar_heart_disconnect"
type=
"id"
/>
<item
type=
"id"
name=
"statusbarutil_fake_status_bar_view"
/>
<item
type=
"id"
name=
"statusbarutil_translucent_view"
/>
</resources>
</resources>
\ No newline at end of file
login-module/src/main/debug/AndroidManifest.xml
View file @
738da8ae
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"com.gingersoft.gsa.cloud.login"
>
xmlns:tools=
"http://schemas.android.com/tools"
package=
"com.gingersoft.gsa.cloud.login"
>
<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_launcher"
android:icon=
"@mipmap/ic_launcher"
...
@@ -12,7 +10,8 @@
...
@@ -12,7 +10,8 @@
android:supportsRtl=
"true"
android:supportsRtl=
"true"
android:theme=
"@style/AppTheme"
>
android:theme=
"@style/AppTheme"
>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.LoginActivity"
/>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.LoginActivity"
android:launchMode=
"singleTop"
/>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.SwitchServerActivity"
/>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.SwitchServerActivity"
/>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.WelcomeActivity"
>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.WelcomeActivity"
>
<intent-filter>
<intent-filter>
...
@@ -22,6 +21,7 @@
...
@@ -22,6 +21,7 @@
<category
android:name=
"android.intent.category.LAUNCHER"
/>
<category
android:name=
"android.intent.category.LAUNCHER"
/>
</intent-filter>
</intent-filter>
</activity>
</activity>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.ChooseRestaurantActivity"
/>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.LoginOutActivity"
/>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.LoginOutActivity"
/>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.RecoverPasswordActivity"
/>
<activity
android:name=
".mvp.ui.activity.mvp.ui.activity.RecoverPasswordActivity"
/>
...
@@ -30,19 +30,19 @@
...
@@ -30,19 +30,19 @@
android:value=
"ConfigModule"
/>
android:value=
"ConfigModule"
/>
<meta-data
<meta-data
android:name=
"design_width_in_dp"
android:name=
"design_width_in_dp"
android:value=
"360"
/>
android:value=
"360"
/>
<meta-data
<meta-data
android:name=
"design_height_in_dp"
android:name=
"design_height_in_dp"
android:value=
"640"
/>
android:value=
"640"
/>
</application>
</application>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.ACCESS_NETWORK_STATE"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.RECEIVE_USER_PRESENT"
/>
<uses-permission
android:name=
"android.permission.RECEIVE_USER_PRESENT"
/>
</manifest>
</manifest>
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/bean/LoginLimitBean.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
bean
;
public
class
LoginLimitBean
{
private
int
userId
;
private
String
userName
;
private
long
dateTime
;
public
LoginLimitBean
()
{
}
public
LoginLimitBean
(
int
userId
,
String
userName
,
long
dateTime
)
{
this
.
userId
=
userId
;
this
.
userName
=
userName
;
this
.
dateTime
=
dateTime
;
}
public
int
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
int
userId
)
{
this
.
userId
=
userId
;
}
public
String
getUserName
()
{
return
userName
;
}
public
void
setUserName
(
String
userName
)
{
this
.
userName
=
userName
;
}
public
long
getDateTime
()
{
return
dateTime
;
}
public
void
setDateTime
(
long
dateTime
)
{
this
.
dateTime
=
dateTime
;
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/BaseLoginContract.java
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
contract
;
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
contract
;
import
com.gingersoft.gsa.cloud.bean.PublicBean
;
import
com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.jess.arms.mvp.IModel
;
import
com.jess.arms.mvp.IModel
;
...
@@ -33,6 +35,12 @@ public interface BaseLoginContract {
...
@@ -33,6 +35,12 @@ public interface BaseLoginContract {
void
saveRestaurantListInfo
(
List
<
BrandsBean
.
BrandsData
>
brands
);
void
saveRestaurantListInfo
(
List
<
BrandsBean
.
BrandsData
>
brands
);
void
showChooseRestaurantDialog
(
List
<
BrandsBean
.
BrandsData
>
brandsBean
,
List
<
BrandsBean
.
BrandsData
>
brands
);
void
showChooseRestaurantDialog
(
List
<
BrandsBean
.
BrandsData
>
brandsBean
,
List
<
BrandsBean
.
BrandsData
>
brands
);
void
jumpMainActivity
();
void
jumpDownloadActivity
();
void
showLoginLimit
(
List
<
LoginLimitBean
>
loginLimitBeans
);
}
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
...
@@ -40,5 +48,10 @@ public interface BaseLoginContract {
...
@@ -40,5 +48,10 @@ public interface BaseLoginContract {
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
);
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
);
Observable
<
BrandsBean
>
getRestaurantList
();
Observable
<
BrandsBean
>
getRestaurantList
();
Observable
<
PublicBean
>
getLoginLimit
(
int
restaurantId
);
Observable
<
Object
>
loginOut
(
int
userId
,
RequestBody
requestBody
);
}
}
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/contract/LoginInterfaceImpl.java
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
contract
;
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
contract
;
import
android.app.Dialog
;
import
android.content.DialogInterface
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.util.Log
;
import
android.view.Gravity
;
import
android.view.View
;
import
android.widget.LinearLayout
;
import
androidx.annotation.NonNull
;
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.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.listener.OnItemChildClickListener
;
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
;
import
com.gingersoft.gsa.cloud.base.utils.RestaurantInfoUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.widget.DialogUtils
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.login.R
;
import
com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean
;
import
com.gingersoft.gsa.cloud.login.mvp.presenter.BaseLoginPresenter
;
import
com.gingersoft.gsa.cloud.login.mvp.presenter.BaseLoginPresenter
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.SwitchServerActivity
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.SwitchServerActivity
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.adapter.LoginLimitAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog
;
...
@@ -30,27 +48,30 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
...
@@ -30,27 +48,30 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
if
(
brands
!=
null
)
{
if
(
brands
!=
null
)
{
String
brandRestaurantInfos
=
JsonUtils
.
toJson
(
brands
);
String
brandRestaurantInfos
=
JsonUtils
.
toJson
(
brands
);
GsaCloudApplication
.
setBrandRestaurantInfos
(
mContext
,
brandRestaurantInfos
);
GsaCloudApplication
.
setBrandRestaurantInfos
(
mContext
,
brandRestaurantInfos
);
restaurantSize
=
getRestaurantSize
(
brands
);
restaurantSize
=
RestaurantInfoUtils
.
getRestaurantSize
(
brands
);
brandsBeans
.
addAll
(
brands
);
brandsBeans
.
addAll
(
brands
);
}
}
boolean
autoLogin
=
(
boolean
)
SPUtils
.
get
(
mContext
,
UserConstans
.
AUTO_LOGIN
,
false
);
boolean
autoLogin
=
(
boolean
)
SPUtils
.
get
(
mContext
,
UserConstans
.
AUTO_LOGIN
,
false
);
if
(
autoLogin
)
{
if
(
autoLogin
)
{
int
restaurantId
=
GsaCloudApplication
.
getRestaurantId
(
this
);
int
restaurantId
=
GsaCloudApplication
.
getRestaurantId
(
this
);
if
(
restaurantId
!=
0
)
{
if
(
restaurantId
!=
0
)
{
//有選擇餐廳,直接跳轉首頁
//上一次進入app有選擇餐廳,通過餐廳ID獲取允許的最大登陸數
jumpMainActivity
();
mPresenter
.
getLoginLimit
(
restaurantId
,
false
);
// jumpMainActivity();
return
;
return
;
}
}
}
}
if
(
restaurantSize
==
1
)
{
if
(
restaurantSize
==
1
)
{
//只有一個品牌是直接進下載頁面
//只有一個品牌是直接進下載頁面
BrandsBean
.
BrandsData
brandsBean
=
getOnlyBrand
(
brands
);
BrandsBean
.
BrandsData
brandsBean
=
RestaurantInfoUtils
.
getOnlyBrand
(
brands
);
BrandsBean
.
BrandsData
.
RestaurantsBean
restaurantsBean
=
getOnlyRestaurant
(
brands
);
BrandsBean
.
BrandsData
.
RestaurantsBean
restaurantsBean
=
RestaurantInfoUtils
.
getOnlyRestaurant
(
brands
);
if
(
brandsBean
!=
null
)
{
if
(
brandsBean
!=
null
)
{
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
restaurantsBean
);
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
restaurantsBean
);
//通過餐廳ID獲取允許的最大登陸數
mPresenter
.
getLoginLimit
(
restaurantsBean
.
getRestaurantId
(),
true
);
}
}
jumpDownloadActivity
();
//
jumpDownloadActivity();
}
else
{
}
else
{
showChooseRestaurantDialog
(
brandsBeans
,
brands
);
showChooseRestaurantDialog
(
brandsBeans
,
brands
);
}
}
...
@@ -75,67 +96,26 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
...
@@ -75,67 +96,26 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
}
}
protected
void
ChooseRestaurantItemClick
(
List
<
BrandsBean
.
BrandsData
>
brands
,
ChooseRestaurantDialog
dialog
,
BrandsBean
.
BrandsData
.
RestaurantsBean
item
)
{
protected
void
ChooseRestaurantItemClick
(
List
<
BrandsBean
.
BrandsData
>
brands
,
ChooseRestaurantDialog
dialog
,
BrandsBean
.
BrandsData
.
RestaurantsBean
item
)
{
BrandsBean
.
BrandsData
brandsBean
=
getBrandByRestaurantId
(
brands
,
item
.
getRestaurantId
());
BrandsBean
.
BrandsData
brandsBean
=
RestaurantInfoUtils
.
getBrandByRestaurantId
(
brands
,
item
.
getRestaurantId
());
if
(
brandsBean
!=
null
)
{
if
(
brandsBean
!=
null
)
{
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
item
);
saveBrandAndRestaurantInfo
(
brandsBean
.
getBrandId
(),
brandsBean
.
getBrandName
(),
item
);
mPresenter
.
getLoginLimit
(
item
.
getRestaurantId
(),
true
);
}
}
dialog
.
dismiss
();
dialog
.
dismiss
();
jumpDownloadActivity
();
//
jumpDownloadActivity();
}
}
protected
void
saveBrandAndRestaurantInfo
(
int
brandId
,
String
brandName
,
BrandsBean
.
BrandsData
.
RestaurantsBean
restaurantsBean
)
{
protected
void
saveBrandAndRestaurantInfo
(
int
brandId
,
String
brandName
,
BrandsBean
.
BrandsData
.
RestaurantsBean
restaurantsBean
)
{
GsaCloudApplication
.
setBrandId
(
mContext
,
brandId
);
GsaCloudApplication
.
setBrandId
(
mContext
,
brandId
);
GsaCloudApplication
.
setBrandName
(
mContext
,
brandName
);
GsaCloudApplication
.
setBrandName
(
mContext
,
brandName
);
if
(
restaurantsBean
!=
null
)
{
GsaCloudApplication
.
setRestaurantId
(
mContext
,
restaurantsBean
.
getRestaurantId
());
GsaCloudApplication
.
setRestaurantId
(
mContext
,
restaurantsBean
.
getRestaurantId
());
GsaCloudApplication
.
setRestaurantName
(
mContext
,
restaurantsBean
.
getRestaurantName
());
GsaCloudApplication
.
setRestaurantName
(
mContext
,
restaurantsBean
.
getRestaurantName
());
GsaCloudApplication
.
setGsPosShopId
(
mContext
,
restaurantsBean
.
getGsPosShopId
());
GsaCloudApplication
.
setGsPosShopId
(
mContext
,
restaurantsBean
.
getGsPosShopId
());
}
}
private
int
getRestaurantSize
(
List
<
BrandsBean
.
BrandsData
>
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
BrandsBean
.
BrandsData
getOnlyBrand
(
List
<
BrandsBean
.
BrandsData
>
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
BrandsBean
.
BrandsData
.
RestaurantsBean
getOnlyRestaurant
(
List
<
BrandsBean
.
BrandsData
>
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
BrandsBean
.
BrandsData
getBrandByRestaurantId
(
List
<
BrandsBean
.
BrandsData
>
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
;
}
}
p
rivate
void
jumpDownloadActivity
()
{
p
ublic
void
jumpDownloadActivity
()
{
CC
.
obtainBuilder
(
"Component.Download"
)
CC
.
obtainBuilder
(
"Component.Download"
)
.
setActionName
(
"showDownloadActivity"
)
.
setActionName
(
"showDownloadActivity"
)
.
addParam
(
"fromPage"
,
1
)
.
addParam
(
"fromPage"
,
1
)
...
@@ -144,11 +124,56 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
...
@@ -144,11 +124,56 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
killMyself
();
killMyself
();
}
}
p
rivate
void
jumpMainActivity
()
{
p
ublic
void
jumpMainActivity
()
{
CC
.
obtainBuilder
(
"Component.Main"
)
CC
.
obtainBuilder
(
"Component.Main"
)
.
setActionName
(
"showMainActivity"
)
.
setActionName
(
"showMainActivity"
)
.
build
()
.
build
()
.
call
();
.
call
();
killMyself
();
killMyself
();
}
}
private
DialogUtils
dialogUtils
;
public
void
showLoginLimit
(
List
<
LoginLimitBean
>
loginLimitBeans
)
{
if
(
loginLimitBeans
!=
null
)
{
dialogUtils
=
new
DialogUtils
(
mContext
,
R
.
layout
.
login_limit_dialog_layout
)
{
@Override
public
void
initLayout
(
ViewHepler
hepler
,
Dialog
dialog
)
{
hepler
.
setOnClickListenter
(
R
.
id
.
iv_login_limit_back
,
v
->
{
dialog
.
dismiss
();
});
RecyclerView
loginLimit
=
hepler
.
getView
(
R
.
id
.
rv_login_limit
);
loginLimit
.
setLayoutManager
(
new
LinearLayoutManager
(
mContext
));
LoginLimitAdapter
loginLimitAdapter
=
new
LoginLimitAdapter
(
loginLimitBeans
);
loginLimitAdapter
.
setOnItemChildClickListener
((
adapter
,
view
,
position
)
->
{
if
(
position
<
loginLimitBeans
.
size
())
{
mPresenter
.
loginOut
(
loginLimitBeans
.
get
(
position
).
getUserId
());
loginLimitBeans
.
remove
(
position
);
loginLimitAdapter
.
notifyDataSetChanged
();
Log
.
e
(
"eee"
,
"踢出第"
+
position
+
"個"
);
}
});
loginLimit
.
setAdapter
(
loginLimitAdapter
);
}
}.
setWidth
(
LinearLayout
.
LayoutParams
.
MATCH_PARENT
).
setOnDismissListener
(
dialog
->
{
//不管有沒有踢出人,彈窗消失回到登陸頁面
startActivity
(
new
Intent
(
mContext
,
LoginActivity
.
class
));
}).
setGravity
(
Gravity
.
BOTTOM
).
show
();
}
else
{
showMessage
(
"獲取登陸人數失敗"
);
launchActivity
(
new
Intent
(
mContext
,
LoginActivity
.
class
));
}
}
@Override
protected
void
onPause
()
{
super
.
onPause
();
if
(
dialogUtils
!=
null
){
dialogUtils
.
dismiss
();
}
}
@Override
protected
void
onDestroy
()
{
super
.
onDestroy
();
}
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/BaseLoginModel.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
model
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.bean.PublicBean
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.BaseLoginContract
;
import
com.gingersoft.gsa.cloud.login.mvp.server.LoginService
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
javax.inject.Inject
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
public
class
BaseLoginModel
extends
BaseModel
implements
BaseLoginContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
BaseLoginModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
@Override
public
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
login
(
requestBody
);
}
@Override
public
Observable
<
BrandsBean
>
getRestaurantList
()
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
getRestaurantList
();
}
@Override
public
Observable
<
PublicBean
>
getLoginLimit
(
int
restaurantId
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
getLoginLimit
(
restaurantId
);
}
@Override
public
Observable
<
Object
>
loginOut
(
int
userId
,
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
loginOut
(
userId
,
requestBody
);
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/LoginModel.java
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
model
;
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
model
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.LoginContract
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.LoginContract
;
import
com.gingersoft.gsa.cloud.login.mvp.server.LoginService
;
import
com.google.gson.Gson
;
import
com.jess.arms.di.scope.ActivityScope
;
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
javax.inject.Inject
;
import
javax.inject.Inject
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
/**
/**
* ================================================
* ================================================
...
@@ -30,34 +20,9 @@ import okhttp3.RequestBody;
...
@@ -30,34 +20,9 @@ import okhttp3.RequestBody;
* ================================================
* ================================================
*/
*/
@ActivityScope
@ActivityScope
public
class
LoginModel
extends
BaseModel
implements
LoginContract
.
Model
{
public
class
LoginModel
extends
BaseLoginModel
implements
LoginContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
@Inject
public
LoginModel
(
IRepositoryManager
repositoryManager
)
{
public
LoginModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
super
(
repositoryManager
);
}
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
@Override
public
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
login
(
requestBody
);
}
@Override
public
Observable
<
BrandsBean
>
getRestaurantList
()
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
getRestaurantList
();
}
}
}
\ No newline at end of file
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/model/WelcomeModel.java
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
model
;
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
model
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.WelcomeContract
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.WelcomeContract
;
import
com.gingersoft.gsa.cloud.login.mvp.server.LoginService
;
import
com.google.gson.Gson
;
import
com.jess.arms.di.scope.ActivityScope
;
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
javax.inject.Inject
;
import
javax.inject.Inject
;
import
io.reactivex.Observable
;
import
okhttp3.RequestBody
;
@ActivityScope
@ActivityScope
public
class
WelcomeModel
extends
BaseModel
implements
WelcomeContract
.
Model
{
public
class
WelcomeModel
extends
BaseLoginModel
implements
WelcomeContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
@Inject
public
WelcomeModel
(
IRepositoryManager
repositoryManager
)
{
public
WelcomeModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
super
(
repositoryManager
);
}
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
@Override
public
Observable
<
LoginBean
>
login
(
RequestBody
requestBody
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
login
(
requestBody
);
}
@Override
public
Observable
<
BrandsBean
>
getRestaurantList
()
{
return
mRepositoryManager
.
obtainRetrofitService
(
LoginService
.
class
)
.
getRestaurantList
();
}
}
}
\ No newline at end of file
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/presenter/BaseLoginPresenter.java
View file @
738da8ae
...
@@ -3,22 +3,31 @@ package com.gingersoft.gsa.cloud.login.mvp.presenter;
...
@@ -3,22 +3,31 @@ package com.gingersoft.gsa.cloud.login.mvp.presenter;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.app.Application
;
import
android.app.Application
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.util.Log
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.application.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils
;
import
com.gingersoft.gsa.cloud.bean.PublicBean
;
import
com.gingersoft.gsa.cloud.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.constans.AppConstans
;
import
com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.BaseLoginContract
;
import
com.gingersoft.gsa.cloud.login.mvp.contract.BaseLoginContract
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.LoginActivity
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.google.gson.Gson
;
import
com.google.gson.reflect.TypeToken
;
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.mvp.BasePresenter
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Inject
;
import
io.reactivex.Scheduler
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.schedulers.Schedulers
;
import
io.reactivex.schedulers.Schedulers
;
...
@@ -97,7 +106,7 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
...
@@ -97,7 +106,7 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
@Override
@Override
public
void
onError
(
Throwable
t
)
{
public
void
onError
(
Throwable
t
)
{
super
.
onError
(
t
);
super
.
onError
(
t
);
OkHttp3Utils
.
noticePersonnel
(
AppConstans
.
RP_LOGIN_ERROR
,
"登陸報錯:"
+
t
.
getMessage
());
OkHttp3Utils
.
noticePersonnel
(
AppConstans
.
RP_LOGIN_ERROR
,
"登陸報錯:"
+
t
.
getMessage
());
if
(
IAcitivity
instanceof
LoginActivity
)
{
if
(
IAcitivity
instanceof
LoginActivity
)
{
}
else
{
}
else
{
mRootView
.
launchActivity
(
new
Intent
(
IAcitivity
,
LoginActivity
.
class
));
mRootView
.
launchActivity
(
new
Intent
(
IAcitivity
,
LoginActivity
.
class
));
...
@@ -107,7 +116,7 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
...
@@ -107,7 +116,7 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
}
}
public
void
getRestaurantList
(){
public
void
getRestaurantList
()
{
mModel
.
getRestaurantList
()
mModel
.
getRestaurantList
()
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
...
@@ -119,7 +128,7 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
...
@@ -119,7 +128,7 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
@Override
@Override
public
void
onNext
(
@NonNull
BrandsBean
info
)
{
public
void
onNext
(
@NonNull
BrandsBean
info
)
{
if
(
info
!=
null
)
{
if
(
info
!=
null
)
{
mRootView
.
saveRestaurantListInfo
(
info
.
getData
());
mRootView
.
saveRestaurantListInfo
(
info
.
getData
());
}
else
{
}
else
{
mRootView
.
saveRestaurantListInfo
(
null
);
mRootView
.
saveRestaurantListInfo
(
null
);
...
@@ -134,5 +143,74 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
...
@@ -134,5 +143,74 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
});
});
}
}
/**
* @param restaurantId 餐廳ID
* @param isDownload 是否去下載頁面
*/
public
void
getLoginLimit
(
int
restaurantId
,
boolean
isDownload
)
{
mModel
.
getLoginLimit
(
restaurantId
)
.
subscribeOn
(
Schedulers
.
io
())
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
doOnSubscribe
(
disposable
->
mRootView
.
showLoading
(
"獲取登錄人數"
))
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSubscriber
<
PublicBean
>(
mErrorHandler
)
{
@Override
public
void
onNext
(
PublicBean
s
)
{
if
(
s
!=
null
&&
s
.
isSuccess
())
{
List
<
LoginLimitBean
>
loginLimitBeans
=
new
Gson
().
fromJson
(
GsonUtils
.
GsonString
(
s
.
getData
()),
new
TypeToken
<
List
<
LoginLimitBean
>>()
{}.
getType
());
// List<LoginLimitBean> logins = GsonUtils.GsonToList("", LoginLimitBean.class);
if
(
loginLimitBeans
==
null
||
loginLimitBeans
.
size
()
<=
0
)
{
if
(
isDownload
)
{
mRootView
.
jumpDownloadActivity
();
}
else
{
mRootView
.
jumpMainActivity
();
}
}
else
{
//已達上限,彈出彈窗
mRootView
.
showLoginLimit
(
loginLimitBeans
);
}
}
else
{
mRootView
.
showMessage
(
"獲取登陸人數失敗"
);
mRootView
.
launchActivity
(
new
Intent
(
IAcitivity
,
LoginActivity
.
class
));
}
}
@Override
public
void
onError
(
Throwable
t
)
{
super
.
onError
(
t
);
mRootView
.
showLoginLimit
(
null
);
// mRootView.launchActivity(new Intent(IAcitivity, LoginActivity.class));
// mRootView.jumpDownloadActivity();
}
});
}
/**
* 踢出用戶
*/
public
void
loginOut
(
int
userId
)
{
RequestBody
requestBody
=
new
FormBody
.
Builder
()
.
add
(
"type"
,
"2"
)
.
build
();
mModel
.
loginOut
(
userId
,
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
)
{
}
@Override
public
void
onError
(
Throwable
t
)
{
super
.
onError
(
t
);
}
});
}
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/server/LoginService.java
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
server
;
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
server
;
import
com.gingersoft.gsa.cloud.bean.PublicBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.BrandsBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
import
com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean
;
...
@@ -8,7 +9,10 @@ import io.reactivex.Observable;
...
@@ -8,7 +9,10 @@ import io.reactivex.Observable;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
okhttp3.RequestBody
;
import
okhttp3.RequestBody
;
import
retrofit2.http.Body
;
import
retrofit2.http.Body
;
import
retrofit2.http.Field
;
import
retrofit2.http.FormUrlEncoded
;
import
retrofit2.http.GET
;
import
retrofit2.http.GET
;
import
retrofit2.http.Header
;
import
retrofit2.http.Headers
;
import
retrofit2.http.Headers
;
import
retrofit2.http.POST
;
import
retrofit2.http.POST
;
...
@@ -17,9 +21,6 @@ import retrofit2.http.POST;
...
@@ -17,9 +21,6 @@ import retrofit2.http.POST;
*/
*/
public
interface
LoginService
{
public
interface
LoginService
{
// @POST("gsa/login" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
// Observable<LoginBean> login(@Body RequestBody requestBody);
@Headers
({
"Domain-Name: system_url"
})
@Headers
({
"Domain-Name: system_url"
})
@POST
(
"public/user/login"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
@POST
(
"public/user/login"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
LoginBean
>
login
(
@Body
RequestBody
requestBody
);
Observable
<
LoginBean
>
login
(
@Body
RequestBody
requestBody
);
...
@@ -27,5 +28,10 @@ public interface LoginService {
...
@@ -27,5 +28,10 @@ public interface LoginService {
@GET
(
"user/brand/get"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
@GET
(
"user/brand/get"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
BrandsBean
>
getRestaurantList
();
Observable
<
BrandsBean
>
getRestaurantList
();
@FormUrlEncoded
@POST
(
"user/restrictions"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
PublicBean
>
getLoginLimit
(
@Field
(
"restaurantId"
)
int
restaurantId
);
@POST
(
"user/logout"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
Object
>
loginOut
(
@Header
(
"uid"
)
int
userId
,
@Body
RequestBody
requestBody
);
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/di/component/ChooseRestaurantComponent.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
ui
.
activity
.
di
.
component
;
import
dagger.Component
;
import
com.jess.arms.di.component.AppComponent
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.module.ChooseRestaurantModule
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.ui.activity.ChooseRestaurantActivity
;
@ActivityScope
@Component
(
modules
=
ChooseRestaurantModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
ChooseRestaurantComponent
{
void
inject
(
ChooseRestaurantActivity
activity
);
}
\ No newline at end of file
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/di/module/ChooseRestaurantModule.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
ui
.
activity
.
di
.
module
;
import
com.jess.arms.di.scope.ActivityScope
;
import
dagger.Module
;
import
dagger.Provides
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.ChooseRestaurantContract
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.model.ChooseRestaurantModel
;
@Module
public
class
ChooseRestaurantModule
{
private
ChooseRestaurantContract
.
View
view
;
/**
* 构建ChooseRestaurantModule时,将View的实现类传进来,这样就可以提供View的实现类给presenter
* @param view
*/
public
ChooseRestaurantModule
(
ChooseRestaurantContract
.
View
view
)
{
this
.
view
=
view
;
}
@ActivityScope
@Provides
ChooseRestaurantContract
.
View
provideChooseRestaurantView
(){
return
this
.
view
;
}
@ActivityScope
@Provides
ChooseRestaurantContract
.
Model
provideChooseRestaurantModel
(
ChooseRestaurantModel
model
){
return
model
;
}
}
\ No newline at end of file
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/contract/ChooseRestaurantContract.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
ui
.
activity
.
mvp
.
contract
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
public
interface
ChooseRestaurantContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/model/ChooseRestaurantModel.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
ui
.
activity
.
mvp
.
model
;
import
android.app.Application
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.di.scope.ActivityScope
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.ChooseRestaurantContract
;
@ActivityScope
public
class
ChooseRestaurantModel
extends
BaseModel
implements
ChooseRestaurantContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
ChooseRestaurantModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
}
\ No newline at end of file
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/presenter/ChooseRestaurantPresenter.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
ui
.
activity
.
mvp
.
presenter
;
import
android.app.Application
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.ChooseRestaurantContract
;
@ActivityScope
public
class
ChooseRestaurantPresenter
extends
BasePresenter
<
ChooseRestaurantContract
.
Model
,
ChooseRestaurantContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
@Inject
public
ChooseRestaurantPresenter
(
ChooseRestaurantContract
.
Model
model
,
ChooseRestaurantContract
.
View
rootView
)
{
super
(
model
,
rootView
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mErrorHandler
=
null
;
this
.
mAppManager
=
null
;
this
.
mImageLoader
=
null
;
this
.
mApplication
=
null
;
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/ChooseRestaurantActivity.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
ui
.
activity
.
mvp
.
ui
.
activity
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
com.gingersoft.gsa.cloud.login.R
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.component.DaggerChooseRestaurantComponent
;
import
com.jess.arms.base.BaseActivity
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.di.module.ChooseRestaurantModule
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.contract.ChooseRestaurantContract
;
import
com.gingersoft.gsa.cloud.login.mvp.ui.activity.mvp.presenter.ChooseRestaurantPresenter
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
public
class
ChooseRestaurantActivity
extends
BaseActivity
<
ChooseRestaurantPresenter
>
implements
ChooseRestaurantContract
.
View
{
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerChooseRestaurantComponent
//如找不到该类,请编译一下项目
.
builder
()
.
appComponent
(
appComponent
)
.
chooseRestaurantModule
(
new
ChooseRestaurantModule
(
this
))
.
build
()
.
inject
(
this
);
}
@Override
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
return
R
.
layout
.
activity_choose_restaurant
;
//如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
}
@Override
public
void
initIntent
()
{
}
@Override
public
void
initTopBar
()
{
}
@Override
public
void
initLanguage
()
{
}
@Override
public
void
initLayoutParams
()
{
}
@Override
public
void
initLayoutVisible
()
{
}
@Override
public
void
showLoading
(
String
message
)
{
}
@Override
public
void
hideLoading
()
{
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
snackbarText
(
message
);
}
@Override
public
void
launchActivity
(
@NonNull
Intent
intent
)
{
checkNotNull
(
intent
);
ArmsUtils
.
startActivity
(
intent
);
}
@Override
public
void
killMyself
()
{
finish
();
}
}
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/LoginActivity.java
View file @
738da8ae
...
@@ -7,6 +7,7 @@ import android.text.Editable;
...
@@ -7,6 +7,7 @@ import android.text.Editable;
import
android.text.TextWatcher
;
import
android.text.TextWatcher
;
import
android.text.method.HideReturnsTransformationMethod
;
import
android.text.method.HideReturnsTransformationMethod
;
import
android.text.method.PasswordTransformationMethod
;
import
android.text.method.PasswordTransformationMethod
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.View
;
import
android.view.WindowManager
;
import
android.view.WindowManager
;
import
android.widget.CheckBox
;
import
android.widget.CheckBox
;
...
@@ -15,7 +16,6 @@ import android.widget.ImageView;
...
@@ -15,7 +16,6 @@ import android.widget.ImageView;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
com.gingersoft.gsa.cloud.base.utils.StatusBarUtil
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.log.LogUtil
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
...
@@ -96,15 +96,15 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
...
@@ -96,15 +96,15 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
@Override
@Override
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
StatusBarUtil
.
setTransparent
(
this
);
//
StatusBarUtil.setTransparent(this);
StatusBarUtil
.
setDarkMode
(
this
);
//
StatusBarUtil.setDarkMode(this);
getWindow
().
setSoftInputMode
(
WindowManager
.
LayoutParams
.
SOFT_INPUT_ADJUST_PAN
);
//SOFT_INPUT_ADJUST_NOTHING
getWindow
().
setSoftInputMode
(
WindowManager
.
LayoutParams
.
SOFT_INPUT_ADJUST_PAN
);
//SOFT_INPUT_ADJUST_NOTHING
return
R
.
layout
.
user_login_activity_login
;
//如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
return
R
.
layout
.
user_login_activity_login
;
//如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
}
@Override
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
((
ImageView
)
findViewById
(
R
.
id
.
iv_top_bg
)).
setAdjustViewBounds
(
true
);
((
ImageView
)
findViewById
(
R
.
id
.
iv_top_bg
)).
setAdjustViewBounds
(
true
);
mPresenter
.
requestExternalStoragePermission
();
mPresenter
.
requestExternalStoragePermission
();
//顯示記住的登錄名
//顯示記住的登錄名
if
(!
Objects
.
equals
(
SPUtils
.
get
(
mContext
,
UserConstans
.
LOGIN_USERNAME
,
""
),
""
))
{
if
(!
Objects
.
equals
(
SPUtils
.
get
(
mContext
,
UserConstans
.
LOGIN_USERNAME
,
""
),
""
))
{
...
@@ -169,7 +169,7 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
...
@@ -169,7 +169,7 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
@Override
@Override
public
void
onTextChanged
(
CharSequence
s
,
int
start
,
int
before
,
int
count
)
{
public
void
onTextChanged
(
CharSequence
s
,
int
start
,
int
before
,
int
count
)
{
if
(
edPwd
.
getText
()
!=
null
&&
edAccount
.
getText
().
toString
().
equals
(
""
))
{
if
(
edPwd
.
getText
()
!=
null
&&
edAccount
.
getText
()
!=
null
&&
edAccount
.
getText
()
.
toString
().
equals
(
""
))
{
icClearAccount
.
setVisibility
(
View
.
GONE
);
icClearAccount
.
setVisibility
(
View
.
GONE
);
}
else
{
}
else
{
icClearAccount
.
setVisibility
(
View
.
VISIBLE
);
icClearAccount
.
setVisibility
(
View
.
VISIBLE
);
...
@@ -178,6 +178,14 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
...
@@ -178,6 +178,14 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
@Override
@Override
public
void
afterTextChanged
(
Editable
s
)
{
public
void
afterTextChanged
(
Editable
s
)
{
String
str
=
s
.
toString
();
if
(
str
.
contains
(
"/r"
)
||
str
.
contains
(
"\n"
))
{
edAccount
.
setText
(
str
.
replace
(
"/r"
,
""
).
replace
(
"\n"
,
""
));
edPwd
.
requestFocus
();
if
(
edPwd
.
getText
()
!=
null
)
{
edPwd
.
setSelection
(
edPwd
.
getText
().
length
());
}
}
setLoginBtnState
();
setLoginBtnState
();
}
}
});
});
...
@@ -303,7 +311,8 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
...
@@ -303,7 +311,8 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
//保存登陸信息
//保存登陸信息
// saveLoginInfo(loginBean);
// saveLoginInfo(loginBean);
}
}
//158 - 189
//158 - 189
@Override
@Override
public
void
showChooseRestaurantDialog
(
List
<
BrandsBean
.
BrandsData
>
brandsBeans
,
List
<
BrandsBean
.
BrandsData
>
brands
)
{
public
void
showChooseRestaurantDialog
(
List
<
BrandsBean
.
BrandsData
>
brandsBeans
,
List
<
BrandsBean
.
BrandsData
>
brands
)
{
new
ChooseRestaurantDialog
.
BottomListSheetBuilder
(
mContext
)
new
ChooseRestaurantDialog
.
BottomListSheetBuilder
(
mContext
)
...
...
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/activity/mvp/ui/activity/WelcomeActivity.java
View file @
738da8ae
...
@@ -15,10 +15,8 @@ import android.widget.TextView;
...
@@ -15,10 +15,8 @@ import android.widget.TextView;
import
androidx.annotation.NonNull
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.core.content.ContextCompat
;
import
androidx.viewpager2.widget.ViewPager2
;
import
androidx.viewpager2.widget.ViewPager2
;
import
com.gingersoft.gsa.cloud.base.utils.StatusBarUtil
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.encryption.Aes
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.base.utils.other.SPUtils
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
import
com.gingersoft.gsa.cloud.constans.UserConstans
;
...
@@ -80,7 +78,6 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
...
@@ -80,7 +78,6 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
@Override
@Override
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
public
int
initView
(
@Nullable
Bundle
savedInstanceState
)
{
StatusBarUtil
.
setColorNoTranslucent
(
this
,
ContextCompat
.
getColor
(
this
,
R
.
color
.
white
));
return
R
.
layout
.
activity_welcome
;
//如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
return
R
.
layout
.
activity_welcome
;
//如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
}
}
...
...
login-module/src/main/java/com/gingersoft/gsa/cloud/login/mvp/ui/adapter/LoginLimitAdapter.java
0 → 100644
View file @
738da8ae
package
com
.
gingersoft
.
gsa
.
cloud
.
login
.
mvp
.
ui
.
adapter
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.gsa.cloud.base.utils.time.TimeUtil
;
import
com.gingersoft.gsa.cloud.login.R
;
import
com.gingersoft.gsa.cloud.login.mvp.bean.LoginLimitBean
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
java.util.List
;
public
class
LoginLimitAdapter
extends
BaseQuickAdapter
<
LoginLimitBean
,
BaseViewHolder
>
{
public
LoginLimitAdapter
(
@Nullable
List
<
LoginLimitBean
>
data
)
{
super
(
R
.
layout
.
login_limit_item
,
data
);
addChildClickViewIds
(
R
.
id
.
tv_login_limit_operation
);
}
@Override
protected
void
convert
(
@NotNull
BaseViewHolder
baseViewHolder
,
LoginLimitBean
loginLimitBean
)
{
baseViewHolder
.
setText
(
R
.
id
.
tv_login_limit_account
,
loginLimitBean
.
getUserName
());
baseViewHolder
.
setText
(
R
.
id
.
tv_login_limit_time
,
TimeUtil
.
getStringByFormat
(
loginLimitBean
.
getDateTime
(),
TimeUtil
.
dateFormatYMDHMS
));
}
}
login-module/src/main/res/drawable/shape_topleft_topright.xml
0 → 100644
View file @
738da8ae
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<corners
android:topLeftRadius=
"@dimen/dp_8"
android:topRightRadius=
"@dimen/dp_8"
/>
<solid
android:color=
"@color/white"
/>
</shape>
\ No newline at end of file
login-module/src/main/res/layout/activity_choose_restaurant.xml
0 → 100644
View file @
738da8ae
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
>
</LinearLayout>
\ No newline at end of file
login-module/src/main/res/layout/activity_welcome.xml
View file @
738da8ae
...
@@ -2,13 +2,13 @@
...
@@ -2,13 +2,13 @@
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:
background=
"@color/white
"
android:
layout_height=
"match_parent
"
android:
layout_height=
"match_parent
"
>
android:
background=
"@color/white
"
>
<RelativeLayout
<RelativeLayout
android:id=
"@+id/content_view"
android:id=
"@+id/content_view"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_cont
ent"
android:layout_height=
"match_par
ent"
app:layout_constraintTop_toTopOf=
"parent"
>
app:layout_constraintTop_toTopOf=
"parent"
>
<TextView
<TextView
...
@@ -40,9 +40,9 @@
...
@@ -40,9 +40,9 @@
android:layout_marginTop=
"@dimen/dp_30"
android:layout_marginTop=
"@dimen/dp_30"
android:drawableTop=
"@mipmap/ic_launcher"
android:drawableTop=
"@mipmap/ic_launcher"
android:text=
"Ricepon POS"
android:text=
"Ricepon POS"
android:textSize=
"@dimen/sp_16"
android:textColor=
"@color/theme_color"
android:textColor=
"@color/theme_color"
android:textStyle=
"bold"
/>
android:textSize=
"@dimen/sp_16"
android:textStyle=
"bold"
/>
<ImageView
<ImageView
android:id=
"@+id/iv_welcome_bottom"
android:id=
"@+id/iv_welcome_bottom"
...
@@ -53,7 +53,6 @@
...
@@ -53,7 +53,6 @@
android:src=
"@mipmap/png_welcome_bottom"
/>
android:src=
"@mipmap/png_welcome_bottom"
/>
</RelativeLayout>
</RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/cl_guide_layout"
android:id=
"@+id/cl_guide_layout"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
...
...
login-module/src/main/res/layout/login_limit_dialog_layout.xml
0 → 100644
View file @
738da8ae
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@drawable/shape_topleft_topright"
android:paddingBottom=
"@dimen/dp_30"
android:orientation=
"vertical"
>
<ImageView
android:id=
"@+id/iv_login_limit_back"
android:layout_width=
"wrap_content"
android:layout_height=
"@dimen/dp_40"
android:paddingLeft=
"@dimen/dp_10"
android:paddingRight=
"@dimen/dp_10"
android:src=
"@drawable/ic_black_back"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_1"
android:background=
"@color/color_ccc"
/>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:paddingTop=
"@dimen/dp_15"
android:paddingBottom=
"@dimen/dp_10"
android:orientation=
"horizontal"
>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"當前賬戶"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_16"
/>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"2"
android:gravity=
"center"
android:text=
"登錄時間"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_16"
/>
<TextView
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"操作"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_16"
/>
</LinearLayout>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_login_limit"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</LinearLayout>
\ No newline at end of file
login-module/src/main/res/layout/login_limit_item.xml
0 → 100644
View file @
738da8ae
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
xmlns:tools=
"http://schemas.android.com/tools"
android:orientation=
"horizontal"
android:gravity=
"center_vertical"
android:paddingBottom=
"@dimen/dp_10"
>
<TextView
android:id=
"@+id/tv_login_limit_account"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
android:gravity=
"center"
android:text=
"當前賬戶"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_16"
/>
<TextView
android:id=
"@+id/tv_login_limit_time"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"2"
android:gravity=
"center"
tools:text=
"登錄時間"
android:textColor=
"@color/theme_333_color"
android:textSize=
"@dimen/dp_14"
/>
<FrameLayout
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_weight=
"1"
>
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id=
"@+id/tv_login_limit_operation"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:background=
"@color/theme_color"
android:gravity=
"center"
android:paddingRight=
"@dimen/dp_10"
android:paddingTop=
"@dimen/dp_5"
android:paddingBottom=
"@dimen/dp_5"
android:paddingLeft=
"@dimen/dp_10"
android:text=
"踢出"
android:textColor=
"@color/white"
android:textSize=
"@dimen/dp_16"
/>
</FrameLayout>
</LinearLayout>
\ No newline at end of file
main-module/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/SettlementReportActivity.java
View file @
738da8ae
...
@@ -230,6 +230,8 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
...
@@ -230,6 +230,8 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
private
void
showSendSettlementDialog
()
{
private
void
showSendSettlementDialog
()
{
QMUIDialog
.
MessageDialogBuilder
dialogBuilder
=
new
QMUIDialog
.
MessageDialogBuilder
(
this
);
QMUIDialog
.
MessageDialogBuilder
dialogBuilder
=
new
QMUIDialog
.
MessageDialogBuilder
(
this
);
dialogBuilder
.
setTitle
(
"溫馨提示"
);
dialogBuilder
.
setTitle
(
"溫馨提示"
);
dialogBuilder
.
setMessage
(
"是否確認清機"
);
dialogBuilder
.
setMessage
(
"是否確認清機"
);
dialogBuilder
.
addAction
(
0
,
"確認"
,
QMUIDialogAction
.
ACTION_PROP_NEGATIVE
,
(
dialog
,
index
)
->
{
dialogBuilder
.
addAction
(
0
,
"確認"
,
QMUIDialogAction
.
ACTION_PROP_NEGATIVE
,
(
dialog
,
index
)
->
{
mPresenter
.
sendSettlement
(
type
);
mPresenter
.
sendSettlement
(
type
);
...
...
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/data/model/bean/MessageBean.kt
0 → 100644
View file @
738da8ae
package
com.gingersoft.gsa.other_order_mode.data.model.bean
data class
MessageBean
(
val
code
:
String
,
val
errorMsg
:
String
,
val
success
:
Boolean
=
false
,
val
sysTime
:
Long
=
0
,
val
data
:
Any
?
=
null
)
\ No newline at end of file
other_order_mode/src/main/java/com/gingersoft/gsa/other_order_mode/ui/activity/OrderDetailsActivity.kt
View file @
738da8ae
...
@@ -319,7 +319,7 @@ class OrderDetailsActivity : BaseActivity() {
...
@@ -319,7 +319,7 @@ class OrderDetailsActivity : BaseActivity() {
cancelDialogForLoading
()
cancelDialogForLoading
()
if
(
it
)
{
if
(
it
)
{
finish
()
finish
()
ToastUtils
.
show
(
this
@OrderDetailsActivity
,
"
取消訂單成功
"
)
ToastUtils
.
show
(
this
@OrderDetailsActivity
,
"
訂單已取消
"
)
}
else
{
}
else
{
ToastUtils
.
show
(
this
@OrderDetailsActivity
,
"取消訂單失敗"
)
ToastUtils
.
show
(
this
@OrderDetailsActivity
,
"取消訂單失敗"
)
}
}
...
@@ -331,7 +331,7 @@ class OrderDetailsActivity : BaseActivity() {
...
@@ -331,7 +331,7 @@ class OrderDetailsActivity : BaseActivity() {
cancelDialogForLoading
()
cancelDialogForLoading
()
if
(
it
)
{
if
(
it
)
{
finish
()
finish
()
ToastUtils
.
show
(
this
@OrderDetailsActivity
,
"
取消訂單成功
"
)
ToastUtils
.
show
(
this
@OrderDetailsActivity
,
"
訂單已取消
"
)
}
else
{
}
else
{
ToastUtils
.
show
(
this
@OrderDetailsActivity
,
"取消訂單失敗"
)
ToastUtils
.
show
(
this
@OrderDetailsActivity
,
"取消訂單失敗"
)
}
}
...
...
other_order_mode/src/main/res/layout/activity_order_details.xml
View file @
738da8ae
...
@@ -92,7 +92,7 @@
...
@@ -92,7 +92,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margin=
"@dimen/other_order_info_dialog_content_marginLeft"
android:layout_margin=
"@dimen/other_order_info_dialog_content_marginLeft"
android:text=
"@{data.order_from==
2?@string/ricepon_order:@string/h5
_order}"
android:text=
"@{data.order_from==
7?@string/h5_order:@string/ricepon
_order}"
android:textSize=
"@dimen/dp_16"
android:textSize=
"@dimen/dp_16"
android:textStyle=
"normal"
/>
android:textStyle=
"normal"
/>
...
...
other_order_mode/src/main/res/layout/item_orderdetails_bill_info.xml
0 → 100644
View file @
738da8ae
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_marginTop=
"@dimen/dp_10"
android:paddingLeft=
"@dimen/other_order_info_dialog_content_marginLeft"
android:paddingRight=
"@dimen/other_order_info_dialog_content_marginLeft"
>
<TextView
android:id=
"@+id/tv_item_pay_name"
style=
"@style/otherOrder_bill_textStyle"
android:layout_width=
"0dp"
android:layout_weight=
"0.7"
android:gravity=
"right"
android:layout_height=
"wrap_content"
tools:text=
"餐盒費:"
/>
<TextView
android:id=
"@+id/tv_item_pay_amount"
style=
"@style/otherOrder_bill_info_textStyle"
android:layout_width=
"0dp"
android:layout_weight=
"0.3"
android:layout_height=
"wrap_content"
tools:text=
"$110"
android:layout_marginLeft=
"@dimen/dp_5"
android:gravity=
"right"
/>
</LinearLayout>
other_order_mode/src/main/res/layout/layout_order_info_dialog.xml
View file @
738da8ae
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:textSize=
"@dimen/dp_16"
android:textSize=
"@dimen/dp_16"
android:text=
"@{data.order_from==
2?@string/ricepon_order:@string/h5
_order}"
android:text=
"@{data.order_from==
7?@string/h5_order:@string/ricepon
_order}"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
...
...
other_order_mode/src/main/res/layout/layout_order_info_dialog_new.xml
View file @
738da8ae
...
@@ -65,7 +65,7 @@
...
@@ -65,7 +65,7 @@
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginLeft=
"@dimen/other_order_info_dialog_content_marginLeft"
android:layout_marginLeft=
"@dimen/other_order_info_dialog_content_marginLeft"
android:text=
"@{data.order_from==
2?@string/ricepon_order:@string/h5
_order}"
android:text=
"@{data.order_from==
7?@string/h5_order:@string/ricepon
_order}"
android:textSize=
"@dimen/dp_16"
android:textSize=
"@dimen/dp_16"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintLeft_toLeftOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
/>
...
...
qm-skin-maker/src/main/res/values/theme.xml
View file @
738da8ae
...
@@ -192,5 +192,4 @@
...
@@ -192,5 +192,4 @@
<item
name=
"app_skin_progress_bar_bg_color"
>
@color/qmui_config_color_gray_8
</item>
<item
name=
"app_skin_progress_bar_bg_color"
>
@color/qmui_config_color_gray_8
</item>
<item
name=
"app_skin_progress_bar_progress_color"
>
@color/qmui_config_color_gray_1
</item>
<item
name=
"app_skin_progress_bar_progress_color"
>
@color/qmui_config_color_gray_1
</item>
</style>
</style>
</resources>
</resources>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment