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
f18bbd45
Commit
f18bbd45
authored
Apr 08, 2021
by
宁斌
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1、新增會員優惠券頁面 2、處理報表圖表控件滑動衝突問題
parent
6030444d
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
69 changed files
with
2156 additions
and
280 deletions
+2156
-280
component-login/src/main/res/layout/activity_choose_restaurant.xml
+3
-2
component-main/src/main/java/com/gingersoft/gsa/cloud/main/ComponentMain.java
+1
-1
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/MainActivity.java
+0
-1
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/ReportActivity.java
+10
-1
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/BusinessReportFragment.java
+27
-37
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/HomeFragment.java
+3
-19
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/MyFragment.java
+0
-1
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/PaymentMethodReportFragment.java
+24
-0
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/SalesFragment.java
+25
-36
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/presenter/TableManagePresenter.java
+0
-3
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/BillDiscountComponent.java
+42
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/CouponComponent.java
+43
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/BillDiscountModule.java
+50
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/CouponModule.java
+54
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/MealStandModule.java
+90
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/TableModule.java
+0
-12
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/BillDiscountContract.java
+35
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/CouponContract.java
+51
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/MealStandContract.java
+5
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/OrderContentContract.java
+1
-1
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/BillDiscountModel.java
+59
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/CouponModel.java
+77
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/OrderContentModel.java
+6
-6
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/service/MemberService.java
+4
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
+2
-6
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BillDiscountPresenter.java
+70
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/CouponPresenter.java
+145
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
+36
-49
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
+55
-17
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderPayPresenter.java
+1
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
+23
-3
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderContentActivity.java
+5
-3
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/FoodAdapter.java
+2
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/FoodGroupAdapter.java
+6
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/AllOrderFragment.java
+0
-2
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/BillDiscountFragment.java
+187
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/CouponFragment.java
+228
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/DiscountDialogFragment.java
+248
-0
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/DiscountDialog.java
+0
-0
component-table/src/main/res/layout/fragment_bill_discount.xml
+13
-0
component-table/src/main/res/layout/fragment_container.xml
+9
-0
component-table/src/main/res/layout/fragment_coupon.xml
+21
-0
component-table/src/main/res/layout/table_activity_order_content.xml
+6
-0
component-table/src/main/res/layout/table_dialog_discout.xml
+14
-20
component-table/src/main/res/layout/table_stub_transfer_food.xml
+0
-2
component-webview/src/main/java/com/gingersoft/gsa/cloud/webview/mvp/ui/activity/WebActivity.java
+0
-0
component-webview/src/main/java/com/gingersoft/gsa/cloud/webview/mvp/ui/view/WebViewProgressBar.java
+1
-1
config.gradle
+1
-1
library-base/src/main/java/com/jess/arms/base/BaseDialogFragment.java
+0
-0
library-base/src/main/java/com/jess/arms/base/BaseFragment.java
+17
-17
library-base/src/main/java/com/jess/arms/base/delegate/ActivityDelegateImpl.java
+2
-9
library-base/src/main/java/com/jess/arms/base/delegate/FragmentDelegateImpl.java
+13
-1
library-base/src/main/java/com/jess/arms/base/delegate/IFragment.java
+7
-0
library-common/src/main/debug/AndroidManifest.xml
+39
-0
library-common/src/main/debug/res/values/styles.xml
+11
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/bean/LayoutInfoBean.java
+23
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/AbstractDiscount.java
+12
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/BillDiscount.java
+13
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/MemberCoupon.java
+41
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/loadsir/LoadsirUtil.java
+93
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/loadsir/LoadsirUtils.java
+0
-18
library-common/src/main/java/com/gingersoft/gsa/cloud/common/loadsir/TimeoutCallback.java
+0
-0
library-common/src/main/java/com/gingersoft/gsa/cloud/common/rxjava/ErrorHandleSingleSubscriber.java
+50
-0
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/request/MealOrderPayRequest.java
+22
-1
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/bean/PayMethod.java
+9
-9
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/AAChartCoreLib/AAChartConfiger/AAChartView.java
+6
-0
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/adapter/TagViewAdapter.java
+39
-0
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/bean/TagViewItem.java
+56
-0
library-ui/src/main/res/layout/item_tag_view.xml
+20
-0
No files found.
component-login/src/main/res/layout/activity_choose_restaurant.xml
View file @
f18bbd45
...
...
@@ -3,7 +3,6 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@color/theme_background_color"
android:orientation=
"vertical"
>
<com.qmuiteam.qmui.widget.QMUITopBar
...
...
@@ -16,5 +15,6 @@
android:id=
"@+id/section_layout"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:descendantFocusability=
"blocksDescendants"
/>
android:descendantFocusability=
"blocksDescendants"
android:background=
"@color/theme_background_color"
/>
</LinearLayout>
\ No newline at end of file
component-main/src/main/java/com/gingersoft/gsa/cloud/main/ComponentMain.java
View file @
f18bbd45
...
...
@@ -132,7 +132,7 @@ public class ComponentMain implements IComponent {
}
private
void
openActivity
(
CC
cc
)
{
Intent
intent
=
new
Intent
(
cc
.
getContext
(),
New
MainActivity
.
class
);
Intent
intent
=
new
Intent
(
cc
.
getContext
(),
MainActivity
.
class
);
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
);
cc
.
getContext
().
startActivity
(
intent
);
// CCUtil.createNavigateIntent(cc, NewMainActivity.class);
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/MainActivity.java
View file @
f18bbd45
...
...
@@ -87,7 +87,6 @@ public class MainActivity extends BaseFragmentActivity<MainPresenter> implements
return
HomeFragment
.
newInstance
();
case
1
:
return
ReportListFragment
.
newInstance
();
case
2
:
default
:
return
MyFragment
.
newInstance
();
}
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/ReportActivity.java
View file @
f18bbd45
...
...
@@ -4,11 +4,13 @@ import android.content.Intent;
import
android.os.Bundle
;
import
android.util.TypedValue
;
import
android.widget.TextView
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.core.content.ContextCompat
;
import
androidx.fragment.app.Fragment
;
import
androidx.viewpager.widget.ViewPager
;
import
com.gingersoft.gsa.cloud.main.R
;
import
com.gingersoft.gsa.cloud.main.R2
;
import
com.gingersoft.gsa.cloud.main.di.component.DaggerReportComponent
;
...
...
@@ -24,9 +26,12 @@ import com.jess.arms.base.BaseFragmentActivity;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
java.util.ArrayList
;
import
java.util.List
;
import
butterknife.BindView
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
...
...
@@ -54,6 +59,8 @@ public class ReportActivity extends BaseFragmentActivity<ReportPresenter> implem
private
TabFragmentAdapter
mTabFragmentAdapter
;
private
List
<
String
>
titles
;
private
BusinessReportFragment
businessReportFragment
;
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerReportComponent
//如找不到该类,请编译一下项目
...
...
@@ -84,8 +91,10 @@ public class ReportActivity extends BaseFragmentActivity<ReportPresenter> implem
titles
.
add
(
"銷售分析"
);
titles
.
add
(
"支付分析"
);
businessReportFragment
=
BusinessReportFragment
.
newInstance
();
List
<
Fragment
>
mFragments
=
new
ArrayList
<>();
mFragments
.
add
(
BusinessReportFragment
.
newInstance
()
);
mFragments
.
add
(
businessReportFragment
);
mFragments
.
add
(
SalesFragment
.
newInstance
());
mFragments
.
add
(
PaymentMethodReportFragment
.
newInstance
());
//实例化适配器
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/BusinessReportFragment.java
View file @
f18bbd45
...
...
@@ -4,6 +4,7 @@ import android.content.Intent;
import
android.os.Bundle
;
import
android.os.Message
;
import
android.view.LayoutInflater
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.LinearLayout
;
...
...
@@ -109,6 +110,9 @@ public class BusinessReportFragment extends BaseFragment<BusinessReportPresenter
private
int
manyDay
=
7
;
private
String
restaurantId
;
private
boolean
mChartFocus
;
public
static
BusinessReportFragment
newInstance
()
{
BusinessReportFragment
fragment
=
new
BusinessReportFragment
();
return
fragment
;
...
...
@@ -138,51 +142,37 @@ public class BusinessReportFragment extends BaseFragment<BusinessReportPresenter
mTvStartTime
.
setText
(
TimeUtils
.
getOldDate
(-
manyDay
+
1
));
mTvEndTime
.
setText
(
TimeUtils
.
getOldDate
(
0
));
//处理报表滑动过程中和页面滑动出现冲突
mLineChart
.
setOnTouchListener
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
v
,
MotionEvent
event
)
{
switch
(
event
.
getAction
())
{
case
MotionEvent
.
ACTION_DOWN
:
mLineChart
.
requestDisallowInterceptTouchEvent
(
true
);
break
;
case
MotionEvent
.
ACTION_POINTER_UP
:
mLineChart
.
requestDisallowInterceptTouchEvent
(
false
);
break
;
case
MotionEvent
.
ACTION_CANCEL
:
mLineChart
.
requestDisallowInterceptTouchEvent
(
false
);
break
;
}
return
false
;
}
});
}
@Override
public
void
onLazyInitView
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onLazyInitView
(
savedInstanceState
);
getInfo
();
}
/**
* 通过此方法可以使 Fragment 能够与外界做一些交互和通信, 比如说外部的 Activity 想让自己持有的某个 Fragment 对象执行一些方法,
* 建议在有多个需要与外界交互的方法时, 统一传 {@link Message}, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
* 方法中就可以 {@code switch} 做不同的操作, 这样就可以用统一的入口方法做多个不同的操作, 可以起到分发的作用
* <p>
* 调用此方法时请注意调用时 Fragment 的生命周期, 如果调用 {@link #setData(Object)} 方法时 {@link Fragment#onCreate(Bundle)} 还没执行
* 但在 {@link #setData(Object)} 里却调用了 Presenter 的方法, 是会报空的, 因为 Dagger 注入是在 {@link Fragment#onCreate(Bundle)} 方法中执行的
* 然后才创建的 Presenter, 如果要做一些初始化操作,可以不必让外部调用 {@link #setData(Object)}, 在 {@link #initData(Bundle)} 中初始化就可以了
* <p>
* Example usage:
* <pre>
* public void setData(@Nullable Object data) {
* if (data != null && data instanceof Message) {
* switch (((Message) data).what) {
* case 0:
* loadData(((Message) data).arg1);
* break;
* case 1:
* refreshUI();
* break;
* default:
* //do something
* break;
* }
* }
* }
*
* // call setData(Object):
* Message data = new Message();
* data.what = 0;
* data.arg1 = 1;
* fragment.setData(data);
* </pre>
*
* @param data 当不需要参数时 {@code data} 可以为 {@code null}
*/
@Override
public
void
setData
(
@Nullable
Object
data
)
{
}
@Override
public
void
showLoading
(
String
message
)
{
if
(
message
!=
null
)
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/HomeFragment.java
View file @
f18bbd45
...
...
@@ -40,6 +40,7 @@ import com.gingersoft.gsa.cloud.common.function.jump.ActivityJumpStrategy;
import
com.gingersoft.gsa.cloud.common.leaks.WeakHandler
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.common.service.ICommandService
;
import
com.gingersoft.gsa.cloud.common.service.IServiceManager
;
import
com.gingersoft.gsa.cloud.common.utils.AppDevices
;
import
com.gingersoft.gsa.cloud.common.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.common.utils.StytemUtils
;
...
...
@@ -251,25 +252,8 @@ public class HomeFragment extends BaseFragment<HomePresenter> implements HomeCon
}
private
void
initService
()
{
boolean
deliveryOrderServiceRunning
=
StytemUtils
.
isServiceRunning
(
"com.gingersoft.gsa.cloud.common.service.ICommandService"
,
_mActivity
);
if
(!
deliveryOrderServiceRunning
)
{
Intent
service
=
new
Intent
(
GsaCloudApplication
.
getAppContext
(),
ICommandService
.
class
);
service
.
putExtra
(
ICommandService
.
CONNECTION_TYPE
,
ICommandService
.
mCurrConnectionType
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
O
)
{
mContext
.
startForegroundService
(
service
);
}
else
{
mContext
.
startService
(
service
);
}
}
boolean
prjServiceRunning
=
StytemUtils
.
isServiceRunning
(
"com.joe.print.mvp.print.service.PrjService"
,
_mActivity
);
if
(!
prjServiceRunning
)
{
//開啟Prj打印服務
CC
.
obtainBuilder
(
ComponentName
.
COMPONENT_PRINT
)
.
setActionName
(
"openPrintService"
)
.
build
()
.
call
();
}
IServiceManager
.
startICommandService
(
GsaCloudApplication
.
getAppContext
());
IServiceManager
.
startPrjService
(
GsaCloudApplication
.
getAppContext
());
}
/**
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/MyFragment.java
View file @
f18bbd45
...
...
@@ -41,7 +41,6 @@ public class MyFragment extends BaseFragment<MyPresenter> implements MyContract.
@BindView
(
R2
.
id
.
main_personal_center_rv
)
RecyclerView
rvMyList
;
public
static
MyFragment
newInstance
()
{
MyFragment
fragment
=
new
MyFragment
();
return
fragment
;
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/PaymentMethodReportFragment.java
View file @
f18bbd45
...
...
@@ -5,6 +5,7 @@ import android.graphics.Color;
import
android.os.Bundle
;
import
android.os.Message
;
import
android.view.LayoutInflater
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.TextView
;
...
...
@@ -108,6 +109,29 @@ public class PaymentMethodReportFragment extends BaseFragment<PaymentMethodRepor
mTvStartTime
.
setText
(
TimeUtils
.
getOldDate
(-
7
));
mTvEndTime
.
setText
(
TimeUtils
.
getOldDate
(
0
));
//处理报表滑动过程中和页面滑动出现冲突
chart
.
setOnTouchListener
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
v
,
MotionEvent
event
)
{
switch
(
event
.
getAction
())
{
case
MotionEvent
.
ACTION_DOWN
:
chart
.
requestDisallowInterceptTouchEvent
(
true
);
break
;
case
MotionEvent
.
ACTION_POINTER_UP
:
chart
.
requestDisallowInterceptTouchEvent
(
false
);
break
;
case
MotionEvent
.
ACTION_CANCEL
:
chart
.
requestDisallowInterceptTouchEvent
(
false
);
break
;
}
return
false
;
}
});
}
@Override
public
void
onLazyInitView
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onLazyInitView
(
savedInstanceState
);
getPayMenthInfo
();
}
...
...
component-main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/fragment/SalesFragment.java
View file @
f18bbd45
...
...
@@ -5,6 +5,7 @@ import android.graphics.Color;
import
android.os.Bundle
;
import
android.os.Message
;
import
android.view.LayoutInflater
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.widget.LinearLayout
;
...
...
@@ -134,46 +135,34 @@ public class SalesFragment extends BaseFragment<SalesPresenter> implements Sales
mTvEndTime
.
setText
(
TimeUtils
.
getOldDate
(
0
));
startEndTimePickerView
.
setOnUpdateTimePicker
(
onUpdateTimePicker
);
//处理报表滑动过程中和页面滑动出现冲突
salesChart
.
setOnTouchListener
(
new
View
.
OnTouchListener
()
{
@Override
public
boolean
onTouch
(
View
v
,
MotionEvent
event
)
{
switch
(
event
.
getAction
())
{
case
MotionEvent
.
ACTION_DOWN
:
salesChart
.
requestDisallowInterceptTouchEvent
(
true
);
break
;
case
MotionEvent
.
ACTION_POINTER_UP
:
salesChart
.
requestDisallowInterceptTouchEvent
(
false
);
break
;
case
MotionEvent
.
ACTION_CANCEL
:
salesChart
.
requestDisallowInterceptTouchEvent
(
false
);
break
;
}
return
false
;
}
});
}
@Override
public
void
onLazyInitView
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onLazyInitView
(
savedInstanceState
);
getSaleReport
();
getDeliveryReport
();
}
/**
* 通过此方法可以使 Fragment 能够与外界做一些交互和通信, 比如说外部的 Activity 想让自己持有的某个 Fragment 对象执行一些方法,
* 建议在有多个需要与外界交互的方法时, 统一传 {@link Message}, 通过 what 字段来区分不同的方法, 在 {@link #setData(Object)}
* 方法中就可以 {@code switch} 做不同的操作, 这样就可以用统一的入口方法做多个不同的操作, 可以起到分发的作用
* <p>
* 调用此方法时请注意调用时 Fragment 的生命周期, 如果调用 {@link #setData(Object)} 方法时 {@link Fragment#onCreate(Bundle)} 还没执行
* 但在 {@link #setData(Object)} 里却调用了 Presenter 的方法, 是会报空的, 因为 Dagger 注入是在 {@link Fragment#onCreate(Bundle)} 方法中执行的
* 然后才创建的 Presenter, 如果要做一些初始化操作,可以不必让外部调用 {@link #setData(Object)}, 在 {@link #initData(Bundle)} 中初始化就可以了
* <p>
* Example usage:
* <pre>
* public void setData(@Nullable Object data) {
* if (data != null && data instanceof Message) {
* switch (((Message) data).what) {
* case 0:
* loadData(((Message) data).arg1);
* break;
* case 1:
* refreshUI();
* break;
* default:
* //do something
* break;
* }
* }
* }
*
* // call setData(Object):
* Message data = new Message();
* data.what = 0;
* data.arg1 = 1;
* fragment.setData(data);
* </pre>
*
* @param data 当不需要参数时 {@code data} 可以为 {@code null}
*/
@Override
public
void
setData
(
@Nullable
Object
data
)
{
...
...
component-manager/src/main/java/com/gingersoft/gsa/cloud/manager/mvp/presenter/TableManagePresenter.java
View file @
f18bbd45
...
...
@@ -64,12 +64,9 @@ public class TableManagePresenter extends BasePresenter<TableManageContract.Mode
private
GetTableTimer
tableTimer
;
private
Disposable
mGetTablesDataDisposable
;
private
TableManageActivity
IActivity
;
@Inject
public
TableManagePresenter
(
TableManageContract
.
Model
model
,
TableManageContract
.
View
rootView
)
{
super
(
model
,
rootView
);
this
.
IActivity
=
(
TableManageActivity
)
rootView
;
}
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/BillDiscountComponent.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
component
;
import
dagger.BindsInstance
;
import
dagger.Component
;
import
com.jess.arms.di.component.AppComponent
;
import
com.gingersoft.gsa.cloud.table.di.module.BillDiscountModule
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.BillDiscountContract
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.BillDiscountFragment
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:26
* <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>
* ================================================
*/
@FragmentScope
@Component
(
modules
=
BillDiscountModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
BillDiscountComponent
{
void
inject
(
BillDiscountFragment
fragment
);
@Component
.
Builder
interface
Builder
{
@BindsInstance
BillDiscountComponent
.
Builder
view
(
BillDiscountContract
.
View
view
);
BillDiscountComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
BillDiscountComponent
build
();
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/component/CouponComponent.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
component
;
import
dagger.BindsInstance
;
import
dagger.Component
;
import
dagger.Subcomponent
;
import
com.jess.arms.di.component.AppComponent
;
import
com.gingersoft.gsa.cloud.table.di.module.CouponModule
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.CouponContract
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.CouponFragment
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:28
* <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>
* ================================================
*/
@FragmentScope
@Component
(
modules
=
CouponModule
.
class
,
dependencies
=
AppComponent
.
class
)
public
interface
CouponComponent
{
void
inject
(
CouponFragment
fragment
);
@Component
.
Builder
interface
Builder
{
@BindsInstance
CouponComponent
.
Builder
view
(
CouponContract
.
View
view
);
CouponComponent
.
Builder
appComponent
(
AppComponent
appComponent
);
CouponComponent
build
();
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/BillDiscountModule.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
module
;
import
com.gingersoft.gsa.cloud.ui.adapter.TagViewAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.TagViewItem
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.FragmentScope
;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.Provides
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.BillDiscountContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.BillDiscountModel
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:26
* <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>
* ================================================
*/
@Module
public
abstract
class
BillDiscountModule
{
@Binds
abstract
BillDiscountContract
.
Model
bindBillDiscountModel
(
BillDiscountModel
model
);
@FragmentScope
@Provides
static
List
<
TagViewItem
>
provideBillDiscountList
(){
return
new
ArrayList
<>();
}
@FragmentScope
@Provides
static
TagViewAdapter
provideBillDiscountAdapter
(
List
<
TagViewItem
>
billDiscountList
){
return
new
TagViewAdapter
(
billDiscountList
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/CouponModule.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
module
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.ui.adapter.TagViewAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.TagViewItem
;
import
com.jess.arms.di.scope.ActivityScope
;
import
com.jess.arms.di.scope.FragmentScope
;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.Provides
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.CouponContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.CouponModel
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:28
* <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>
* ================================================
*/
@Module
public
abstract
class
CouponModule
{
@Binds
abstract
CouponContract
.
Model
bindCouponModel
(
CouponModel
model
);
@FragmentScope
@Provides
static
List
<
TagViewItem
>
provideMemberCouponList
(){
return
new
ArrayList
<>();
}
@FragmentScope
@Provides
static
TagViewAdapter
provideMemberCouponAdapter
(
List
<
TagViewItem
>
memberCouponList
){
return
new
TagViewAdapter
(
memberCouponList
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/MealStandModule.java
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
di
.
module
;
import
android.content.Context
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
import
com.gingersoft.gsa.cloud.database.bean.Modifier
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.MealStandContract
;
import
com.gingersoft.gsa.cloud.table.mvp.model.MealStandModel
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.DiscountAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.FoodGroupAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ModifierAdapter
;
import
com.jess.arms.di.scope.ActivityScope
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
dagger.Binds
;
import
dagger.Module
;
import
dagger.Provides
;
/**
...
...
@@ -25,4 +45,73 @@ public abstract class MealStandModule {
@Binds
abstract
MealStandContract
.
Model
bindMealStandModel
(
MealStandModel
model
);
@ActivityScope
@Provides
@Named
(
"foodGroupList"
)
static
List
<
Food
>
provideFoodGroupList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
@Named
(
"foodList"
)
static
List
<
Food
>
provideFoodList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
List
<
ComboItem
>
provideFoodCombo
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
List
<
Modifier
>
provideModifierList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
List
<
Discount
>
provideDiscountList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
List
<
SoldoutCtrFood
>
provideSoldoutCtrList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
FoodGroupAdapter
provideFoodGroupAdapter
(
MealStandContract
.
View
IView
,
@Named
(
"foodGroupList"
)
List
<
Food
>
foodGroupList
)
{
return
new
FoodGroupAdapter
(
IView
.
getActivity
(),
foodGroupList
,
IView
.
getFromType
());
}
@ActivityScope
@Provides
static
FoodAdapter
provideFoodAdapter
(
MealStandContract
.
View
IView
,
@Named
(
"foodList"
)
List
<
Food
>
foodList
)
{
return
new
FoodAdapter
(
IView
.
getActivity
(),
foodList
,
IView
.
getFromType
());
}
@ActivityScope
@Provides
static
ComboAdapter
provideComboAdapter
(
MealStandContract
.
View
IView
,
List
<
ComboItem
>
comboItemList
)
{
return
new
ComboAdapter
(
IView
.
getActivity
(),
comboItemList
);
}
@ActivityScope
@Provides
static
ModifierAdapter
provideModifierAdapter
(
MealStandContract
.
View
IView
,
List
<
Modifier
>
modifierList
)
{
return
new
ModifierAdapter
(
IView
.
getActivity
(),
modifierList
);
}
@ActivityScope
@Provides
static
DiscountAdapter
provideDiscountAdapter
(
MealStandContract
.
View
IView
,
List
<
Discount
>
discountList
)
{
return
new
DiscountAdapter
(
IView
.
getActivity
(),
discountList
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/di/module/TableModule.java
View file @
f18bbd45
...
...
@@ -35,15 +35,4 @@ public abstract class TableModule {
@Binds
abstract
TableContract
.
Model
bindTableModel
(
TableModel
model
);
@ActivityScope
@Provides
static
List
<
Food
>
provideFoodList
()
{
return
new
ArrayList
<>();
}
@ActivityScope
@Provides
static
FoodAdapter
provideFoodAdapter
(
Context
context
,
List
<
Food
>
foodList
,
int
fromType
)
{
return
new
FoodAdapter
(
context
,
foodList
,
fromType
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/BillDiscountContract.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
contract
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
import
com.kingja.loadsir.callback.Callback
;
import
java.util.List
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:26
* <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
BillDiscountContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
void
returnBillCoupon
(
List
<
Discount
>
discounts
);
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
List
<
Discount
>
queryDB_DiscountList
(
byte
discountScope
,
byte
discountType
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/CouponContract.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
contract
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
import
com.kingja.loadsir.callback.Callback
;
import
com.kingja.loadsir.core.LoadService
;
import
com.kingja.loadsir.core.LoadSir
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
import
retrofit2.http.Query
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:28
* <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
CouponContract
{
//对于经常使用的关于UI的方法可以定义到IView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
IView
{
void
returnMemberCouponList
(
List
<
MemberCoupon
>
memberCoupons
);
void
showLoadSirSuccess
();
void
showLoadSirCall
(
Class
<?
extends
Callback
>
call
);
LoadService
getLoadService
();
}
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
IModel
{
Single
<
List
<
MemberCoupon
>>
getMemberWalletList
(
int
brandId
,
long
memberId
,
long
limitType
,
long
pageIndex
,
long
pageSize
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/MealStandContract.java
View file @
f18bbd45
...
...
@@ -5,6 +5,7 @@ import android.widget.BaseAdapter;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.database.bean.ComboItem
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.bean.Food
;
...
...
@@ -104,10 +105,13 @@ public interface MealStandContract {
void
setMealRvScrollToPosition
(
int
position
);
List
<
Food
>
getFoodGroupList
();
Activity
getActivity
();
void
setModifierTop
(
int
Margins
);
int
getFromType
(
);
void
setModifierTop
(
int
Margins
);
void
setCustomFoodDialog
(
int
customType
,
OrderDetail
foodItem
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/contract/OrderContentContract.java
View file @
f18bbd45
...
...
@@ -72,7 +72,7 @@ public interface OrderContentContract {
//Model层定义接口,外部只需关心Model返回的数据,无需关心内部细节,即是否使用缓存
interface
Model
extends
BaseOrderContract
.
Model
{
List
<
Discount
>
queryDB_DiscountList
(
byte
discountScope
,
byte
discountType
);
//
List<Discount> queryDB_DiscountList(byte discountScope, byte discountType);
Observable
<
BaseOrderResponse
>
createOrder
(
RequestBody
requestBody
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/BillDiscountModel.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
model
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.database.utils.DiscountDaoUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.model.utils.MealConditionFilterUtils
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.di.scope.FragmentScope
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.BillDiscountContract
;
import
java.util.List
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:26
* <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>
* ================================================
*/
@FragmentScope
public
class
BillDiscountModel
extends
BaseModel
implements
BillDiscountContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
BillDiscountModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
@Override
public
List
<
Discount
>
queryDB_DiscountList
(
byte
discountScope
,
byte
discountType
)
{
DiscountDaoUtils
discountDaoUtils
=
new
DiscountDaoUtils
(
mApplication
);
List
<
Discount
>
discountList
=
discountDaoUtils
.
queryDiscountByQueryBuilder
();
return
MealConditionFilterUtils
.
discountConditionFilter
(
discountList
,
discountScope
,
discountType
);
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/CouponModel.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
model
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.common.utils.gson.GsonUtils
;
import
com.gingersoft.gsa.cloud.table.mvp.model.service.MealService
;
import
com.gingersoft.gsa.cloud.table.mvp.model.service.MemberService
;
import
com.google.gson.Gson
;
import
com.jess.arms.integration.IRepositoryManager
;
import
com.jess.arms.mvp.BaseModel
;
import
com.jess.arms.di.scope.FragmentScope
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.CouponContract
;
import
java.util.ArrayList
;
import
java.util.List
;
import
io.reactivex.Single
;
import
io.reactivex.functions.Function
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:28
* <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>
* ================================================
*/
@FragmentScope
public
class
CouponModel
extends
BaseModel
implements
CouponContract
.
Model
{
@Inject
Gson
mGson
;
@Inject
Application
mApplication
;
@Inject
public
CouponModel
(
IRepositoryManager
repositoryManager
)
{
super
(
repositoryManager
);
}
@Override
public
void
onDestroy
()
{
super
.
onDestroy
();
this
.
mGson
=
null
;
this
.
mApplication
=
null
;
}
@Override
public
Single
<
List
<
MemberCoupon
>>
getMemberWalletList
(
int
brandId
,
long
memberId
,
long
limitType
,
long
pageIndex
,
long
pageSize
)
{
return
mRepositoryManager
.
obtainRetrofitService
(
MemberService
.
class
)
.
getMemberWalletList
(
brandId
,
memberId
,
limitType
,
pageIndex
,
pageSize
)
.
map
(
new
Function
<
BaseResult
,
List
<
MemberCoupon
>>()
{
@Override
public
List
<
MemberCoupon
>
apply
(
BaseResult
result
)
throws
Exception
{
if
(
result
.
isSuccess
())
{
return
GsonUtils
.
jsonToList
(
result
.
getData
(),
MemberCoupon
.
class
);
}
else
{
return
new
ArrayList
<>();
}
}
});
}
}
\ No newline at end of file
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/OrderContentModel.java
View file @
f18bbd45
...
...
@@ -76,12 +76,12 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
.
loadOrder
(
orderId
);
}
@Override
public
List
<
Discount
>
queryDB_DiscountList
(
byte
discountScope
,
byte
discountType
)
{
DiscountDaoUtils
discountDaoUtils
=
new
DiscountDaoUtils
(
mApplication
);
List
<
Discount
>
discountList
=
discountDaoUtils
.
queryDiscountByQueryBuilder
();
return
MealConditionFilterUtils
.
discountConditionFilter
(
discountList
,
discountScope
,
discountType
);
}
//
@Override
//
public List<Discount> queryDB_DiscountList(byte discountScope, byte discountType) {
//
DiscountDaoUtils discountDaoUtils = new DiscountDaoUtils(mApplication);
//
List<Discount> discountList = discountDaoUtils.queryDiscountByQueryBuilder();
//
return MealConditionFilterUtils.discountConditionFilter(discountList,discountScope,discountType);
//
}
@Override
public
Observable
<
BaseOrderResponse
>
createOrder
(
RequestBody
requestBody
)
{
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/model/service/MemberService.java
View file @
f18bbd45
...
...
@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model.service;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
import
io.reactivex.Observable
;
import
io.reactivex.Single
;
import
me.jessyan.retrofiturlmanager.RetrofitUrlManager
;
import
retrofit2.http.GET
;
import
retrofit2.http.Headers
;
...
...
@@ -27,4 +28,7 @@ public interface MemberService {
@GET
(
"coupon/queryCoupon"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Observable
<
BaseResult
>
queryCoupon
(
@Query
(
"tableId"
)
int
tableId
,
@Query
(
"memberId"
)
Long
memberId
,
@Query
(
"couponMemberId"
)
long
couponMemberId
,
@Query
(
"couponNo"
)
String
couponNo
,
@Query
(
"restaurantId"
)
int
restaurantId
);
@Headers
({
"Domain-Name: ricepon_member"
})
@GET
(
"member/getMemberWalletList"
+
RetrofitUrlManager
.
IDENTIFICATION_PATH_SIZE
+
2
)
Single
<
BaseResult
>
getMemberWalletList
(
@Query
(
"brandId"
)
int
brandId
,
@Query
(
"memberId"
)
long
memberId
,
@Query
(
"limitType"
)
long
limitType
,
@Query
(
"pageIndex"
)
long
pageIndex
,
@Query
(
"pageSize"
)
long
pageSize
);
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BaseOrderPresenter.java
View file @
f18bbd45
...
...
@@ -145,8 +145,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
protected
String
roundingStr
=
"賬單小數"
;
private
final
String
noFoodDeliveryTip
=
"賬單沒有食品,是否開台?"
;
private
Disposable
disposable
;
public
abstract
void
createOrder
(
boolean
isPrint
,
Class
<?>
afterToActivity
);
...
...
@@ -203,9 +201,6 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
this
.
mErrorHandler
=
null
;
this
.
mAppManager
=
null
;
this
.
mApplication
=
null
;
if
(
disposable
!=
null
&&
!
disposable
.
isDisposed
())
{
disposable
.
dispose
();
}
}
private
void
initOrderAdapter
()
{
...
...
@@ -276,7 +271,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
LoganManager
.
w_tableMode
(
TAG
,
"合計金額="
+
wholeAmount
);
disposable
=
Observable
.
just
(
wholeAmount
)
Disposable
disposable
=
Observable
.
just
(
wholeAmount
)
.
subscribeOn
(
Schedulers
.
computation
())
/**
* 計算服務費(堂食)
...
...
@@ -404,6 +399,7 @@ public abstract class BaseOrderPresenter<M extends BaseOrderContract.Model, V ex
}
}
});
addDispose
(
disposable
);
}
/**
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/BillDiscountPresenter.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.order.order.BaseOrder
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.di.scope.FragmentScope
;
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.table.mvp.contract.BillDiscountContract
;
import
java.util.List
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:26
* <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>
* ================================================
*/
@FragmentScope
public
class
BillDiscountPresenter
extends
BasePresenter
<
BillDiscountContract
.
Model
,
BillDiscountContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
@Inject
public
BillDiscountPresenter
(
BillDiscountContract
.
Model
model
,
BillDiscountContract
.
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
queryBillDiscountList
()
{
List
<
Discount
>
discountList
;
if
(
BaseOrder
.
isCurrentOrderType
(
FoodSummaryConstans
.
TAKEAWAY_TYPE
))
{
discountList
=
mModel
.
queryDB_DiscountList
(
Discount
.
discount_scope_bill
,
Discount
.
ORDER_TYPE_TAKEAWAY
);
}
else
{
discountList
=
mModel
.
queryDB_DiscountList
(
Discount
.
discount_scope_bill
,
Discount
.
ORDER_TYPE_MEAL_STAND
);
}
mRootView
.
returnBillCoupon
(
discountList
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/CouponPresenter.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
presenter
;
import
android.app.Application
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.common.utils.JsonUtils
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.common.rxjava.ErrorHandleSingleSubscriber
;
import
com.gingersoft.gsa.cloud.table.mvp.model.bean.response.OrderManagerResponse
;
import
com.jess.arms.integration.AppManager
;
import
com.jess.arms.di.scope.FragmentScope
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.http.imageloader.ImageLoader
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
javax.inject.Inject
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.CouponContract
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.scwang.smartrefresh.layout.api.RefreshLayout
;
import
java.util.List
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:28
* <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>
* ================================================
*/
@FragmentScope
public
class
CouponPresenter
extends
BasePresenter
<
CouponContract
.
Model
,
CouponContract
.
View
>
{
@Inject
RxErrorHandler
mErrorHandler
;
@Inject
Application
mApplication
;
@Inject
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
//是否可以繼續上拉刷新
private
boolean
noMoreData
=
false
;
private
int
limitType
=
1
;
private
int
pageIndex
=
1
;
private
int
pageSize
=
20
;
@Inject
public
CouponPresenter
(
CouponContract
.
Model
model
,
CouponContract
.
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
getMemberWalletList
(
RefreshLayout
refreshLayout
,
boolean
isLoadMore
)
{
int
brandId
=
RestaurantInfoManager
.
newInstance
().
getBrandId
();
MemberInfo
memberInfo
=
DoshokuOrder
.
getInstance
().
getMemberInfo
();
long
memberId
=
0
;
if
(
memberInfo
!=
null
)
{
memberId
=
memberInfo
.
getId
();
}
mModel
.
getMemberWalletList
(
brandId
,
memberId
,
limitType
,
pageIndex
,
pageSize
)
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
disposable
->
{
if
(
refreshLayout
==
null
)
{
mRootView
.
showLoading
(
null
);
}
}
)
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(()
->
mRootView
.
hideLoading
())
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
ErrorHandleSingleSubscriber
<
List
<
MemberCoupon
>>(
mErrorHandler
,
mRootView
.
getLoadService
())
{
@Override
public
void
onSuccess
(
List
<
MemberCoupon
>
result
)
{
if
(
pageIndex
!=
0
)
{
//根據數據庫下標分頁
pageIndex
=
pageIndex
*
pageSize
;
}
if
(
result
.
size
()
>
0
)
{
if
(!
noMoreData
)
{
mRootView
.
returnMemberCouponList
(
result
);
mRootView
.
showLoadSirSuccess
();
}
if
(
result
.
size
()
<
pageSize
)
{
//沒有更多數據不能上拉刷新
noMoreData
=
true
;
}
else
{
noMoreData
=
false
;
}
}
else
{
if
(!
noMoreData
)
{
mRootView
.
showLoadSirCall
(
EmptyCallback
.
class
);
}
}
resetRefreshLayout
(
noMoreData
);
}
@Override
public
void
onError
(
Throwable
t
)
{
if
(
pageIndex
!=
0
)
{
//根據數據庫下標分頁
pageIndex
=
pageIndex
*
pageSize
;
}
resetRefreshLayout
(
false
);
}
private
void
resetRefreshLayout
(
boolean
noMoreData
)
{
if
(
refreshLayout
!=
null
)
{
if
(
isLoadMore
)
{
if
(
noMoreData
)
{
refreshLayout
.
setNoMoreData
(
true
);
}
refreshLayout
.
finishLoadMore
();
}
else
{
refreshLayout
.
finishRefresh
();
refreshLayout
.
resetNoMoreData
();
}
}
}
});
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/MealStandPresenter.java
View file @
f18bbd45
...
...
@@ -66,6 +66,7 @@ import java.util.ArrayList;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
io.reactivex.Observable
;
import
io.reactivex.ObservableEmitter
;
...
...
@@ -108,49 +109,37 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
ImageLoader
mImageLoader
;
@Inject
AppManager
mAppManager
;
// @Inject
FoodAdapter
mFoodAdapter
;
// @Inject
@Inject
@Named
(
"foodList"
)
List
<
Food
>
mFoodList
;
@Inject
List
<
ComboItem
>
mFoodComboList
;
//套餐细项数据
@Inject
List
<
Modifier
>
mModifierList
;
//细项数据
@Inject
List
<
Discount
>
mDiscountList
;
//折扣数据
@Inject
List
<
SoldoutCtrFood
>
mSoldoutCtrList
;
//沽清食品數據
@Inject
FoodAdapter
mFoodAdapter
;
@Inject
ComboAdapter
mComboAdapter
;
@Inject
ModifierAdapter
mModifierAdapter
;
@Inject
DiscountAdapter
mDiscountAdapter
;
private
MealStandActivity
IActivity
;
private
CancelFoodDialog
mCancelFoodDialog
;
private
ComboAdapter
mComboAdapter
;
private
ModifierAdapter
mModifierAdapter
;
private
DiscountAdapter
mDiscountAdapter
;
/**
* 食品数据
*/
private
List
<
Food
>
mFoodGroupList
=
new
ArrayList
<>();
/**
* 當前食品組下食品
*/
// private List<Food> mFoodList = new ArrayList<>();
/**
* 套餐细项数据
*/
private
List
<
ComboItem
>
mFoodComboList
=
new
ArrayList
<>();
private
List
<
Modifier
>
mModifierList
=
new
ArrayList
<>();
/**
* 折扣数据
*/
private
List
<
Discount
>
mDiscountList
=
new
ArrayList
<>();
/**
* 沽清食品數據
*/
private
List
<
SoldoutCtrFood
>
mSoldoutCtrList
=
new
ArrayList
<>();
private
MealDiscountAction
mMealDiscountAction
;
private
OrderDetail
mCurrentOrderDetailBean
;
private
boolean
RvMealClicked
;
@Inject
public
MealStandPresenter
(
MealStandContract
.
Model
model
,
MealStandContract
.
View
rootView
)
{
super
(
model
,
rootView
);
...
...
@@ -226,16 +215,15 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if
(
foodGroupList
!=
null
&&
foodGroupList
.
size
()
>
0
)
{
m
FoodGroupList
.
addAll
(
foodGroupList
);
m
RootView
.
getFoodGroupList
()
.
addAll
(
foodGroupList
);
Food
defalutFoodGroup
=
getDefalutFoodGroup
(
m
FoodGroupList
);
Food
defalutFoodGroup
=
getDefalutFoodGroup
(
m
RootView
.
getFoodGroupList
()
);
if
(
defalutFoodGroup
!=
null
)
{
//默認選中第一組
defalutFoodGroup
.
setSelected
(
true
);
}
IActivity
.
initFoodGroupView
(
m
FoodGroupList
);
IActivity
.
initFoodGroupView
(
m
RootView
.
getFoodGroupList
()
);
updateFoodSoldoutCtrData
();
...
...
@@ -246,14 +234,12 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
private
Food
getDefalutFoodGroup
(
List
<
Food
>
foodGroupList
)
{
Food
defalutFoodGroup
=
null
;
for
(
Food
food
:
foodGroupList
)
{
if
(
food
.
getInvisible
()
==
0
)
{
defalutFoodGroup
=
food
;
break
;
return
food
;
}
}
return
defalutFoodGroup
;
return
null
;
}
...
...
@@ -262,19 +248,18 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
mRootView
.
setSelectFoodAdapter
(
mSelectMealAdapter
);
}
if
(
mFoodAdapter
==
null
)
{
mFoodAdapter
=
new
FoodAdapter
(
IActivity
,
mFoodList
,
1
);
mRootView
.
setFoodAdapter
(
mFoodAdapter
);
}
if
(
mComboAdapter
==
null
)
{
mComboAdapter
=
new
ComboAdapter
(
IActivity
,
mFoodComboList
);
//
mComboAdapter = new ComboAdapter(IActivity, mFoodComboList);
mRootView
.
setComboAdapter
(
mComboAdapter
);
}
if
(
mModifierAdapter
==
null
)
{
mModifierAdapter
=
new
ModifierAdapter
(
IActivity
,
mModifierList
);
//
mModifierAdapter = new ModifierAdapter(IActivity, mModifierList);
mRootView
.
setModifierAdapter
(
mModifierAdapter
);
}
if
(
mDiscountAdapter
==
null
)
{
mDiscountAdapter
=
new
DiscountAdapter
(
IActivity
,
mDiscountList
);
//
mDiscountAdapter = new DiscountAdapter(IActivity, mDiscountList);
mRootView
.
setDiscountAdapter
(
mDiscountAdapter
);
}
}
...
...
@@ -544,6 +529,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
}).
subscribeOn
(
Schedulers
.
io
())
//在IO线程执行数据库处理操作
.
observeOn
(
AndroidSchedulers
.
mainThread
())
//在UI线程
.
compose
(
RxLifecycleUtils
.
bindToLifecycle
(
mRootView
))
.
subscribe
(
new
Observer
<
List
>()
{
private
int
nextCount
=
0
;
...
...
@@ -552,6 +538,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Override
public
void
onSubscribe
(
Disposable
d
)
{
addDispose
(
d
);
nextCount
=
0
;
}
...
...
@@ -1322,7 +1309,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public
void
setFoodSoldoutCtrData
(
List
<
SoldoutCtrFood
>
soldoutCtrFoods
)
{
for
(
SoldoutCtrFood
scc
:
soldoutCtrFoods
)
{
for
(
Food
foodGroupBean
:
m
FoodGroupList
)
{
for
(
Food
foodGroupBean
:
m
RootView
.
getFoodGroupList
()
)
{
if
(
scc
.
getType
()
==
FOOD_TYPE
&&
scc
.
getFoodId
()
!=
null
&&
foodGroupBean
.
getId
()
!=
null
&&
foodGroupBean
.
getId
().
equals
(
scc
.
getFoodId
()))
{
String
qtyName
=
scc
.
getQtyName
();
foodGroupBean
.
setMaxNumber
(
qtyName
);
...
...
@@ -1339,7 +1326,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
}
}
for
(
Food
foodGroupBean
:
m
FoodGroupList
)
{
for
(
Food
foodGroupBean
:
m
RootView
.
getFoodGroupList
()
)
{
if
(
foodGroupBean
.
getInvisible
()
==
2
)
{
String
qtyName
=
"暫停"
;
foodGroupBean
.
setMaxNumber
(
qtyName
);
...
...
@@ -1400,7 +1387,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
private
void
addFoodSoldoutCtrItem
(
List
<
SoldoutCtrFood
>
soldoutCtrFoods
)
{
for
(
Food
foodGroupBean
:
m
FoodGroupList
)
{
for
(
Food
foodGroupBean
:
m
RootView
.
getFoodGroupList
()
)
{
if
(
foodGroupBean
.
getInvisible
()
==
2
)
{
SoldoutCtrFood
soldoutCtrFood
=
new
SoldoutCtrFood
();
soldoutCtrFood
.
setType
((
byte
)
FOOD_GROUP_TYPE
);
...
...
@@ -1432,7 +1419,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}
private
void
clearFoodSoldoutCtrData
()
{
for
(
Food
foodGroupBean
:
m
FoodGroupList
)
{
for
(
Food
foodGroupBean
:
m
RootView
.
getFoodGroupList
()
)
{
foodGroupBean
.
setMaxNumber
(
""
);
foodGroupBean
.
setCurrentMaxNumber
(
""
);
}
...
...
@@ -1677,7 +1664,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public
void
updateOrderFoodNumber
()
{
setFoodBtnNumber
();
setFoodGroupBtnNumber
(
IActivity
.
getFoodGroupGridViewAdapter
(),
m
FoodGroupList
);
setFoodGroupBtnNumber
(
IActivity
.
getFoodGroupGridViewAdapter
(),
m
RootView
.
getFoodGroupList
()
);
mRootView
.
setOrderFoodCount
(
getOrderFoodNumber
());
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderContentPresenter.java
View file @
f18bbd45
...
...
@@ -5,6 +5,9 @@ import android.graphics.Color;
import
android.text.TextUtils
;
import
android.util.Log
;
import
android.view.View
;
import
android.view.Window
;
import
androidx.fragment.app.FragmentManager
;
import
com.billy.cc.core.component.CC
;
import
com.gingersoft.gsa.cloud.common.bean.BaseResult
;
...
...
@@ -12,6 +15,7 @@ import com.gingersoft.gsa.cloud.common.constans.ExpandConstant;
import
com.gingersoft.gsa.cloud.common.constans.FoodSummaryConstans
;
import
com.gingersoft.gsa.cloud.common.constans.GoldConstants
;
import
com.gingersoft.gsa.cloud.common.constans.PrintConstans
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.RestaurantInfoManager
;
import
com.gingersoft.gsa.cloud.common.core.restaurant.utils.RestaurantExpandInfoUtils
;
...
...
@@ -51,6 +55,7 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BillItemAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.OrderTopFunctionAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.SelectMealAdapter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.discount.DiscountDialogFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.DiscountDialog
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.SplitTableDialog
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog
;
...
...
@@ -61,6 +66,7 @@ import com.jess.arms.integration.AppManager;
import
com.jess.arms.utils.ArmsUtils
;
import
com.jess.arms.utils.RxLifecycleUtils
;
import
com.scwang.smartrefresh.layout.api.RefreshLayout
;
import
com.xuexiang.rxutil2.RxBindingUtils
;
import
com.xuexiang.rxutil2.rxjava.RxJavaUtils
;
import
java.util.ArrayList
;
...
...
@@ -75,8 +81,10 @@ import io.reactivex.annotations.NonNull;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.schedulers.Schedulers
;
import
leakcanary.internal.ForegroundService
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
me.yokeyword.fragmentation.anim.FragmentAnimator
;
import
okhttp3.FormBody
;
import
okhttp3.MediaType
;
import
okhttp3.RequestBody
;
...
...
@@ -806,12 +814,12 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
private
void
showDiscountDialog
()
{
if
(
mDiscountDialog
==
null
)
{
mDiscountDialog
=
new
DiscountDialog
.
Builder
(
IActivity
);
mDiscountDialog
.
setCanScan
(
true
);
mDiscountDialog
.
setOnClickListener
(
new
DiscountDialog
.
Builder
.
OnClickListener
()
{
if
(
IActivity
.
findFragment
(
DiscountDialogFragment
.
class
)
==
null
)
{
DiscountDialogFragment
dialogFragment
=
DiscountDialogFragment
.
newInstance
(
);
dialogFragment
.
setOnDiscountItemClickListener
(
new
DiscountDialogFragment
.
OnDiscountItemClickListener
()
{
@Override
public
void
on
Item
Click
(
Discount
item
,
int
position
)
{
public
void
on
BillDiscount
Click
(
Discount
item
,
int
position
)
{
if
(
item
.
getMinBillAmount
()
>
mShoppingCart
.
getWholeAmount
())
{
//小於最小賬單金額
mRootView
.
showMessage
(
"小於最小賬單金額"
+
cashStr
+
item
.
getMinBillAmount
()
+
" 無法使用此折扣"
);
...
...
@@ -819,23 +827,53 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
mNomalDiscountAction
.
setNomalDiscountList
(
mShoppingCart
.
getNomalDiscoutByMultyDiscountList
());
mNomalDiscountAction
.
action
(
item
);
dialogFragment
.
dismiss
();
}
@Override
public
void
onScan
()
{
toScanActivity
();
}
});
public
void
onCouponClick
(
MemberCoupon
item
,
int
position
)
{
if
(
item
.
getBillMinAmount
()
>
mShoppingCart
.
getWholeAmount
())
{
//小於最小賬單金額
mRootView
.
showMessage
(
"小於最小賬單金額"
+
cashStr
+
item
.
getBillMinAmount
()
+
" 無法使用此優惠券"
);
return
;
}
List
<
Discount
>
discountList
;
if
(
BaseOrder
.
isCurrentOrderType
(
FoodSummaryConstans
.
TAKEAWAY_TYPE
))
{
discountList
=
mModel
.
queryDB_DiscountList
(
Discount
.
discount_scope_bill
,
Discount
.
ORDER_TYPE_TAKEAWAY
);
}
else
{
discountList
=
mModel
.
queryDB_DiscountList
(
Discount
.
discount_scope_bill
,
Discount
.
ORDER_TYPE_MEAL_STAND
);
mNomalDiscountAction
.
setNomalDiscountList
(
mShoppingCart
.
getNomalDiscoutByMultyDiscountList
());
mNomalDiscountAction
.
action
(
item
.
castDiscount
());
dialogFragment
.
dismiss
();
}
mDiscountDialog
.
addItems
(
discountList
);
mDiscountDialog
.
build
().
show
();
});
dialogFragment
.
show
(
IActivity
.
getSupportFragmentManager
(),
"DiscountDialogFragment"
);
}
// if (mDiscountDialog == null) {
// mDiscountDialog = new DiscountDialog.Builder(IActivity);
// mDiscountDialog.setCanScan(true);
// mDiscountDialog.setOnClickListener(new DiscountDialog.Builder.OnClickListener() {
// @Override
// public void onItemClick(Discount item, int position) {
// if (item.getMinBillAmount() > mShoppingCart.getWholeAmount()) {
// //小於最小賬單金額
// mRootView.showMessage("小於最小賬單金額" + cashStr + item.getMinBillAmount() + " 無法使用此折扣");
// return;
// }
// mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
// mNomalDiscountAction.action(item);
// }
//
// @Override
// public void onScan() {
// toScanActivity();
// }
// });
// }
// List<Discount> discountList;
// if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
// discountList = mModel.queryDB_DiscountList(Discount.discount_scope_bill, Discount.ORDER_TYPE_TAKEAWAY);
// } else {
// discountList = mModel.queryDB_DiscountList(Discount.discount_scope_bill, Discount.ORDER_TYPE_MEAL_STAND);
// }
//
// mDiscountDialog.addItems(discountList);
// mDiscountDialog.build().show();
}
/**
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/presenter/OrderPayPresenter.java
View file @
f18bbd45
...
...
@@ -240,6 +240,7 @@ public class OrderPayPresenter extends BaseOrderPresenter<OrderPayContract.Model
whetherFreeService
=
payMethod
.
getWhetherFreeService
();
orderPay
.
setAmount
(
payMethod
.
getPayMoney
());
orderPay
.
setWhetherReportCount
(
payMethod
.
getWhetherReportCount
());
orderPay
.
setIntegralMultiple
(
payMethod
.
getIntegralMultiple
());
orderPay
.
setPayName
(
payMethod
.
getPayName
());
payRequest
.
getOrderPays
().
add
(
orderPay
);
}
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/MealStandActivity.java
View file @
f18bbd45
...
...
@@ -107,6 +107,9 @@ import java.util.ArrayList;
import
java.util.Arrays
;
import
java.util.List
;
import
javax.inject.Inject
;
import
javax.inject.Named
;
import
butterknife.BindView
;
import
butterknife.OnClick
;
import
butterknife.OnLongClick
;
...
...
@@ -281,7 +284,12 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
private
ImageView
[]
ivPoints
;
private
int
mPageIndex
;
private
int
totalPage
;
private
FoodGroupAdapter
mFoodGroupAdapter
;
@Inject
@Named
(
"foodGroupList"
)
List
<
Food
>
mFoodGroupList
;
@Inject
FoodGroupAdapter
mFoodGroupAdapter
;
private
PagerGridLayoutManager
mLayoutManager
;
private
static
final
int
FINISH
=
101
;
...
...
@@ -419,7 +427,9 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
PagerConfig
.
setShowLog
(
true
);
// 使用原生的 Adapter 即可
mFoodGroupAdapter
=
new
FoodGroupAdapter
(
this
,
foodGroupList
,
1
);
// mFoodGroupAdapter = new FoodGroupAdapter(this, foodGroupList, 1);
mFoodGroupAdapter
.
setFoodGroupList
(
mFoodGroupList
);
rv_food_group
.
setAdapter
(
mFoodGroupAdapter
);
mFoodGroupAdapter
.
setOnItemClickListener
(
new
FoodGroupAdapter
.
OnItemClickListener
()
{
@Override
...
...
@@ -1212,6 +1222,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
}
@Override
public
List
<
Food
>
getFoodGroupList
()
{
return
mFoodGroupList
;
}
@Override
public
void
initIntent
()
{
}
...
...
@@ -1274,6 +1289,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
return
this
;
}
@Override
public
int
getFromType
()
{
return
1
;
}
public
void
clearInput
()
{
keyView
.
clearInput
();
}
...
...
@@ -1414,7 +1434,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
if
(
customType
==
Food
.
CUSTOM_TYPE_101
)
{
foodItem
.
setProductName
(
name
);
}
if
(!
TextUtils
.
isEmpty
(
money
))
{
if
(!
TextUtils
.
isEmpty
(
money
))
{
foodItem
.
setUnit_price
(
Double
.
parseDouble
(
money
));
foodItem
.
setPrice
(
foodItem
.
getUnit_price
());
mPresenter
.
toAddFoodItem
(
foodItem
);
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/activity/OrderContentActivity.java
View file @
f18bbd45
...
...
@@ -171,7 +171,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
private
List
<
TableBean
.
DataBean
>
mTableList
;
private
DoshokuOrder
mDoshokuOrder
;
private
ShoppingCart
mShoppingCart
;
@Override
public
void
setupActivityComponent
(
@NonNull
AppComponent
appComponent
)
{
...
...
@@ -186,7 +185,6 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
protected
void
onCreate
(
@Nullable
Bundle
savedInstanceState
)
{
mDoshokuOrder
=
DoshokuOrder
.
getInstance
();
mShoppingCart
=
mDoshokuOrder
.
getShoppingCart
();
super
.
onCreate
(
savedInstanceState
);
//设置根布局颜色,当layout根布局是FrameLayout时直接使用merge标签,应用DecorView默认就是FrameLayout无需再套一层
getWindow
().
getDecorView
().
setBackgroundColor
(
ArmsUtils
.
getColor
(
mContext
,
R
.
color
.
theme_white_color
));
...
...
@@ -294,7 +292,11 @@ public class OrderContentActivity extends BaseFragmentActivity<OrderContentPrese
@Override
public
void
onBackPressedSupport
()
{
super
.
onBackPressedSupport
();
backPressed
();
if
(
mCurrentOperatType
==
OrderConentActionConstant
.
transfer_food_2
)
{
hideTransferFoodLayout
();
mCurrentOperatType
=
OrderConentActionConstant
.
order_conetnt_1
;
tv_action_name
.
setVisibility
(
View
.
GONE
);
}
}
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/FoodAdapter.java
View file @
f18bbd45
...
...
@@ -25,6 +25,8 @@ import com.jess.arms.utils.DeviceUtils;
import
java.util.List
;
import
javax.inject.Inject
;
import
butterknife.BindView
;
/**
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/adapter/meal/FoodGroupAdapter.java
View file @
f18bbd45
...
...
@@ -61,7 +61,13 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
this
.
mParentColWidth
=
(
int
)
(
DeviceUtils
.
getScreenWidth
(
context
)
/
foodGroupColumn
);
this
.
mParentColHeight
=
GsaCloudApplication
.
uiStyleConfiguration
.
getFoodGroupBtnHeightValue
();
this
.
mLayoutQtyHeight
=
GsaCloudApplication
.
uiStyleConfiguration
.
getLayoutQtyHeightValue
();
}
public
void
setFoodGroupList
(
List
<
Food
>
foodGroupList
)
{
if
(
foodGroupList
!=
null
)
{
mInfos
.
addAll
(
foodGroupList
);
notifyDataSetChanged
();
}
}
@Override
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/AllOrderFragment.java
View file @
f18bbd45
...
...
@@ -8,11 +8,9 @@ import android.os.Message;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.order.contract.OrderStatusContract
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
...
...
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/BillDiscountFragment.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
discount
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.listener.OnItemClickListener
;
import
com.gingersoft.gsa.cloud.common.loadsir.EmptyCallback
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerBillDiscountComponent
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.BillDiscountContract
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.BillDiscountPresenter
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity
;
import
com.gingersoft.gsa.cloud.ui.adapter.TagViewAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.TagViewItem
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.kingja.loadsir.callback.Callback
;
import
com.kingja.loadsir.core.LoadService
;
import
com.kingja.loadsir.core.LoadSir
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
import
butterknife.BindView
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:26
* <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
class
BillDiscountFragment
extends
BaseFragment
<
BillDiscountPresenter
>
implements
BillDiscountContract
.
View
{
@BindView
(
R2
.
id
.
rv_bill_discount
)
RecyclerView
rvBillDiscount
;
@Inject
List
<
TagViewItem
>
mBillDiscountList
;
@Inject
TagViewAdapter
mBillDiscountAdapter
;
private
LoadService
loadService
;
public
static
BillDiscountFragment
newInstance
()
{
BillDiscountFragment
fragment
=
new
BillDiscountFragment
();
return
fragment
;
}
@Override
public
void
setupFragmentComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerBillDiscountComponent
//如找不到该类,请编译一下项目
.
builder
()
.
appComponent
(
appComponent
)
.
view
(
this
)
.
build
()
.
inject
(
this
);
}
@Override
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
return
inflater
.
inflate
(
R
.
layout
.
fragment_bill_discount
,
container
,
false
);
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
loadService
=
LoadSir
.
getDefault
().
register
(
rvBillDiscount
);
initAdapter
();
mPresenter
.
queryBillDiscountList
();
}
private
void
initAdapter
()
{
rvBillDiscount
.
setLayoutManager
(
createLayoutManager
());
rvBillDiscount
.
setAdapter
(
mBillDiscountAdapter
);
mBillDiscountAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
if
(
onDiscountItemClickListener
!=
null
)
{
onDiscountItemClickListener
.
onItemClick
((
Discount
)
mBillDiscountList
.
get
(
position
).
getTargetObj
(),
position
);
}
});
}
private
RecyclerView
.
LayoutManager
createLayoutManager
()
{
return
new
GridLayoutManager
(
mContext
,
3
,
LinearLayoutManager
.
VERTICAL
,
false
)
{
@Override
public
RecyclerView
.
LayoutParams
generateDefaultLayoutParams
()
{
return
new
RecyclerView
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
);
}
};
}
@Override
public
void
setData
(
@Nullable
Object
data
)
{
}
@Override
public
void
showLoading
(
String
message
)
{
if
(
message
!=
null
)
LoadingDialog
.
showDialogForLoading
(
_mActivity
,
message
,
true
);
else
LoadingDialog
.
showDialogForLoading
(
_mActivity
);
}
@Override
public
void
hideLoading
()
{
LoadingDialog
.
cancelDialogForLoading
();
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
makeText
(
_mActivity
,
message
);
}
@Override
public
void
launchActivity
(
@NonNull
Intent
intent
)
{
if
(
intent
!=
null
)
{
ArmsUtils
.
startActivity
(
intent
);
}
}
@Override
public
void
killMyself
()
{
_mActivity
.
onBackPressedSupport
();
}
@Override
public
void
returnBillCoupon
(
List
<
Discount
>
discounts
)
{
List
<
TagViewItem
>
tagViewItems
=
castTagItem
(
discounts
);
if
(
tagViewItems
.
size
()
>
0
)
{
loadService
.
showSuccess
();
}
else
{
loadService
.
showCallback
(
EmptyCallback
.
class
);
}
if
(
mBillDiscountList
.
size
()
>
0
)
{
mBillDiscountList
.
clear
();
}
mBillDiscountList
.
addAll
(
tagViewItems
);
mBillDiscountAdapter
.
notifyDataSetChanged
();
}
private
List
<
TagViewItem
>
castTagItem
(
List
<
Discount
>
discountList
)
{
List
<
TagViewItem
>
tagViewItems
=
new
ArrayList
<>();
for
(
Discount
discount
:
discountList
)
{
TagViewItem
<
Discount
>
tagViewItem
=
new
TagViewItem
();
tagViewItem
.
setId
(
discount
.
getId
());
tagViewItem
.
setText
(
discount
.
getRemark
());
tagViewItem
.
setTargetObj
(
discount
);
tagViewItems
.
add
(
tagViewItem
);
}
return
tagViewItems
;
}
private
OnBillDiscountItemClickListener
onDiscountItemClickListener
;
public
void
setOnDiscountItemClickListener
(
OnBillDiscountItemClickListener
onDiscountItemClickListener
)
{
this
.
onDiscountItemClickListener
=
onDiscountItemClickListener
;
}
public
interface
OnBillDiscountItemClickListener
{
void
onItemClick
(
Discount
item
,
int
position
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/CouponFragment.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
discount
;
import
android.content.Intent
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.recyclerview.widget.GridLayoutManager
;
import
androidx.recyclerview.widget.LinearLayoutManager
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.common.loadsir.LoadsirUtil
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.di.component.DaggerCouponComponent
;
import
com.gingersoft.gsa.cloud.table.mvp.contract.CouponContract
;
import
com.gingersoft.gsa.cloud.table.mvp.presenter.CouponPresenter
;
import
com.gingersoft.gsa.cloud.ui.adapter.TagViewAdapter
;
import
com.gingersoft.gsa.cloud.ui.bean.TagViewItem
;
import
com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.kingja.loadsir.callback.Callback
;
import
com.kingja.loadsir.core.LoadService
;
import
com.kingja.loadsir.core.LoadSir
;
import
com.scwang.smartrefresh.layout.SmartRefreshLayout
;
import
com.scwang.smartrefresh.layout.api.RefreshLayout
;
import
com.scwang.smartrefresh.layout.listener.OnLoadMoreListener
;
import
com.scwang.smartrefresh.layout.listener.OnRefreshListener
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.inject.Inject
;
import
butterknife.BindView
;
import
static
com
.
jess
.
arms
.
utils
.
Preconditions
.
checkNotNull
;
/**
* ================================================
* Description:
* <p>
* Created by MVPArmsTemplate on 04/02/2021 17:28
* <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
class
CouponFragment
extends
BaseFragment
<
CouponPresenter
>
implements
CouponContract
.
View
{
@BindView
(
R2
.
id
.
refreshLayout
)
SmartRefreshLayout
refreshLayout
;
@BindView
(
R2
.
id
.
rv_coupon
)
RecyclerView
rvCoupon
;
@Inject
List
<
TagViewItem
>
mMemberCouponList
;
@Inject
TagViewAdapter
mMemberCouponAdapter
;
private
LoadService
loadService
;
public
static
CouponFragment
newInstance
()
{
CouponFragment
fragment
=
new
CouponFragment
();
return
fragment
;
}
@Override
public
void
setupFragmentComponent
(
@NonNull
AppComponent
appComponent
)
{
DaggerCouponComponent
//如找不到该类,请编译一下项目
.
builder
()
.
appComponent
(
appComponent
)
.
view
(
this
)
.
build
()
.
inject
(
this
);
}
@Override
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
return
inflater
.
inflate
(
R
.
layout
.
fragment_coupon
,
container
,
false
);
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
loadService
=
LoadSir
.
getDefault
().
register
(
refreshLayout
,
new
Callback
.
OnReloadListener
()
{
@Override
public
void
onReload
(
View
v
)
{
mPresenter
.
getMemberWalletList
(
null
,
true
);
}
});
initAdapter
();
initRefreshLayout
();
}
@Override
public
void
onLazyInitView
(
@Nullable
Bundle
savedInstanceState
)
{
super
.
onLazyInitView
(
savedInstanceState
);
mPresenter
.
getMemberWalletList
(
null
,
true
);
}
private
void
initAdapter
()
{
rvCoupon
.
setLayoutManager
(
createLayoutManager
());
rvCoupon
.
setAdapter
(
mMemberCouponAdapter
);
mMemberCouponAdapter
.
setOnItemClickListener
((
adapter
,
view
,
position
)
->
{
if
(
onCouponItemClickListener
!=
null
)
{
onCouponItemClickListener
.
onItemClick
((
MemberCoupon
)
mMemberCouponList
.
get
(
position
).
getTargetObj
(),
position
);
}
});
}
private
RecyclerView
.
LayoutManager
createLayoutManager
()
{
return
new
GridLayoutManager
(
mContext
,
3
,
LinearLayoutManager
.
VERTICAL
,
false
)
{
@Override
public
RecyclerView
.
LayoutParams
generateDefaultLayoutParams
()
{
return
new
RecyclerView
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
);
}
};
}
private
void
initRefreshLayout
()
{
refreshLayout
.
setOnRefreshListener
(
new
OnRefreshListener
()
{
@Override
public
void
onRefresh
(
@NonNull
final
RefreshLayout
refreshLayout
)
{
mPresenter
.
getMemberWalletList
(
refreshLayout
,
true
);
}
});
refreshLayout
.
setOnLoadMoreListener
(
new
OnLoadMoreListener
()
{
@Override
public
void
onLoadMore
(
@NonNull
final
RefreshLayout
refreshLayout
)
{
mPresenter
.
getMemberWalletList
(
refreshLayout
,
false
);
}
});
refreshLayout
.
setEnableLoadMore
(
false
);
}
@Override
public
void
setData
(
@Nullable
Object
data
)
{
}
@Override
public
void
showLoading
(
String
message
)
{
if
(
message
!=
null
)
LoadingDialog
.
showDialogForLoading
(
_mActivity
,
message
,
true
);
else
LoadingDialog
.
showDialogForLoading
(
_mActivity
);
}
@Override
public
void
hideLoading
()
{
LoadingDialog
.
cancelDialogForLoading
();
}
@Override
public
void
showMessage
(
@NonNull
String
message
)
{
checkNotNull
(
message
);
ArmsUtils
.
makeText
(
_mActivity
,
message
);
}
@Override
public
void
launchActivity
(
@NonNull
Intent
intent
)
{
if
(
intent
!=
null
)
{
ArmsUtils
.
startActivity
(
intent
);
}
}
@Override
public
void
killMyself
()
{
_mActivity
.
onBackPressedSupport
();
}
@Override
public
void
returnMemberCouponList
(
List
<
MemberCoupon
>
memberCoupons
)
{
List
<
TagViewItem
>
tagViewItems
=
castTagItem
(
memberCoupons
);
if
(
mMemberCouponList
.
size
()
>
0
)
{
mMemberCouponList
.
clear
();
}
mMemberCouponList
.
addAll
(
tagViewItems
);
mMemberCouponAdapter
.
notifyDataSetChanged
();
}
private
List
<
TagViewItem
>
castTagItem
(
List
<
MemberCoupon
>
memberCoupons
)
{
List
<
TagViewItem
>
tagViewItems
=
new
ArrayList
<>();
for
(
MemberCoupon
coupon
:
memberCoupons
)
{
TagViewItem
<
MemberCoupon
>
tagViewItem
=
new
TagViewItem
();
tagViewItem
.
setId
(
coupon
.
getId
());
tagViewItem
.
setText
(
coupon
.
getRemark
());
tagViewItem
.
setTargetObj
(
coupon
);
tagViewItems
.
add
(
tagViewItem
);
}
return
tagViewItems
;
}
@Override
public
void
showLoadSirSuccess
()
{
loadService
.
showSuccess
();
}
@Override
public
void
showLoadSirCall
(
Class
<?
extends
Callback
>
call
)
{
loadService
.
showCallback
(
call
);
}
@Override
public
LoadService
getLoadService
()
{
return
loadService
;
}
private
OnCouponItemClickListener
onCouponItemClickListener
;
public
void
setOnCouponItemClickListener
(
OnCouponItemClickListener
onCouponItemClickListener
)
{
this
.
onCouponItemClickListener
=
onCouponItemClickListener
;
}
public
interface
OnCouponItemClickListener
{
void
onItemClick
(
MemberCoupon
item
,
int
position
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/fragment/discount/DiscountDialogFragment.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
table
.
mvp
.
ui
.
fragment
.
discount
;
import
android.app.Activity
;
import
android.app.Dialog
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.graphics.drawable.ColorDrawable
;
import
android.os.Bundle
;
import
android.view.Gravity
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.Window
;
import
android.view.WindowManager
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.appcompat.app.AppCompatDialogFragment
;
import
androidx.core.content.ContextCompat
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentActivity
;
import
androidx.viewpager.widget.ViewPager
;
import
com.gingersoft.gsa.cloud.common.core.discount.MemberCoupon
;
import
com.gingersoft.gsa.cloud.common.core.member.MemberInfo
;
import
com.gingersoft.gsa.cloud.common.logan.LoganManager
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
com.gingersoft.gsa.cloud.order.order.DoshokuOrder
;
import
com.gingersoft.gsa.cloud.table.R
;
import
com.gingersoft.gsa.cloud.table.R2
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.InputTableFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.fragment.RegionFragment
;
import
com.gingersoft.gsa.cloud.table.mvp.ui.widget.DiscountDialog
;
import
com.gingersoft.gsa.cloud.ui.view.TriangleView
;
import
com.jess.arms.base.BaseDialogFragment
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.mvp.BasePresenter
;
import
com.jess.arms.utils.ThirdViewUtil
;
import
com.qmuiteam.qmui.arch.QMUIFragmentPagerAdapter
;
import
com.qmuiteam.qmui.layout.QMUILinearLayout
;
import
com.qmuiteam.qmui.util.QMUIDisplayHelper
;
import
com.qmuiteam.qmui.widget.QMUITopBar
;
import
com.qmuiteam.qmui.widget.dialog.QMUIDialog
;
import
com.qmuiteam.qmui.widget.tab.QMUITab
;
import
com.qmuiteam.qmui.widget.tab.QMUITabBuilder
;
import
com.qmuiteam.qmui.widget.tab.QMUITabIndicator
;
import
com.qmuiteam.qmui.widget.tab.QMUITabSegment
;
import
java.util.ArrayList
;
import
java.util.List
;
import
butterknife.BindView
;
import
butterknife.ButterKnife
;
/**
* @作者: bin
* @創建時間: 2021-04-02 17:14
* @更新時間: 2021-04-02 17:14
* @描述:
*/
public
class
DiscountDialogFragment
extends
BaseDialogFragment
<
BasePresenter
>
{
private
final
String
TAG
=
"DiscountFragment"
;
// @BindView(R2.id.topbar)
// QMUITopBar topbar;
@BindView
(
R2
.
id
.
tabSegment
)
QMUITabSegment
tabSegment
;
@BindView
(
R2
.
id
.
contentViewPager
)
ViewPager
contentViewPager
;
@BindView
(
R2
.
id
.
ll_container
)
QMUILinearLayout
llContainer
;
private
CouponFragment
couponFragment
;
private
BillDiscountFragment
billDiscountFragment
;
private
boolean
canScan
=
true
;
private
List
<
String
>
mTabTitles
=
new
ArrayList
<>();
private
int
mCurrentPageIndex
=
0
;
public
static
DiscountDialogFragment
newInstance
()
{
DiscountDialogFragment
fragment
=
new
DiscountDialogFragment
();
return
fragment
;
}
@Override
public
void
setupFragmentComponent
(
@NonNull
AppComponent
appComponent
)
{
}
@Override
public
View
initView
(
@NonNull
LayoutInflater
inflater
,
@Nullable
ViewGroup
container
,
@Nullable
Bundle
savedInstanceState
)
{
this
.
getDialog
().
requestWindowFeature
(
Window
.
FEATURE_NO_TITLE
);
return
inflater
.
inflate
(
R
.
layout
.
table_dialog_discout
,
container
,
false
);
}
@Override
public
void
onStart
()
{
super
.
onStart
();
Window
dialogWindow
=
getDialog
().
getWindow
();
if
(
dialogWindow
!=
null
)
{
dialogWindow
.
getDecorView
().
setPadding
(
0
,
0
,
0
,
0
);
dialogWindow
.
setBackgroundDrawable
(
new
ColorDrawable
(
Color
.
TRANSPARENT
));
WindowManager
.
LayoutParams
lp
=
dialogWindow
.
getAttributes
();
lp
.
width
=
WindowManager
.
LayoutParams
.
MATCH_PARENT
;
lp
.
height
=
(
int
)
(
QMUIDisplayHelper
.
getScreenHeight
(
mContext
)
*
0.6
);
lp
.
gravity
=
Gravity
.
BOTTOM
;
lp
.
windowAnimations
=
android
.
R
.
style
.
Animation_InputMethod
;
dialogWindow
.
setAttributes
(
lp
);
}
}
@Override
public
void
initData
(
@Nullable
Bundle
savedInstanceState
)
{
float
mShadowAlpha
=
0.25f
;
int
mShadowElevationDp
=
14
;
llContainer
.
setRadiusAndShadow
(
15
,
QMUIDisplayHelper
.
dp2px
(
mContext
,
mShadowElevationDp
),
mShadowAlpha
);
initTopbar
();
initTabAndPager
();
}
@Override
public
void
setData
(
@Nullable
Object
data
)
{
}
private
void
initTabAndPager
()
{
MemberInfo
memberInfo
=
DoshokuOrder
.
getInstance
().
getMemberInfo
();
QMUIFragmentPagerAdapter
pagerAdapter
=
new
QMUIFragmentPagerAdapter
(
getChildFragmentManager
())
{
@Override
public
Fragment
createFragment
(
int
position
)
{
switch
(
position
)
{
case
1
:
if
(
couponFragment
!=
null
)
{
return
couponFragment
;
}
couponFragment
=
CouponFragment
.
newInstance
();
couponFragment
.
setOnCouponItemClickListener
(
new
CouponFragment
.
OnCouponItemClickListener
()
{
@Override
public
void
onItemClick
(
MemberCoupon
item
,
int
position
)
{
if
(
onDiscountItemClickListener
!=
null
)
{
onDiscountItemClickListener
.
onCouponClick
(
item
,
position
);
}
}
});
return
couponFragment
;
default
:
if
(
billDiscountFragment
!=
null
)
{
return
billDiscountFragment
;
}
billDiscountFragment
=
BillDiscountFragment
.
newInstance
();
billDiscountFragment
.
setOnDiscountItemClickListener
(
new
BillDiscountFragment
.
OnBillDiscountItemClickListener
()
{
@Override
public
void
onItemClick
(
Discount
item
,
int
position
)
{
if
(
onDiscountItemClickListener
!=
null
)
{
onDiscountItemClickListener
.
onBillDiscountClick
(
item
,
position
);
}
}
});
return
billDiscountFragment
;
}
}
@Override
public
int
getCount
()
{
return
mTabTitles
.
size
();
}
@Override
public
CharSequence
getPageTitle
(
int
position
)
{
return
mTabTitles
.
get
(
position
);
}
};
QMUITabBuilder
builder
=
tabSegment
.
tabBuilder
();
mTabTitles
.
add
(
"折扣"
);
QMUITab
tab1
=
builder
.
setText
(
mTabTitles
.
get
(
0
))
.
build
(
_mActivity
);
tabSegment
.
addTab
(
tab1
);
if
(
memberInfo
!=
null
)
{
mTabTitles
.
add
(
"優惠券"
);
QMUITab
tab2
=
builder
.
setText
(
mTabTitles
.
get
(
1
))
.
build
(
_mActivity
);
tabSegment
.
addTab
(
tab2
);
}
contentViewPager
.
setAdapter
(
pagerAdapter
);
contentViewPager
.
setCurrentItem
(
mCurrentPageIndex
);
int
space
=
QMUIDisplayHelper
.
dp2px
(
_mActivity
,
16
);
tabSegment
.
setIndicator
(
new
QMUITabIndicator
(
QMUIDisplayHelper
.
dp2px
(
_mActivity
,
2
),
false
,
true
));
tabSegment
.
setDefaultTextSize
(
QMUIDisplayHelper
.
dp2px
(
_mActivity
,
16
),
QMUIDisplayHelper
.
dp2px
(
_mActivity
,
16
));
tabSegment
.
setPadding
(
space
,
0
,
space
,
0
);
tabSegment
.
setupWithViewPager
(
contentViewPager
,
false
);
tabSegment
.
addOnTabSelectedListener
(
new
QMUITabSegment
.
OnTabSelectedListener
()
{
@Override
public
void
onTabSelected
(
int
index
)
{
LoganManager
.
w_tableMode
(
TAG
,
"當前頁面【"
+
mTabTitles
.
get
(
index
)
+
"】"
);
}
@Override
public
void
onTabUnselected
(
int
index
)
{
}
@Override
public
void
onTabReselected
(
int
index
)
{
}
@Override
public
void
onDoubleTap
(
int
index
)
{
}
});
}
private
void
initTopbar
()
{
// topbar.setBackgroundColor(ContextCompat.getColor(_mActivity, R.color.theme_color));
// if (canScan) {
// topbar.addRightImageButton(R.mipmap.table_white_scan, R.id.topbar_right_change_button)
// .setOnClickListener(v -> {
// _mActivity.onBackPressedSupport();
// });
// }
// topbar.setTitle("折扣");
}
@Override
public
boolean
onBackPressedSupport
()
{
return
super
.
onBackPressedSupport
();
}
private
OnDiscountItemClickListener
onDiscountItemClickListener
;
public
void
setOnDiscountItemClickListener
(
OnDiscountItemClickListener
onDiscountItemClickListener
)
{
this
.
onDiscountItemClickListener
=
onDiscountItemClickListener
;
}
public
interface
OnDiscountItemClickListener
{
void
onBillDiscountClick
(
Discount
item
,
int
position
);
void
onCouponClick
(
MemberCoupon
item
,
int
position
);
}
}
component-table/src/main/java/com/gingersoft/gsa/cloud/table/mvp/ui/widget/DiscountDialog.java
View file @
f18bbd45
This diff is collapsed.
Click to expand it.
component-table/src/main/res/layout/fragment_bill_discount.xml
0 → 100644
View file @
f18bbd45
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_bill_discount"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
/>
</FrameLayout>
\ No newline at end of file
component-table/src/main/res/layout/fragment_container.xml
0 → 100644
View file @
f18bbd45
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:id=
"@+id/fl_container"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
>
</FrameLayout>
\ No newline at end of file
component-table/src/main/res/layout/fragment_coupon.xml
0 → 100644
View file @
f18bbd45
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:id=
"@+id/refreshLayout"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:orientation=
"horizontal"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_coupon"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_alignParentBottom=
"true"
android:layout_gravity=
"bottom"
android:orientation=
"horizontal"
/>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
</FrameLayout>
\ No newline at end of file
component-table/src/main/res/layout/table_activity_order_content.xml
View file @
f18bbd45
...
...
@@ -206,6 +206,12 @@
</LinearLayout>
</LinearLayout>
<FrameLayout
android:id=
"@+id/fl_container"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_320"
android:layout_gravity=
"bottom"
/>
<ViewStub
android:id=
"@+id/vs_transfer_food"
android:layout_width=
"match_parent"
...
...
component-table/src/main/res/layout/table_dialog_discout.xml
View file @
f18bbd45
...
...
@@ -4,30 +4,23 @@
android:id=
"@+id/ll_container"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/theme_white_color"
android:orientation=
"vertical"
>
<com.qmuiteam.qmui.widget.QMUITopBar
android:id=
"@+id/topbar"
android:layout_width=
"match_parent"
android:layout_height=
"?attr/qmui_topbar_height"
app:qmui_topbar_title_color=
"@color/theme_white_color"
/
>
<!-- <com.qmuiteam.qmui.widget.QMUITopBar-->
<!-- android:id="@+id/topbar"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="?attr/qmui_topbar_height"-->
<!-- app:qmui_topbar_title_color="@color/theme_white_color" />--
>
<
androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/
recycler_discou
nt"
<
com.qmuiteam.qmui.widget.tab.QMUITabSegment
android:id=
"@+id/
tabSegme
nt"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:divider=
"@null"
android:fadeScrollbars=
"false"
android:orientation=
"vertical"
app:layoutManager=
"androidx.recyclerview.widget.GridLayoutManager"
app:spanCount=
"3"
/>
android:layout_height=
"@dimen/dp_45"
android:background=
"@drawable/shape_tab_panel_bg"
/>
<!-- <ImageView-->
<!-- android:id="@+id/btn_close"-->
<!-- android:layout_width="wrap_content"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:layout_margin="@dimen/dp_20"-->
<!-- android:src="@drawable/icon_dialog_close" />-->
<androidx.viewpager.widget.ViewPager
android:id=
"@+id/contentViewPager"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</com.qmuiteam.qmui.layout.QMUILinearLayout>
\ No newline at end of file
component-table/src/main/res/layout/table_stub_transfer_food.xml
View file @
f18bbd45
...
...
@@ -48,5 +48,4 @@
android:id=
"@+id/contentViewPager"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
/>
</LinearLayout>
\ No newline at end of file
component-webview/src/main/java/com/gingersoft/gsa/cloud/webview/mvp/ui/activity/WebActivity.java
View file @
f18bbd45
This diff is collapsed.
Click to expand it.
component-webview/src/main/java/com/gingersoft/gsa/cloud/webview/
app
/WebViewProgressBar.java
→
component-webview/src/main/java/com/gingersoft/gsa/cloud/webview/
mvp/ui/view
/WebViewProgressBar.java
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
webview
.
app
;
package
com
.
gingersoft
.
gsa
.
cloud
.
webview
.
mvp
.
ui
.
view
;
import
android.animation.Animator
;
import
android.animation.ValueAnimator
;
...
...
config.gradle
View file @
f18bbd45
...
...
@@ -14,7 +14,7 @@ ext {
version
=
[
androidSupportSdkVersion:
"29+"
,
retrofitSdkVersion
:
'2.3.0'
,
dagger2SdkVersion
:
"2.
19
"
,
dagger2SdkVersion
:
"2.
26
"
,
glideSdkVersion
:
"4.9.0"
,
butterknifeSdkVersion
:
"10.2.1"
,
rxlifecycleSdkVersion
:
"1.0"
,
...
...
library-base/src/main/java/com/jess/arms/base/BaseDialogFragment.java
0 → 100644
View file @
f18bbd45
This diff is collapsed.
Click to expand it.
library-base/src/main/java/com/jess/arms/base/BaseFragment.java
View file @
f18bbd45
...
...
@@ -15,14 +15,17 @@
*/
package
com
.
jess
.
arms
.
base
;
import
android.annotation.SuppressLint
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.graphics.Color
;
import
android.os.Bundle
;
import
android.view.LayoutInflater
;
import
android.view.View
;
import
android.view.ViewGroup
;
import
android.view.animation.Animation
;
import
com.gyf.immersionbar.ImmersionBar
;
import
com.jess.arms.base.delegate.IFragment
;
import
com.jess.arms.integration.cache.Cache
;
import
com.jess.arms.integration.cache.CacheType
;
...
...
@@ -74,8 +77,6 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
final
SupportFragmentDelegate
mDelegate
=
new
SupportFragmentDelegate
(
this
);
protected
BaseFragmentActivity
_mActivity
;
private
Observable
mObservable
;
@NonNull
@Override
public
synchronized
Cache
<
String
,
Object
>
provideCache
()
{
...
...
@@ -85,7 +86,7 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
return
mCache
;
}
public
int
getColor
(
int
colorId
){
public
int
getColor
(
int
colorId
)
{
return
ContextCompat
.
getColor
(
requireContext
(),
colorId
);
}
...
...
@@ -109,14 +110,6 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
return
mDelegate
.
extraTransaction
();
}
// @Override
// public void onAttach(Activity activity) {
// super.onAttach(activity);
// mDelegate.onAttach(activity);
// _mActivity = (BaseFragmentActivity) mDelegate.getActivity();
// mContext = mDelegate.getActivity();
// }
@Override
public
void
onAttach
(
@NonNull
Context
context
)
{
super
.
onAttach
(
context
);
...
...
@@ -143,12 +136,6 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
mDelegate
.
onActivityCreated
(
savedInstanceState
);
}
// @Override
// protected View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container) {
// mCacheRootView = initView(inflater, container, null);
// return mCacheRootView;
// }
private
View
view
;
@Nullable
...
...
@@ -165,12 +152,25 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
return
view
;
}
@Nullable
@Override
public
View
getView
()
{
return
view
;
}
@SuppressLint
(
"ResourceType"
)
@Override
public
void
configImmersionBar
(
ImmersionBar
immersionBar
)
{
immersionBar
.
statusBarColor
(
"#398BED"
)
//状态栏颜色,不写默认透明色
.
statusBarDarkFont
(
true
)
//原理:如果当前设备支持状态栏字体变色,会设置状态栏字体为黑色,如果当前设备不支持
.
fitsSystemWindows
(
true
)
// .fullScreen(true)
.
init
();
}
/**
* 是否使用eventBus,默认为使用(true),
*
...
...
library-base/src/main/java/com/jess/arms/base/delegate/ActivityDelegateImpl.java
View file @
f18bbd45
...
...
@@ -53,15 +53,8 @@ public class ActivityDelegateImpl implements ActivityDelegate {
//注册到事件主线
EventBus
.
getDefault
().
register
(
mActivity
);
}
// if (iActivity.useLightMode()) {
// //设置状态栏黑色字体
// QMUIStatusBarHelper.setStatusBarLightMode(mActivity);
// } else {
// //默认状态栏白色字体
// QMUIStatusBarHelper.setStatusBarDarkMode(mActivity);
// }
// //设置沉浸式状态栏颜色
// QMUIStatusBarHelper.translucent(mActivity, iActivity.getStatusBarColor());
iActivity
.
configImmersionBar
(
ImmersionBar
.
with
(
mActivity
));
//这里提供 AppComponent 对象给 BaseActivity 的子类, 用于 Dagger2 的依赖注入
iActivity
.
setupActivityComponent
(
ArmsUtils
.
obtainAppComponentFromContext
(
mActivity
));
}
...
...
library-base/src/main/java/com/jess/arms/base/delegate/FragmentDelegateImpl.java
View file @
f18bbd45
...
...
@@ -19,14 +19,17 @@ import android.content.Context;
import
android.os.Bundle
;
import
android.view.View
;
import
com.gyf.immersionbar.ImmersionBar
;
import
com.jess.arms.utils.ArmsUtils
;
import
org.simple.eventbus.EventBus
;
import
androidx.annotation.NonNull
;
import
androidx.annotation.Nullable
;
import
androidx.fragment.app.DialogFragment
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.FragmentManager
;
import
butterknife.ButterKnife
;
import
butterknife.Unbinder
;
import
timber.log.Timber
;
...
...
@@ -68,15 +71,24 @@ public class FragmentDelegateImpl implements FragmentDelegate {
@Override
public
void
onCreateView
(
@Nullable
View
view
,
@Nullable
Bundle
savedInstanceState
)
{
//绑定到butterknife
if
(
view
!=
null
)
if
(
view
!=
null
)
{
mUnbinder
=
ButterKnife
.
bind
(
mFragment
,
view
);
}
// if (mFragment instanceof DialogFragment) {
// } else {
// iFragment.configImmersionBar(ImmersionBar.with(mFragment));
// }
}
@Override
public
void
onActivityCreate
(
@Nullable
Bundle
savedInstanceState
)
{
iFragment
.
initData
(
savedInstanceState
);
// if (mFragment instanceof DialogFragment) {
// iFragment.configImmersionBar(ImmersionBar.with((DialogFragment) mFragment));
// }
}
@Override
public
void
onStart
()
{
...
...
library-base/src/main/java/com/jess/arms/base/delegate/IFragment.java
View file @
f18bbd45
...
...
@@ -22,6 +22,7 @@ import android.view.LayoutInflater;
import
android.view.View
;
import
android.view.ViewGroup
;
import
com.gyf.immersionbar.ImmersionBar
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.integration.cache.Cache
;
...
...
@@ -62,6 +63,12 @@ public interface IFragment {
*/
void
setupFragmentComponent
(
@NonNull
AppComponent
appComponent
);
/**
* 重写此方法可配置当前页面的沉浸式主题
*/
void
configImmersionBar
(
ImmersionBar
immersionBar
);
/**
* 是否使用 {@link EventBus}
*
...
...
library-common/src/main/debug/AndroidManifest.xml
0 → 100644
View file @
f18bbd45
<manifest
xmlns:android=
"http://schemas.android.com/apk/res/android"
package=
"com.gingersoft.gsa.cloud.common"
>
<uses-permission
android:name=
"android.permission.BLUETOOTH"
/>
<uses-permission
android:name=
"android.permission.VIBRATE"
/>
<uses-permission
android:name=
"android.permission.CAMERA"
/>
<uses-permission
android:name=
"android.permission.RECEIVE_USER_PRESENT"
/>
<uses-permission
android:name=
"android.permission.INTERNET"
/>
<uses-permission
android:name=
"android.permission.WAKE_LOCK"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"com.asus.msa.SupplementaryDID.ACCESS"
/>
<application
android:name=
"com.gingersoft.gsa.cloud.app.GsaCloudApplication"
android:allowBackup=
"true"
android:icon=
"@mipmap/ic_launcher"
android:supportsRtl=
"true"
android:networkSecurityConfig=
"@xml/network_android"
android:theme=
"@style/AppTheme"
>
<meta-data
android:name=
"com.gingersoft.gsa.cloud.common.config.globalconfig.GlobalConfiguration"
android:value=
"ConfigModule"
/>
<meta-data
android:name=
"design_width_in_dp"
android:value=
"360"
/>
<meta-data
android:name=
"design_height_in_dp"
android:value=
"640"
/>
<service
android:name=
"com.gingersoft.gsa.cloud.common.service.ICommandService"
android:enabled=
"true"
/>
</application>
</manifest>
library-common/src/main/debug/res/values/styles.xml
0 → 100644
View file @
f18bbd45
<resources>
<!-- <!– Base application theme. –>-->
<!-- <style name="table_AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">-->
<!-- <!– Customize your theme here. –>-->
<!-- <item name="colorPrimary">@color/table_colorPrimary</item>-->
<!-- <item name="colorPrimaryDark">@color/table_colorPrimaryDark</item>-->
<!-- <item name="colorAccent">@color/table_colorAccent</item>-->
<!-- </style>-->
</resources>
library-common/src/main/java/com/gingersoft/gsa/cloud/common/bean/LayoutInfoBean.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
bean
;
import
androidx.annotation.LayoutRes
;
import
androidx.annotation.StringRes
;
import
lombok.Data
;
/**
* @作者: bin
* @創建時間: 2021-04-06 16:48
* @更新時間: 2021-04-06 16:48
* @描述:
*/
@Data
public
class
LayoutInfoBean
{
@StringRes
private
int
pageTitle
;
@LayoutRes
private
int
layoutId
;
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/AbstractDiscount.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
core
.
discount
;
/**
* @作者: bin
* @創建時間: 2021-04-07 15:44
* @更新時間: 2021-04-07 15:44
* @描述:
*/
public
abstract
class
AbstractDiscount
{
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/BillDiscount.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
core
.
discount
;
/**
* @作者: bin
* @創建時間: 2021-04-07 15:45
* @更新時間: 2021-04-07 15:45
* @描述:
*/
public
class
BillDiscount
extends
AbstractDiscount
{
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/core/discount/MemberCoupon.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
core
.
discount
;
import
com.gingersoft.gsa.cloud.database.bean.Discount
;
import
lombok.Data
;
/**
* @作者: bin
* @創建時間: 2021-04-07 15:45
* @更新時間: 2021-04-07 15:45
* @描述:
*/
@Data
public
class
MemberCoupon
extends
AbstractDiscount
{
private
long
id
;
private
String
couponTypeName
;
private
String
beginDate
;
private
String
endDate
;
private
int
periodDays
;
private
int
upperLimitTimes
;
private
double
billMinAmount
;
private
double
amount
;
private
int
discount
;
private
String
remark
;
private
String
couponNo
;
private
int
useTimes
;
public
Discount
castDiscount
()
{
Discount
discount
=
new
Discount
();
discount
.
setId
(
getId
());
discount
.
setDiscountValue
(
getDiscount
());
discount
.
setMinBillAmount
(
getBillMinAmount
());
discount
.
setRemark
(
getRemark
());
discount
.
setBeginTime
(
getBeginDate
());
discount
.
setEndTime
(
getEndDate
());
return
discount
;
}
}
\ No newline at end of file
library-common/src/main/java/com/gingersoft/gsa/cloud/common/loadsir/LoadsirUtil.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
loadsir
;
import
android.app.Activity
;
import
android.content.Context
;
import
android.net.ParseException
;
import
android.view.View
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.R
;
import
com.gingersoft.gsa.cloud.common.constans.AppConstans
;
import
com.google.gson.JsonIOException
;
import
com.google.gson.JsonParseException
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.kingja.loadsir.core.LoadService
;
import
com.kingja.loadsir.core.Transport
;
import
org.json.JSONException
;
import
java.net.SocketTimeoutException
;
import
java.net.UnknownHostException
;
import
retrofit2.HttpException
;
/**
* @作者: bin
* @創建時間: 2021-04-07 16:27
* @更新時間: 2021-04-07 16:27
* @描述: 反馈页工具类,可根据对应的网络状况显示详细信息
*/
public
class
LoadsirUtil
{
public
static
void
showCallbackByError
(
Throwable
t
,
LoadService
loadService
)
{
if
(
t
instanceof
UnknownHostException
)
{
loadService
.
showCallback
(
ErrorCallback
.
class
);
}
else
if
(
t
instanceof
SocketTimeoutException
)
{
loadService
.
showCallback
(
TimeoutCallback
.
class
);
}
else
if
(
t
instanceof
HttpException
)
{
HttpException
httpException
=
(
HttpException
)
t
;
String
msg
=
convertStatusCode
(
GsaCloudApplication
.
getAppContext
(),
httpException
);
Class
<
ErrorCallback
>
errorCallback
=
ErrorCallback
.
class
;
loadService
.
setCallBack
(
errorCallback
.
getClass
(),
new
OnTransport
(
msg
));
loadService
.
showCallback
(
errorCallback
.
getClass
());
}
else
if
(
t
instanceof
JsonParseException
||
t
instanceof
ParseException
||
t
instanceof
JSONException
||
t
instanceof
JsonIOException
)
{
String
msg
=
ArmsUtils
.
getString
(
GsaCloudApplication
.
getAppContext
(),
R
.
string
.
response_error_data_parsing_error
);
Class
<
ErrorCallback
>
errorCallback
=
ErrorCallback
.
class
;
loadService
.
setCallBack
(
errorCallback
.
getClass
(),
new
OnTransport
(
msg
));
loadService
.
showCallback
(
errorCallback
.
getClass
());
}
}
private
final
static
String
convertStatusCode
(
Context
context
,
HttpException
httpException
)
{
String
msg
=
null
;
if
(
httpException
.
code
()
==
500
)
{
msg
=
ArmsUtils
.
getString
(
context
,
R
.
string
.
response_error_server_error
);
}
else
if
(
httpException
.
code
()
==
404
)
{
msg
=
ArmsUtils
.
getString
(
context
,
R
.
string
.
response_error_address_does_not_exist
);
}
else
if
(
httpException
.
code
()
==
403
)
{
msg
=
ArmsUtils
.
getString
(
context
,
R
.
string
.
response_error_request_rejected_by_server
);
}
else
if
(
httpException
.
code
()
==
307
)
{
msg
=
ArmsUtils
.
getString
(
context
,
R
.
string
.
response_error_request_was_redirected_to_another_page
);
}
else
if
(
httpException
.
code
()
==
401
)
{
msg
=
ArmsUtils
.
getString
(
context
,
R
.
string
.
response_error_request_logged
);
}
else
{
msg
=
httpException
.
message
();
}
return
msg
;
}
private
static
final
class
OnTransport
implements
Transport
{
private
Class
<?>
callbackClass
;
private
String
msg
;
public
OnTransport
(
Class
<?>
callbackClass
,
String
msg
)
{
this
.
callbackClass
=
callbackClass
;
this
.
msg
=
msg
;
}
public
OnTransport
(
String
msg
)
{
this
.
msg
=
msg
;
}
@Override
public
void
order
(
Context
context
,
View
rootView
)
{
View
tv_loadsir_error_img
=
rootView
.
findViewById
(
R
.
id
.
tv_loadsir_error_img
);
tv_loadsir_error_img
.
setTag
(
msg
);
}
}
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/loadsir/LoadsirUtils.java
deleted
100644 → 0
View file @
6030444d
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
loadsir
;
import
com.kingja.loadsir.callback.Callback
;
import
com.kingja.loadsir.core.LoadService
;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:
*/
public
class
LoadsirUtils
{
public
static
void
loadState
(
LoadService
loadService
,
Callback
callback
){
}
}
library-common/src/main/java/com/gingersoft/gsa/cloud/common/loadsir/TimeoutCallback.java
View file @
f18bbd45
library-common/src/main/java/com/gingersoft/gsa/cloud/common/rxjava/ErrorHandleSingleSubscriber.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
common
.
rxjava
;
import
com.gingersoft.gsa.cloud.common.loadsir.LoadsirUtil
;
import
com.kingja.loadsir.core.LoadService
;
import
io.reactivex.SingleObserver
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.disposables.Disposable
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandlerFactory
;
/**
* @作者: bin
* @創建時間: 2021-04-07 14:03
* @更新時間: 2021-04-07 14:03
* @描述:
*/
public
abstract
class
ErrorHandleSingleSubscriber
<
T
>
implements
SingleObserver
<
T
>
{
private
ErrorHandlerFactory
mHandlerFactory
;
private
LoadService
mLoadService
;
public
ErrorHandleSingleSubscriber
(
RxErrorHandler
rxErrorHandler
,
LoadService
loadService
)
{
this
.
mHandlerFactory
=
rxErrorHandler
.
getHandlerFactory
();
this
.
mLoadService
=
loadService
;
}
@Override
public
void
onSubscribe
(
@NonNull
Disposable
d
)
{
}
@Override
public
void
onSuccess
(
T
t
)
{
}
@Override
public
void
onError
(
@NonNull
Throwable
t
)
{
t
.
printStackTrace
();
//如果你某个地方不想使用全局错误处理,则重写 onError(Throwable) 并将 super.onError(e); 删掉
//如果你不仅想使用全局错误处理,还想加入自己的逻辑,则重写 onError(Throwable) 并在 super.onError(e); 后面加入自己的逻辑
mHandlerFactory
.
handleError
(
t
);
if
(
mLoadService
!=
null
)
{
//统一处理反馈页error显示信息
LoadsirUtil
.
showCallbackByError
(
t
,
mLoadService
);
}
}
}
library-order/src/main/java/com/gingersoft/gsa/cloud/order/bean/request/MealOrderPayRequest.java
View file @
f18bbd45
...
...
@@ -72,12 +72,23 @@ public class MealOrderPayRequest implements Parcelable{
private
double
tipsPrice
;
/**積分支付 所消費的積分*/
private
Double
consumptionPoints
;
/**
* 獲取積分
*/
private
Double
getIntegral
;
/**
* 積分倍數
*/
private
Double
integralMultiple
;
/**
* 扣減積分
*/
private
Double
deductionIntegral
;
/**報表是否計算人數*/
private
Integer
whetherReportCount
;
/**支付名稱*/
private
String
payName
;
public
OrderPay
()
{
}
...
...
@@ -92,6 +103,11 @@ public class MealOrderPayRequest implements Parcelable{
dest
.
writeDouble
(
this
.
amount
);
dest
.
writeDouble
(
this
.
tipsPrice
);
dest
.
writeValue
(
this
.
consumptionPoints
);
dest
.
writeValue
(
this
.
getIntegral
);
dest
.
writeValue
(
this
.
integralMultiple
);
dest
.
writeValue
(
this
.
deductionIntegral
);
dest
.
writeValue
(
this
.
whetherReportCount
);
dest
.
writeString
(
this
.
payName
);
}
protected
OrderPay
(
Parcel
in
)
{
...
...
@@ -99,6 +115,11 @@ public class MealOrderPayRequest implements Parcelable{
this
.
amount
=
in
.
readDouble
();
this
.
tipsPrice
=
in
.
readDouble
();
this
.
consumptionPoints
=
(
Double
)
in
.
readValue
(
Double
.
class
.
getClassLoader
());
this
.
getIntegral
=
(
Double
)
in
.
readValue
(
Double
.
class
.
getClassLoader
());
this
.
integralMultiple
=
(
Double
)
in
.
readValue
(
Double
.
class
.
getClassLoader
());
this
.
deductionIntegral
=
(
Double
)
in
.
readValue
(
Double
.
class
.
getClassLoader
());
this
.
whetherReportCount
=
(
Integer
)
in
.
readValue
(
Integer
.
class
.
getClassLoader
());
this
.
payName
=
in
.
readString
();
}
public
static
final
Creator
<
OrderPay
>
CREATOR
=
new
Creator
<
OrderPay
>()
{
...
...
library-order/src/main/java/com/gingersoft/gsa/cloud/pay/bean/PayMethod.java
View file @
f18bbd45
...
...
@@ -128,15 +128,15 @@ public class PayMethod implements Parcelable {
/**
* '獲取積分
*/
private
int
getIntegral
;
private
double
getIntegral
;
/**
* 積分倍數
*/
private
int
integralMultiple
;
private
double
integralMultiple
;
/**
* 扣減積分
*/
private
float
deductionIntegral
;
private
double
deductionIntegral
;
/**
* 對接類型 (0:否 1:yedpay 2:八達通 3:積分 )
*/
...
...
@@ -277,9 +277,9 @@ public class PayMethod implements Parcelable {
dest
.
writeInt
(
this
.
whetherSignatureLine
);
dest
.
writeInt
(
this
.
paySeq
);
dest
.
writeInt
(
this
.
whetherOpenBox
);
dest
.
write
Int
(
this
.
getIntegral
);
dest
.
write
Int
(
this
.
integralMultiple
);
dest
.
write
Float
(
this
.
deductionIntegral
);
dest
.
write
Double
(
this
.
getIntegral
);
dest
.
write
Double
(
this
.
integralMultiple
);
dest
.
write
Double
(
this
.
deductionIntegral
);
dest
.
writeInt
(
this
.
dockingType
);
dest
.
writeString
(
this
.
billType
);
dest
.
writeInt
(
this
.
tablePrintingAmount
);
...
...
@@ -320,9 +320,9 @@ public class PayMethod implements Parcelable {
this
.
whetherSignatureLine
=
in
.
readInt
();
this
.
paySeq
=
in
.
readInt
();
this
.
whetherOpenBox
=
in
.
readInt
();
this
.
getIntegral
=
in
.
read
Int
();
this
.
integralMultiple
=
in
.
read
Int
();
this
.
deductionIntegral
=
in
.
read
Float
();
this
.
getIntegral
=
in
.
read
Double
();
this
.
integralMultiple
=
in
.
read
Double
();
this
.
deductionIntegral
=
in
.
read
Double
();
this
.
dockingType
=
in
.
readInt
();
this
.
billType
=
in
.
readString
();
this
.
tablePrintingAmount
=
in
.
readInt
();
...
...
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/AAChartCoreLib/AAChartConfiger/AAChartView.java
View file @
f18bbd45
...
...
@@ -36,6 +36,8 @@ import android.content.Context;
import
android.content.res.Configuration
;
import
android.os.Build
;
import
android.util.AttributeSet
;
import
android.view.MotionEvent
;
import
android.view.View
;
import
android.webkit.JavascriptInterface
;
import
android.webkit.JsResult
;
import
android.webkit.WebChromeClient
;
...
...
@@ -53,6 +55,7 @@ import java.util.Map;
public
class
AAChartView
extends
WebView
{
public
interface
AAChartViewCallBack
{
void
chartViewDidFinishLoad
(
AAChartView
aaChartView
);
...
...
@@ -68,6 +71,9 @@ public class AAChartView extends WebView {
public
Boolean
isClearBackgroundColor
;
public
AAChartViewCallBack
callBack
;
public
void
setContentWidth
(
Float
contentWidth
)
{
this
.
contentWidth
=
contentWidth
;
String
jsStr
=
"setTheChartViewContentWidth('"
...
...
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/adapter/TagViewAdapter.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
ui
.
adapter
;
import
android.content.res.ColorStateList
;
import
androidx.annotation.Nullable
;
import
com.chad.library.adapter.base.BaseQuickAdapter
;
import
com.chad.library.adapter.base.viewholder.BaseViewHolder
;
import
com.gingersoft.gsa.cloud.ui.R
;
import
com.gingersoft.gsa.cloud.ui.bean.TagViewItem
;
import
com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem
;
import
com.jess.arms.utils.ArmsUtils
;
import
com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
;
import
java.util.List
;
public
class
TagViewAdapter
extends
BaseQuickAdapter
<
TagViewItem
,
BaseViewHolder
>
{
public
TagViewAdapter
(
@Nullable
List
<
TagViewItem
>
data
)
{
super
(
R
.
layout
.
item_tag_view
,
data
);
}
@Override
protected
void
convert
(
BaseViewHolder
helper
,
TagViewItem
item
)
{
QMUIRoundButton
roundButton
=
helper
.
getView
(
R
.
id
.
btn_tag
);
roundButton
.
setText
(
item
.
getText
());
roundButton
.
setTextSize
(
item
.
getTextSize
());
if
(
item
.
isChecked
())
{
roundButton
.
setBackgroundColor
(
item
.
getCheckedBgColor
());
roundButton
.
setStrokeColors
(
ColorStateList
.
valueOf
(
item
.
getCheckedBgColor
()));
roundButton
.
setTextColor
(
item
.
getCheckedTextColor
());
}
else
{
roundButton
.
setBackgroundColor
(
item
.
getUnCheckedBgColor
());
roundButton
.
setStrokeColors
(
ColorStateList
.
valueOf
(
item
.
getSidelineColor
()));
roundButton
.
setTextColor
(
item
.
getUnCheckedTextColor
());
}
}
}
library-ui/src/main/java/com/gingersoft/gsa/cloud/ui/bean/TagViewItem.java
0 → 100644
View file @
f18bbd45
package
com
.
gingersoft
.
gsa
.
cloud
.
ui
.
bean
;
import
android.view.View
;
import
com.gingersoft.gsa.cloud.app.GsaCloudApplication
;
import
com.gingersoft.gsa.cloud.common.R2
;
import
com.gingersoft.gsa.cloud.ui.R
;
import
com.jess.arms.utils.ArmsUtils
;
import
butterknife.BindColor
;
import
butterknife.BindDimen
;
import
butterknife.ButterKnife
;
import
lombok.Data
;
/**
* @作者: bin
* @創建時間: 2021-04-06 15:14
* @更新時間: 2021-04-06 15:14
* @描述:
*/
@Data
public
class
TagViewItem
<
T
>
{
private
long
id
;
private
String
text
;
int
textSize
=
14
;
//选择字体颜色
int
checkedTextColor
;
//未选择字体颜色
int
unCheckedTextColor
;
//边线颜色
int
sidelineColor
;
//选择背景色
int
checkedBgColor
;
//未选择背景色
int
unCheckedBgColor
;
boolean
checked
=
false
;
//目标对象
private
T
targetObj
;
public
TagViewItem
()
{
checkedTextColor
=
ArmsUtils
.
getColor
(
GsaCloudApplication
.
getAppContext
(),
R
.
color
.
theme_grey_color
);
unCheckedTextColor
=
ArmsUtils
.
getColor
(
GsaCloudApplication
.
getAppContext
(),
R
.
color
.
theme_grey_color
);
sidelineColor
=
ArmsUtils
.
getColor
(
GsaCloudApplication
.
getAppContext
(),
R
.
color
.
theme_grey_color
);
checkedBgColor
=
ArmsUtils
.
getColor
(
GsaCloudApplication
.
getAppContext
(),
R
.
color
.
theme_color
);
unCheckedBgColor
=
ArmsUtils
.
getColor
(
GsaCloudApplication
.
getAppContext
(),
R
.
color
.
theme_white_color
);
}
}
library-ui/src/main/res/layout/item_tag_view.xml
0 → 100644
View file @
f18bbd45
<?xml version="1.0" encoding="utf-8"?>
<com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:id=
"@+id/btn_tag"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_margin=
"@dimen/dp_8"
android:paddingLeft=
"@dimen/dp_15"
android:paddingRight=
"@dimen/dp_15"
android:paddingTop=
"@dimen/dp_12"
android:paddingBottom=
"@dimen/dp_12"
android:textSize=
"@dimen/dp_16"
android:textColor=
"@color/theme_grey_color"
android:text=
"草莓派"
app:qmui_radius=
"@dimen/dp_5"
app:qmui_borderColor=
"@color/theme_grey_color"
>
</com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButton>
\ 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