Commit 7a38c978 by 宁斌

添加滴滴 哆啦A夢框架,skyorder打印二維碼

parent 9ca88b20
...@@ -114,13 +114,13 @@ dependencies { ...@@ -114,13 +114,13 @@ dependencies {
api rootProject.ext.dependencies["pickerview"] api rootProject.ext.dependencies["pickerview"]
//底部功能導航view //底部功能導航view
api 'com.github.ittianyu:BottomNavigationViewEx:2.0.4' api 'com.github.ittianyu:BottomNavigationViewEx:2.0.4'
//滴滴開源 哆啦A夢:辅助开发工具、测试效率工具、视觉辅助工具
debugImplementation rootProject.ext.dependencies["doraemonkit"]
api rootProject.ext.dependencies["permissionx"] api rootProject.ext.dependencies["permissionx"]
api rootProject.ext.dependencies["design"] api rootProject.ext.dependencies["design"]
api rootProject.ext.dependencies["appcompat-v7"] api rootProject.ext.dependencies["appcompat-v7"]
implementation 'cn.bingoogolapple:bga-photopicker:1.2.8@aar' implementation 'cn.bingoogolapple:bga-photopicker:1.2.8@aar'
implementation 'cn.bingoogolapple:bga-baseadapter:1.2.9@aar' implementation 'cn.bingoogolapple:bga-baseadapter:1.2.9@aar'
implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar' implementation 'cn.bingoogolapple:bga-flowlayout:1.0.0@aar'
......
...@@ -7,10 +7,9 @@ import android.content.pm.PackageManager; ...@@ -7,10 +7,9 @@ import android.content.pm.PackageManager;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Build; import android.os.Build;
import android.os.RemoteException; import android.os.RemoteException;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.didichuxing.doraemonkit.DoraemonKit;
import com.elvishew.xlog.LogConfiguration; import com.elvishew.xlog.LogConfiguration;
import com.elvishew.xlog.LogLevel; import com.elvishew.xlog.LogLevel;
import com.elvishew.xlog.XLog; import com.elvishew.xlog.XLog;
...@@ -25,20 +24,14 @@ import com.gingersoft.gsa.cloud.base.BuildConfig; ...@@ -25,20 +24,14 @@ import com.gingersoft.gsa.cloud.base.BuildConfig;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.utils.AidlUtil; import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
import com.gingersoft.gsa.cloud.base.utils.FileUtils; import com.gingersoft.gsa.cloud.base.utils.FileUtils;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler; import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy; import com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy;
import com.gingersoft.gsa.cloud.bean.expandInfo.ExpandInfoSetting;
import com.gingersoft.gsa.cloud.bean.expandInfo.FunctionExtendedConfiguration;
import com.gingersoft.gsa.cloud.bean.expandInfo.UIStyleExtendedConfiguration;
import com.gingersoft.gsa.cloud.constans.HttpsConstans; import com.gingersoft.gsa.cloud.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.constans.PrintConstans; import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.constans.UserConstans; import com.gingersoft.gsa.cloud.constans.UserConstans;
import com.gingersoft.gsa.cloud.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import com.gingersoft.gsa.cloud.database.utils.ExpandInfoDaoUtils;
import com.gingersoft.gsa.cloud.ui.loadsir.CustomCallback; import com.gingersoft.gsa.cloud.ui.loadsir.CustomCallback;
import com.gingersoft.gsa.cloud.ui.loadsir.EmptyCallback; import com.gingersoft.gsa.cloud.ui.loadsir.EmptyCallback;
import com.gingersoft.gsa.cloud.ui.loadsir.ErrorCallback; import com.gingersoft.gsa.cloud.ui.loadsir.ErrorCallback;
...@@ -51,17 +44,14 @@ import com.kingja.loadsir.core.LoadSir; ...@@ -51,17 +44,14 @@ import com.kingja.loadsir.core.LoadSir;
import com.scwang.smartrefresh.layout.SmartRefreshLayout; import com.scwang.smartrefresh.layout.SmartRefreshLayout;
import com.scwang.smartrefresh.layout.footer.ClassicsFooter; import com.scwang.smartrefresh.layout.footer.ClassicsFooter;
import com.scwang.smartrefresh.layout.header.ClassicsHeader; import com.scwang.smartrefresh.layout.header.ClassicsHeader;
import java.util.List;
import java.util.Locale; import java.util.Locale;
import io.reactivex.Observable;
import io.reactivex.functions.Consumer;
import io.reactivex.schedulers.Schedulers;
import me.jessyan.autosize.AutoSize; import me.jessyan.autosize.AutoSize;
import me.jessyan.autosize.AutoSizeConfig; import me.jessyan.autosize.AutoSizeConfig;
import me.jessyan.autosize.onAdaptListener; import me.jessyan.autosize.onAdaptListener;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager; import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import com.gingersoft.gsa.cloud.config.expandInfo.UIStyleExtendedConfiguration;
import com.gingersoft.gsa.cloud.config.expandInfo.FunctionExtendedConfiguration;
import com.gingersoft.gsa.cloud.config.expandInfo.ExpandInfoSetting;
/** /**
* Created by Wyh on 2019/12/21. * Created by Wyh on 2019/12/21.
...@@ -125,6 +115,8 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -125,6 +115,8 @@ public class GsaCloudApplication extends BaseApplication {
// QMUISwipeBackActivityManager.init(this); // QMUISwipeBackActivityManager.init(this);
//初始化主題管理器 //初始化主題管理器
// QDSkinManager.install(this); // QDSkinManager.install(this);
//初始化哆啦A夢
initDoraemonKit();
//初始化上下拉刷新 //初始化上下拉刷新
initRefresh(); initRefresh();
//初始化加载反馈页管理框架 //初始化加载反馈页管理框架
...@@ -161,6 +153,10 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -161,6 +153,10 @@ public class GsaCloudApplication extends BaseApplication {
// Tracker.INSTANCE.initialize(this); // Tracker.INSTANCE.initialize(this);
} }
private void initDoraemonKit() {
DoraemonKit.install(getAppContext(),"GSA-Cloud_007");
}
public Activity getCurrentActivity() { public Activity getCurrentActivity() {
return mCurrentActivity; return mCurrentActivity;
......
package com.gingersoft.gsa.cloud.base.common.bean; package com.gingersoft.gsa.cloud.base.common.bean;
import com.jakewharton.rxbinding2.internal.GenericTypeNullable;
import lombok.Getter;
/** /**
* @author : bin * @author : bin
* @create date: 2020-11-05 * @create date: 2020-11-05
* @update date: 2020-11-05 * @update date: 2020-11-05
* @description: * @description:
*/ */
@Getter
public class BaseResultOld { public class BaseResultOld {
/**
* code : "0"
* sysTime : 1579079565872
*/
private int code;
private long sysTime;
private String errMsg;
} }
package com.gingersoft.gsa.cloud.base.utils; package com.gingersoft.gsa.cloud.base.utils;
import android.text.TextUtils; import android.text.TextUtils;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.bean.expandInfo.ExpandInfoSetting; import com.gingersoft.gsa.cloud.config.expandInfo.ExpandInfoSetting;
import com.gingersoft.gsa.cloud.bean.expandInfo.FunctionExtendedConfiguration; import com.gingersoft.gsa.cloud.config.expandInfo.FunctionExtendedConfiguration;
import com.gingersoft.gsa.cloud.bean.expandInfo.UIStyleExtendedConfiguration; import com.gingersoft.gsa.cloud.config.expandInfo.UIStyleExtendedConfiguration;
import com.gingersoft.gsa.cloud.constans.ExpandConstant; import com.gingersoft.gsa.cloud.constans.ExpandConstant;
import com.gingersoft.gsa.cloud.database.bean.ExpandInfo; import com.gingersoft.gsa.cloud.database.bean.ExpandInfo;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
......
...@@ -16,9 +16,12 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; ...@@ -16,9 +16,12 @@ 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.utils.FileUtils; import com.gingersoft.gsa.cloud.base.utils.FileUtils;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.RestaurantExpandInfoUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.gingersoft.gsa.cloud.base.utils.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.utils.ExpandInfoDaoUtils;
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.jess.arms.utils.DeviceUtils; import com.jess.arms.utils.DeviceUtils;
...@@ -31,17 +34,23 @@ import java.io.StringWriter; ...@@ -31,17 +34,23 @@ import java.io.StringWriter;
import java.io.Writer; import java.io.Writer;
import java.lang.Thread.UncaughtExceptionHandler; import java.lang.Thread.UncaughtExceptionHandler;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import io.reactivex.Observable;
import io.reactivex.Observer; import io.reactivex.Observer;
import io.reactivex.android.schedulers.AndroidSchedulers; import io.reactivex.android.schedulers.AndroidSchedulers;
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 okhttp3.MediaType;
import okhttp3.RequestBody;
import static com.gingersoft.gsa.cloud.base.application.GsaCloudApplication.getAppContext;
import static com.gingersoft.gsa.cloud.constans.AppConstans.RP_ERROR; import static com.gingersoft.gsa.cloud.constans.AppConstans.RP_ERROR;
public class AppCrashHandler implements UncaughtExceptionHandler { public class AppCrashHandler implements UncaughtExceptionHandler {
...@@ -144,11 +153,12 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -144,11 +153,12 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
if (ex == null) { if (ex == null) {
return false; return false;
} }
Observable.just(0)
//使用Toast来显示异常信息 .subscribeOn(Schedulers.io())
new Thread() { .observeOn(AndroidSchedulers.mainThread())
.subscribe(new Consumer<Integer>() {
@Override @Override
public void run() { public void accept(@io.reactivex.annotations.NonNull Integer integer) throws Exception {
Looper.prepare(); Looper.prepare();
String showText = ErrorStr; String showText = ErrorStr;
Throwable cause = ex.getCause(); Throwable cause = ex.getCause();
...@@ -167,7 +177,30 @@ public class AppCrashHandler implements UncaughtExceptionHandler { ...@@ -167,7 +177,30 @@ public class AppCrashHandler implements UncaughtExceptionHandler {
Toast.makeText(mContext, showText, Toast.LENGTH_LONG).show(); Toast.makeText(mContext, showText, Toast.LENGTH_LONG).show();
Looper.loop(); Looper.loop();
} }
}.start(); });
//使用Toast来显示异常信息
// new Thread() {
// @Override
// public void run() {
// Looper.prepare();
// String showText = ErrorStr;
// Throwable cause = ex.getCause();
// if (cause != null && BuildConfig.DEBUG) {
// StackTraceElement[] stackTrace = cause.getStackTrace();
// if (stackTrace != null && stackTrace.length > 0) {
// String causeName = cause.getClass().getSimpleName();
//
// String fileName = stackTrace[0].getFileName();
// fileName = fileName.substring(0, fileName.length() - 4);
// int lineNumber = stackTrace[0].getLineNumber();
// showText += "-" + fileName + "-" + lineNumber + "-" + causeName;
// OkHttp3Utils.noticePersonnel(RP_ERROR, showText);
// }
// }
// Toast.makeText(mContext, showText, Toast.LENGTH_LONG).show();
// Looper.loop();
// }
// }.start();
final Writer result = new StringWriter(); final Writer result = new StringWriter();
final PrintWriter printWriter = new PrintWriter(result); final PrintWriter printWriter = new PrintWriter(result);
......
...@@ -6,6 +6,6 @@ package com.gingersoft.gsa.cloud.config; ...@@ -6,6 +6,6 @@ package com.gingersoft.gsa.cloud.config;
* @update date: 2020-11-05 * @update date: 2020-11-05
* @description: * @description:
*/ */
public class LogConfig { public class LogInfoConfig {
} }
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.config.expandInfo; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.config.expandInfo;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import com.gingersoft.gsa.cloud.config.expandInfo.ExpandInfoSetting;
/** /**
* @author : bin * @author : bin
...@@ -108,6 +109,12 @@ public class FunctionExtendedConfiguration { ...@@ -108,6 +109,12 @@ public class FunctionExtendedConfiguration {
.remark("QRCode交台时间片(分)使用逗号分隔") .remark("QRCode交台时间片(分)使用逗号分隔")
.build(); .build();
private ExpandInfoSetting SkyQRCodeTableFlagText = ExpandInfoSetting.builder()
.valueChar("S")
.remark("skyorder QRCode餐檯標記")
.build();
public <T>T getRoundingVaule() { public <T>T getRoundingVaule() {
return Rounding.getValue(); return Rounding.getValue();
} }
...@@ -183,4 +190,8 @@ public class FunctionExtendedConfiguration { ...@@ -183,4 +190,8 @@ public class FunctionExtendedConfiguration {
public <T>T getQRCodeTimeSliceVaule() { public <T>T getQRCodeTimeSliceVaule() {
return QRCodeTimeSlice.getValue(); return QRCodeTimeSlice.getValue();
} }
public <T>T getSkyQRCodeTableFlagTextVaule() {
return SkyQRCodeTableFlagText.getValue();
}
} }
...@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.config.expandInfo; ...@@ -2,7 +2,7 @@ package com.gingersoft.gsa.cloud.config.expandInfo;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import com.gingersoft.gsa.cloud.config.expandInfo.ExpandInfoSetting;
/** /**
* @author : bin * @author : bin
* @create date: 2020-10-20 * @create date: 2020-10-20
...@@ -116,6 +116,30 @@ public class UIStyleExtendedConfiguration { ...@@ -116,6 +116,30 @@ public class UIStyleExtendedConfiguration {
.remark("估清控制item字體大小") .remark("估清控制item字體大小")
.build(); .build();
/**
* skyorder Qrcode檯标识配置
*/
private ExpandInfoSetting SkyQRCodeTableFlagTextSize = ExpandInfoSetting.builder()
.valueInt(16)
.remark("skyorder QRCode餐檯標記字體大小")
.build();
private ExpandInfoSetting SkyQRCodeTableFlagTextColor = ExpandInfoSetting.builder()
.valueChar("#FFFFFF")
.remark("skyorder QRCode餐檯標記字體顏色")
.build();
private ExpandInfoSetting SkyQRCodeTableFlagBackgroupColor = ExpandInfoSetting.builder()
.valueChar("#f57c00")
.remark("skyorder QRCode餐檯標記背景顏色")
.build();
private ExpandInfoSetting SkyQRCodeTableFlagWith = ExpandInfoSetting.builder()
.valueInt(25)
.remark("skyorder QRCode餐檯標記寬度")
.build();
private ExpandInfoSetting SkyQRCodeTableFlagHeight = ExpandInfoSetting.builder()
.valueInt(25)
.remark("skyorder QRCode餐檯標記高度")
.build();
public <T> T getFoodGroupRowValue() { public <T> T getFoodGroupRowValue() {
return foodGroupRow.getValue(); return foodGroupRow.getValue();
...@@ -207,4 +231,24 @@ public class UIStyleExtendedConfiguration { ...@@ -207,4 +231,24 @@ public class UIStyleExtendedConfiguration {
public <T> T getSoldoutCtrlFoodFontSizeValue() { public <T> T getSoldoutCtrlFoodFontSizeValue() {
return soldoutCtrlFoodFontSize.getValue(); return soldoutCtrlFoodFontSize.getValue();
} }
public <T> T getSkyQRCodeTableFlagTextSizeValue() {
return SkyQRCodeTableFlagTextSize.getValue();
}
public <T> T getSkyQRCodeTableFlagTextColorValue() {
return SkyQRCodeTableFlagTextColor.getValue();
}
public <T> T getSkyQRCodeTableFlagBackgroupColorValue() {
return SkyQRCodeTableFlagBackgroupColor.getValue();
}
public <T> T getSkyQRCodeTableFlagWithValue() {
return SkyQRCodeTableFlagWith.getValue();
}
public <T> T getSkyQRCodeTableFlagHeightValue() {
return SkyQRCodeTableFlagHeight.getValue();
}
} }
...@@ -3,17 +3,14 @@ package com.gingersoft.gsa.cloud.constans; ...@@ -3,17 +3,14 @@ package com.gingersoft.gsa.cloud.constans;
public class PrintConstans { public class PrintConstans {
public static final int SO_TIMEOUT = 10 * 1000;//讀取/輸入io流數據超時的時間 public static final int SO_TIMEOUT = 10 * 1000;//讀取/輸入io流數據超時的時間
public static final int PRINT_TIMEOUT = 5 * 1000;//打印機連接超時時間 public static final int PRINT_TIMEOUT = 5 * 1000;//打印機連接超時時間
//默認打印方式 //默認打印方式
public final static String DEFAULT_PRINT_METHOD = "default_print"; public final static String DEFAULT_PRINT_METHOD = "default_print";
public final static String IS_LOGIN = "is_login"; public final static String IS_LOGIN = "is_login";
public final static String LOCAL_PRINT = "local_print"; public final static String LOCAL_PRINT = "local_print";
public final static String IP_PRINT = "ip_print"; public final static String IP_PRINT = "ip_print";
public final static String SETTLEMENT_REPORT = "settlement_report"; public final static String SETTLEMENT_REPORT = "settlement_report";
/** /**
* 0:上菜紙 * 0:上菜紙
* 1:印單 * 1:印單
...@@ -25,6 +22,7 @@ public class PrintConstans { ...@@ -25,6 +22,7 @@ public class PrintConstans {
* 7:外賣接單結賬單 * 7:外賣接單結賬單
*/ */
public static final String PRINT_TYPE = "print_type";//打印類型 public static final String PRINT_TYPE = "print_type";//打印類型
public static final String PRINT_CONTENT = "print_content";//打印內容
public static final String PRINT_LOADING = "is_show_loading";//是否顯示加載框 public static final String PRINT_LOADING = "is_show_loading";//是否顯示加載框
public final static int PRINT_TEST = -1;//測試頁 public final static int PRINT_TEST = -1;//測試頁
...@@ -36,7 +34,7 @@ public class PrintConstans { ...@@ -36,7 +34,7 @@ public class PrintConstans {
public final static int PRINT_OTHER_ORDER = 5;//接單內容打印 外送印單 public final static int PRINT_OTHER_ORDER = 5;//接單內容打印 外送印單
public final static int PRINT_INSTRUCTION = 6;//開錢箱 public final static int PRINT_INSTRUCTION = 6;//開錢箱
public final static int PRINT_OTHER_CLOSING = 7;//外賣結賬單 public final static int PRINT_OTHER_CLOSING = 7;//外賣結賬單
public final static int PRINT_SKYORDER_QRCODE = 8;//skyorder QRCode
public final static String PRINT_MODEL_N5 = "N5"; public final static String PRINT_MODEL_N5 = "N5";
public final static String PRINT_MODEL_WISEPOS = "WiseposPlus"; public final static String PRINT_MODEL_WISEPOS = "WiseposPlus";
......
package com.gingersoft.gsa.cloud.print.bean;
/**
* @author : bin
* @create date: 2020-11-06
* @update date: 2020-11-06
* @description:打印實體接口 所有打印實體類都實現這個接口
* */
public interface PrintContent {
}
package com.gingersoft.gsa.cloud.print.bean;
import java.io.Serializable;
import lombok.Getter;
import lombok.Setter;
/**
* @author : bin
* @create date: 2020-11-06
* @update date: 2020-11-06
* @description:skyorder 打印實體
* */
@Getter
@Setter
public class PrintQRCodeContent implements Serializable,PrintContent {
private String printTableName;
private String printTopInfo;
private String BottonInfo;
private String printQrcode;
private String printTime;
private String printPeopleNum;
private String printMealEndTime;
private String printBottonInfo;
}
...@@ -12,6 +12,7 @@ import android.widget.LinearLayout; ...@@ -12,6 +12,7 @@ import android.widget.LinearLayout;
import com.gingersoft.gsa.cloud.base.R; import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.database.bean.Discount; import com.gingersoft.gsa.cloud.database.bean.Discount;
import com.gingersoft.gsa.cloud.ui.widget.dialog.DialogAnimationListener;
import com.google.gson.JsonIOException; import com.google.gson.JsonIOException;
import com.google.gson.JsonParseException; import com.google.gson.JsonParseException;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
...@@ -46,6 +47,9 @@ public abstract class BaseRetryDialog extends Dialog { ...@@ -46,6 +47,9 @@ public abstract class BaseRetryDialog extends Dialog {
private static final String TAG = "BaseRetryDialog"; private static final String TAG = "BaseRetryDialog";
private Context mContext; private Context mContext;
private OnRetryListener onRetryListener;
protected DialogAnimationListener dialogAnimationListener;
public BaseRetryDialog(@NonNull Context context,int style) { public BaseRetryDialog(@NonNull Context context,int style) {
super(context, style); super(context, style);
mContext = context; mContext = context;
...@@ -110,12 +114,14 @@ public abstract class BaseRetryDialog extends Dialog { ...@@ -110,12 +114,14 @@ public abstract class BaseRetryDialog extends Dialog {
} }
}; };
private OnRetryListener onRetryListener;
public void setOnRetryListener(OnRetryListener onRetryListener) { public void setOnRetryListener(OnRetryListener onRetryListener) {
this.onRetryListener = onRetryListener; this.onRetryListener = onRetryListener;
} }
public void setDialogAnimationListener(DialogAnimationListener dialogAnimationListener) {
this.dialogAnimationListener = dialogAnimationListener;
}
public interface OnRetryListener { public interface OnRetryListener {
void onRetryClick(); void onRetryClick();
......
...@@ -6,5 +6,15 @@ package com.gingersoft.gsa.cloud.ui.widget.dialog; ...@@ -6,5 +6,15 @@ package com.gingersoft.gsa.cloud.ui.widget.dialog;
* @update date: 2020-11-05 * @update date: 2020-11-05
* @description: * @description:
*/ */
public interface DialogLifecycleListener { public interface DialogAnimationListener {
/**
* 顯示動畫結束回調
*/
void showAnimEnd();
/**
* 隱藏動畫結束回調
*/
void dismissAnimEnd();
} }
...@@ -132,7 +132,10 @@ ext { ...@@ -132,7 +132,10 @@ ext {
// fragment快速实现(可选) // fragment快速实现(可选)
"immersionbar-components" : "com.gyf.immersionbar:immersionbar-components:3.0.0", "immersionbar-components" : "com.gyf.immersionbar:immersionbar-components:3.0.0",
"permissionx" : 'com.permissionx.guolindev:permissionx:1.3.1' "permissionx" : 'com.permissionx.guolindev:permissionx:1.3.1',
//滴滴開源 哆啦A夢:辅助开发工具、测试效率工具、视觉辅助工具
"doraemonkit" : 'com.didichuxing.doraemonkit:dokitx:3.3.3'
] ]
} }
...@@ -19,10 +19,10 @@ public class FoodCombo { ...@@ -19,10 +19,10 @@ public class FoodCombo {
@Property(nameInDb = "_id") @Property(nameInDb = "_id")
private Long id; private Long id;
private Long fid; //食品ID private Long fid;
private int comId;//套餐ID private int comId;
private int seqNo; private int seqNo;
private int diffAmt; private double diffAmt;
/**套餐最大選擇數*/ /**套餐最大選擇數*/
private int selectQty; private int selectQty;
private String createTime; private String createTime;
...@@ -36,8 +36,9 @@ public class FoodCombo { ...@@ -36,8 +36,9 @@ public class FoodCombo {
private int deletes; private int deletes;
private int restaurantId; private int restaurantId;
@Generated(hash = 1268234634)
public FoodCombo(Long id, Long fid, int comId, int seqNo, int diffAmt, @Generated(hash = 531762563)
public FoodCombo(Long id, Long fid, int comId, int seqNo, double diffAmt,
int selectQty, String createTime, String defModifier, int selectQty, String createTime, String defModifier,
String excModifier, int autoNext, int multipleSelect, String updateTime, String excModifier, int autoNext, int multipleSelect, String updateTime,
int conditions, int isRT, int deletes, int restaurantId) { int conditions, int isRT, int deletes, int restaurantId) {
...@@ -63,46 +64,6 @@ public class FoodCombo { ...@@ -63,46 +64,6 @@ public class FoodCombo {
public FoodCombo() { public FoodCombo() {
} }
// private String defmodifier;
// private String excmodifier;
// /**
// * 自定義字段
// */
// @Transient
// private String name;
// @Transient
// private long parentId;
// /**
// * 價格
// */
// @Transient
// private double price = 0.00;
// /**
// * 是否自動展開
// */
// @Transient
// private int autoMode = 0;
// /**
// * 是否备注细项
// */
// @Transient
// private boolean isModifier;
// /**
// * 背景顏色
// */
// @Transient
// private int bgColor = Color.parseColor("#067878");
// /**
// * 字體顏色
// */
// @Transient
// private int fontColor = Color.parseColor("#FFFFFF");
// /**
// * 套餐細項
// */
// @Transient
// private Modifier modifier;
public Long getId() { public Long getId() {
return id; return id;
...@@ -120,7 +81,7 @@ public class FoodCombo { ...@@ -120,7 +81,7 @@ public class FoodCombo {
return seqNo; return seqNo;
} }
public int getDiffAmt() { public double getDiffAmt() {
return diffAmt; return diffAmt;
} }
...@@ -184,7 +145,7 @@ public class FoodCombo { ...@@ -184,7 +145,7 @@ public class FoodCombo {
this.seqNo = seqNo; this.seqNo = seqNo;
} }
public void setDiffAmt(int diffAmt) { public void setDiffAmt(double diffAmt) {
this.diffAmt = diffAmt; this.diffAmt = diffAmt;
} }
......
...@@ -2,18 +2,13 @@ package com.joe.print.mvp.print; ...@@ -2,18 +2,13 @@ package com.joe.print.mvp.print;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.view.Gravity;
import android.view.View; import android.view.View;
import android.widget.LinearLayout; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.utils.view.QRCodeUtil;
import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.other.TextUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.bean.PrintQRCodeContent;
import com.joe.print.R; import com.joe.print.R;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -24,7 +19,13 @@ import java.util.Map; ...@@ -24,7 +19,13 @@ import java.util.Map;
/** /**
* skyorder qrcode打印 * skyorder qrcode打印
*/ */
public class PrintSkyOrderQR extends PrinterRoot { public class PrintQRCode extends PrinterRoot {
private PrintQRCodeContent mQRCodeBean;
public PrintQRCode(PrintQRCodeContent qrCodeBean) {
this.mQRCodeBean = qrCodeBean;
}
@Override @Override
public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) { public Map<String, List<Bitmap>> getPrintBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
...@@ -37,15 +38,7 @@ public class PrintSkyOrderQR extends PrinterRoot { ...@@ -37,15 +38,7 @@ public class PrintSkyOrderQR extends PrinterRoot {
@Override @Override
public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) { public String getPrintData(Context mContext, PrinterDeviceBean deviceBean) {
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList(); return null;
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
String stringBuilder = "<html><body>" +
getHtmlPrintHeadInfo() +
getHtmlPrintHeadOrderInfo(tableBean) +
generateFoodInfoTwoColumns(foodList) +
getWholeLine() +
getHtmlFooter() + "</body></html>";
return stringBuilder;
} }
@Override @Override
...@@ -55,42 +48,30 @@ public class PrintSkyOrderQR extends PrinterRoot { ...@@ -55,42 +48,30 @@ public class PrintSkyOrderQR extends PrinterRoot {
private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) { private Bitmap getBitmap(Context mContext, PrinterDeviceBean printerDeviceBean) {
List<OrderDetail> foodList = DoshokuOrder.getInstance().getShoppingCart().getOrderCommodityList(); return viewToZoomBitmap(mContext, getPrintView(mContext), printerDeviceBean);
if (foodList == null || foodList.size() <= 0) {
return null;
}
TableBean.DataBean tableBean = DoshokuOrder.getInstance().getOpenTableInfo();
LinearLayout layout = new LinearLayout(mContext);
layout.setOrientation(LinearLayout.VERTICAL);
//訂單頭
layout.addView(getHeader(mContext));
layout.addView(getLine(mContext));
String orderNo = "單號:";
if (TextUtil.isNotEmptyOrNullOrUndefined(DoshokuOrder.getInstance().getOrderNo())) {
orderNo = "單號:" + DoshokuOrder.getInstance().getOrderNo();
} }
//訂單信息
layout.addView(getDiningTableOrderInfo(mContext, "餐檯:" + tableBean.getTableName(), "人數:" + DoshokuOrder.getInstance().getOpenTableInfo().getPerson(), orderNo, "日期:" + TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT)));
layout.addView(getLine(mContext));
layout.addView(getDiningFoodList(mContext, foodList, printerDeviceBean, 0, false));
layout.addView(getLine(mContext));
layout.addView(getTextView(mContext, "Thank you!", Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
layout.addView(getTextView(mContext, TimeUtils.getCurrentTimeInString(TimeUtils.DEFAULT_DATE_FORMAT), Gravity.CENTER_HORIZONTAL, getDimensionPixelSize(mContext, R.dimen.dp_8)));
public View getPrintView(Context context) {
return viewToZoomBitmap(mContext, layout, printerDeviceBean); View view = View.inflate(context, R.layout.print_skyorder_qrcode, null);
TextView printTableName = view.findViewById(R.id.print_table_name);
TextView printTopInfo = view.findViewById(R.id.print_top_info);
ImageView printQrcode = view.findViewById(R.id.print_qrcode);
TextView printTime = view.findViewById(R.id.print_time);
TextView printPeopleNum = view.findViewById(R.id.print_people_num);
TextView printMealEndTime = view.findViewById(R.id.print_meal_end_time);
TextView printBottonInfo = view.findViewById(R.id.print_botton_info);
printTableName.setText(mQRCodeBean.getPrintTableName());
printTopInfo.setText(mQRCodeBean.getPrintTopInfo());
printTime.setText(mQRCodeBean.getPrintTime());
printPeopleNum.setText(mQRCodeBean.getPrintPeopleNum());
printMealEndTime.setText(mQRCodeBean.getPrintMealEndTime());
printBottonInfo.setText(mQRCodeBean.getBottonInfo());
Bitmap QRImage = QRCodeUtil.createQRImage(mQRCodeBean.getPrintQrcode(), 180, 180);
if (QRImage != null) {
printQrcode.setImageBitmap(QRImage);
} }
public View getPrintView(Context mContext) {
View view = View.inflate(mContext, R.layout.print_skyorder_qrcode, null);
TextView tvBrandName = view.findViewById(R.id.print_brand_name);
TextView tvRestaurantName = view.findViewById(R.id.print_restaurant_name);
tvBrandName.setText(GsaCloudApplication.getBrandName());
tvRestaurantName.setText(GsaCloudApplication.getRestaurantName());
return view; return view;
} }
} }
...@@ -31,7 +31,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.BillingBean; ...@@ -31,7 +31,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.BillingBean;
import com.gingersoft.gsa.cloud.base.common.bean.PayMethod; import com.gingersoft.gsa.cloud.base.common.bean.PayMethod;
import com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter; import com.gingersoft.gsa.cloud.base.order.adapter.print.FoodAdapter;
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.BillOrderMoney;
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.order.DoshokuOrder; import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
...@@ -50,7 +49,8 @@ import com.gingersoft.gsa.cloud.print.PrintExecutor; ...@@ -50,7 +49,8 @@ import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder; import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import com.gingersoft.gsa.cloud.print.PrinterWriter58mm; import com.gingersoft.gsa.cloud.print.PrinterWriter58mm;
import com.gingersoft.gsa.cloud.print.bean.OrderDetails; import com.gingersoft.gsa.cloud.print.bean.OrderDetails;
import com.google.zxing.WriterException; import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.PrintQRCodeContent;
import com.hyweb.n5.lib.constant.PrinterConstant; import com.hyweb.n5.lib.constant.PrinterConstant;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.hyweb.n5.server.aidl.IOnPrintCallback; import com.hyweb.n5.server.aidl.IOnPrintCallback;
...@@ -76,6 +76,9 @@ import java.util.Objects; ...@@ -76,6 +76,9 @@ import java.util.Objects;
import javax.inject.Inject; import javax.inject.Inject;
import lombok.Getter;
@Getter
public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener { public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedListener, PrintExecutor.OnPrintResultListener, ReceiveListener {
@Inject @Inject
...@@ -88,7 +91,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis ...@@ -88,7 +91,7 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
private PrintListener printListener; private PrintListener printListener;
public static PrinterRoot getPrinterByType(int type) { public static PrinterRoot getPrinterByType(int type, PrintContent content) {
//初始化USB打印 //初始化USB打印
if (type == PrintConstans.PRINT_TEST) { if (type == PrintConstans.PRINT_TEST) {
return new PrintTest(); return new PrintTest();
...@@ -108,6 +111,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis ...@@ -108,6 +111,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
return new PrintInstruction(); return new PrintInstruction();
} else if (type == PrintConstans.PRINT_OTHER_CLOSING) { } else if (type == PrintConstans.PRINT_OTHER_CLOSING) {
return new PrintOtherOrderClosing(); return new PrintOtherOrderClosing();
} else if (type == PrintConstans.PRINT_SKYORDER_QRCODE) {
return new PrintQRCode((PrintQRCodeContent) content);
} }
return null; return null;
} }
...@@ -615,12 +620,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis ...@@ -615,12 +620,8 @@ public abstract class PrinterRoot implements PrintSocketHolder.OnStateChangedLis
llIntegralQrcode.setVisibility(View.GONE); llIntegralQrcode.setVisibility(View.GONE);
} else { } else {
llIntegralQrcode.setVisibility(View.VISIBLE); llIntegralQrcode.setVisibility(View.VISIBLE);
try { Bitmap QRImage = QRCodeUtil.createQRImage(integralQrcode, 180, 180);
Bitmap QRImage = QRCodeUtil.makeQRImage(integralQrcode, 180, 180);
ivIntegralQrcode.setImageBitmap(QRImage); ivIntegralQrcode.setImageBitmap(QRImage);
} catch (WriterException e) {
e.printStackTrace();
}
} }
return view; return view;
} }
......
...@@ -35,6 +35,7 @@ import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean; ...@@ -35,6 +35,7 @@ import com.gingersoft.gsa.cloud.database.bean.PrintCurrencyBean;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.gingersoft.gsa.cloud.print.PrintExecutor; import com.gingersoft.gsa.cloud.print.PrintExecutor;
import com.gingersoft.gsa.cloud.print.PrintSocketHolder; import com.gingersoft.gsa.cloud.print.PrintSocketHolder;
import com.gingersoft.gsa.cloud.print.bean.PrintContent;
import com.gingersoft.gsa.cloud.print.bean.PrjBean; import com.gingersoft.gsa.cloud.print.bean.PrjBean;
import com.jess.arms.base.BaseActivity; import com.jess.arms.base.BaseActivity;
import com.jess.arms.di.component.AppComponent; import com.jess.arms.di.component.AppComponent;
...@@ -130,10 +131,11 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -130,10 +131,11 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
callId = CCUtil.getNavigateCallId(this); callId = CCUtil.getNavigateCallId(this);
//獲取打印類型,根據打印類型生成對應的bitmap //獲取打印類型,根據打印類型生成對應的bitmap
type = CCUtil.getNavigateParam(this, PRINT_TYPE, PrintConstans.PRINT_TEST); type = CCUtil.getNavigateParam(this, PrintConstans.PRINT_TYPE, PrintConstans.PRINT_TEST);
PrintContent printContent = CCUtil.getNavigateParam(this, PrintConstans.PRINT_CONTENT, null);
isShowDialog = CCUtil.getNavigateParam(this, PrintConstans.PRINT_LOADING, true); isShowDialog = CCUtil.getNavigateParam(this, PrintConstans.PRINT_LOADING, true);
printerInIt = PrinterRoot.getPrinterByType(type); printerInIt = PrinterRoot.getPrinterByType(type, printContent);
if (printerInIt != null) { if (printerInIt != null) {
printerInIt.setPrintListener(this); printerInIt.setPrintListener(this);
} }
...@@ -165,7 +167,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -165,7 +167,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} else { } else {
// 獲取默認打印機,如果用戶沒有配置默認打印機,就取他最近使用的一個. // 獲取默認打印機,如果用戶沒有配置默認打印機,就取他最近使用的一個.
// 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印 // 如果沒有最近使用的打印機,並且當前餐廳只有一台打印機,就用這一台打印機打印
defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get( "defaultPrint", "")); defaultPrint = mPresenter.getDefaultPrintInList(printerDeviceBeans, (String) SPUtils.get("defaultPrint", ""));
} }
if (type == PrintConstans.PRINT_KITCHEN) { if (type == PrintConstans.PRINT_KITCHEN) {
// List<PrjBean.DataBean.Bean> printDatas = (List<PrjBean.DataBean.Bean>) getIntent().getSerializableExtra("prjBeans"); // List<PrjBean.DataBean.Bean> printDatas = (List<PrjBean.DataBean.Bean>) getIntent().getSerializableExtra("prjBeans");
...@@ -204,7 +206,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -204,7 +206,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( "defaultPrint", printerDeviceBeans.get(position).getName()); SPUtils.put("defaultPrint", printerDeviceBeans.get(position).getName());
dialog.dismiss(); dialog.dismiss();
}); });
} }
......
...@@ -2,26 +2,67 @@ ...@@ -2,26 +2,67 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
xmlns:tools="http://schemas.android.com/tools" android:layout_margin="@dimen/dp_20"
android:orientation="vertical"> android:orientation="vertical">
<TextView <TextView
android:id="@+id/print_brand_name" android:id="@+id/print_table_name"
style="@style/Print_text_style" style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
android:gravity="center" android:gravity="center"
tools:text="品牌名" /> android:textSize="@dimen/dp_18"
android:text="餐檯:108" />
<TextView <TextView
android:id="@+id/print_restaurant_name" android:id="@+id/print_top_info"
style="@style/Print_text_style" style="@style/Print_text_style"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
android:gravity="center" android:gravity="center"
tools:text="餐廳名" /> android:textSize="@dimen/dp_20"
android:text="頂部打印可配置文字以及字體大小" />
<ImageView
android:id="@+id/print_qrcode"
android:layout_width="@dimen/dp_250"
android:layout_height="@dimen/dp_250"
android:layout_gravity="center"
android:layout_margin="@dimen/dp_30"
android:src="@drawable/ic_launcher_background"/>
<TextView
android:id="@+id/print_time"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/dp_16"
android:text="打印時間:2020-11-05 12:00" />
<TextView
android:id="@+id/print_people_num"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/dp_16"
android:text="人數:5" />
<TextView
android:id="@+id/print_meal_end_time"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/dp_16"
android:text="交檯時間: 16:00" />
<TextView
android:id="@+id/print_botton_info"
style="@style/Print_text_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/dp_20"
android:text="底部打印可配置文字以及字體大小" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.mvp.contract; package com.gingersoft.gsa.cloud.table.mvp.contract;
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.BaseResultOld;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail; import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail;
...@@ -16,6 +17,7 @@ import java.util.List; ...@@ -16,6 +17,7 @@ import java.util.List;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import retrofit2.http.Body;
/** /**
...@@ -93,5 +95,7 @@ public interface TableContract { ...@@ -93,5 +95,7 @@ public interface TableContract {
Observable<BaseResult> splitTable(int tableId); Observable<BaseResult> splitTable(int tableId);
Observable<BaseResult> getFoodSummarys(int restaurantId,boolean isDefault, byte businessType); Observable<BaseResult> getFoodSummarys(int restaurantId,boolean isDefault, byte businessType);
Observable<BaseResultOld> addScan(RequestBody requestBody);
} }
} }
...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model; ...@@ -3,6 +3,7 @@ package com.gingersoft.gsa.cloud.table.mvp.model;
import android.app.Application; import android.app.Application;
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.BaseResultOld;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract; import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
...@@ -78,19 +79,7 @@ public class TableModel extends BaseModel implements TableContract.Model { ...@@ -78,19 +79,7 @@ public class TableModel extends BaseModel implements TableContract.Model {
@Override @Override
public Observable<TableBean> getTables(int restaurantId) { public Observable<TableBean> getTables(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(TableService.class) return mRepositoryManager.obtainRetrofitService(TableService.class)
.getTables(restaurantId) .getTables(restaurantId);
.doOnError(new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
return;
}
})
.flatMap(new Function<TableBean, ObservableSource<TableBean>>() {
@Override
public ObservableSource<TableBean> apply(TableBean tableBean) throws Exception {
return Observable.just(tableBean);
}
});
} }
@Override @Override
...@@ -141,5 +130,11 @@ public class TableModel extends BaseModel implements TableContract.Model { ...@@ -141,5 +130,11 @@ public class TableModel extends BaseModel implements TableContract.Model {
.getFoodSummarys(restaurantId, isDefault, businessType); .getFoodSummarys(restaurantId, isDefault, businessType);
} }
@Override
public Observable<BaseResultOld> addScan(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(TableService.class)
.addScan(requestBody);
}
} }
\ No newline at end of file
package com.gingersoft.gsa.cloud.table.mvp.model.service; package com.gingersoft.gsa.cloud.table.mvp.model.service;
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.BaseResultOld;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseOrderRespose;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail; import com.gingersoft.gsa.cloud.table.mvp.model.bean.TableDetail;
...@@ -47,4 +48,8 @@ public interface TableService { ...@@ -47,4 +48,8 @@ public interface TableService {
@Headers({"Domain-Name: ricepon_restaurant"}) @Headers({"Domain-Name: ricepon_restaurant"})
@GET("summary/getSummaryBusinessList" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @GET("summary/getSummaryBusinessList" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> getFoodSummarys(@Query("restaurantId") int restaurantId, @Query("isDefault") boolean isDefault, @Query("businessType") byte businessType); Observable<BaseResult> getFoodSummarys(@Query("restaurantId") int restaurantId, @Query("isDefault") boolean isDefault, @Query("businessType") byte businessType);
@Headers({"Domain-Name: ricepon_restaurant"})
@POST("scan/addScan" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResultOld> addScan(@Body RequestBody requestBody);
} }
...@@ -12,4 +12,5 @@ public interface OnNetworkCallbackListener<T> { ...@@ -12,4 +12,5 @@ public interface OnNetworkCallbackListener<T> {
void onError(Throwable t); void onError(Throwable t);
void onComplete();
} }
...@@ -108,6 +108,11 @@ public class PrintServingPaperAction extends TableAction { ...@@ -108,6 +108,11 @@ public class PrintServingPaperAction extends TableAction {
public void onError(Throwable t) { public void onError(Throwable t) {
} }
@Override
public void onComplete() {
}
}); });
dialog.dismiss(); dialog.dismiss();
} }
......
package com.gingersoft.gsa.cloud.table.mvp.model.table.action; package com.gingersoft.gsa.cloud.table.mvp.model.table.action;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.text.TextUtils;
import com.billy.cc.core.component.CC;
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.BaseResultOld;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.constans.PrintConstans;
import com.gingersoft.gsa.cloud.print.bean.PrintQRCodeContent;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodSummary; import com.gingersoft.gsa.cloud.table.mvp.model.bean.FoodSummary;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.widget.SkyOrderDialog; import com.gingersoft.gsa.cloud.table.mvp.ui.widget.SkyOrderDialog;
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.DialogAnimationListener;
import com.jess.arms.utils.ArmsUtils;
import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -33,7 +42,7 @@ public class PrintSkyOrderAction extends TableAction { ...@@ -33,7 +42,7 @@ public class PrintSkyOrderAction extends TableAction {
@Override @Override
public void action(TableBean.DataBean dataBean) { public void action(TableBean.DataBean dataBean) {
showSkyOrderDialog(); showSkyOrderDialog(dataBean);
} }
@Override @Override
...@@ -50,9 +59,21 @@ public class PrintSkyOrderAction extends TableAction { ...@@ -50,9 +59,21 @@ public class PrintSkyOrderAction extends TableAction {
} }
} }
public void showSkyOrderDialog() { public void showSkyOrderDialog(TableBean.DataBean tableBean) {
if (mSkyOrderDialog == null) {
mSkyOrderDialog = new SkyOrderDialog(mContext).build(); mSkyOrderDialog = new SkyOrderDialog(mContext).build();
mSkyOrderDialog.setDialogAnimationListener(new DialogAnimationListener() {
@Override
public void showAnimEnd() {
//防止加載出現卡頓 在動畫結束後再做邏輯處理
getFoodSummarys();
mSkyOrderDialog.addMealMinutes(createMealMinutes());
}
@Override
public void dismissAnimEnd() {
}
});
mSkyOrderDialog.setOnRetryListener(new BaseRetryDialog.OnRetryListener() { mSkyOrderDialog.setOnRetryListener(new BaseRetryDialog.OnRetryListener() {
@Override @Override
public void onRetryClick() { public void onRetryClick() {
...@@ -67,16 +88,69 @@ public class PrintSkyOrderAction extends TableAction { ...@@ -67,16 +88,69 @@ public class PrintSkyOrderAction extends TableAction {
} }
@Override @Override
public void onPrint() { public void onPrint(FoodSummary foodSummary, int person, String endTime) {
mTablePresenter.addScan(GsaCloudApplication.getGsPosShopId(), tableBean.getId(), tableBean.getTableNumber(), tableBean.getTableName(),
person, GsaCloudApplication.getMemberName(), endTime, foodSummary.getId(), new OnNetworkCallbackListener<BaseResultOld>() {
@Override
public void onResult(BaseResultOld resultBean) {
// if ("0".equals(resultOld.getCode())) {
String printTime = TimeUtils.getStringByFormat(System.currentTimeMillis(), TimeUtils.DEFAULT_DATE_FORMAT_YMDHM);
PrintQRCodeContent printQRCodeBean = new PrintQRCodeContent();
printQRCodeBean.setPrintTableName(tableBean.getTableName());
printQRCodeBean.setPrintTopInfo("頂部打印可配置文字以及字體大小");
printQRCodeBean.setBottonInfo("底部打印可配置文字以及字體大小");
printQRCodeBean.setPrintQrcode(resultBean.getErrMsg());
printQRCodeBean.setPrintTime(printTime);
printQRCodeBean.setPrintPeopleNum(String.valueOf(tableBean.getPerson()));
printQRCodeBean.setPrintMealEndTime(endTime);
CC.obtainBuilder("Component.Print")
.setActionName("printActivity")
.addParam(PrintConstans.PRINT_CONTENT, printQRCodeBean)
.addParam(PrintConstans.PRINT_TYPE, PrintConstans.PRINT_SKYORDER_QRCODE)
.build()
.callAsyncCallbackOnMainThread((cc, result) -> {
if (result.isSuccess()) {
} else {
ArmsUtils.makeText(mContext, "打印失敗");
} }
}); });
getFoodSummarys(); // }
} }
@Override
public void onError(Throwable t) {
}
@Override
public void onComplete() {
}
});
}
});
mSkyOrderDialog.show(); mSkyOrderDialog.show();
} }
private void getFoodSummarys(){ private List<Integer> createMealMinutes() {
String QRCodeTimeSlice = GsaCloudApplication.functionConfiguration.getQRCodeTimeSliceVaule();
if (!TextUtils.isEmpty(QRCodeTimeSlice)) {
List<Integer> mMealMinute = new ArrayList<>();
String[] timeSlice = QRCodeTimeSlice.split(",");
for (String time : timeSlice) {
mMealMinute.add(Integer.parseInt(time));
}
return mMealMinute;
}
return null;
}
private void getFoodSummarys() {
mTablePresenter.getFoodSummarys(new OnNetworkCallbackListener<BaseResult>() { mTablePresenter.getFoodSummarys(new OnNetworkCallbackListener<BaseResult>() {
@Override @Override
...@@ -86,19 +160,24 @@ public class PrintSkyOrderAction extends TableAction { ...@@ -86,19 +160,24 @@ public class PrintSkyOrderAction extends TableAction {
List<FoodSummary> foodSummaryList = JsonUtils.parseArray(result.getData(), FoodSummary.class); List<FoodSummary> foodSummaryList = JsonUtils.parseArray(result.getData(), FoodSummary.class);
mSkyOrderDialog.updateFoodSummaryList(foodSummaryList); mSkyOrderDialog.updateFoodSummaryList(foodSummaryList);
} else { } else {
mSkyOrderDialog.showEmptyView(true,0,null); mSkyOrderDialog.showEmptyView(true, 0, null);
} }
} else { } else {
mSkyOrderDialog.showEmptyView(false,0,null); mSkyOrderDialog.showEmptyView(false, 0, null);
} }
mSkyOrderDialog.setProgressVisibility(false); mSkyOrderDialog.setProgressVisibility(false);
} }
@Override @Override
public void onError(Throwable t) { public void onError(Throwable t) {
mSkyOrderDialog.showEmptyView(false,0,t); mSkyOrderDialog.showEmptyView(false, 0, t);
mSkyOrderDialog.setProgressVisibility(false); mSkyOrderDialog.setProgressVisibility(false);
} }
@Override
public void onComplete() {
}
}); });
mSkyOrderDialog.setProgressVisibility(true); mSkyOrderDialog.setProgressVisibility(true);
} }
......
...@@ -2,14 +2,13 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,14 +2,13 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Activity; import android.app.Activity;
import android.app.Application; import android.app.Application;
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.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.BaseResultOld;
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.commodity.OrderDetail; import com.gingersoft.gsa.cloud.base.order.commodity.OrderDetail;
import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder; import com.gingersoft.gsa.cloud.base.order.order.DoshokuOrder;
...@@ -17,7 +16,6 @@ import com.gingersoft.gsa.cloud.base.table.bean.TableBean; ...@@ -17,7 +16,6 @@ import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.table.bean.TableExtBean; import com.gingersoft.gsa.cloud.base.table.bean.TableExtBean;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.table.ComponentTable; import com.gingersoft.gsa.cloud.table.ComponentTable;
import com.gingersoft.gsa.cloud.table.R; import com.gingersoft.gsa.cloud.table.R;
import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract; import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
...@@ -32,14 +30,11 @@ import com.gingersoft.gsa.cloud.table.mvp.model.table.action.PrintSkyOrderAction ...@@ -32,14 +30,11 @@ import com.gingersoft.gsa.cloud.table.mvp.model.table.action.PrintSkyOrderAction
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.ResetTableAction; import com.gingersoft.gsa.cloud.table.mvp.model.table.action.ResetTableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.SplitTableAction; import com.gingersoft.gsa.cloud.table.mvp.model.table.action.SplitTableAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction; 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.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.SkyOrderDialog; import com.gingersoft.gsa.cloud.table.mvp.ui.widget.SkyOrderDialog;
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.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodCombo; import com.gingersoft.gsa.cloud.database.bean.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
...@@ -58,7 +53,6 @@ import com.jess.arms.utils.RxLifecycleUtils; ...@@ -58,7 +53,6 @@ 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;
...@@ -106,10 +100,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -106,10 +100,6 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
private TableActivity IActivity; private TableActivity IActivity;
/** /**
* 打印skyorder彈窗
*/
private SkyOrderDialog mSkyOrderDialog;
/**
* 分檯弹窗 * 分檯弹窗
*/ */
private SplitTableDialog mSplitTableDialog; private SplitTableDialog mSplitTableDialog;
...@@ -226,6 +216,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -226,6 +216,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} }
boolean addFuctions = false; boolean addFuctions = false;
List<Function> functions = FunctionManager.getDefault().getFunctionByResModule(GsaCloudApplication.getAppContext(), ComponentTable.table.class, ComponentTable.table.bottom, "bottom"); List<Function> functions = FunctionManager.getDefault().getFunctionByResModule(GsaCloudApplication.getAppContext(), ComponentTable.table.class, ComponentTable.table.bottom, "bottom");
Function newFunction = new Function(); Function newFunction = new Function();
newFunction.setParentId(175); newFunction.setParentId(175);
newFunction.setGroupId(5); newFunction.setGroupId(5);
...@@ -736,7 +727,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -736,7 +727,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
public void getFoodSummarys(OnNetworkCallbackListener networkCallBackListener) { public void getFoodSummarys(OnNetworkCallbackListener networkCallBackListener) {
int restaurantId = GsaCloudApplication.getRestaurantId(); int restaurantId = GsaCloudApplication.getRestaurantId();
byte businessType = FoodSummary.BUSINESS_TYPE_SKYORDER; byte businessType = FoodSummary.BUSINESS_TYPE_SKYORDER;
mModel.getFoodSummarys(restaurantId,false, businessType) mModel.getFoodSummarys(restaurantId, false, businessType)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread()) .subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread()) .observeOn(AndroidSchedulers.mainThread())
...@@ -760,6 +751,42 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -760,6 +751,42 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} }
public void addScan(String shopId, int tableId, String tableNum, String tableName, int person, String createBy, String endTime, int summaryId,OnNetworkCallbackListener networkCallBackListener) {
RequestBody requestBody = new FormBody.Builder()
.add("shopId", shopId)
.add("tableId", String.valueOf(tableId))
.add("tableNum", tableNum)
.add("tableName", tableName)
.add("person", String.valueOf(person))
.add("createBy", createBy)
.add("endTime", endTime)
.add("summaryId", String.valueOf(summaryId))
.build();
mModel.addScan(requestBody)
.subscribeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.compose(RxLifecycleUtils.bindToLifecycle(mRootView))
.subscribe(new ErrorHandleSubscriber<BaseResultOld>(mErrorHandler) {
@Override
public void onNext(@NonNull BaseResultOld result) {
if (networkCallBackListener != null) {
networkCallBackListener.onResult(result);
}
}
@Override
public void onError(Throwable t) {
if (networkCallBackListener != null) {
networkCallBackListener.onError(t);
}
}
});
}
/** /**
* 根据操作类型过滤一遍餐台 * 根据操作类型过滤一遍餐台
*/ */
...@@ -911,6 +938,11 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -911,6 +938,11 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
mTableAction = null; mTableAction = null;
} }
/**
* 跟進id獲取餐檯對象
* @param id
* @return
*/
private TableBean.DataBean getTableById(long id) { private TableBean.DataBean getTableById(long id) {
for (int i = 0; i < mTableList.size(); i++) { for (int i = 0; i < mTableList.size(); i++) {
TableBean.DataBean dataBean = mTableList.get(i); TableBean.DataBean dataBean = mTableList.get(i);
...@@ -921,6 +953,20 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -921,6 +953,20 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
return null; return null;
} }
/**
* 跟進類獲取餐檯操作對象
* @param cla
* @return
*/
public TableAction getTableActionByClass(Class<?>cla){
for (TableAction action: mTableActions) {
if(action.getClass().equals(cla)){
return action;
}
}
return null;
}
public void initGetTableTimer() { public void initGetTableTimer() {
if (tableTimer == null) { if (tableTimer == null) {
...@@ -964,6 +1010,10 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -964,6 +1010,10 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
} }
} }
public void setTableAction(TableAction tableAction) {
this.mTableAction = tableAction;
}
public Disposable getGetTablesDataDisposable() { public Disposable getGetTablesDataDisposable() {
return mGetTablesDataDisposable; return mGetTablesDataDisposable;
} }
......
...@@ -10,6 +10,7 @@ import android.widget.LinearLayout; ...@@ -10,6 +10,7 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.SimpleAdapter; import android.widget.SimpleAdapter;
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.base.order.order.BaseOrder; import com.gingersoft.gsa.cloud.base.order.order.BaseOrder;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
...@@ -21,6 +22,7 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent; ...@@ -21,6 +22,7 @@ import com.gingersoft.gsa.cloud.table.di.component.DaggerTableComponent;
import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract; import com.gingersoft.gsa.cloud.table.mvp.contract.TableContract;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent; import com.gingersoft.gsa.cloud.table.mvp.model.bean.event.InitTableEvent;
import com.gingersoft.gsa.cloud.table.mvp.model.constant.TableActionConstant; import com.gingersoft.gsa.cloud.table.mvp.model.constant.TableActionConstant;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.PrintSkyOrderAction;
import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction; import com.gingersoft.gsa.cloud.table.mvp.model.table.action.TableAction;
import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter; import com.gingersoft.gsa.cloud.table.mvp.presenter.TablePresenter;
import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment; import com.gingersoft.gsa.cloud.table.mvp.ui.fragment.AllTableFragment;
...@@ -61,6 +63,7 @@ import androidx.recyclerview.widget.GridLayoutManager; ...@@ -61,6 +63,7 @@ import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import androidx.viewpager.widget.ViewPager; import androidx.viewpager.widget.ViewPager;
import butterknife.BindView; import butterknife.BindView;
import butterknife.OnClick; import butterknife.OnClick;
...@@ -319,14 +322,20 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen ...@@ -319,14 +322,20 @@ public class TableActivity extends BaseFragmentActivity<TablePresenter> implemen
} }
} }
@OnClick({R2.id.btn_cancel_operat}) @OnClick(R2.id.rl_skyorder)
public void onClick(View v) { public void clickSkyorder() {
int id = v.getId(); TableAction tableAction = mPresenter.getTableActionByClass(PrintSkyOrderAction.class);
if (id == R.id.btn_cancel_operat) { if (tableAction != null) {
canceTableAction(); mPresenter.setTableAction(tableAction);
setCurrentTableAction(tableAction);
} }
} }
@OnClick(R2.id.btn_cancel_operat)
public void clickCancelAction(View v) {
canceTableAction();
}
@Override @Override
public void setCurrentTableAction(TableAction action) { public void setCurrentTableAction(TableAction action) {
btn_cancel_operat.setVisibility(View.VISIBLE); btn_cancel_operat.setVisibility(View.VISIBLE);
......
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.adapter; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.ui.adapter;
import android.content.Context; import android.content.Context;
import android.graphics.Color; import android.graphics.Color;
import android.graphics.drawable.GradientDrawable;
import android.text.TextUtils; import android.text.TextUtils;
import android.view.Gravity; import android.view.Gravity;
import android.view.View; import android.view.View;
...@@ -9,8 +10,10 @@ import android.widget.FrameLayout; ...@@ -9,8 +10,10 @@ import android.widget.FrameLayout;
import android.widget.RelativeLayout; import android.widget.RelativeLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.core.app.NavUtils;
import androidx.core.content.ContextCompat; import androidx.core.content.ContextCompat;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.table.bean.TableBean; import com.gingersoft.gsa.cloud.base.table.bean.TableBean;
import com.gingersoft.gsa.cloud.base.table.bean.TableItem; import com.gingersoft.gsa.cloud.base.table.bean.TableItem;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
...@@ -20,6 +23,7 @@ import com.gingersoft.gsa.cloud.table.R2; ...@@ -20,6 +23,7 @@ import com.gingersoft.gsa.cloud.table.R2;
import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView; import com.gingersoft.gsa.cloud.ui.view.TriangleLabelView;
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.jess.arms.utils.ArmsUtils;
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;
...@@ -115,12 +119,10 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -115,12 +119,10 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
TextView tv_service_fee; TextView tv_service_fee;
@BindView(R2.id.tv_open_duration) @BindView(R2.id.tv_open_duration)
TextView tv_open_duration; TextView tv_open_duration;
// @BindView(R2.id.btn_showMain)
// Button btn_showMain;
@BindView(R2.id.iv_vip) @BindView(R2.id.iv_vip)
TriangleLabelView iv_vip; TriangleLabelView iv_vip;
// @BindView(R2.id.tv_scan_flag) @BindView(R2.id.tv_scan_flag)
// TextView tv_scan_flag; TextView tv_scan_flag;
@BindView(R2.id.fl_table_type) @BindView(R2.id.fl_table_type)
FrameLayout fl_table_type; FrameLayout fl_table_type;
@BindView(R2.id.tlv_table_type) @BindView(R2.id.tlv_table_type)
...@@ -214,6 +216,12 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -214,6 +216,12 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
} else { } else {
iv_vip.setVisibility(View.GONE); iv_vip.setVisibility(View.GONE);
} }
if (!TextUtils.isEmpty(item.getQrCode())) {
setTableFlagDispalyLayout(item);
tv_scan_flag.setVisibility(View.VISIBLE);
} else {
tv_scan_flag.setVisibility(View.GONE);
}
} }
private void initTableBackground(TableBean.DataBean item) { private void initTableBackground(TableBean.DataBean item) {
...@@ -285,18 +293,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -285,18 +293,6 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
rl_table.setLayoutParams(relativeLayout); rl_table.setLayoutParams(relativeLayout);
} }
// private void setBackGroundWork(TableBean.DataBean item, String workstatu, int defaultMainback, int defaultChildBack, int defaultFontColor) {
// if (defaultMainback != -1) {
// ll_container.setBackground(mContext.getResources().getDrawable(defaultMainback));
// }
//// if (defaultChildBack != -1) {
//// btn_table.setBackground(mContext.getResources().getDrawable(defaultMainback));
//// btn_showMain.setBackground(mContext.getResources().getDrawable(defaultMainback));
//// }
// btn_table.setTextColor(mContext.getResources().getColor(defaultFontColor));
//// btn_showMain.setTextColor(mContext.getResources().getColor(defaultFontColor));
// }
private void setBackGroundWork(TableBean.DataBean item, int defaultMainback, int defaultFontColor, int serviceFeeFontColor) { private void setBackGroundWork(TableBean.DataBean item, int defaultMainback, int defaultFontColor, int serviceFeeFontColor) {
if (defaultMainback != -1) { if (defaultMainback != -1) {
ll_container.setBackgroundColor(defaultMainback); ll_container.setBackgroundColor(defaultMainback);
...@@ -304,6 +300,57 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> { ...@@ -304,6 +300,57 @@ public class TableAdapter extends DefaultAdapter<TableBean.DataBean> {
btn_table.setTextColor(mContext.getResources().getColor(defaultFontColor)); btn_table.setTextColor(mContext.getResources().getColor(defaultFontColor));
tv_service_fee.setTextColor(mContext.getResources().getColor(serviceFeeFontColor)); tv_service_fee.setTextColor(mContext.getResources().getColor(serviceFeeFontColor));
} }
private void setTableFlagDispalyLayout(TableBean.DataBean item) {
String skyQRCodeTableFlagBackgroupColor = GsaCloudApplication.uiStyleConfiguration.getSkyQRCodeTableFlagBackgroupColorValue();
GradientDrawable drawable = new GradientDrawable();
drawable.setColor(Color.parseColor(skyQRCodeTableFlagBackgroupColor));
tv_scan_flag.setBackground(drawable);
int skyQRCodeTableFlagHeight = GsaCloudApplication.uiStyleConfiguration.getSkyQRCodeTableFlagHeightValue();
int skyQRCodeTableFlagWith = GsaCloudApplication.uiStyleConfiguration.getSkyQRCodeTableFlagWithValue();
RelativeLayout.LayoutParams relativeLayout = (RelativeLayout.LayoutParams) tv_scan_flag.getLayoutParams();
relativeLayout.height = ArmsUtils.dip2px(mContext, skyQRCodeTableFlagHeight);
relativeLayout.width = ArmsUtils.dip2px(mContext, skyQRCodeTableFlagWith);
tv_scan_flag.setLayoutParams(relativeLayout);
String skyQRCodeTableFlagText = GsaCloudApplication.functionConfiguration.getSkyQRCodeTableFlagTextVaule();
int skyQRCodeTableFlagTextSize = GsaCloudApplication.uiStyleConfiguration.getSkyQRCodeTableFlagTextSizeValue();
tv_scan_flag.setText(skyQRCodeTableFlagText);
tv_scan_flag.setTextSize(skyQRCodeTableFlagTextSize);
if (!TextUtils.isEmpty(item.getQrCode())) {
if (item.getMemberId() == 0) {
//未登入会员
if (item.getOrderId() != null) {
//已送单(橙色底黑色“S”)
//橙色底黑色字“S”=SKY ORDER未登錄會員
tv_scan_flag.setTextColor(Color.parseColor("#000000"));
tv_scan_flag.setBackgroundColor(Color.parseColor("#FF7F04"));
} else {
//未送单(蓝色底黑色“S”)
//藍色底黑色字“S”=SKY ORDER未登錄會員
tv_scan_flag.setTextColor(Color.parseColor("#000000"));
tv_scan_flag.setBackgroundColor(Color.parseColor("#0404FF"));
}
} else {
//已登入会员
if (item.getOrderId() != null) {
//已送单(橙色底白色“S”)
tv_scan_flag.setTextColor(Color.parseColor("#FFFFFF"));
tv_scan_flag.setBackgroundColor(Color.parseColor("#FF7F04"));
} else {
//未送单(蓝色底白色“S”)
tv_scan_flag.setTextColor(Color.parseColor("#FFFFFF"));
tv_scan_flag.setBackgroundColor(Color.parseColor("#0404FF"));
}
}
}
}
} }
public int getStyle() { public int getStyle() {
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
<TextView <TextView
android:id="@+id/tv_start_time" android:id="@+id/tv_meal_hours"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_20" android:layout_marginLeft="@dimen/dp_20"
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
android:drawableTint="@color/theme_hint_color" android:drawableTint="@color/theme_hint_color"
android:gravity="center" android:gravity="center"
android:paddingStart="@dimen/dp_10" android:paddingStart="@dimen/dp_10"
android:text="22:00" android:text=""
android:textColor="@color/theme_text_color" android:textColor="@color/theme_text_color"
android:textSize="@dimen/dp_18" android:textSize="@dimen/dp_18"
android:textStyle="bold" android:textStyle="bold"
...@@ -50,10 +50,10 @@ ...@@ -50,10 +50,10 @@
android:layout_marginEnd="@dimen/dp_20" android:layout_marginEnd="@dimen/dp_20"
android:text=":" android:text=":"
android:textStyle="bold" android:textStyle="bold"
app:layout_constraintLeft_toRightOf="@+id/tv_start_time" /> app:layout_constraintLeft_toRightOf="@+id/tv_meal_hours" />
<TextView <TextView
android:id="@+id/tv_end_time" android:id="@+id/tv_meal_minute"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:drawableRight="@drawable/qmui_popup_arrow_down" android:drawableRight="@drawable/qmui_popup_arrow_down"
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
android:gravity="center" android:gravity="center"
android:paddingStart="@dimen/dp_10" android:paddingStart="@dimen/dp_10"
android:paddingEnd="@dimen/dp_10" android:paddingEnd="@dimen/dp_10"
android:text="23:30" android:text=""
android:textColor="@color/theme_text_color" android:textColor="@color/theme_text_color"
android:textSize="@dimen/dp_18" android:textSize="@dimen/dp_18"
android:textStyle="bold" android:textStyle="bold"
...@@ -95,6 +95,5 @@ ...@@ -95,6 +95,5 @@
android:visibility="invisible"/> android:visibility="invisible"/>
</FrameLayout> </FrameLayout>
<include layout="@layout/table_input_skyorder_people_number" /> <include layout="@layout/table_input_skyorder_people_number" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
android:ems="10" android:ems="10"
android:enabled="false" android:enabled="false"
android:gravity="right|center_vertical" android:gravity="right|center_vertical"
android:hint="@string/please_input_table_number" android:hint="請輸入人數"
android:inputType="numberDecimal" android:inputType="numberDecimal"
android:singleLine="true" android:singleLine="true"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
...@@ -75,7 +75,7 @@ ...@@ -75,7 +75,7 @@
android:tag="7" android:tag="7"
android:text="@string/Key_7" android:text="@string/Key_7"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_8" android:id="@+id/btn_8"
...@@ -89,7 +89,7 @@ ...@@ -89,7 +89,7 @@
android:tag="8" android:tag="8"
android:text="@string/Key_8" android:text="@string/Key_8"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_9" android:id="@+id/btn_9"
...@@ -102,7 +102,7 @@ ...@@ -102,7 +102,7 @@
android:tag="9" android:tag="9"
android:text="@string/Key_9" android:text="@string/Key_9"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
</TableRow> </TableRow>
<TableRow <TableRow
...@@ -124,7 +124,7 @@ ...@@ -124,7 +124,7 @@
android:tag="4" android:tag="4"
android:text="@string/Key_4" android:text="@string/Key_4"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_5" android:id="@+id/btn_5"
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
android:tag="5" android:tag="5"
android:text="@string/Key_5" android:text="@string/Key_5"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_6" android:id="@+id/btn_6"
...@@ -153,7 +153,7 @@ ...@@ -153,7 +153,7 @@
android:tag="6" android:tag="6"
android:text="@string/Key_6" android:text="@string/Key_6"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
</TableRow> </TableRow>
<TableRow <TableRow
...@@ -175,7 +175,7 @@ ...@@ -175,7 +175,7 @@
android:tag="1" android:tag="1"
android:text="@string/Key_1" android:text="@string/Key_1"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_2" android:id="@+id/btn_2"
...@@ -190,7 +190,7 @@ ...@@ -190,7 +190,7 @@
android:tag="2" android:tag="2"
android:text="@string/Key_2" android:text="@string/Key_2"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_3" android:id="@+id/btn_3"
...@@ -204,7 +204,7 @@ ...@@ -204,7 +204,7 @@
android:tag="3" android:tag="3"
android:text="@string/Key_3" android:text="@string/Key_3"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
</TableRow> </TableRow>
<TableRow <TableRow
...@@ -242,7 +242,7 @@ ...@@ -242,7 +242,7 @@
android:tag="0" android:tag="0"
android:text="@string/Key_0" android:text="@string/Key_0"
android:textColor="@color/table_input_table_keypad" android:textColor="@color/table_input_table_keypad"
android:textSize="@dimen/dp_35" /> android:textSize="@dimen/dp_30" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_add10" android:id="@+id/btn_add10"
...@@ -269,7 +269,7 @@ ...@@ -269,7 +269,7 @@
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_delete" android:id="@+id/btn_delete"
android:layout_width="@dimen/dp_120" android:layout_width="@dimen/dp_100"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
android:background="#DCEDFF" android:background="#DCEDFF"
...@@ -279,23 +279,21 @@ ...@@ -279,23 +279,21 @@
android:tag="98" android:tag="98"
android:text="×" android:text="×"
android:textColor="#1196DB" android:textColor="#1196DB"
android:textSize="@dimen/dp_35" android:textSize="@dimen/dp_35" />
android:textStyle="bold" />
<com.qmuiteam.qmui.alpha.QMUIAlphaTextView <com.qmuiteam.qmui.alpha.QMUIAlphaTextView
android:id="@+id/btn_sure" android:id="@+id/btn_sure"
android:layout_width="@dimen/dp_120" android:layout_width="@dimen/dp_100"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1" android:layout_weight="1"
android:background="#1196DB" android:background="#1196DB"
android:focusable="true" android:focusable="true"
android:gravity="center" android:gravity="center"
android:layerType="software" android:layerType="software"
android:tag="98" android:tag="97"
android:text="@string/Key_right" android:text="@string/Key_right"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/dp_35" android:textSize="@dimen/dp_35" />
android:textStyle="bold" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
</merge> </merge>
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
android:id="@+id/rl_skyorder" android:id="@+id/rl_skyorder"
android:layout_width="@dimen/dp_65" android:layout_width="@dimen/dp_65"
android:layout_height="@dimen/dp_65" android:layout_height="@dimen/dp_65"
android:layout_marginBottom="@dimen/dp_25" android:layout_marginBottom="@dimen/dp_20"
android:gravity="center" android:gravity="center"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
......
...@@ -128,17 +128,17 @@ ...@@ -128,17 +128,17 @@
<!-- android:src="@drawable/qmui_icon_tip_new"--> <!-- android:src="@drawable/qmui_icon_tip_new"-->
<!-- android:visibility="visible" />--> <!-- android:visibility="visible" />-->
<!-- <TextView--> <TextView
<!-- android:id="@+id/tv_scan_flag"--> android:id="@+id/tv_scan_flag"
<!-- android:layout_width="25dp"--> android:layout_width="25dp"
<!-- android:layout_height="25dp"--> android:layout_height="25dp"
<!-- android:layout_alignParentTop="true"--> android:layout_alignParentTop="true"
<!-- android:layout_alignParentRight="true"--> android:layout_alignParentRight="true"
<!-- android:text="S"--> android:text="S"
<!-- android:background="@color/orange_700"--> android:background="@color/orange_700"
<!-- android:textColor="@color/theme_white_color"--> android:textColor="@color/theme_white_color"
<!-- android:gravity="center"--> android:gravity="center"
<!-- android:visibility="gone"--> android:visibility="gone"
<!-- android:textSize="@dimen/font_normal2" />--> android:textSize="@dimen/font_normal2" />
</com.qmuiteam.qmui.layout.QMUIRelativeLayout> </com.qmuiteam.qmui.layout.QMUIRelativeLayout>
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