Commit ce4cd6d7 by 宁斌

引入rxjava工具類

parent 0d0fc54b
...@@ -101,7 +101,7 @@ dependencies { ...@@ -101,7 +101,7 @@ dependencies {
exclude module: 'support-annotations' exclude module: 'support-annotations'
} }
api rootProject.ext.dependencies['rxerrorhandler2'] api rootProject.ext.dependencies['rxerrorhandler2']
api rootProject.ext.dependencies["rxbinding"] api rootProject.ext.dependencies["rxbinding2"]
//network //network
api(rootProject.ext.dependencies["retrofit"]) { api(rootProject.ext.dependencies["retrofit"]) {
exclude module: 'okhttp' exclude module: 'okhttp'
......
...@@ -97,7 +97,7 @@ dependencies { ...@@ -97,7 +97,7 @@ dependencies {
api 'com.github.lihangleo2:ShadowLayout:2.1.6' api 'com.github.lihangleo2:ShadowLayout:2.1.6'
//時間選擇控件 //時間選擇控件
api 'com.contrarywind:Android-PickerView:3.2.4' api 'com.contrarywind:Android-PickerView:3.2.4'
implementation 'org.aspectj:aspectjrt:1.8.9' // implementation 'org.aspectj:aspectjrt:1.8.9'
//商米打印庫 //商米打印庫
api 'com.sunmi:printerlibrary:1.0.7' api 'com.sunmi:printerlibrary:1.0.7'
//上下拉刷新 //上下拉刷新
...@@ -108,6 +108,8 @@ dependencies { ...@@ -108,6 +108,8 @@ dependencies {
api 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7' api 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7'
//加载反馈页管理 //加载反馈页管理
api rootProject.ext.dependencies["loadsir"] api rootProject.ext.dependencies["loadsir"]
//rxjava,rxbinding相關工具類
api 'com.github.xuexiangjys:RxUtil2:1.1.5'
api rootProject.ext.dependencies["permissionx"] api rootProject.ext.dependencies["permissionx"]
api rootProject.ext.dependencies["design"] api rootProject.ext.dependencies["design"]
......
package com.gingersoft.gsa.cloud.aspectj;
import android.view.View;
/**
* Created by Wyh on 2020/2/29.
*/
public class XClickUtil {
/**
* 最近一次点击的时间
*/
private static long mLastClickTime;
/**
* 最近一次点击的控件ID
*/
private static int mLastClickViewId;
/**
* 是否是快速点击
*
* @param v 点击的控件
* @param intervalMillis 时间间期(毫秒)
* @return true:是,false:不是
*/
public static boolean isFastDoubleClick(View v, long intervalMillis) {
int viewId = v.getId();
long time = System.currentTimeMillis();
long timeInterval = Math.abs(time - mLastClickTime);
if (timeInterval < intervalMillis && viewId == mLastClickViewId) {
return true;
} else {
mLastClickTime = time;
mLastClickViewId = viewId;
return false;
}
}
}
...@@ -112,6 +112,9 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -112,6 +112,9 @@ public class GsaCloudApplication extends BaseApplication {
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
mAppContext = this; mAppContext = this;
isLogin = (boolean) SPUtils.get(PrintConstans.IS_LOGIN, false);
CC.enableVerboseLog(true); CC.enableVerboseLog(true);
CC.enableDebug(true); CC.enableDebug(true);
CC.enableRemoteCC(true); CC.enableRemoteCC(true);
...@@ -139,12 +142,8 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -139,12 +142,8 @@ public class GsaCloudApplication extends BaseApplication {
uiStyleConfiguration = new UIStyleExtendedConfiguration(); uiStyleConfiguration = new UIStyleExtendedConfiguration();
functionConfiguration = new FunctionExtendedConfiguration(); functionConfiguration = new FunctionExtendedConfiguration();
isLogin = (boolean) SPUtils.get(this, PrintConstans.IS_LOGIN, false);
//上傳餐廳擴展信息 //上傳餐廳擴展信息
ExpandInfoSetting.initUpdateExtendedConfiguration(uiStyleConfiguration,functionConfiguration); ExpandInfoSetting.initUpdateExtendedConfiguration(uiStyleConfiguration, functionConfiguration);
//獲取餐廳擴展表數據
initExpandInfo();
// 设定一些通用的属性,这些属性在每次统计事件中都会附带 // 设定一些通用的属性,这些属性在每次统计事件中都会附带
// 注意:如果此处的属性名与内置属性的名称相同,则内置属性会被覆盖 // 注意:如果此处的属性名与内置属性的名称相同,则内置属性会被覆盖
...@@ -162,21 +161,6 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -162,21 +161,6 @@ public class GsaCloudApplication extends BaseApplication {
// Tracker.INSTANCE.initialize(this); // Tracker.INSTANCE.initialize(this);
} }
private void initExpandInfo() {
//在IO线程执行数据库处理操作
Observable.just(0)
.subscribeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() {
@Override
public void accept(@io.reactivex.annotations.NonNull Integer integer) throws Exception {
ExpandInfoDaoUtils expandInfoDaoUtils = new ExpandInfoDaoUtils(getAppContext());
List<ExpandInfo> expandInfos = expandInfoDaoUtils.queryAllExpandInfo();
if (expandInfos != null) {
RestaurantExpandInfoUtils.setCommonExpandInfo(expandInfos);
}
}
});
}
public Activity getCurrentActivity() { public Activity getCurrentActivity() {
return mCurrentActivity; return mCurrentActivity;
...@@ -270,7 +254,7 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -270,7 +254,7 @@ public class GsaCloudApplication extends BaseApplication {
} else { } else {
//如果當前機型不是上面兩種,那麼設置默認打印為ip打印 //如果當前機型不是上面兩種,那麼設置默認打印為ip打印
//這個默認值的優先級<用戶在打印機列表中設置的默認打印機 //這個默認值的優先級<用戶在打印機列表中設置的默認打印機
SPUtils.put(this, PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.IP_PRINT); SPUtils.put(PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.IP_PRINT);
} }
} }
...@@ -427,52 +411,52 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -427,52 +411,52 @@ public class GsaCloudApplication extends BaseApplication {
//获取登陆token //获取登陆token
public static String getLoginToken() { public static String getLoginToken() {
return (String) SPUtils.get(mAppContext, UserConstans.token, ""); return (String) SPUtils.get(UserConstans.token, "");
} }
public static int getMemberId() { public static int getMemberId() {
return (int) SPUtils.get(mAppContext, UserConstans.memberId, 0); return (int) SPUtils.get(UserConstans.memberId, 0);
} }
public static int getBrandId() { public static int getBrandId() {
return (int) SPUtils.get(mAppContext, UserConstans.brandId, 0); return (int) SPUtils.get(UserConstans.brandId, 0);
} }
public static String getBrandName() { public static String getBrandName() {
return (String) SPUtils.get(mAppContext, UserConstans.brandName, ""); return (String) SPUtils.get(UserConstans.brandName, "");
} }
public static int getRestaurantId() { public static int getRestaurantId() {
return (int) SPUtils.get(mAppContext, UserConstans.restaurantId, 0); return (int) SPUtils.get(UserConstans.restaurantId, 0);
} }
public static String getRestaurantName() { public static String getRestaurantName() {
return (String) SPUtils.get(mAppContext, UserConstans.restaurantName, ""); return (String) SPUtils.get(UserConstans.restaurantName, "");
} }
public static String getMemberName() { public static String getMemberName() {
return (String) SPUtils.get(mAppContext, UserConstans.memberName, ""); return (String) SPUtils.get(UserConstans.memberName, "");
} }
public static String getBrandRestaurantInfo() { public static String getBrandRestaurantInfo() {
return (String) SPUtils.get(mAppContext, UserConstans.brandRestaurantInfos, ""); return (String) SPUtils.get(UserConstans.brandRestaurantInfos, "");
} }
public static String getGsPosShopId() { public static String getGsPosShopId() {
return (String) SPUtils.get(mAppContext, UserConstans.gsPosShopId, "-1"); return (String) SPUtils.get(UserConstans.gsPosShopId, "-1");
} }
public static void logOut() { public static void logOut() {
SPUtils.remove(getAppContext(), UserConstans.token); SPUtils.remove(UserConstans.token);
SPUtils.remove(getAppContext(), UserConstans.memberId); SPUtils.remove(UserConstans.memberId);
SPUtils.remove(getAppContext(), UserConstans.brandId); SPUtils.remove(UserConstans.brandId);
SPUtils.remove(getAppContext(), UserConstans.brandName); SPUtils.remove(UserConstans.brandName);
SPUtils.remove(getAppContext(), UserConstans.restaurantId); SPUtils.remove(UserConstans.restaurantId);
SPUtils.remove(getAppContext(), UserConstans.restaurantName); SPUtils.remove(UserConstans.restaurantName);
SPUtils.remove(getAppContext(), UserConstans.memberName); SPUtils.remove(UserConstans.memberName);
SPUtils.remove(getAppContext(), UserConstans.brandRestaurantInfos); SPUtils.remove(UserConstans.brandRestaurantInfos);
SPUtils.remove(getAppContext(), UserConstans.gsPosShopId); SPUtils.remove(UserConstans.gsPosShopId);
SPUtils.put(getAppContext(), PrintConstans.IS_LOGIN, false); SPUtils.put(PrintConstans.IS_LOGIN, false);
//关闭Prj打印服務 //关闭Prj打印服務
CC.obtainBuilder("Component.Print") CC.obtainBuilder("Component.Print")
.setActionName("stopPrintService") .setActionName("stopPrintService")
...@@ -500,39 +484,39 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -500,39 +484,39 @@ public class GsaCloudApplication extends BaseApplication {
} }
public static void setLoginToken(Context context, String token) { public static void setLoginToken(Context context, String token) {
SPUtils.put(mAppContext, UserConstans.token, token); SPUtils.put(UserConstans.token, token);
} }
public static void setMemberId(Context context, int memberId) { public static void setMemberId(Context context, int memberId) {
SPUtils.put(mAppContext, UserConstans.memberId, memberId); SPUtils.put(UserConstans.memberId, memberId);
} }
public static void setMemberName(Context context, String memberName) { public static void setMemberName(Context context, String memberName) {
SPUtils.put(mAppContext, UserConstans.memberName, memberName); SPUtils.put(UserConstans.memberName, memberName);
} }
public static void setBrandId(Context context, int restaurantId) { public static void setBrandId(Context context, int restaurantId) {
SPUtils.put(mAppContext, UserConstans.brandId, restaurantId); SPUtils.put(UserConstans.brandId, restaurantId);
} }
public static void setBrandName(Context context, String restaurantName) { public static void setBrandName(Context context, String restaurantName) {
SPUtils.put(mAppContext, UserConstans.brandName, restaurantName); SPUtils.put(UserConstans.brandName, restaurantName);
} }
public static void setRestaurantId(Context context, int restaurantId) { public static void setRestaurantId(Context context, int restaurantId) {
SPUtils.put(mAppContext, UserConstans.restaurantId, restaurantId); SPUtils.put(UserConstans.restaurantId, restaurantId);
} }
public static void setRestaurantName(Context context, String restaurantName) { public static void setRestaurantName(Context context, String restaurantName) {
SPUtils.put(mAppContext, UserConstans.restaurantName, restaurantName); SPUtils.put(UserConstans.restaurantName, restaurantName);
} }
public static void setBrandRestaurantInfos(Context context, String brandRestaurantIds) { public static void setBrandRestaurantInfos(Context context, String brandRestaurantIds) {
SPUtils.put(mAppContext, UserConstans.brandRestaurantInfos, brandRestaurantIds); SPUtils.put(UserConstans.brandRestaurantInfos, brandRestaurantIds);
} }
public static void setGsPosShopId(Context context, String gsPosShopId) { public static void setGsPosShopId(Context context, String gsPosShopId) {
SPUtils.put(mAppContext, UserConstans.gsPosShopId, gsPosShopId); SPUtils.put(UserConstans.gsPosShopId, gsPosShopId);
} }
public static void clearMemberInfo() { public static void clearMemberInfo() {
......
package com.gingersoft.gsa.cloud.base.utils;
import android.content.Context;
import com.gingersoft.gsa.cloud.constans.UserConstans;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
/**
* 作者:ELEGANT_BIN
* 版本:1.6.0
* 创建日期:2019-12-29
* 修订历史:2019-12-29
* 描述:
*/
public class UserDataUtils {
//获取登陆token
public static String getLoginToken(Context context) {
return (String) SPUtils.get(context, UserConstans.token, "0");
}
public static String getMemberId(Context context) {
return (String) SPUtils.get(context, UserConstans.memberId, "0");
}
public static String getRestaurantId(Context context) {
return (String) SPUtils.get(context, UserConstans.restaurantId, "");
}
public static void setMemberId(Context context, int memberId) {
SPUtils.put(context, UserConstans.memberId, memberId);
}
public static void setLoginToken(Context context, String token) {
SPUtils.put(context, UserConstans.token, token);
}
public static void setRestaurantId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.restaurantId, restaurantId);
}
}
...@@ -4,6 +4,7 @@ import android.content.Context; ...@@ -4,6 +4,7 @@ import android.content.Context;
import android.media.AudioManager; import android.media.AudioManager;
import android.media.SoundPool; import android.media.SoundPool;
import android.os.Vibrator; import android.os.Vibrator;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.constans.AppConstans; import com.gingersoft.gsa.cloud.constans.AppConstans;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
...@@ -22,8 +23,8 @@ public class VibratorUtils { ...@@ -22,8 +23,8 @@ public class VibratorUtils {
public static void pressButtonSound(Context context) { public static void pressButtonSound(Context context) {
SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_SYSTEM, 0); SoundPool soundPool = new SoundPool(1, AudioManager.STREAM_SYSTEM, 0);
soundPool.load(context, R.raw.beep, 1); soundPool.load(context, R.raw.beep, 1);
int vibrationProgress = (int) SPUtils.get(context, AppConstans.VIBRATION_PROGRESS,0); int vibrationProgress = (int) SPUtils.get(AppConstans.VIBRATION_PROGRESS, 0);
int presssoundProgress = (int) SPUtils.get(context, AppConstans.PRESSSOUND_PROGRESS,0); int presssoundProgress = (int) SPUtils.get(AppConstans.PRESSSOUND_PROGRESS, 0);
try { try {
Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE);
if (vibrationProgress > 0) { if (vibrationProgress > 0) {
...@@ -36,7 +37,7 @@ public class VibratorUtils { ...@@ -36,7 +37,7 @@ public class VibratorUtils {
} }
} }
public void setJumpActivity(Class clazz){ public void setJumpActivity(Class clazz) {
} }
} }
...@@ -3,6 +3,8 @@ package com.gingersoft.gsa.cloud.base.utils.other; ...@@ -3,6 +3,8 @@ package com.gingersoft.gsa.cloud.base.utils.other;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method; import java.lang.reflect.Method;
import java.util.Map; import java.util.Map;
...@@ -24,11 +26,11 @@ public class SPUtils { ...@@ -24,11 +26,11 @@ public class SPUtils {
* *
* @return void 返回类型 * @return void 返回类型
*/ */
public static void put(Context context, String key, Object object) { public static void put(String key, Object object) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME, SharedPreferences sp = GsaCloudApplication.getAppContext().getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE); Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit(); SharedPreferences.Editor editor = sp.edit();
if(object == null) { if (object == null) {
editor.remove(key); editor.remove(key);
SharedPreferencesCompat.apply(editor); SharedPreferencesCompat.apply(editor);
return; return;
...@@ -53,13 +55,12 @@ public class SPUtils { ...@@ -53,13 +55,12 @@ public class SPUtils {
/** /**
* 得到保存数据的方法,根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值 * 得到保存数据的方法,根据默认值得到保存的数据的具体类型,然后调用相对于的方法获取值
* *
* @param context
* @param key * @param key
* @param defaultObject * @param defaultObject
* @return * @return
*/ */
public static Object get(Context context, String key, Object defaultObject) { public static Object get(String key, Object defaultObject) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME, SharedPreferences sp = GsaCloudApplication.getAppContext().getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE); Context.MODE_PRIVATE);
if (defaultObject instanceof String) { if (defaultObject instanceof String) {
...@@ -80,11 +81,10 @@ public class SPUtils { ...@@ -80,11 +81,10 @@ public class SPUtils {
/** /**
* 移除某个key值已经对应的值 * 移除某个key值已经对应的值
* *
* @param context
* @param key * @param key
*/ */
public static void remove(Context context, String key) { public static void remove(String key) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME, SharedPreferences sp = GsaCloudApplication.getAppContext().getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE); Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit(); SharedPreferences.Editor editor = sp.edit();
editor.remove(key); editor.remove(key);
...@@ -93,11 +93,9 @@ public class SPUtils { ...@@ -93,11 +93,9 @@ public class SPUtils {
/** /**
* 清除所有数据 * 清除所有数据
*
* @param context
*/ */
public static void clear(Context context) { public static void clear() {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME, SharedPreferences sp = GsaCloudApplication.getAppContext().getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE); Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit(); SharedPreferences.Editor editor = sp.edit();
editor.clear(); editor.clear();
...@@ -107,12 +105,11 @@ public class SPUtils { ...@@ -107,12 +105,11 @@ public class SPUtils {
/** /**
* 查询某个key是否已经存在 * 查询某个key是否已经存在
* *
* @param context
* @param key * @param key
* @return * @return
*/ */
public static boolean contains(Context context, String key) { public static boolean contains(String key) {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME, SharedPreferences sp = GsaCloudApplication.getAppContext().getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE); Context.MODE_PRIVATE);
return sp.contains(key); return sp.contains(key);
} }
...@@ -120,11 +117,10 @@ public class SPUtils { ...@@ -120,11 +117,10 @@ public class SPUtils {
/** /**
* 返回所有的键值对 * 返回所有的键值对
* *
* @param context
* @return * @return
*/ */
public static Map<String, ?> getAll(Context context) { public static Map<String, ?> getAll() {
SharedPreferences sp = context.getSharedPreferences(FILE_NAME, SharedPreferences sp = GsaCloudApplication.getAppContext().getSharedPreferences(FILE_NAME,
Context.MODE_PRIVATE); Context.MODE_PRIVATE);
return sp.getAll(); return sp.getAll();
} }
......
package com.gingersoft.gsa.cloud.bean.expandInfo; package com.gingersoft.gsa.cloud.bean.expandInfo;
import android.util.SparseArray;
import com.gingersoft.gsa.cloud.base.Api; import com.gingersoft.gsa.cloud.base.Api;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.ReflectionUtils; import com.gingersoft.gsa.cloud.base.utils.ReflectionUtils;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils; import com.gingersoft.gsa.cloud.base.utils.okhttpUtils.OkHttp3Utils;
import com.gingersoft.gsa.cloud.constans.HttpsConstans; import com.gingersoft.gsa.cloud.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
...@@ -13,7 +17,10 @@ import java.lang.reflect.Method; ...@@ -13,7 +17,10 @@ import java.lang.reflect.Method;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer; import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import lombok.Builder; import lombok.Builder;
...@@ -22,6 +29,8 @@ import lombok.Setter; ...@@ -22,6 +29,8 @@ import lombok.Setter;
import okhttp3.MediaType; import okhttp3.MediaType;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import static com.gingersoft.gsa.cloud.base.application.GsaCloudApplication.getAppContext;
/** /**
* @author : bin * @author : bin
* @create date: 2020-10-20 * @create date: 2020-10-20
...@@ -62,7 +71,7 @@ public class ExpandInfoSetting { ...@@ -62,7 +71,7 @@ public class ExpandInfoSetting {
public static void initUpdateExtendedConfiguration(Object... objects) { public static void initUpdateExtendedConfiguration(Object... objects) {
Observable.just(0) Observable.just(0)
.subscribeOn(Schedulers.newThread()) .subscribeOn(Schedulers.io())
.subscribe(new Consumer<Integer>() { .subscribe(new Consumer<Integer>() {
@Override @Override
public void accept(@io.reactivex.annotations.NonNull Integer integer) throws Exception { public void accept(@io.reactivex.annotations.NonNull Integer integer) throws Exception {
...@@ -73,10 +82,35 @@ public class ExpandInfoSetting { ...@@ -73,10 +82,35 @@ public class ExpandInfoSetting {
} }
String expandInfoListJson = JsonUtils.toJson(expandInfoSettingList); String expandInfoListJson = JsonUtils.toJson(expandInfoSettingList);
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"),expandInfoListJson); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), expandInfoListJson);
OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + Api.add_restaurant_base_table_configuration,requestBody) OkHttp3Utils.post(HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL + Api.add_restaurant_base_table_configuration, requestBody)
.subscribe(); .subscribe(new Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onNext(String s) {
int i = 1;
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
//從本地獲取餐廳擴展表數據
ExpandInfoDaoUtils expandInfoDaoUtils = new ExpandInfoDaoUtils(getAppContext());
List<ExpandInfo> expandInfos = expandInfoDaoUtils.queryAllExpandInfo();
if (expandInfos != null) {
RestaurantExpandInfoUtils.setCommonExpandInfo(expandInfos);
}
}
});
} }
}); });
} }
...@@ -99,7 +133,7 @@ public class ExpandInfoSetting { ...@@ -99,7 +133,7 @@ public class ExpandInfoSetting {
Class<?> returnClass = method.getReturnType(); Class<?> returnClass = method.getReturnType();
if (method.getName().startsWith("get") && returnClass.equals(ExpandInfoSetting.class)) { if (method.getName().startsWith("get") && returnClass.equals(ExpandInfoSetting.class)) {
try { try {
Object [] objs ={}; Object[] objs = {};
//反射執行get方法 獲取每個配置類信息 //反射執行get方法 獲取每個配置類信息
ExpandInfoSetting expandInfo = (ExpandInfoSetting) ReflectionUtils.invokeMethod(method, obj, objs); ExpandInfoSetting expandInfo = (ExpandInfoSetting) ReflectionUtils.invokeMethod(method, obj, objs);
//獲取完整的settingName //獲取完整的settingName
......
...@@ -115,7 +115,7 @@ public class HttpsConstans { ...@@ -115,7 +115,7 @@ public class HttpsConstans {
public static String RICEPON_MEMBER_61177; public static String RICEPON_MEMBER_61177;
public static void init(Context context) { public static void init(Context context) {
isFormal = (int) SPUtils.get(context, "isFormal", -1); isFormal = (int) SPUtils.get("isFormal", -1);
if (isFormal == -1 && BuildConfig.DEBUG) { if (isFormal == -1 && BuildConfig.DEBUG) {
//如果沒有手動配置過服務器,並且是DEBUG模式,默認是測試服務器 //如果沒有手動配置過服務器,並且是DEBUG模式,默認是測試服務器
isFormal = 1; isFormal = 1;
......
...@@ -141,7 +141,6 @@ public class PrinterUtils { ...@@ -141,7 +141,6 @@ public class PrinterUtils {
* and executes a full cut ( cuts the paper completely ) * and executes a full cut ( cuts the paper completely )
* *
* @return bytes for this command * @return bytes for this command
* @return bytes for this command
*/ */
public static byte[] feedPaperCut() { public static byte[] feedPaperCut() {
return PrintCommands.selectCutModeAndCutPaper(1, 0); return PrintCommands.selectCutModeAndCutPaper(1, 0);
...@@ -441,7 +440,7 @@ public class PrinterUtils { ...@@ -441,7 +440,7 @@ public class PrinterUtils {
function.setLable("本機"); function.setLable("本機");
orderTopFunctionAdapter.notifyDataSetChanged(); orderTopFunctionAdapter.notifyDataSetChanged();
} }
SPUtils.put(dialog.getContext(), PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.LOCAL_PRINT); SPUtils.put(PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.LOCAL_PRINT);
dialog.dismiss(); dialog.dismiss();
}); });
hepler.setViewClick(R.id.internet_print, v -> { hepler.setViewClick(R.id.internet_print, v -> {
...@@ -450,7 +449,7 @@ public class PrinterUtils { ...@@ -450,7 +449,7 @@ public class PrinterUtils {
function.setLable("網絡"); function.setLable("網絡");
orderTopFunctionAdapter.notifyDataSetChanged(); orderTopFunctionAdapter.notifyDataSetChanged();
} }
SPUtils.put(dialog.getContext(), PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.IP_PRINT); SPUtils.put(PrintConstans.DEFAULT_PRINT_METHOD, PrintConstans.IP_PRINT);
dialog.dismiss(); dialog.dismiss();
}); });
} }
......
...@@ -81,7 +81,7 @@ ext { ...@@ -81,7 +81,7 @@ ext {
//rxbinding //rxbinding
"rxbinding" : "com.jakewharton.rxbinding4:rxbinding:4.0.0", "rxbinding2" : "com.jakewharton.rxbinding2:rxbinding:2.1.1",
//tools //tools
"dagger2" : "com.google.dagger:dagger:${version["dagger2SdkVersion"]}", "dagger2" : "com.google.dagger:dagger:${version["dagger2SdkVersion"]}",
......
...@@ -46,7 +46,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B ...@@ -46,7 +46,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
restaurantSize = RestaurantInfoUtils.getRestaurantSize(brands); restaurantSize = RestaurantInfoUtils.getRestaurantSize(brands);
brandsBeans.addAll(brands); brandsBeans.addAll(brands);
} }
boolean autoLogin = (boolean) SPUtils.get(mContext, UserConstans.AUTO_LOGIN, false); boolean autoLogin = (boolean) SPUtils.get(UserConstans.AUTO_LOGIN, false);
if (autoLogin && GsaCloudApplication.isLogin) { if (autoLogin && GsaCloudApplication.isLogin) {
int restaurantId = GsaCloudApplication.getRestaurantId(); int restaurantId = GsaCloudApplication.getRestaurantId();
...@@ -88,7 +88,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B ...@@ -88,7 +88,7 @@ public abstract class LoginInterfaceImpl<P extends BaseLoginPresenter> extends B
GsaCloudApplication.setMemberName(mContext, loginBean.getData().getUser().getUserName()); GsaCloudApplication.setMemberName(mContext, loginBean.getData().getUser().getUserName());
//獲取餐廳 //獲取餐廳
// mPresenter.getRestaurantList(); // mPresenter.getRestaurantList();
boolean autoLogin = (boolean) SPUtils.get(mContext, UserConstans.AUTO_LOGIN, false); boolean autoLogin = (boolean) SPUtils.get(UserConstans.AUTO_LOGIN, false);
if (autoLogin) { if (autoLogin) {
int restaurantId = GsaCloudApplication.getRestaurantId(); int restaurantId = GsaCloudApplication.getRestaurantId();
if (restaurantId != 0) { if (restaurantId != 0) {
......
...@@ -97,7 +97,7 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas ...@@ -97,7 +97,7 @@ public class BaseLoginPresenter<M extends BaseLoginContract.Model, V extends Bas
public void onNext(@NonNull LoginBean info) { public void onNext(@NonNull LoginBean info) {
if (info.isSuccess()) { if (info.isSuccess()) {
GsaCloudApplication.isLogin = true; GsaCloudApplication.isLogin = true;
SPUtils.put(GsaCloudApplication.getAppContext(), PrintConstans.IS_LOGIN, true); SPUtils.put(PrintConstans.IS_LOGIN, true);
GsaCloudApplication.userName = info.getData().getUser().getUserName(); GsaCloudApplication.userName = info.getData().getUser().getUserName();
mRootView.showMessage("登陸成功"); mRootView.showMessage("登陸成功");
mRootView.loginSuccess(info); mRootView.loginSuccess(info);
......
...@@ -102,12 +102,12 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements ...@@ -102,12 +102,12 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
((ImageView) findViewById(R.id.iv_top_bg)).setAdjustViewBounds(true); ((ImageView) findViewById(R.id.iv_top_bg)).setAdjustViewBounds(true);
mPresenter.requestExternalStoragePermission(); mPresenter.requestExternalStoragePermission();
//顯示記住的登錄名 //顯示記住的登錄名
if (!Objects.equals(SPUtils.get(mContext, UserConstans.LOGIN_USERNAME, ""), "")) { if (!Objects.equals(SPUtils.get( UserConstans.LOGIN_USERNAME, ""), "")) {
edAccount.setText("" + SPUtils.get(mContext, UserConstans.LOGIN_USERNAME, "")); edAccount.setText("" + SPUtils.get(UserConstans.LOGIN_USERNAME, ""));
mRbRememberPwd.setChecked(true); mRbRememberPwd.setChecked(true);
} }
//顯示記住的密碼 //顯示記住的密碼
String pwd = Aes.aesDecrypt((String) SPUtils.get(mContext, UserConstans.LOGIN_PASSWORD, "")); String pwd = Aes.aesDecrypt((String) SPUtils.get(UserConstans.LOGIN_PASSWORD, ""));
if (!TextUtil.isEmptyOrNullOrUndefined(pwd)) { if (!TextUtil.isEmptyOrNullOrUndefined(pwd)) {
edPwd.setText(pwd); edPwd.setText(pwd);
editFocusChange(edPwd, true); editFocusChange(edPwd, true);
...@@ -127,7 +127,7 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements ...@@ -127,7 +127,7 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
} }
}); });
if ((boolean) SPUtils.get(mContext, UserConstans.AUTO_LOGIN, false)) { if ((boolean) SPUtils.get(UserConstans.AUTO_LOGIN, false)) {
//自動登陸 //自動登陸
mRbAutoLogin.setChecked(true); mRbAutoLogin.setChecked(true);
} }
...@@ -311,17 +311,17 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements ...@@ -311,17 +311,17 @@ public class LoginActivity extends LoginInterfaceImpl<LoginPresenter> implements
private void RememberPwd() { private void RememberPwd() {
if (mRbRememberPwd.isChecked()) { if (mRbRememberPwd.isChecked()) {
//登陸成功後,如果選中了記住密碼,則保存密碼 //登陸成功後,如果選中了記住密碼,則保存密碼
SPUtils.put(mContext, UserConstans.LOGIN_USERNAME, edAccount.getText().toString()); SPUtils.put(UserConstans.LOGIN_USERNAME, edAccount.getText().toString());
//將密碼加密再保存 //將密碼加密再保存
SPUtils.put(mContext, UserConstans.LOGIN_PASSWORD, Aes.aesEncrypt(edPwd.getText().toString()).replaceAll("\r|\n", "")); SPUtils.put(UserConstans.LOGIN_PASSWORD, Aes.aesEncrypt(edPwd.getText().toString()).replaceAll("\r|\n", ""));
} else { } else {
SPUtils.put(mContext, UserConstans.LOGIN_USERNAME, ""); SPUtils.put(UserConstans.LOGIN_USERNAME, "");
SPUtils.put(mContext, UserConstans.LOGIN_PASSWORD, ""); SPUtils.put(UserConstans.LOGIN_PASSWORD, "");
} }
} }
private void autoLogin() { private void autoLogin() {
SPUtils.put(mContext, UserConstans.AUTO_LOGIN, mRbAutoLogin.isChecked()); SPUtils.put(UserConstans.AUTO_LOGIN, mRbAutoLogin.isChecked());
} }
@OnClick({R2.id.btn_gsa_user_login, R2.id.iv_clear_pwd, R2.id.iv_clear_account, R2.id.tv_remember_pwd_text, R2.id.ic_look_pwd, R2.id.tv_auto_login_text, R2.id.tv_forget_pwd}) @OnClick({R2.id.btn_gsa_user_login, R2.id.iv_clear_pwd, R2.id.iv_clear_account, R2.id.tv_remember_pwd_text, R2.id.ic_look_pwd, R2.id.tv_auto_login_text, R2.id.tv_forget_pwd})
......
...@@ -61,6 +61,7 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im ...@@ -61,6 +61,7 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im
private int[] rbIds = new int[]{R.id.rb_server_hk, R.id.rb_server_formal, R.id.rb_youchang, R.id.rb_shiwei, R.id.rb_shishu}; private int[] rbIds = new int[]{R.id.rb_server_hk, R.id.rb_server_formal, R.id.rb_youchang, R.id.rb_shiwei, R.id.rb_shishu};
private int selectIndex; private int selectIndex;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
DaggerSwitchServerComponent //如找不到该类,请编译一下项目 DaggerSwitchServerComponent //如找不到该类,请编译一下项目
...@@ -84,7 +85,7 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im ...@@ -84,7 +85,7 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im
radioGroup.setOnCheckedChangeListener((group, checkedId) -> selectIndex = group.indexOfChild(findViewById(checkedId))); radioGroup.setOnCheckedChangeListener((group, checkedId) -> selectIndex = group.indexOfChild(findViewById(checkedId)));
switchServer.setOnClickListener(v -> { switchServer.setOnClickListener(v -> {
SPUtils.put(mContext, "isFormal", selectIndex); SPUtils.put("isFormal", selectIndex);
GsaCloudApplication.logOut(); GsaCloudApplication.logOut();
ToastUtils.show(mContext, "已切換環境,重啟生效" + selectIndex); ToastUtils.show(mContext, "已切換環境,重啟生效" + selectIndex);
GsaCloudApplication.initDomainUrl(); GsaCloudApplication.initDomainUrl();
......
...@@ -94,15 +94,15 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem ...@@ -94,15 +94,15 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
@Override @Override
public void onAnimationEnd(Animation animation) { public void onAnimationEnd(Animation animation) {
if ((boolean) SPUtils.get(mContext, UserConstans.IS_GUIDE, true)) { if ((boolean) SPUtils.get(UserConstans.IS_GUIDE, true)) {
//是第一次進入,顯示引導頁 //是第一次進入,顯示引導頁
showGuide(); showGuide();
} else { } else {
if ((boolean) SPUtils.get(mContext, UserConstans.AUTO_LOGIN, false) && GsaCloudApplication.isLogin if ((boolean) SPUtils.get(UserConstans.AUTO_LOGIN, false) && GsaCloudApplication.isLogin
&& GsaCloudApplication.getRestaurantId() != 0) { && GsaCloudApplication.getRestaurantId() != 0) {
//自動登陸 //自動登陸
String pwd = Aes.aesDecrypt((String) SPUtils.get(mContext, UserConstans.LOGIN_PASSWORD, "")); String pwd = Aes.aesDecrypt((String) SPUtils.get(UserConstans.LOGIN_PASSWORD, ""));
mPresenter.login(SPUtils.get(mContext, UserConstans.LOGIN_USERNAME, "") + "", pwd); mPresenter.login(SPUtils.get(UserConstans.LOGIN_USERNAME, "") + "", pwd);
} else { } else {
startActivity(new Intent(mContext, LoginActivity.class)); startActivity(new Intent(mContext, LoginActivity.class));
} }
...@@ -280,7 +280,7 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem ...@@ -280,7 +280,7 @@ public class WelcomeActivity extends LoginInterfaceImpl<WelcomePresenter> implem
if (v.getId() == R.id.iv_guide_close || v.getId() == R.id.tv_experience) { if (v.getId() == R.id.iv_guide_close || v.getId() == R.id.tv_experience) {
//去登陸頁,設置下次不顯示引導頁 //去登陸頁,設置下次不顯示引導頁
//立即體驗 //立即體驗
SPUtils.put(mContext, UserConstans.IS_GUIDE, false); SPUtils.put(UserConstans.IS_GUIDE, false);
startActivity(new Intent(mContext, LoginActivity.class)); startActivity(new Intent(mContext, LoginActivity.class));
} }
} }
......
...@@ -178,7 +178,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl ...@@ -178,7 +178,7 @@ public class NewMainActivity extends BaseFragmentActivity<NewMainPresenter> impl
protected void onResume() { protected void onResume() {
super.onResume(); super.onResume();
initFuncationData(); initFuncationData();
if (((int) SPUtils.get(mContext, "isFormal", 0)) != 0) { if (((int) SPUtils.get("isFormal", 0)) != 0) {
tv_version_name.setText("v_" + DeviceUtils.getVersionName(this) + "\u1500Beta"); tv_version_name.setText("v_" + DeviceUtils.getVersionName(this) + "\u1500Beta");
} else { } else {
tv_version_name.setText("v_" + DeviceUtils.getVersionName(this)); tv_version_name.setText("v_" + DeviceUtils.getVersionName(this));
......
...@@ -174,7 +174,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -174,7 +174,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
rightBtn = mTopBar.addRightTextButton("打印", R.id.tv_right); rightBtn = mTopBar.addRightTextButton("打印", R.id.tv_right);
rightBtn.setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color)); rightBtn.setTextColor(ArmsUtils.getColor(this, R.color.theme_white_color));
rightBtn.setOnClickListener(v -> { rightBtn.setOnClickListener(v -> {
String settlementReportJson = (String) SPUtils.get(mContext, PrintConstans.SETTLEMENT_REPORT, ""); String settlementReportJson = (String) SPUtils.get( PrintConstans.SETTLEMENT_REPORT, "");
if (!TextUtils.isEmpty(settlementReportJson)) { if (!TextUtils.isEmpty(settlementReportJson)) {
SettlementReport.DataBean datasBean = JsonUtils.parseObject(settlementReportJson, SettlementReport.DataBean.class); SettlementReport.DataBean datasBean = JsonUtils.parseObject(settlementReportJson, SettlementReport.DataBean.class);
if (datasBean != null) { if (datasBean != null) {
...@@ -290,7 +290,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese ...@@ -290,7 +290,7 @@ public class SettlementReportActivity extends BaseActivity<SettlementReportPrese
public void returnSettlementData(SettlementReport.DataBean datasBean) { public void returnSettlementData(SettlementReport.DataBean datasBean) {
if (datasBean.getVo() != null && datasBean.getVo().getPrices() > 0) { if (datasBean.getVo() != null && datasBean.getVo().getPrices() > 0) {
//保存下次重印數據 //保存下次重印數據
SPUtils.put(mContext, PrintConstans.SETTLEMENT_REPORT, JsonUtils.toJson(datasBean)); SPUtils.put( PrintConstans.SETTLEMENT_REPORT, JsonUtils.toJson(datasBean));
} }
List<SectionTextItem3> settlementReportItems = new ArrayList<>(); List<SectionTextItem3> settlementReportItems = new ArrayList<>();
......
...@@ -27,7 +27,7 @@ public class OrderDiscount { ...@@ -27,7 +27,7 @@ public class OrderDiscount {
public static class Request { public static class Request {
/** /**
* 0#整單折扣 * 0#餐廳折扣
* 1#會員折扣 * 1#會員折扣
* 2#优惠券折扣 * 2#优惠券折扣
*/ */
...@@ -144,7 +144,7 @@ public class OrderDiscount { ...@@ -144,7 +144,7 @@ public class OrderDiscount {
public static class Respose implements Serializable { public static class Respose implements Serializable {
/** /**
* 整單折扣ID * 餐廳折扣ID
*/ */
private Long discountId; private Long discountId;
/**折扣金額*/ /**折扣金額*/
...@@ -152,11 +152,15 @@ public class OrderDiscount { ...@@ -152,11 +152,15 @@ public class OrderDiscount {
/**折扣比例*/ /**折扣比例*/
private int discountValue; private int discountValue;
/** /**
* 0#整單折扣 * 0#餐廳折扣
* 1#會員折扣 * 1#會員折扣
* 2#优惠券折扣 * 2#优惠券折扣
*/ */
private int type; private int type;
/**
* 餐廳折扣類型 0:金額,1:折扣,2:自定義金額,3:自由金額,數字盤,4:免服務費
*/
private byte discountType;
/**折扣名称1*/ /**折扣名称1*/
private String remark; private String remark;
/**折扣名称2*/ /**折扣名称2*/
...@@ -173,115 +177,6 @@ public class OrderDiscount { ...@@ -173,115 +177,6 @@ public class OrderDiscount {
private Byte accumulate; private Byte accumulate;
public String getRemark() {
return remark;
}
public Long getDiscountId() {
return discountId;
}
public void setDiscountId(Long discountId) {
this.discountId = discountId;
}
public double getDiscountAmount() {
return discountAmount;
}
public void setDiscountAmount(double discountAmount) {
this.discountAmount = discountAmount;
}
public int getDiscountValue() {
return discountValue;
}
public void setDiscountValue(int discountValue) {
this.discountValue = discountValue;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getRemark2() {
return remark2;
}
public void setRemark2(String remark2) {
this.remark2 = remark2;
}
public String getRemark3() {
return remark3;
}
public void setRemark3(String remark3) {
this.remark3 = remark3;
}
public Double getSpend() {
return spend;
}
public void setSpend(Double spend) {
this.spend = spend;
}
public Byte getAccumulate() {
return accumulate;
}
public void setAccumulate(Byte accumulate) {
this.accumulate = accumulate;
}
}
/**
* 計算折扣金額
*
* @param discount
* @param sourcePrice
* @return
*/
public static double calculationDiscount(Discount discount, double sourcePrice) {
double discountPrice;
if (discount.getType() == Discount.DISCOUNT_TYPE_AMOUNT) {
//金額折扣
discountPrice = discount.getAmount();
} else {
//百分比折扣
discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice, discount.getDiscountValue()), 100).doubleValue();
}
if (sourcePrice < discountPrice) {
//折扣金額不能超出總額
discountPrice = sourcePrice;
}
// else {
// discountPrice = sourcePrice - discountPrice;
// }
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountPrice));
} }
public static double calculationMemberDiscount(int discountRate, double sourcePrice) {
double discountPrice = MoneyUtil.divide(MoneyUtil.multiply(sourcePrice, discountRate), 100).doubleValue();
if (sourcePrice < discountPrice) {
//折扣金額不能超出總額
discountPrice = sourcePrice;
}
// else {
// discountPrice = sourcePrice - discountPrice;
// }
return -MoneyUtil.get_ItemDecimals_money(Math.abs(discountPrice));
}
} }
...@@ -4,17 +4,12 @@ import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; ...@@ -4,17 +4,12 @@ import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean; import com.gingersoft.gsa.cloud.base.order.bean.discount.CouponDiscountBean;
import com.gingersoft.gsa.cloud.base.order.billItem.BillItem; import com.gingersoft.gsa.cloud.base.order.billItem.BillItem;
import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem; import com.gingersoft.gsa.cloud.base.order.billItem.DiscountItem;
import com.gingersoft.gsa.cloud.base.order.commodity.Commodity;
import com.gingersoft.gsa.cloud.base.order.commodity.MealCommodity;
import com.gingersoft.gsa.cloud.base.order.commodity.MealTakeaway;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.discount.CouponDiscount; import com.gingersoft.gsa.cloud.base.order.discount.CouponDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.MemberDiscount; import com.gingersoft.gsa.cloud.base.order.discount.MemberDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount; import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount; import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.constans.FoodSummaryConstans;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.jess.arms.utils.Preconditions;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -179,10 +174,16 @@ public class ShoppingCart { ...@@ -179,10 +174,16 @@ public class ShoppingCart {
*/ */
public void delAllMultyDiscount() { public void delAllMultyDiscount() {
List<MultyDiscount> multyDiscountList = getMultyDiscountList(); List<MultyDiscount> multyDiscountList = getMultyDiscountList();
// for (MultyDiscount multyDiscount: multyDiscountList) { boolean result = multyDiscountList.removeAll(multyDiscountList);
// multyDiscountList.remove(multyDiscount); int i = 100;
// } }
multyDiscountList.removeAll(multyDiscountList);
/**
* 刪除所有單折扣
*/
public void delAllNomalDiscountList(List<NomalDiscount> nomalDiscountList) {
boolean result = getMultyDiscountList().removeAll(nomalDiscountList);
int i = 100;
} }
/** /**
...@@ -253,7 +254,7 @@ public class ShoppingCart { ...@@ -253,7 +254,7 @@ public class ShoppingCart {
} }
multyDiscountArrays.add(multyDiscounts); multyDiscountArrays.add(multyDiscounts);
} }
if (multyDiscounts != null) { if (money != 0 && multyDiscounts != null) {
//計算折扣金額 //計算折扣金額
money = multyDiscounts.calculate(money); money = multyDiscounts.calculate(money);
} }
...@@ -280,7 +281,7 @@ public class ShoppingCart { ...@@ -280,7 +281,7 @@ public class ShoppingCart {
} }
/** /**
* 獲取普通折扣 * 獲取普通折扣列表
* *
* @return * @return
*/ */
......
...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.base.order.commodity; ...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.base.order.commodity;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean; import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount; import com.gingersoft.gsa.cloud.base.order.bean.discount.OrderDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder; import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder; import com.gingersoft.gsa.cloud.base.order.order.TakeawayOrder;
...@@ -415,7 +416,7 @@ public class MealCommodity implements Commodity { ...@@ -415,7 +416,7 @@ public class MealCommodity implements Commodity {
*/ */
public static MealCommodity discountTransMealCommodity(Discount discount, boolean isNew, long id, double sourcePrice) { public static MealCommodity discountTransMealCommodity(Discount discount, boolean isNew, long id, double sourcePrice) {
double discountPrice = OrderDiscount.calculationDiscount(discount, sourcePrice); double discountPrice = NomalDiscount.calculationDiscount(discount, sourcePrice);
MealCommodity mealCommodity = new MealCommodity(); MealCommodity mealCommodity = new MealCommodity();
mealCommodity.setProductName(discount.getRemark()); mealCommodity.setProductName(discount.getRemark());
......
...@@ -183,10 +183,18 @@ public class OrderDetail implements Commodity, Serializable { ...@@ -183,10 +183,18 @@ public class OrderDetail implements Commodity, Serializable {
*/ */
private String printSeting; private String printSeting;
/** /**
* 是否免服務費 0:否,1:是
*/
private byte freeServiceCharge;
/**
* 是否参与折扣#0:不參與;1:參與; * 是否参与折扣#0:不參與;1:參與;
*/ */
private long ablediscount = 1; private long ablediscount = 1;
/** /**
* 是否参与折上折 0:否,1:是
*/
private byte additionalDiscount = 1;
/**
* 折扣實體 * 折扣實體
*/ */
private Discount discount; private Discount discount;
...@@ -195,7 +203,7 @@ public class OrderDetail implements Commodity, Serializable { ...@@ -195,7 +203,7 @@ public class OrderDetail implements Commodity, Serializable {
*/ */
private int discountStatus; private int discountStatus;
/** /**
* 是否参与折扣#0:不參與;1:參與; * 是否参与服務費#0:不參與;1:參與;
**/ **/
private byte scAble = 1; private byte scAble = 1;
/** /**
...@@ -305,6 +313,8 @@ public class OrderDetail implements Commodity, Serializable { ...@@ -305,6 +313,8 @@ public class OrderDetail implements Commodity, Serializable {
this.scAble = orderDetail.scAble; this.scAble = orderDetail.scAble;
this.ftName = orderDetail.ftName; this.ftName = orderDetail.ftName;
this.majorName = orderDetail.majorName; this.majorName = orderDetail.majorName;
this.freeServiceCharge = orderDetail.freeServiceCharge;
this.additionalDiscount = orderDetail.additionalDiscount;
this.discount = orderDetail.discount; this.discount = orderDetail.discount;
this.discountStatus = orderDetail.discountStatus; this.discountStatus = orderDetail.discountStatus;
this.status = orderDetail.status; this.status = orderDetail.status;
......
package com.gingersoft.gsa.cloud.base.order.discount; package com.gingersoft.gsa.cloud.base.order.discount;
import android.os.Handler;
import android.os.Looper;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil; import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
...@@ -54,7 +57,13 @@ public class NomalDiscount extends MultyDiscount { ...@@ -54,7 +57,13 @@ public class NomalDiscount extends MultyDiscount {
//不能大於折扣上限 //不能大於折扣上限
discountMoney = discount.getDiscountCap(); discountMoney = discount.getDiscountCap();
if (BuildConfig.DEBUG) { if (BuildConfig.DEBUG) {
ArmsUtils.makeText(GsaCloudApplication.getAppContext(), "此折扣上限為:" + discountMoney); double finalDiscountMoney = discountMoney;
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
ArmsUtils.makeText(GsaCloudApplication.getAppContext(), "此折扣上限為:" + finalDiscountMoney);
}
});
} }
} }
if (sourceMoney < discountMoney) { if (sourceMoney < discountMoney) {
......
...@@ -173,7 +173,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -173,7 +173,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} else { } else {
// 獲取默認打印機,如果用戶沒有配置默認打印機,就取他最近使用的一個. // 獲取默認打印機,如果用戶沒有配置默認打印機,就取他最近使用的一個.
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印 // 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get(mContext, "defaultPrint", "")); defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get( "defaultPrint", ""));
} }
if (defaultPrint == null) { if (defaultPrint == null) {
//沒有默認打印機,查看當前餐廳有沒有打印機 //沒有默認打印機,查看當前餐廳有沒有打印機
...@@ -194,7 +194,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -194,7 +194,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
PrinterDeviceBean defaultPrint = MyPrintUtils.configPrinterProperties(finalPrintCurrencyBean, printerDeviceBeans.get(position)); PrinterDeviceBean defaultPrint = MyPrintUtils.configPrinterProperties(finalPrintCurrencyBean, printerDeviceBeans.get(position));
printByDevice(defaultPrint); printByDevice(defaultPrint);
selectPrint = position; selectPrint = position;
SPUtils.put(mContext, "defaultPrint", printerDeviceBeans.get(position).getName()); SPUtils.put( "defaultPrint", printerDeviceBeans.get(position).getName());
dialog.dismiss(); dialog.dismiss();
}); });
} }
......
...@@ -69,16 +69,14 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -69,16 +69,14 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
/** /**
* 過濾食品條件 * 過濾食品條件
* 1、過濾餐種
* @param foodList * @param foodList
* @param summary * @param summary
* @return * @return
*/ */
public List<Food> foodConditionFilter(List<Food> foodList, int summary) { public List<Food> foodConditionFilter(List<Food> foodList, int summary) {
String strSummary = String.valueOf(summary); String strSummary = String.valueOf(summary);
List<Food> newFoodList = new ArrayList<>(); List<Food> newFoodList = new ArrayList<>();
for (int i = foodList.size() - 1; i >= 0; i--) { for (Food food : foodList) {
Food food = foodList.get(i);
String foodSummary = food.getFoodSummary(); String foodSummary = food.getFoodSummary();
if (!TextUtils.isEmpty(foodSummary)) { if (!TextUtils.isEmpty(foodSummary)) {
String[] summarys = foodSummary.split(","); String[] summarys = foodSummary.split(",");
...@@ -94,16 +92,14 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model ...@@ -94,16 +92,14 @@ public class MealStandModel extends BaseModel implements MealStandContract.Model
/** /**
* 過濾套餐食品條件 * 過濾套餐食品條件
* 1、過濾餐種
* @param comboItemList * @param comboItemList
* @param summary * @param summary
* @return * @return
*/ */
public List<ComboItem> comboConditionFilter(List<ComboItem> comboItemList, int summary) { public List<ComboItem> comboConditionFilter(List<ComboItem> comboItemList, int summary) {
String strSummary = String.valueOf(summary); String strSummary = String.valueOf(summary);
List<ComboItem> newComboItemList = new ArrayList<>(); List<ComboItem> newComboItemList = new ArrayList<>();
for (int i = comboItemList.size() - 1; i >= 0; i--) { for (ComboItem comboItem : comboItemList) {
ComboItem comboItem = comboItemList.get(i);
String foodSummary = comboItem.getFoodSummary(); String foodSummary = comboItem.getFoodSummary();
if (!TextUtils.isEmpty(foodSummary)) { if (!TextUtils.isEmpty(foodSummary)) {
String[] summarys = foodSummary.split(","); String[] summarys = foodSummary.split(",");
......
...@@ -20,6 +20,7 @@ import com.jess.arms.di.scope.ActivityScope; ...@@ -20,6 +20,7 @@ import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel; import com.jess.arms.mvp.BaseModel;
import java.util.Date;
import java.util.List; import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -64,8 +65,9 @@ public class OrderContentModel extends BaseModel implements OrderContentContract ...@@ -64,8 +65,9 @@ public class OrderContentModel extends BaseModel implements OrderContentContract
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance(); DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
if (doshokuOrder == null) { if (doshokuOrder == null) {
doshokuOrder.setOpenTableInfo(new TableBean.DataBean()); doshokuOrder.setOpenTableInfo(new TableBean.DataBean());
String dateTime = new Date(createTime).toString();
doshokuOrder.getOrderPlaced().setCreateTime(dateTime);
} }
doshokuOrder.getOpenTableInfo().setCreateTime(TimeUtils.getTime(createTime, TimeUtils.DEFAULT_DATE_FORMAT));
} }
@Override @Override
......
...@@ -11,6 +11,7 @@ import android.widget.AdapterView; ...@@ -11,6 +11,7 @@ import android.widget.AdapterView;
import android.widget.EditText; import android.widget.EditText;
import android.widget.GridView; import android.widget.GridView;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount; import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder; import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
...@@ -20,6 +21,7 @@ import com.gingersoft.gsa.cloud.table.R2; ...@@ -20,6 +21,7 @@ import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.KeyboardDialog; import com.gingersoft.gsa.cloud.table.mvp.ui.widget.KeyboardDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.gingersoft.gsa.cloud.ui.widget.keyboard.VirtualKeyboardView; import com.gingersoft.gsa.cloud.ui.widget.keyboard.VirtualKeyboardView;
import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import java.lang.reflect.Method; import java.lang.reflect.Method;
...@@ -40,42 +42,56 @@ public class BillDiscountAction implements Strategy<Discount> { ...@@ -40,42 +42,56 @@ public class BillDiscountAction implements Strategy<Discount> {
private Activity mContext; private Activity mContext;
/**
* 賬單折扣列表
*/
private List<NomalDiscount> mNomalDiscountList; private List<NomalDiscount> mNomalDiscountList;
private OnCallBackListener mListener; private OnCallBackListener mListener;
public BillDiscountAction(Activity context, List<NomalDiscount> nomalDiscountList, OnCallBackListener listener) { public BillDiscountAction(Activity context, OnCallBackListener listener) {
this.mContext = context; this.mContext = context;
this.mNomalDiscountList = nomalDiscountList;
this.mListener = listener; this.mListener = listener;
} }
public void setNomalDiscountList(List<NomalDiscount> nomalDiscountList) {
this.mNomalDiscountList = nomalDiscountList;
}
@Override @Override
public void action(Discount discount) { public void action(Discount discount) {
if (mListener == null) {
return;
}
if (isOnlyOnce(discount)) { if (isOnlyOnce(discount)) {
//此折扣只一次 //此折扣只一次
ArmsUtils.makeText(mContext, "此折扣只一次");
return; return;
} }
boolean hasExclusive = hasExclusiveDiscount() || discount.getExclusive() == 1; boolean hasExclusive = hasExclusiveDiscount();
if (hasExclusive) { if (hasExclusive) {
//有獨佔折扣 //有獨佔折扣
exclusiveDiscount(discount); exclusiveDiscount(discount);
return; return;
} else {
if (discount.getExclusive() == 1 && mNomalDiscountList.size()>0) {
//獨佔折扣
exclusiveDiscount(discount);
return;
}
} }
switch (discount.getType()) { switch (discount.getType()) {
case Discount.DISCOUNT_TYPE_AMOUNT:
case Discount.DISCOUNT_TYPE_RATE:
break;
case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT: case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount); showCustomAmountDialog(discount, false);
break; break;
case Discount.DISCOUNT_TYPE_KEYBOARD: case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount); showKeyboardDialog(discount, false);
break;
case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
break; break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default: default:
mListener.preformAddDiscount(discount);
break; break;
} }
} }
...@@ -83,7 +99,6 @@ public class BillDiscountAction implements Strategy<Discount> { ...@@ -83,7 +99,6 @@ public class BillDiscountAction implements Strategy<Discount> {
private void exclusiveDiscount(Discount discount) { private void exclusiveDiscount(Discount discount) {
if (mListener != null) { if (mListener != null) {
showExclusiveTipDialog(discount); showExclusiveTipDialog(discount);
} }
} }
...@@ -122,14 +137,18 @@ public class BillDiscountAction implements Strategy<Discount> { ...@@ -122,14 +137,18 @@ public class BillDiscountAction implements Strategy<Discount> {
/** /**
* 顯示自定義金額彈窗 * 顯示自定義金額彈窗
*
* @param discount * @param discount
*/ */
private void showCustomAmountDialog(Discount discount) { private void showCustomAmountDialog(Discount discount, boolean exclusiveReplace) {
CommonTipDialog.showEditDialog(mContext, discount.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() { CommonTipDialog.showEditDialog(mContext, discount.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() {
@Override @Override
public void inputText(String text) { public void inputText(String text) {
discount.setAmount(Double.parseDouble(text)); discount.setAmount(Double.parseDouble(text));
if (mListener != null) { if (mListener != null) {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers(mNomalDiscountList);
}
mListener.preformAddDiscount(discount); mListener.preformAddDiscount(discount);
} }
} }
...@@ -138,9 +157,10 @@ public class BillDiscountAction implements Strategy<Discount> { ...@@ -138,9 +157,10 @@ public class BillDiscountAction implements Strategy<Discount> {
/** /**
* 顯示子弟你金額彈窗 鍵盤 * 顯示子弟你金額彈窗 鍵盤
*
* @param discount * @param discount
*/ */
private void showKeyboardDialog(Discount discount) { private void showKeyboardDialog(Discount discount, boolean exclusiveReplace) {
new KeyboardDialog(mContext) new KeyboardDialog(mContext)
.build() .build()
.setOnCallBackListener(new KeyboardDialog.OnCallBackListener() { .setOnCallBackListener(new KeyboardDialog.OnCallBackListener() {
...@@ -148,6 +168,9 @@ public class BillDiscountAction implements Strategy<Discount> { ...@@ -148,6 +168,9 @@ public class BillDiscountAction implements Strategy<Discount> {
public void onSure(String number) { public void onSure(String number) {
discount.setAmount(Double.parseDouble(number)); discount.setAmount(Double.parseDouble(number));
if (mListener != null) { if (mListener != null) {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers(mNomalDiscountList);
}
mListener.preformAddDiscount(discount); mListener.preformAddDiscount(discount);
} }
} }
...@@ -157,21 +180,35 @@ public class BillDiscountAction implements Strategy<Discount> { ...@@ -157,21 +180,35 @@ public class BillDiscountAction implements Strategy<Discount> {
/** /**
* 提示有獨佔折扣是否替換 * 提示有獨佔折扣是否替換
*
* @param discount * @param discount
*/ */
private void showExclusiveTipDialog(Discount discount) { private void showExclusiveTipDialog(Discount discount) {
CommonTipDialog.showDoubtDialog2(mContext, "有獨佔折扣,是否替換", new CommonTipDialog.OnCallbackListener() { CommonTipDialog.showDoubtDialog2(mContext, "有獨佔折扣,是否替換", new CommonTipDialog.OnCallbackListener() {
@Override @Override
public void onSure() { public void onSure() {
mListener.exclusiveRemoveOther(); switch (discount.getType()) {
mListener.preformAddDiscount(discount); case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount, true);
break;
case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount, true);
break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default:
mListener.exclusiveRemoveOthers(mNomalDiscountList);
mListener.preformAddDiscount(discount);
break;
}
} }
}); });
} }
public interface OnCallBackListener { public interface OnCallBackListener {
void exclusiveRemoveOther(); void exclusiveRemoveOthers(List<NomalDiscount> nomalDiscountList);
void preformAddDiscount(Discount discount); void preformAddDiscount(Discount discount);
} }
......
package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.patterns.Strategy;
/**
* @author : bin
* @create date: 2020-10-27
* @update date: 2020-10-27
* @description:
*/
public interface DiscountAction{
}
...@@ -2,15 +2,14 @@ package com.gingersoft.gsa.cloud.table.mvp.model.discount; ...@@ -2,15 +2,14 @@ package com.gingersoft.gsa.cloud.table.mvp.model.discount;
import android.app.Activity; import android.app.Activity;
import android.text.InputType; import android.text.InputType;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.discount.NomalDiscount; import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.utils.MoneyUtil;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.patterns.Strategy; import com.gingersoft.gsa.cloud.patterns.Strategy;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.KeyboardDialog; import com.gingersoft.gsa.cloud.table.mvp.ui.widget.KeyboardDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.jess.arms.utils.ArmsUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
...@@ -23,13 +22,18 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -23,13 +22,18 @@ public class MealDiscountAction implements Strategy<Discount> {
private Activity mContext; private Activity mContext;
/**
* 選中的食品或套餐組
*/
private List<OrderDetail> mSelectMixOrderMealList; private List<OrderDetail> mSelectMixOrderMealList;
private List<MultyDiscount> mMultyDiscountList;
private MealDiscountAction.OnCallBackListener mListener; private MealDiscountAction.OnCallBackListener mListener;
public MealDiscountAction(Activity context, MealDiscountAction.OnCallBackListener listener) { public MealDiscountAction(Activity context, List<MultyDiscount> multyDiscountList, MealDiscountAction.OnCallBackListener listener) {
this.mContext = context; this.mContext = context;
this.mMultyDiscountList = multyDiscountList;
this.mListener = listener; this.mListener = listener;
} }
...@@ -39,33 +43,45 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -39,33 +43,45 @@ public class MealDiscountAction implements Strategy<Discount> {
@Override @Override
public void action(Discount discount) { public void action(Discount discount) {
if (mSelectMixOrderMealList == null || mSelectMixOrderMealList.size() == 0) { if (mListener == null || mSelectMixOrderMealList == null || mSelectMixOrderMealList.size() == 0) {
return;
}
double mixTotalAomout = getMixTotalAomout(mSelectMixOrderMealList);
if (discount.getMinBillAmount() > mixTotalAomout) {
//最小賬單金額
ArmsUtils.makeText(mContext, "小於最小賬單金額$" + discount.getMinBillAmount() + " 無法使用此折扣");
return; return;
} }
if (isOnlyOnce(discount)) { if (isOnlyOnce(discount)) {
//此折扣只一次 //此折扣只一次
ArmsUtils.makeText(mContext, "此折扣只一次");
return; return;
} }
boolean hasExclusive = hasExclusiveDiscount() || discount.getExclusive() == 1; boolean hasExclusive = hasExclusiveDiscount();
if (hasExclusive) { if (hasExclusive) {
//有獨佔折扣 //有獨佔折扣
exclusiveDiscount(discount); exclusiveDiscount(discount);
return; return;
} else {
int discountSize = getDiscountSize();
if (discount.getExclusive() == 1 && discountSize > 0) {
//獨佔折扣
exclusiveDiscount(discount);
return;
}
} }
switch (discount.getType()) { switch (discount.getType()) {
case Discount.DISCOUNT_TYPE_AMOUNT:
case Discount.DISCOUNT_TYPE_RATE:
break;
case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT: case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount); showCustomAmountDialog(discount, false);
break; break;
case Discount.DISCOUNT_TYPE_KEYBOARD: case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount); showKeyboardDialog(discount,false);
break;
case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
break; break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default: default:
mListener.preformAddDiscount(discount);
break; break;
} }
} }
...@@ -73,7 +89,6 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -73,7 +89,6 @@ public class MealDiscountAction implements Strategy<Discount> {
private void exclusiveDiscount(Discount discount) { private void exclusiveDiscount(Discount discount) {
if (mListener != null) { if (mListener != null) {
showExclusiveTipDialog(discount); showExclusiveTipDialog(discount);
} }
} }
...@@ -84,8 +99,8 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -84,8 +99,8 @@ public class MealDiscountAction implements Strategy<Discount> {
* @return * @return
*/ */
private boolean hasExclusiveDiscount() { private boolean hasExclusiveDiscount() {
for (NomalDiscount nomalDiscount : mNomalDiscountList) { for (OrderDetail orderMealItem : mSelectMixOrderMealList) {
if (nomalDiscount.getDiscount().getExclusive() == 1) { if (orderMealItem.getDiscount() != null && orderMealItem.getDiscount().getExclusive() == 1) {
return true; return true;
} }
} }
...@@ -100,9 +115,9 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -100,9 +115,9 @@ public class MealDiscountAction implements Strategy<Discount> {
*/ */
private boolean isOnlyOnce(Discount discount) { private boolean isOnlyOnce(Discount discount) {
if (discount.getOnlyOnce() == 1) { if (discount.getOnlyOnce() == 1) {
for (NomalDiscount nomalDiscount : mNomalDiscountList) { for (OrderDetail orderMealItem : mSelectMixOrderMealList) {
Discount item = nomalDiscount.getDiscount(); Discount item = orderMealItem.getDiscount();
if (discount.getId().longValue() == item.getId().longValue()) { if (item != null && discount.getId().longValue() == item.getId().longValue()) {
return true; return true;
} }
} }
...@@ -116,12 +131,15 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -116,12 +131,15 @@ public class MealDiscountAction implements Strategy<Discount> {
* *
* @param discount * @param discount
*/ */
private void showCustomAmountDialog(Discount discount) { private void showCustomAmountDialog(Discount discount, boolean exclusiveReplace) {
CommonTipDialog.showEditDialog(mContext, discount.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() { CommonTipDialog.showEditDialog(mContext, discount.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() {
@Override @Override
public void inputText(String text) { public void inputText(String text) {
discount.setAmount(Double.parseDouble(text)); discount.setAmount(Double.parseDouble(text));
if (mListener != null) { if (mListener != null) {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers();
}
mListener.preformAddDiscount(discount); mListener.preformAddDiscount(discount);
} }
} }
...@@ -133,7 +151,7 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -133,7 +151,7 @@ public class MealDiscountAction implements Strategy<Discount> {
* *
* @param discount * @param discount
*/ */
private void showKeyboardDialog(Discount discount) { private void showKeyboardDialog(Discount discount, boolean exclusiveReplace) {
new KeyboardDialog(mContext) new KeyboardDialog(mContext)
.build() .build()
.setOnCallBackListener(new KeyboardDialog.OnCallBackListener() { .setOnCallBackListener(new KeyboardDialog.OnCallBackListener() {
...@@ -141,6 +159,9 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -141,6 +159,9 @@ public class MealDiscountAction implements Strategy<Discount> {
public void onSure(String number) { public void onSure(String number) {
discount.setAmount(Double.parseDouble(number)); discount.setAmount(Double.parseDouble(number));
if (mListener != null) { if (mListener != null) {
if (exclusiveReplace) {
mListener.exclusiveRemoveOthers();
}
mListener.preformAddDiscount(discount); mListener.preformAddDiscount(discount);
} }
} }
...@@ -157,16 +178,58 @@ public class MealDiscountAction implements Strategy<Discount> { ...@@ -157,16 +178,58 @@ public class MealDiscountAction implements Strategy<Discount> {
CommonTipDialog.showDoubtDialog2(mContext, "有獨佔折扣,是否替換", new CommonTipDialog.OnCallbackListener() { CommonTipDialog.showDoubtDialog2(mContext, "有獨佔折扣,是否替換", new CommonTipDialog.OnCallbackListener() {
@Override @Override
public void onSure() { public void onSure() {
mListener.exclusiveRemoveOther(); switch (discount.getType()) {
mListener.preformAddDiscount(discount); case Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT:
showCustomAmountDialog(discount, true);
break;
case Discount.DISCOUNT_TYPE_KEYBOARD:
showKeyboardDialog(discount, true);
break;
// case Discount.DISCOUNT_TYPE_FREE_SERVICE_CHARGE:
//
// break;
default:
mListener.exclusiveRemoveOthers();
mListener.preformAddDiscount(discount);
break;
}
} }
}); });
} }
/**
* 獲取折扣數量
*
* @return
*/
private int getDiscountSize() {
int size = 0;
for (OrderDetail orderMealItem : mSelectMixOrderMealList) {
if (orderMealItem.getDiscount() != null) {
size++;
}
}
return size;
}
/**
* 獲取套餐總金額
*
* @param mixOrderMealList
* @return
*/
private double getMixTotalAomout(List<OrderDetail> mixOrderMealList) {
double mixTotalAomout = 0.0;
for (OrderDetail orderDetail : mixOrderMealList) {
mixTotalAomout = MoneyUtil.sum(mixTotalAomout, orderDetail.getPrice());
}
return mixTotalAomout;
}
public interface OnCallBackListener { public interface OnCallBackListener {
void exclusiveRemoveOther(); void exclusiveRemoveOthers();
void preformAddDiscount(Discount discount); void preformAddDiscount(Discount discount);
} }
......
...@@ -16,6 +16,7 @@ import com.jess.arms.http.imageloader.ImageLoader; ...@@ -16,6 +16,7 @@ import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.mvp.BasePresenter; import com.jess.arms.mvp.BasePresenter;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
......
package com.gingersoft.gsa.cloud.table.mvp.presenter; package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.text.InputType;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.View; import android.view.View;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.DeleteOrderRequest; import com.gingersoft.gsa.cloud.base.order.bean.DeleteOrderRequest;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.discount.MultyDiscount;
import com.gingersoft.gsa.cloud.base.order.order.BaseOrder; import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils; import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
...@@ -26,7 +23,6 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason; ...@@ -26,7 +23,6 @@ import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodReason;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood; import com.gingersoft.gsa.cloud.table.mvp.model.bean.SoldoutCtrFood;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest; import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.AddOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest; import com.gingersoft.gsa.cloud.table.mvp.model.bean.request.CreateOrderRequest;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.BillDiscountAction;
import com.gingersoft.gsa.cloud.table.mvp.model.discount.MealDiscountAction; import com.gingersoft.gsa.cloud.table.mvp.model.discount.MealDiscountAction;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.MealStandActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.meal.ComboAdapter;
...@@ -55,11 +51,13 @@ import com.jess.arms.integration.AppManager; ...@@ -55,11 +51,13 @@ import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.Subscriber; import org.simple.eventbus.Subscriber;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -70,6 +68,7 @@ import io.reactivex.Observer; ...@@ -70,6 +68,7 @@ import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull; import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
...@@ -148,11 +147,21 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -148,11 +147,21 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
super(model, rootView); super(model, rootView);
this.IActivity = (MealStandActivity) rootView; this.IActivity = (MealStandActivity) rootView;
mMealDiscountAction = new MealDiscountAction(IActivity, new MealDiscountAction.OnCallBackListener() { mMealDiscountAction = new MealDiscountAction(IActivity, mShoppingCart.getMultyDiscountList(), new MealDiscountAction.OnCallBackListener() {
@Override @Override
public void exclusiveRemoveOther() { public void exclusiveRemoveOthers() {
//獨佔折扣刪除其他折扣
int start_position = mSelectMealAdapter.getSelect_full_start_position();
int end_position = mSelectMealAdapter.getSelect_full_end_position();
for (int i = 0; i < mOrderMealList.size(); i++) {
if (start_position <= i && i <= end_position) {
OrderDetail orderMealItem = mOrderMealList.get(i);
if (orderMealItem.getDiscount() != null) {
mOrderMealList.remove(i);
}
}
}
} }
@Override @Override
...@@ -162,32 +171,24 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -162,32 +171,24 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
}); });
} }
/** /**
* 獲取當前選中的套餐食品組 * 獲取當前選中的套餐食品組
*
* @return * @return
*/ */
private List<OrderDetail> getSelectMixOrderMealList() { private List<OrderDetail> getSelectMixOrderMealList() {
List<OrderDetail> mixOrderMealList = new ArrayList<>(); List<OrderDetail> mixOrderMealList = new ArrayList<>();
for (int i = mSelectMealAdapter.getSelect_full_start_position(); int start_position = mSelectMealAdapter.getSelect_full_start_position();
mSelectMealAdapter.getSelect_full_end_position() < mOrderMealList.size(); i++) { int end_position = mSelectMealAdapter.getSelect_full_end_position();
mixOrderMealList.add(mOrderMealList.get(i)); for (int i = 0; i < mOrderMealList.size(); i++) {
if (start_position <= i && i <= end_position) {
mixOrderMealList.add(mOrderMealList.get(i));
}
} }
return mixOrderMealList; return mixOrderMealList;
} }
/**
* 獲取套餐總金額
* @param mixOrderMealList
* @return
*/
private double getMixTotalAomout(List<OrderDetail> mixOrderMealList){
double mixTotalAomout = 0.0;
for (OrderDetail orderDetail: mixOrderMealList) {
mixTotalAomout = MoneyUtil.sum(mixTotalAomout,orderDetail.getPrice());
}
return mixTotalAomout;
}
@Override @Override
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
...@@ -383,40 +384,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -383,40 +384,22 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
@Override @Override
public void onItemClick(View view, int viewType, Object data, int position) { public void onItemClick(View view, int viewType, Object data, int position) {
Discount discountBean = (Discount) data;
mRootView.recordOperat(true); mRootView.recordOperat(true);
if (XClickUtil.isFastDoubleClick(view, 1000)) { Discount discountBean = (Discount) data;
return;
}
if (!discountConditionFilter(discountBean)) { if (!discountConditionFilter(discountBean)) {
return; return;
} }
if (cutOutDiscount() == -100) { // if (cutOutDiscount() == -100) {
return; // return;
} // }
// if (discountBean.getType() == Discount.DISCOUNT_TYPE_CUSTOM_AMOUNT) { mMealDiscountAction.setSelectMixOrderMealList(getSelectMixOrderMealList());
// showCustomAmountDialog(discountBean);
// } else {
// addDiscountItem(discountBean);
// }
mMealDiscountAction.setSelectMixOrderMealList();
mMealDiscountAction.action(discountBean); mMealDiscountAction.action(discountBean);
} }
}); });
} }
private void showCustomAmountDialog(Discount discountBean) {
CommonTipDialog.showEditDialog(IActivity, discountBean.getRemark(), "請輸入折扣金額", InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL, new CommonTipDialog.OnEditTextListener() {
@Override
public void inputText(String text) {
discountBean.setType(Discount.DISCOUNT_TYPE_AMOUNT);
discountBean.setAmount(Double.parseDouble(text));
addDiscountItem(discountBean);
}
});
}
private void addFoodItemBefore(OrderDetail datasBean) { private void addFoodItemBefore(OrderDetail datasBean) {
int addPosition = addFoodItem(datasBean); int addPosition = addFoodItem(datasBean);
...@@ -954,7 +937,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -954,7 +937,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
if (TextUtils.isEmpty(ids)) { if (TextUtils.isEmpty(ids)) {
return; return;
} }
List<OrderDetail> oldOrders = getSelectedOldFoodAndDicount(); List<OrderDetail> oldOrders = getSelectedOldFoodAndDiscount();
for (OrderDetail item : oldOrders) { for (OrderDetail item : oldOrders) {
//保存取消前的數量 //保存取消前的數量
item.setModifyBeforeNumber(item.getNumber()); item.setModifyBeforeNumber(item.getNumber());
......
...@@ -8,7 +8,6 @@ import android.util.Log; ...@@ -8,7 +8,6 @@ import android.util.Log;
import android.view.View; import android.view.View;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
...@@ -54,23 +53,27 @@ import com.gingersoft.gsa.cloud.table.mvp.ui.widget.DiscountDialog; ...@@ -54,23 +53,27 @@ 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.table.mvp.ui.widget.SplitTableDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.BaseRetryDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.CommonTipDialog;
import com.jakewharton.rxbinding2.view.RxView;
import com.jess.arms.di.scope.ActivityScope; import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.http.imageloader.ImageLoader; import com.jess.arms.http.imageloader.ImageLoader;
import com.jess.arms.integration.AppManager; import com.jess.arms.integration.AppManager;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.RxLifecycleUtils; import com.jess.arms.utils.RxLifecycleUtils;
import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import javax.inject.Inject; import javax.inject.Inject;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.annotations.NonNull; import io.reactivex.annotations.NonNull;
import io.reactivex.disposables.Disposable; import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers; import io.reactivex.schedulers.Schedulers;
import me.jessyan.rxerrorhandler.core.RxErrorHandler; import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber; import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
...@@ -131,11 +134,11 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -131,11 +134,11 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
//转移食品可多选 //转移食品可多选
mSelectMealAdapter.setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED); mSelectMealAdapter.setSelectedMode(SelectMealAdapter.MULTIPLE_SELECTED);
} }
mNomalDiscountAction = new BillDiscountAction(IActivity, mShoppingCart.getNomalDiscoutByMultyDiscountList(), new BillDiscountAction.OnCallBackListener() { mNomalDiscountAction = new BillDiscountAction(IActivity, new BillDiscountAction.OnCallBackListener() {
@Override @Override
public void exclusiveRemoveOther() { public void exclusiveRemoveOthers(List<NomalDiscount> nomalDiscountList) {
mShoppingCart.delAllMultyDiscount(); mShoppingCart.delAllNomalDiscountList(nomalDiscountList);
} }
@Override @Override
...@@ -172,10 +175,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -172,10 +175,9 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
mOrderTopFunctionAdapter.setOnClickListener(new OrderTopFunctionAdapter.OnClickListener() { mOrderTopFunctionAdapter.setOnClickListener(new OrderTopFunctionAdapter.OnClickListener() {
@Override @Override
public void onItemClick(View v, Function function) { public void onItemClick(View v, Function function) {
mRootView.recordOperat(true); mRootView.recordOperat(true);
if (XClickUtil.isFastDoubleClick(v, 1000)) {
return;
}
switch (function.getResName()) { switch (function.getResName()) {
case "送單": case "送單":
sendOrder(false, null); sendOrder(false, null);
...@@ -764,10 +766,11 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -764,10 +766,11 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
@Override @Override
public void onItemClick(Discount item, int position) { public void onItemClick(Discount item, int position) {
if (item.getMinBillAmount() > mShoppingCart.getWholeAmount()) { if (item.getMinBillAmount() > mShoppingCart.getWholeAmount()) {
//小於最小賬單金額 直接提示 //小於最小賬單金額
mRootView.showMessage("食品總計金額小於" + cashStr + item.getMinBillAmount()); mRootView.showMessage("小於最小賬單金額" + cashStr + item.getMinBillAmount() + " 無法使用此折扣");
return; return;
} }
mNomalDiscountAction.setNomalDiscountList(mShoppingCart.getNomalDiscoutByMultyDiscountList());
mNomalDiscountAction.action(item); mNomalDiscountAction.action(item);
} }
......
...@@ -5,6 +5,7 @@ import android.content.Context; ...@@ -5,6 +5,7 @@ import android.content.Context;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.View; import android.view.View;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
...@@ -29,6 +30,7 @@ import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction; ...@@ -29,6 +30,7 @@ import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil; import com.gingersoft.gsa.cloud.table.mvp.model.utils.OrderAssemblyUtil;
import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity; import com.gingersoft.gsa.cloud.table.mvp.ui.activity.TableActivity;
import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BottomFunctionAdapter; import com.gingersoft.gsa.cloud.table.mvp.ui.adapter.BottomFunctionAdapter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.FlowLayout;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.SplitTableDialog; import com.gingersoft.gsa.cloud.table.mvp.ui.widget.SplitTableDialog;
import com.gingersoft.gsa.cloud.constans.GoldConstants; import com.gingersoft.gsa.cloud.constans.GoldConstants;
import com.gingersoft.gsa.cloud.constans.PrintConstans; import com.gingersoft.gsa.cloud.constans.PrintConstans;
...@@ -50,6 +52,7 @@ import com.jess.arms.utils.RxLifecycleUtils; ...@@ -50,6 +52,7 @@ import com.jess.arms.utils.RxLifecycleUtils;
import com.qmuiteam.qmui.widget.dialog.QMUIDialog; import com.qmuiteam.qmui.widget.dialog.QMUIDialog;
import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction; import com.qmuiteam.qmui.widget.dialog.QMUIDialogAction;
import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.xuexiang.rxutil2.rxjava.RxJavaUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
...@@ -325,7 +328,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -325,7 +328,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
if (respose.isSuccess()) { if (respose.isSuccess()) {
DoshokuOrder doshokuOrder = DoshokuOrder.getInstance(); DoshokuOrder doshokuOrder = DoshokuOrder.getInstance();
TableBean.DataBean tableInfo = doshokuOrder.getOpenTableInfo(); TableBean.DataBean tableInfo = doshokuOrder.getOpenTableInfo();
tableInfo.setPerson(0); tableInfo.setPerson(0);
//設置當前開台數據1584427984728 1584428017196 1584428086282 //設置當前開台數據1584427984728 1584428017196 1584428086282
...@@ -437,7 +440,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -437,7 +440,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
//设置会员信息 //设置会员信息
doshokuOrder.setMemberInfo(orderBean.getMemberInfo()); doshokuOrder.setMemberInfo(orderBean.getMemberInfo());
doshokuOrder.setMemberUpdateStatus(true + "-" + true); doshokuOrder.setMemberUpdateStatus(true + "-" + true);
}else { } else {
doshokuOrder.setMemberUpdateStatus(false + "-" + false); doshokuOrder.setMemberUpdateStatus(false + "-" + false);
} }
} else { } else {
......
...@@ -24,7 +24,6 @@ import android.widget.ScrollView; ...@@ -24,7 +24,6 @@ import android.widget.ScrollView;
import android.widget.TextView; import android.widget.TextView;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo; import com.gingersoft.gsa.cloud.base.common.bean.MemberInfo;
import com.gingersoft.gsa.cloud.base.order.bean.OrderBean; import com.gingersoft.gsa.cloud.base.order.bean.OrderBean;
...@@ -63,13 +62,13 @@ import com.gingersoft.gsa.cloud.ui.view.RecyclerViewNoBugLinearLayoutManager; ...@@ -63,13 +62,13 @@ import com.gingersoft.gsa.cloud.ui.view.RecyclerViewNoBugLinearLayoutManager;
import com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView; import com.gingersoft.gsa.cloud.ui.view.SearchKeyBoardView;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.gingersoft.gsa.cloud.zxing.MipcaCaptureActivity; import com.gingersoft.gsa.cloud.zxing.MipcaCaptureActivity;
import com.jakewharton.rxbinding4.view.RxView;
import com.jess.arms.base.BaseFragmentActivity; import com.jess.arms.base.BaseFragmentActivity;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.qmuiteam.qmui.alpha.QMUIAlphaTextView; import com.qmuiteam.qmui.alpha.QMUIAlphaTextView;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.EventBus; import org.simple.eventbus.EventBus;
...@@ -91,6 +90,7 @@ import androidx.viewpager.widget.ViewPager; ...@@ -91,6 +90,7 @@ import androidx.viewpager.widget.ViewPager;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
import butterknife.OnLongClick; import butterknife.OnLongClick;
import io.reactivex.functions.Consumer;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -551,7 +551,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -551,7 +551,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override @Override
public void setPluMode() { public void setPluMode() {
isPluMode = (boolean) SPUtils.get(this, MealConstant.EXIT_IS_PLU_MODE, false); isPluMode = (boolean) SPUtils.get(MealConstant.EXIT_IS_PLU_MODE, false);
if (isPluMode) { if (isPluMode) {
showViewModeVisibility(MealConstant.ViewMode_keys); showViewModeVisibility(MealConstant.ViewMode_keys);
btn_fid.setBackgroundColor(ArmsUtils.getColor(this, R.color.theme_hint_color)); btn_fid.setBackgroundColor(ArmsUtils.getColor(this, R.color.theme_hint_color));
...@@ -563,7 +563,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -563,7 +563,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
@Override @Override
public void resetPluMode() { public void resetPluMode() {
isPluMode = false; isPluMode = false;
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, false); SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
btn_fid.setBackground(ArmsUtils.getDrawablebyResource(this, R.drawable.ui_selector_item_background)); btn_fid.setBackground(ArmsUtils.getDrawablebyResource(this, R.drawable.ui_selector_item_background));
} }
...@@ -702,10 +702,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -702,10 +702,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
recordOperat(true); recordOperat(true);
if (XClickUtil.isFastDoubleClick(v, 200)) { //防抖處理
return;
}
int id = v.getId(); int id = v.getId();
if (id == R.id.btn_numberman) { if (id == R.id.btn_numberman) {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) { if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
...@@ -716,24 +713,29 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -716,24 +713,29 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
//搜索 //搜索
if (mCurrentViewMode == MealConstant.ViewMode_keys) { if (mCurrentViewMode == MealConstant.ViewMode_keys) {
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode); showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, false); SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
} else { } else {
showViewModeVisibility(MealConstant.ViewMode_keys); showViewModeVisibility(MealConstant.ViewMode_keys);
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, true); SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, true);
} }
setPluMode(); setPluMode();
} else if (id == R.id.btn_meal_delete) { } else if (id == R.id.btn_meal_delete) {
if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) if (mPresenter.getSelectMealAdapter().getSelectedMode() == SelectMealAdapter.MULTIPLE_SELECTED) {
return; return;
}
mPresenter.deleteFoodItem(1); mPresenter.deleteFoodItem(1);
showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode); showViewModeVisibility(MealConstant.food_group_ViewMode, MealConstant.food_ViewMode);
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, false); SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, false);
setPluMode(); setPluMode();
} else if (id == R.id.btn_meal_modify_restore) { } else if (id == R.id.btn_meal_modify_restore) {
mPresenter.restoreDeleteFood(); mPresenter.restoreDeleteFood();
showBtnMealModifyRestoreVisibility(false); showBtnMealModifyRestoreVisibility(false);
} else if (id == R.id.btn_send_order) { } else if (id == R.id.btn_send_order) {
// RxBindingUtils.setViewClicks(v)
// .subscribe(new Consumer<Object>() {
// @Override
// public void accept(Object o) throws Exception {
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) { if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.TAKEAWAY_TYPE)) {
CC.obtainBuilder("ComponentDeliveryPick") CC.obtainBuilder("ComponentDeliveryPick")
.setActionName("SendOrder") .setActionName("SendOrder")
...@@ -742,9 +744,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -742,9 +744,11 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
return; return;
} }
mPresenter.sendOrder(false, null); mPresenter.sendOrder(false, null);
// }
// });
} else if (id == R.id.fl_order_content) { } else if (id == R.id.fl_order_content) {
//如果打印成功會回調 //如果打印成功會回調
Intent intent = new Intent(this, OrderContentActivity.class); Intent intent = new Intent(mContext, OrderContentActivity.class);
startActivityForResult(intent, ORDER_CONTENT_CODE); startActivityForResult(intent, ORDER_CONTENT_CODE);
} else if (id == R.id.tv_no_save_return) { } else if (id == R.id.tv_no_save_return) {
returnBeforeActivity(true); returnBeforeActivity(true);
...@@ -792,7 +796,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -792,7 +796,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
mPresenter.changeNumber(i); mPresenter.changeNumber(i);
break; break;
case 99: case 99:
ChooseNumberDialog mChooseNumberDialog = new ChooseNumberDialog(this); ChooseNumberDialog mChooseNumberDialog = new ChooseNumberDialog(mContext);
mChooseNumberDialog.builder(); mChooseNumberDialog.builder();
mChooseNumberDialog.setOnClickListener(new ChooseNumberDialog.OnClickListener() { mChooseNumberDialog.setOnClickListener(new ChooseNumberDialog.OnClickListener() {
...@@ -819,6 +823,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -819,6 +823,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
} else if (id == R.id.iv_fine_back) { } else if (id == R.id.iv_fine_back) {
showViewModeVisibility(MealConstant.combo_ViewMode); showViewModeVisibility(MealConstant.combo_ViewMode);
} }
} }
...@@ -829,7 +834,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter> ...@@ -829,7 +834,7 @@ public class MealStandActivity extends BaseFragmentActivity<MealStandPresenter>
} }
public void returnBeforeActivity(boolean initTable) { public void returnBeforeActivity(boolean initTable) {
SPUtils.put(this, MealConstant.EXIT_IS_PLU_MODE, isPluMode); SPUtils.put(MealConstant.EXIT_IS_PLU_MODE, isPluMode);
if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && initTable && !DoshokuOrder.getInstance().isModifyOrder()) { if (BaseOrder.isCurrentOrderType(FoodSummaryConstans.RESTAURANT_MODE) && initTable && !DoshokuOrder.getInstance().isModifyOrder()) {
TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo(); TableBean.DataBean dataBean = DoshokuOrder.getInstance().getOpenTableInfo();
//通知更新餐台状态 //通知更新餐台状态
......
...@@ -47,6 +47,7 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder; ...@@ -47,6 +47,7 @@ import com.qmuiteam.qmui.widget.tab.QMUITabBuilder;
import com.qmuiteam.qmui.widget.tab.QMUITabIndicator; import com.qmuiteam.qmui.widget.tab.QMUITabIndicator;
import com.qmuiteam.qmui.widget.tab.QMUITabSegment; import com.qmuiteam.qmui.widget.tab.QMUITabSegment;
import com.scwang.smartrefresh.layout.api.RefreshLayout; import com.scwang.smartrefresh.layout.api.RefreshLayout;
import com.xuexiang.rxutil2.RxBindingUtils;
import org.simple.eventbus.Subscriber; import org.simple.eventbus.Subscriber;
......
...@@ -9,7 +9,6 @@ import android.widget.ImageView; ...@@ -9,7 +9,6 @@ import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
...@@ -20,12 +19,15 @@ import com.jess.arms.base.BaseHolder; ...@@ -20,12 +19,15 @@ import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import butterknife.BindView; import butterknife.BindView;
import io.reactivex.functions.Consumer;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -64,9 +66,6 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> { ...@@ -64,9 +66,6 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
int modColumn = GsaCloudApplication.uiStyleConfiguration.getModColumnValue(); int modColumn = GsaCloudApplication.uiStyleConfiguration.getModColumnValue();
this.mColwidth = (int) ((DeviceUtils.getScreenWidth(context) / modColumn)); this.mColwidth = (int) ((DeviceUtils.getScreenWidth(context) / modColumn));
// Db_Color dc = new Db_Color(context);
// mColorList = dc.query("");
// dc.closeDb();
} }
@Override @Override
...@@ -116,22 +115,9 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> { ...@@ -116,22 +115,9 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
@Override @Override
public void onViewClick(View view, int position) { public void onViewClick(View view, int position) {
if (XClickUtil.isFastDoubleClick(view, 200)) {
return;
}
if (mOnItemClickListener != null) { if (mOnItemClickListener != null) {
// //设置当前选中item颜色
// datasBean.setSelected(true);
// tv_food_name.setBackgroundColor(mContext.getResources().getColor(R.color.orange_500));
//
// if (currentSelectPosition < mInfos.size()) {
// //重置上次选中item的颜色
// mInfos.get(currentSelectPosition).setSelected(false);
// notifyItemChanged(currentSelectPosition, 1);
// }
//记录当前操作的position //记录当前操作的position
currentSelectPosition = position; currentSelectPosition = position;
mOnItemClickListener.onItemClick(datasBean, position); mOnItemClickListener.onItemClick(datasBean, position);
} }
} }
...@@ -247,7 +233,7 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> { ...@@ -247,7 +233,7 @@ public class FineItemOneAdapter extends DefaultAdapter<Modifier> {
if (TextUtils.isEmpty(qty)) { if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { } else {
if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停") ) { if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停")) {
blv_soldout.setLableText(qty); blv_soldout.setLableText(qty);
blv_soldout.setVisibility(View.VISIBLE); blv_soldout.setVisibility(View.VISIBLE);
} else { } else {
......
...@@ -9,7 +9,6 @@ import android.widget.ImageView; ...@@ -9,7 +9,6 @@ import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
...@@ -20,12 +19,15 @@ import com.jess.arms.base.BaseHolder; ...@@ -20,12 +19,15 @@ import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import butterknife.BindView; import butterknife.BindView;
import io.reactivex.functions.Consumer;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -42,7 +44,6 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -42,7 +44,6 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
//所有沽清类型 //所有沽清类型
private List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full = new ArrayList<>(); private List<SoldoutCtrFood> mCurrentSlodoutFoodList_Full = new ArrayList<>();
// private List<Color.DatasBean> mColorList;
private int mOrderNumberShowSize; private int mOrderNumberShowSize;
private int mOrderNumberFontSize; private int mOrderNumberFontSize;
private int mModFontSize; private int mModFontSize;
...@@ -65,9 +66,6 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -65,9 +66,6 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
this.mColwidth = (int) ((DeviceUtils.getScreenWidth(context) / modColumn)); this.mColwidth = (int) ((DeviceUtils.getScreenWidth(context) / modColumn));
this.mColHeight = GsaCloudApplication.uiStyleConfiguration.getModBtnHeightValue(); this.mColHeight = GsaCloudApplication.uiStyleConfiguration.getModBtnHeightValue();
// Db_Color dc = new Db_Color(context);
// mColorList = dc.query("");
// dc.closeDb();
} }
@Override @Override
...@@ -120,27 +118,12 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -120,27 +118,12 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if(XClickUtil.isFastDoubleClick(v,200)){
return ;
}
if (mOnItemClickListener != null) { if (mOnItemClickListener != null) {
if (datasBean.isReturn()) { if (datasBean.isReturn()) {
mOnItemClickListener.onClickReturnFineItemOne(); mOnItemClickListener.onClickReturnFineItemOne();
} else { } else {
// //设置当前选中item颜色
// datasBean.setSelected(true);
// tv_food_name.setBackgroundColor(mContext.getResources().getColor(R.color.colorAccent));
//
// if (currentSelectPosition < mInfos.size()) {
// //重置上次选中item的颜色
// mInfos.get(currentSelectPosition).setSelected(false);
// notifyItemChanged(currentSelectPosition, 1);
// }
//记录当前操作的position //记录当前操作的position
currentSelectPosition = position; currentSelectPosition = position;
mOnItemClickListener.onItemClick(datasBean, position); mOnItemClickListener.onItemClick(datasBean, position);
} }
} }
...@@ -173,7 +156,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -173,7 +156,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
String desc = ""; String desc = "";
// switch (GsaCloudApplication.androidSetting.getDataLanguage()) { // switch (GsaCloudApplication.androidSetting.getDataLanguage()) {
// case 1: // case 1:
desc = datasBean.getModifierName(); desc = datasBean.getModifierName();
// break; // break;
// case 2: // case 2:
// desc = datasBean.getDesc2(); // desc = datasBean.getDesc2();
...@@ -227,13 +210,13 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -227,13 +210,13 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
// } // }
// } // }
// } else { // } else {
//后台没有设置颜色当前选中高亮色,没有选中默认使用绿色 //后台没有设置颜色当前选中高亮色,没有选中默认使用绿色
// if (datasBean.isSelected()) { // if (datasBean.isSelected()) {
// tv_food_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.orange_500)); // tv_food_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.orange_500));
// tv_food_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color)); // tv_food_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color));
// } else { // } else {
tv_food_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.Grass_green)); tv_food_name.setBackgroundColor(ArmsUtils.getColor(mContext, R.color.Grass_green));
tv_food_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color)); tv_food_name.setTextColor(ArmsUtils.getColor(mContext, R.color.theme_white_color));
// } // }
// } // }
} }
...@@ -286,7 +269,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -286,7 +269,7 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
if (TextUtils.isEmpty(qty)) { if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { } else {
if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停") ) { if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停")) {
blv_soldout.setLableText(qty); blv_soldout.setLableText(qty);
blv_soldout.setVisibility(View.VISIBLE); blv_soldout.setVisibility(View.VISIBLE);
} else { } else {
...@@ -296,7 +279,8 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> { ...@@ -296,7 +279,8 @@ public class FineItemTwoAdapter extends DefaultAdapter<Modifier> {
} }
} }
} }
//
//
public void setCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> currentSlodoutFoodList_Full) { public void setCurrentSlodoutFoodList_Full(List<SoldoutCtrFood> currentSlodoutFoodList_Full) {
this.mCurrentSlodoutFoodList_Full = currentSlodoutFoodList_Full; this.mCurrentSlodoutFoodList_Full = currentSlodoutFoodList_Full;
} }
......
...@@ -10,10 +10,12 @@ import com.gingersoft.gsa.cloud.table.R; ...@@ -10,10 +10,12 @@ import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.R2; import com.gingersoft.gsa.cloud.table.R2;
import com.jess.arms.base.BaseHolder; import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import io.reactivex.functions.Consumer;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -77,8 +79,16 @@ public class OrderTopFunctionAdapter extends DefaultAdapter<Function> { ...@@ -77,8 +79,16 @@ public class OrderTopFunctionAdapter extends DefaultAdapter<Function> {
btn_name.setOnClickListener(new View.OnClickListener() { btn_name.setOnClickListener(new View.OnClickListener() {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
if (onClickListener != null) // RxBindingUtils.setViewClicks(v)
onClickListener.onItemClick(v, datasBean); // .subscribe(new Consumer<Object>() {
//
// @Override
// public void accept(Object o) throws Exception {
if (onClickListener != null) {
onClickListener.onItemClick(v, datasBean);
}
// }
// });
} }
}); });
btn_name.setOnLongClickListener(new View.OnLongClickListener() { btn_name.setOnLongClickListener(new View.OnLongClickListener() {
......
...@@ -23,11 +23,14 @@ import com.jess.arms.base.DefaultAdapter; ...@@ -23,11 +23,14 @@ import com.jess.arms.base.DefaultAdapter;
import com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout; import com.qmuiteam.qmui.alpha.QMUIAlphaRelativeLayout;
import com.qmuiteam.qmui.layout.QMUIRelativeLayout; import com.qmuiteam.qmui.layout.QMUIRelativeLayout;
import com.qmuiteam.qmui.util.QMUIDisplayHelper; import com.qmuiteam.qmui.util.QMUIDisplayHelper;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit;
import butterknife.BindView; import butterknife.BindView;
import io.reactivex.functions.Consumer;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -251,11 +254,15 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -251,11 +254,15 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
@Override @Override
public void onClick(View v) { public void onClick(View v) {
// if (XClickUtil.isFastDoubleClick(v, 1000)) {
// return;
// }
if (mOnItemClickListener != null) { if (mOnItemClickListener != null) {
mOnItemClickListener.onItemClick(item, position); // RxBindingUtils.setViewClicks(v)
// .subscribe(new Consumer<Object>() {
//
// @Override
// public void accept(Object o) throws Exception {
mOnItemClickListener.onItemClick(item, position);
// }
// });
} }
} }
}); });
......
...@@ -20,6 +20,7 @@ import com.jess.arms.base.BaseHolder; ...@@ -20,6 +20,7 @@ import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.List; import java.util.List;
......
...@@ -111,15 +111,4 @@ public class DiscountAdapter extends DefaultAdapter<Discount> { ...@@ -111,15 +111,4 @@ public class DiscountAdapter extends DefaultAdapter<Discount> {
} }
} }
private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
}
public interface OnItemClickListener {
void onItemClick(Discount datasBean, int position);
}
} }
...@@ -9,7 +9,6 @@ import android.widget.ImageView; ...@@ -9,7 +9,6 @@ import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
...@@ -19,11 +18,14 @@ import com.jess.arms.base.BaseHolder; ...@@ -19,11 +18,14 @@ import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.List; import java.util.List;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import butterknife.BindView; import butterknife.BindView;
import io.reactivex.functions.Consumer;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -111,9 +113,6 @@ public class FoodAdapter extends DefaultAdapter<Food> { ...@@ -111,9 +113,6 @@ public class FoodAdapter extends DefaultAdapter<Food> {
setStatus(datasBean); setStatus(datasBean);
setOnItemClickListener((view, position1) -> { setOnItemClickListener((view, position1) -> {
if (XClickUtil.isFastDoubleClick(view, 200)) {
return;
}
resetSelect(position1, datasBean); resetSelect(position1, datasBean);
}); });
} }
...@@ -188,7 +187,7 @@ public class FoodAdapter extends DefaultAdapter<Food> { ...@@ -188,7 +187,7 @@ public class FoodAdapter extends DefaultAdapter<Food> {
if (TextUtils.isEmpty(qty)) { if (TextUtils.isEmpty(qty)) {
tv_soldout.setVisibility(View.INVISIBLE); tv_soldout.setVisibility(View.INVISIBLE);
} else { } else {
if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停") ) { if (qty.equalsIgnoreCase("售罄") || qty.equalsIgnoreCase("暫停")) {
blv_soldout.setLableText(qty); blv_soldout.setLableText(qty);
blv_soldout.setVisibility(View.VISIBLE); blv_soldout.setVisibility(View.VISIBLE);
} else { } else {
......
...@@ -8,7 +8,6 @@ import android.view.ViewGroup; ...@@ -8,7 +8,6 @@ import android.view.ViewGroup;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.aspectj.XClickUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
...@@ -18,10 +17,12 @@ import com.jess.arms.base.BaseHolder; ...@@ -18,10 +17,12 @@ import com.jess.arms.base.BaseHolder;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import com.jess.arms.utils.ArmsUtils; import com.jess.arms.utils.ArmsUtils;
import com.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
import com.xuexiang.rxutil2.RxBindingUtils;
import java.util.List; import java.util.List;
import butterknife.BindView; import butterknife.BindView;
import io.reactivex.functions.Consumer;
/** /**
* 作者:ELEGANT_BIN * 作者:ELEGANT_BIN
...@@ -107,9 +108,6 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> { ...@@ -107,9 +108,6 @@ public class FoodGroupAdapter extends DefaultAdapter<Food> {
@Override @Override
public void onViewClick(View view, int position) { public void onViewClick(View view, int position) {
if (XClickUtil.isFastDoubleClick(view, 200)) {
return;
}
if (mOnItemClickListener != null) { if (mOnItemClickListener != null) {
for (int i = 0; i < mInfos.size(); i++) { for (int i = 0; i < mInfos.size(); i++) {
mInfos.get(i).setSelected(false); mInfos.get(i).setSelected(false);
......
...@@ -7,6 +7,7 @@ import android.view.View; ...@@ -7,6 +7,7 @@ import android.view.View;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.order.commodity.Commodity; import com.gingersoft.gsa.cloud.base.order.commodity.Commodity;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail; import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
...@@ -175,19 +176,31 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -175,19 +176,31 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
} }
private void setViewVisibility(OrderDetail datasBean) { private void setViewVisibility(OrderDetail datasBean) {
//是否参与折扣
if (datasBean.getAblediscount() == 0) { if (datasBean.getAblediscount() == 0) {
tv_D.setVisibility(View.VISIBLE); tv_D.setVisibility(View.VISIBLE);
} else { } else {
tv_D.setVisibility(View.INVISIBLE); tv_D.setVisibility(View.INVISIBLE);
} }
tv_D_1.setVisibility(View.INVISIBLE); //是否参与服務費
if (datasBean.getScAble() == 0) { if (datasBean.getScAble() == 0) {
tv_S.setVisibility(View.VISIBLE); tv_S.setVisibility(View.VISIBLE);
} else { } else {
tv_S.setVisibility(View.INVISIBLE); tv_S.setVisibility(View.INVISIBLE);
} }
tv_S_1.setVisibility(View.INVISIBLE); //是否可折上折
if (datasBean.getType() != OrderDetail.DISCOUNT_TYPE && datasBean.getAdditionalDiscount() == 0) {
tv_D_1.setVisibility(View.VISIBLE);
} else {
tv_D_1.setVisibility(View.INVISIBLE);
}
//使用此折扣是否可免服務費
if (datasBean.getType() != OrderDetail.DISCOUNT_TYPE && datasBean.getFreeServiceCharge() == 1) {
tv_S_1.setVisibility(View.VISIBLE);
} else {
tv_S_1.setVisibility(View.INVISIBLE);
}
tv_discount_money.setVisibility(View.INVISIBLE); tv_discount_money.setVisibility(View.INVISIBLE);
if (datasBean.isModify()) { if (datasBean.isModify()) {
...@@ -196,20 +209,9 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> { ...@@ -196,20 +209,9 @@ public class SelectMealAdapter extends DefaultAdapter<OrderDetail> {
} else { } else {
tv_modify_before_number.setVisibility(View.INVISIBLE); tv_modify_before_number.setVisibility(View.INVISIBLE);
} }
//
// if (datasBean.getMix_DETAIL_ID() > 0) {
// tv_mix.setText(String.valueOf(datasBean.getMix_DETAIL_ID()));
// tv_mix.setVisibility(View.VISIBLE);
// } else {
// tv_mix.setVisibility(View.INVISIBLE);
// }
} }
private void setMealCountLayout(OrderDetail datasBean, int position) { private void setMealCountLayout(OrderDetail datasBean, int position) {
// if (datasBean.isnew &&
// mOrderContentPresenter != null &&
// select_position == position &&
// datasBean.getDiscount_id() == 0) {
if (datasBean.isNew() && if (datasBean.isNew() &&
mOrderContentPresenter != null && mOrderContentPresenter != null &&
datasBean.getSelected() != 0 && datasBean.getSelected() != 0 &&
......
...@@ -28,7 +28,6 @@ public class FlowLayout extends ViewGroup { ...@@ -28,7 +28,6 @@ public class FlowLayout extends ViewGroup {
public FlowLayout(Context context, AttributeSet attrs) { public FlowLayout(Context context, AttributeSet attrs) {
super(context, attrs); super(context, attrs);
} }
private void initMeasureParams() { private void initMeasureParams() {
...@@ -68,8 +67,8 @@ public class FlowLayout extends ViewGroup { ...@@ -68,8 +67,8 @@ public class FlowLayout extends ViewGroup {
for(int i = 0 ; i < 10000; i++){ for(int i = 0 ; i < 10000; i++){
testMethod(); testMethod();
} }
super.onMeasure(widthMeasureSpec, heightMeasureSpec); super.onMeasure(widthMeasureSpec, heightMeasureSpec);
initMeasureParams(); initMeasureParams();
int selfWidth = MeasureSpec.getSize(widthMeasureSpec); int selfWidth = MeasureSpec.getSize(widthMeasureSpec);
......
...@@ -35,11 +35,11 @@ ...@@ -35,11 +35,11 @@
android:inputType="number" android:inputType="number"
android:background="@drawable/table_shape_input_table_number_frame" android:background="@drawable/table_shape_input_table_number_frame"
app:met_autoValidate="true" app:met_autoValidate="true"
app:met_baseColor="#0056d3" app:met_baseColor="@color/theme_black"
app:met_clearButton="true" app:met_clearButton="true"
app:met_floatingLabel="highlight" app:met_floatingLabel="highlight"
app:met_iconPadding="2dp" app:met_iconPadding="2dp"
app:met_primaryColor="#982360" app:met_primaryColor="@color/theme_color"
app:met_singleLineEllipsis="false" /> app:met_singleLineEllipsis="false" />
<com.qmuiteam.qmui.alpha.QMUIAlphaButton <com.qmuiteam.qmui.alpha.QMUIAlphaButton
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
android:paddingBottom="@dimen/dp_10" android:paddingBottom="@dimen/dp_10"
android:paddingStart="@dimen/dp_20" android:paddingStart="@dimen/dp_20"
android:paddingEnd="@dimen/dp_20" android:paddingEnd="@dimen/dp_20"
android:background="@drawable/shape_rect_fillet_white_5"> android:background="@drawable/ui_shape_rect_fillet_white_5">
<com.rengwuxian.materialedittext.MaterialEditText <com.rengwuxian.materialedittext.MaterialEditText
android:id="@+id/ed_text" android:id="@+id/ed_text"
...@@ -29,23 +29,23 @@ ...@@ -29,23 +29,23 @@
android:textSize="@dimen/sp_16" android:textSize="@dimen/sp_16"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:met_bottomTextSize="@dimen/sp_16"
app:met_floatingLabelTextSize="@dimen/sp_16"
app:met_autoValidate="true" app:met_autoValidate="true"
app:met_baseColor="@color/theme_black" app:met_baseColor="@color/theme_black"
app:met_clearButton="true" app:met_clearButton="true"
app:met_floatingLabel="highlight" app:met_floatingLabel="highlight"
app:met_iconPadding="2dp" app:met_iconPadding="2dp"
app:met_primaryColor="@color/theme_color" app:met_primaryColor="@color/theme_color"
app:met_singleLineEllipsis="false" app:met_singleLineEllipsis="false"/>
app:met_bottomTextSize="@dimen/sp_16"
app:met_floatingLabelTextSize="@dimen/sp_16"/>
<View <!-- <View-->
android:layout_width="1px" <!-- android:layout_width="1px"-->
android:layout_height="@dimen/dp_30" <!-- android:layout_height="@dimen/dp_30"-->
android:background="@color/theme_grey_color" <!-- android:background="@color/theme_light_blue"-->
app:layout_constraintStart_toStartOf="parent" <!-- app:layout_constraintStart_toStartOf="parent"-->
app:layout_constraintEnd_toEndOf="parent" <!-- app:layout_constraintEnd_toEndOf="parent"-->
app:layout_constraintBottom_toBottomOf="parent"/> <!-- app:layout_constraintBottom_toBottomOf="parent"/>-->
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/tv_sure" android:id="@+id/tv_sure"
...@@ -67,7 +67,7 @@ ...@@ -67,7 +67,7 @@
android:layout_height="@dimen/dp_40" android:layout_height="@dimen/dp_40"
android:gravity="center" android:gravity="center"
android:textSize="@dimen/sp_14" android:textSize="@dimen/sp_14"
android:textColor="@color/theme_grey_color" android:textColor="@color/theme_color"
android:text="取消" android:text="取消"
android:layout_marginTop="@dimen/dp_10" android:layout_marginTop="@dimen/dp_10"
app:layout_constraintTop_toBottomOf="@+id/ed_text" app:layout_constraintTop_toBottomOf="@+id/ed_text"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment