Commit b6f967f6 by 王宇航

3-06 登陸UI優化,創建訂單添加餐廳id,商米第一次打印不出問題,商米打印寬度問題

parent 8300e096
...@@ -342,8 +342,8 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -342,8 +342,8 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
finish(); finish();
} }
@OnClick({R2.id.ll_switch_server, R2.id.layout_login_out, R2.id.iv_personal_center, R2.id.tv_restaurant_name})
public View.OnClickListener mSlidingMenuOnclick = new View.OnClickListener() { public View.OnClickListener mSlidingMenuOnclick = new View.OnClickListener() {
@OnClick({R2.id.ll_switch_server, R2.id.layout_login_out, R2.id.iv_personal_center, R2.id.tv_restaurant_name})
@Override @Override
public void onClick(View v) { public void onClick(View v) {
slideMenu.toggle(); slideMenu.toggle();
......
...@@ -362,8 +362,8 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M ...@@ -362,8 +362,8 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
lineChart.setShowChartName(false); lineChart.setShowChartName(false);
//底部不顯示顏色代表的意思 //底部不顯示顏色代表的意思
lineChart.getLegend().setDisplay(false); lineChart.getLegend().setDisplay(false);
lineChart.getMatrixHelper().setWidthMultiple(1.2f); // lineChart.getMatrixHelper().setWidthMultiple(1f);
lineChart.getMatrixHelper().setCanZoom(true); lineChart.getMatrixHelper().setCanZoom(false);
lineChart.getHorizontalAxis().setRotateAngle(0);//設置底部文字旋轉角度 lineChart.getHorizontalAxis().setRotateAngle(0);//設置底部文字旋轉角度
lineChart.setFirstAnim(true); lineChart.setFirstAnim(true);
lineChart.setChartData(chartData2); lineChart.setChartData(chartData2);
......
...@@ -52,5 +52,4 @@ dependencies { ...@@ -52,5 +52,4 @@ dependencies {
releaseImplementation rootProject.ext.dependencies["canary-release"] releaseImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["canary-release"] testImplementation rootProject.ext.dependencies["canary-release"]
testImplementation rootProject.ext.dependencies["junit"] testImplementation rootProject.ext.dependencies["junit"]
implementation 'com.sunmi:printerlibrary:1.0.7'
} }
...@@ -2,10 +2,16 @@ ...@@ -2,10 +2,16 @@
package="com.joe.print"> package="com.joe.print">
<application> <application>
<activity android:name=".mvp.ui.activity.OldPrintActivity" android:theme="@style/print_TranslucentTheme"/> <activity
<activity android:name=".mvp.ui.activity.PrintActivity" android:theme="@style/print_TranslucentTheme"/> android:name=".mvp.ui.activity.OldPrintActivity"
<activity android:name=".mvp.ui.activity.PrinterListActivity"/> android:launchMode="singleTop"
<activity android:name=".mvp.ui.activity.PrinterAddActivity"/> android:theme="@style/print_TranslucentTheme" />
<activity
android:name=".mvp.ui.activity.PrintActivity"
android:launchMode="singleTop"
android:theme="@style/print_TranslucentTheme" />
<activity android:name=".mvp.ui.activity.PrinterListActivity" />
<activity android:name=".mvp.ui.activity.PrinterAddActivity" />
</application> </application>
</manifest> </manifest>
package com.joe.print.mvp.print; package com.joe.print.mvp.print;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap;
import android.os.RemoteException;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.sunmi.peripheral.printer.InnerPrinterCallback; import com.sunmi.peripheral.printer.InnerPrinterCallback;
import com.sunmi.peripheral.printer.InnerPrinterException; import com.sunmi.peripheral.printer.InnerPrinterException;
import com.sunmi.peripheral.printer.InnerPrinterManager; import com.sunmi.peripheral.printer.InnerPrinterManager;
import com.sunmi.peripheral.printer.InnerResultCallbcak;
import com.sunmi.peripheral.printer.SunmiPrinterService;
/** /**
* Created by Wyh on 2020/2/10. * Created by Wyh on 2020/2/10.
...@@ -25,57 +21,4 @@ public class SunMiPrint { ...@@ -25,57 +21,4 @@ public class SunMiPrint {
return false; return false;
} }
} }
public static boolean printBitmap(Context context, Bitmap bitmap) {
return bindService(context, new InnerPrinterCallback() {
@Override
protected void onConnected(SunmiPrinterService service) {
//驗證打印機狀態
if (PrintStatus.initV2PrintStatus(context, service)) {
try {
//打印機狀態正常,開始打印圖片
service.printBitmap(bitmap, new InnerResultCallbcak() {
@Override
public void onRunResult(boolean isSuccess) {
//返回接⼝执⾏的情况(并⾮真实打印):成功或失败
if (isSuccess) {
ToastUtils.show(context, "打印成功");
} else {
ToastUtils.show(context, "打印失敗");
}
}
@Override
public void onReturnString(String result) {
//部分接⼝会异步返回查询数据
ToastUtils.show(context, "onReturnString:" + result);
}
@Override
public void onRaiseException(int code, String msg) {
//接⼝执⾏失败时,返回的异常状态
ToastUtils.show(context, "打印異常狀態碼:" + code + "---MSG:" + msg);
}
@Override
public void onPrintResult(int code, String msg) {
//事务模式下真实的打印结果返回
ToastUtils.show(context, "打印結果:" + code + "---MSG:" + msg);
}
});
} catch (RemoteException e) {
e.printStackTrace();
//如部分接⼝只能⽤于指定机型所以会跑出调⽤接⼝异常,如钱箱接⼝只能⽤于台式机
ToastUtils.show(context, "打印失敗" + "msg:" + e.getMessage());
}
}
}
@Override
protected void onDisconnected() {
ToastUtils.show(context, "斷開連接");
}
});
}
} }
...@@ -6,6 +6,7 @@ import android.content.Context; ...@@ -6,6 +6,7 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.view.MotionEvent;
import android.view.WindowManager; import android.view.WindowManager;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
...@@ -30,7 +31,7 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt ...@@ -30,7 +31,7 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt
private Dialog dialog; private Dialog dialog;
private String callId; private String callId;
/** /**-
* 是否打印成功 true:成功 * 是否打印成功 true:成功
*/ */
private boolean printStatus = false; private boolean printStatus = false;
...@@ -50,6 +51,8 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt ...@@ -50,6 +51,8 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt
@Override @Override
protected void onCreate(@Nullable Bundle savedInstanceState) { protected void onCreate(@Nullable Bundle savedInstanceState) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
getWindow().setBackgroundDrawable(null); getWindow().setBackgroundDrawable(null);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
...@@ -58,6 +61,12 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt ...@@ -58,6 +61,12 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt
printOrder(this); printOrder(this);
} }
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//點擊當前頁面任意地方自動關閉
finish();
return true;
}
private void initIntent() { private void initIntent() {
Intent intent = getIntent(); Intent intent = getIntent();
ip = intent.getStringExtra("ip"); ip = intent.getStringExtra("ip");
......
...@@ -7,15 +7,17 @@ import android.graphics.Bitmap; ...@@ -7,15 +7,17 @@ import android.graphics.Bitmap;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.IBinder; import android.os.IBinder;
import android.os.Looper;
import android.os.RemoteException; import android.os.RemoteException;
import android.util.Log; import android.util.Log;
import android.view.MotionEvent;
import android.view.WindowManager;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult; import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil; import com.billy.cc.core.component.CCUtil;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager; import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager;
import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
import com.gingersoft.gsa.cloud.base.utils.constans.Constans; import com.gingersoft.gsa.cloud.base.utils.constans.Constans;
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.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
...@@ -33,12 +35,11 @@ import com.joe.print.di.component.DaggerPrintComponent; ...@@ -33,12 +35,11 @@ import com.joe.print.di.component.DaggerPrintComponent;
import com.joe.print.mvp.contract.PrintContract; import com.joe.print.mvp.contract.PrintContract;
import com.joe.print.mvp.presenter.PrintPresenter; import com.joe.print.mvp.presenter.PrintPresenter;
import com.joe.print.mvp.print.PrintUtils; import com.joe.print.mvp.print.PrintUtils;
import com.joe.print.mvp.print.SunMiPrint;
import com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter; import com.joe.print.mvp.ui.adapter.DialogPrinterListAdapter;
import com.sunmi.peripheral.printer.InnerResultCallbcak;
import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration; import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration;
import java.util.List; import java.util.List;
import java.util.Objects;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
...@@ -73,11 +74,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -73,11 +74,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
private int dialogCount = 0; private int dialogCount = 0;
private DialogUtils selectDialog; private DialogUtils selectDialog;
/** /**
* 商米:V2、V2_PRO N5:N5
*/
private String mV2 = "V2,V2_PRO";
private String mN5 = "N5";
/**
* 0:上菜紙 * 0:上菜紙
* 1:印單 * 1:印單
* 2:結賬單 * 2:結賬單
...@@ -99,39 +95,52 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -99,39 +95,52 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public int initView(@Nullable Bundle savedInstanceState) { public int initView(@Nullable Bundle savedInstanceState) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
| WindowManager.LayoutParams.FLAG_WATCH_OUTSIDE_TOUCH);
return 0; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0 return 0; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
} }
int paperWidth = 500;
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
initPrint(); initPrint();
//獲取打印類型,根據打印類型生成對應的bitmap //獲取打印類型,根據打印類型生成對應的bitmap
type = CCUtil.getNavigateParam(this, "type", 1001); type = CCUtil.getNavigateParam(this, "type", 1001);
List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, type, 500); //380 540
List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, type, 360);
if (bitmaps.size() <= 0) { if (bitmaps.size() <= 0) {
printFile(); printFile();
finish(); finish();
return; return;
} }
//獲得用戶默認的打印方式 // 獲得用戶默認的打印方式
if (Objects.equals(SPUtils.get(mContext, Constans.DEFAULT_PRINT_METHOD, ""), "")) { // if (Objects.equals(SPUtils.get(mContext, Constans.DEFAULT_PRINT_METHOD, ""), "")) {
//如果沒有默認打印位置 //如果沒有默認打印位置
noDefaultPrintMethod(bitmaps); // noDefaultPrintMethod(bitmaps);
} else if (Objects.equals(SPUtils.get(mContext, Constans.DEFAULT_PRINT_METHOD, ""), Constans.LOCAL_PRINT)) { // } else if (Objects.equals(SPUtils.get(mContext, Constans.DEFAULT_PRINT_METHOD, ""), Constans.LOCAL_PRINT)) {
//默認打印方式為本地,進行本地打印 //默認打印方式為本地,進行本地打印
for (int i = 0; i < bitmaps.size(); i++) { for (int i = 0; i < bitmaps.size(); i++) {
locationPrint(bitmaps.get(i)); locationPrint(bitmaps.get(i));
} }
} else if (Objects.equals(SPUtils.get(mContext, Constans.DEFAULT_PRINT_METHOD, ""), Constans.IP_PRINT)) { // } else if (Objects.equals(SPUtils.get(mContext, Constans.DEFAULT_PRINT_METHOD, ""), Constans.IP_PRINT)) {
//默認打印方式為ip打印,調用ip打印方法 //默認打印方式為ip打印,調用ip打印方法
ipPrint(); // ipPrint();
// }
} }
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
//doSomeTing,點擊當前頁面任意地方自動關閉
finish();
return true;
} }
private void initPrint() { private void initPrint() {
// if (mV2.contains(Build.MODEL)) { if (GsaCloudApplication.mV2.contains(Build.MODEL)) {
// paperWidth = 360;
// } else if (mN5.contains(Build.MODEL)) { } else if (GsaCloudApplication.mN5.contains(Build.MODEL)) {
paperWidth = 500;
try { try {
//初始化N5打印 //初始化N5打印
int state = PrinterUtil.getStatus(); int state = PrinterUtil.getStatus();
...@@ -148,7 +157,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -148,7 +157,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} catch (RemoteException e) { } catch (RemoteException e) {
Log.e("error", "獲取狀態失敗:" + e.getMessage()); Log.e("error", "獲取狀態失敗:" + e.getMessage());
} }
// } }
} }
private void noDefaultPrintMethod(List<Bitmap> bitmaps) { private void noDefaultPrintMethod(List<Bitmap> bitmaps) {
...@@ -198,17 +207,40 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -198,17 +207,40 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
return; return;
} }
String model = Build.MODEL; String model = Build.MODEL;
if (mV2.contains(model)) { if (GsaCloudApplication.mV2.contains(model)) {
//商米打印 //商米打印
boolean isSuccess = SunMiPrint.printBitmap(mContext, bitmap); AidlUtil.getInstance().printBitmap(bitmap, new InnerResultCallbcak() {
@Override
public void onRunResult(boolean isSuccess) {
//返回接⼝执⾏的情况(并⾮真实打印):成功或失败
if (isSuccess) { if (isSuccess) {
ToastUtils.show(mContext, "商米打印機連接成功"); ToastUtils.show(mContext, "打印成功");
printSuccess(); printSuccess();
} else { } else {
ToastUtils.show(mContext, "商米打印機連接失敗"); ToastUtils.show(mContext, "打印失敗");
printFile(); printFile();
} }
} else if (mN5.contains(model)) { }
@Override
public void onReturnString(String result) {
//部分接⼝会异步返回查询数据
ToastUtils.show(mContext, "onReturnString:" + result);
}
@Override
public void onRaiseException(int code, String msg) {
//接⼝执⾏失败时,返回的异常状态
ToastUtils.show(mContext, "打印異常狀態碼:" + code + "---MSG:" + msg);
}
@Override
public void onPrintResult(int code, String msg) {
//事务模式下真实的打印结果返回
ToastUtils.show(mContext, "打印結果:" + code + "---MSG:" + msg);
}
});
} else if (GsaCloudApplication.mN5.contains(model)) {
//N5打印 //N5打印
try { try {
try { try {
...@@ -221,6 +253,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -221,6 +253,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} }
} catch (RemoteException e) { } catch (RemoteException e) {
e.printStackTrace(); e.printStackTrace();
Log.e("error", "打印失敗請重試RemoteException:" + e.getMessage());
printFile(); printFile();
} }
} else { } else {
...@@ -236,7 +269,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -236,7 +269,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void onPrintResult(int i) { public void onPrintResult(int i) {
Log.e("error", "打印回調:" + i); Log.e("error", "打印回調:" + i);
Looper.prepare();
if (i == 0) { if (i == 0) {
//打印成功 //打印成功
printSuccess(); printSuccess();
...@@ -253,6 +285,9 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -253,6 +285,9 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}); });
} catch (RemoteException e) { } catch (RemoteException e) {
e.printStackTrace(); e.printStackTrace();
//打印失敗
Log.e("error", "打印失敗請重試22222222222RemoteException:" + e.getMessage());
printFile();
} }
} }
...@@ -261,6 +296,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -261,6 +296,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
*/ */
private void printFile() { private void printFile() {
String callId = CCUtil.getNavigateCallId(this); String callId = CCUtil.getNavigateCallId(this);
Log.e("error", "PrintActivity :printFile" + callId);
CC.sendCCResult(callId, CCResult.error("print error")); CC.sendCCResult(callId, CCResult.error("print error"));
finish(); finish();
} }
...@@ -270,6 +306,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -270,6 +306,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
*/ */
private void printSuccess() { private void printSuccess() {
String callId = CCUtil.getNavigateCallId(this); String callId = CCUtil.getNavigateCallId(this);
Log.e("error", "PrintActivity :printSuccess" + callId);
CC.sendCCResult(callId, CCResult.success()); CC.sendCCResult(callId, CCResult.success());
finish(); finish();
} }
......
package com.joe.print.mvp.ui.activity;
/**
* Created by Wyh on 2020/3/6.
*/
import android.annotation.SuppressLint;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.charset.Charset;
public class PrintUtils {
private static final int LINE_BYTE_SIZE = 32;
private static OutputStream outputStream = null;
public static void setOutputStream(OutputStream outputStream) {
PrintUtils.outputStream = outputStream;
}
/**
* 打印文字
*
* @param text 要打印的文字
*/
public static void printText(String text) {
try {
byte[] data = text.getBytes("gbk");
outputStream.write(data, 0, data.length);
outputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 设置打印格式
*
* @param command 格式指令
*/
public static void selectCommand(byte[] command) {
try {
outputStream.write(command);
outputStream.flush();
} catch (IOException e) {
//Toast.makeText(this.context, "发送失败!", Toast.LENGTH_SHORT).show();
e.printStackTrace();
}
}
/**
* 复位打印机
*/
public static final byte[] RESET = {0x1b, 0x40};
/**
* 左对齐
*/
public static final byte[] ALIGN_LEFT = {0x1b, 0x61, 0x00};
/**
* 中间对齐
*/
public static final byte[] ALIGN_CENTER = {0x1b, 0x61, 0x01};
/**
* 选择加粗模式
*/
public static final byte[] BOLD = {0x1b, 0x45, 0x01};
/**
* 取消加粗模式
*/
public static final byte[] BOLD_CANCEL = {0x1b, 0x45, 0x00};
/**
* 宽高加倍
*/
public static final byte[] DOUBLE_HEIGHT_WIDTH = {0x1d, 0x21, 0x11};
/**
* 字体不放大
*/
public static final byte[] NORMAL = {0x1d, 0x21, 0x00};
/**
* 设置默认行间距
*/
public static final byte[] LINE_SPACING_DEFAULT = {0x1b, 0x32};
// /**
// * 设置行间距
// */
public static final byte[] LINE_SPACING = {0x1b, 0x33, 0x50}; // 20的行间距(0,255)
/**
* 设置字符间距
*/
public static final byte[] COLUMN_SPACING = {0x1b, 0x20, 0x25};
/**
* 取消设置字符间距
*/
public static final byte[] COLUMN_SPACING_CANCEL = {0x1b, 0x20, 0x00};
/**
* 打印两列
*
* @param leftText 左侧文字
* @param rightText 右侧文字
* @return
*/
@SuppressLint("NewApi")
public static String printTwoData(String leftText, String rightText) {
StringBuilder sb = new StringBuilder();
int leftTextLength = getBytesLength(leftText);
int rightTextLength = getBytesLength(rightText);
sb.append(leftText);
// 计算两侧文字中间的空格
int marginBetweenMiddleAndRight = LINE_BYTE_SIZE - leftTextLength - rightTextLength;
for (int i = 0; i < marginBetweenMiddleAndRight; i++) {
sb.append(" ");
}
sb.append(rightText);
return sb.toString();
}
/**
* 获取数据长度
*
* @param msg
* @return
*/
@SuppressLint("NewApi")
private static int getBytesLength(String msg) {
return msg.getBytes(Charset.forName("GB2312")).length;
}
}
\ No newline at end of file
...@@ -87,4 +87,5 @@ dependencies { ...@@ -87,4 +87,5 @@ dependencies {
//時間選擇控件 //時間選擇控件
implementation 'org.aspectj:aspectjrt:1.8.9' implementation 'org.aspectj:aspectjrt:1.8.9'
api files('libs/nexgon5lib.jar') api files('libs/nexgon5lib.jar')
api 'com.sunmi:printerlibrary:1.0.7'
} }
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.base.application; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.base.application;
import android.app.Activity; import android.app.Activity;
import android.content.Context; import android.content.Context;
import android.os.Build;
import android.os.RemoteException; import android.os.RemoteException;
import android.util.Log; import android.util.Log;
...@@ -18,6 +19,7 @@ import com.elvishew.xlog.printer.file.clean.FileLastModifiedCleanStrategy; ...@@ -18,6 +19,7 @@ import com.elvishew.xlog.printer.file.clean.FileLastModifiedCleanStrategy;
import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator; import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator;
import com.gingersoft.gsa.cloud.base.BuildConfig; import com.gingersoft.gsa.cloud.base.BuildConfig;
import com.gingersoft.gsa.cloud.base.common.bean.CurrentAndroidSetting; import com.gingersoft.gsa.cloud.base.common.bean.CurrentAndroidSetting;
import com.gingersoft.gsa.cloud.base.utils.AidlUtil;
import com.gingersoft.gsa.cloud.base.utils.constans.UserConstans; import com.gingersoft.gsa.cloud.base.utils.constans.UserConstans;
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.file.FileUtils; import com.gingersoft.gsa.cloud.base.utils.file.FileUtils;
...@@ -66,6 +68,10 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -66,6 +68,10 @@ public class GsaCloudApplication extends BaseApplication {
androidSetting = new CurrentAndroidSetting(); androidSetting = new CurrentAndroidSetting();
if (GsaCloudApplication.mV2.contains(Build.MODEL)) {
//商米打印
AidlUtil.getInstance().connectPrinterService(this);
} else if (GsaCloudApplication.mN5.contains(Build.MODEL)) {
try { try {
//初始化N5打印 //初始化N5打印
PrinterUtil.initPrinter(this); PrinterUtil.initPrinter(this);
...@@ -74,6 +80,7 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -74,6 +80,7 @@ public class GsaCloudApplication extends BaseApplication {
Log.e("error", "GsaCloudApplication打印初始化失敗:" + e.getMessage()); Log.e("error", "GsaCloudApplication打印初始化失敗:" + e.getMessage());
} }
} }
}
public Activity getCurrentActivity() { public Activity getCurrentActivity() {
return mCurrentActivity; return mCurrentActivity;
......
package com.joe.print.mvp.print; package com.gingersoft.gsa.cloud.base.utils;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.os.RemoteException; import android.os.RemoteException;
import android.widget.Toast; import android.widget.Toast;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; import com.gingersoft.gsa.cloud.base.utils.log.LogUtil;
import com.sunmi.peripheral.printer.ICallback;
import com.sunmi.peripheral.printer.InnerPrinterCallback; import com.sunmi.peripheral.printer.InnerPrinterCallback;
import com.sunmi.peripheral.printer.InnerPrinterException; import com.sunmi.peripheral.printer.InnerPrinterException;
import com.sunmi.peripheral.printer.InnerPrinterManager; import com.sunmi.peripheral.printer.InnerPrinterManager;
import com.sunmi.peripheral.printer.InnerResultCallbcak;
import com.sunmi.peripheral.printer.SunmiPrinterService; import com.sunmi.peripheral.printer.SunmiPrinterService;
...@@ -161,7 +160,7 @@ public class AidlUtil { ...@@ -161,7 +160,7 @@ public class AidlUtil {
/* /*
*打印图片 *打印图片
*/ */
public void printBitmap(Bitmap bitmap) { public void printBitmap(Bitmap bitmap,InnerResultCallbcak mInnerResultCallbcak) {
if (sunmiPrinterService == null) { if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show(); Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return; return;
...@@ -169,7 +168,7 @@ public class AidlUtil { ...@@ -169,7 +168,7 @@ public class AidlUtil {
try { try {
sunmiPrinterService.setAlignment(1, null); sunmiPrinterService.setAlignment(1, null);
sunmiPrinterService.printBitmap(bitmap, null); sunmiPrinterService.printBitmap(bitmap, mInnerResultCallbcak);
sunmiPrinterService.lineWrap(3, null); sunmiPrinterService.lineWrap(3, null);
} catch (RemoteException e) { } catch (RemoteException e) {
e.printStackTrace(); e.printStackTrace();
......
...@@ -3,13 +3,12 @@ package com.gingersoft.gsa.cloud.table.mvp.contract; ...@@ -3,13 +3,12 @@ package com.gingersoft.gsa.cloud.table.mvp.contract;
import android.app.Activity; import android.app.Activity;
import android.widget.BaseAdapter; import android.widget.BaseAdapter;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.gingersoft.gsa.cloud.database.bean.ComboItem; import com.gingersoft.gsa.cloud.database.bean.ComboItem;
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.FoodModifier; import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.bean.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose; import com.gingersoft.gsa.cloud.table.mvp.model.bean.BaseRespose;
import com.gingersoft.gsa.cloud.database.bean.Food;
import com.jess.arms.base.DefaultAdapter; import com.jess.arms.base.DefaultAdapter;
import java.util.List; import java.util.List;
...@@ -37,6 +36,8 @@ public interface MealStandContract { ...@@ -37,6 +36,8 @@ public interface MealStandContract {
boolean isInitFineItemLayout(); boolean isInitFineItemLayout();
int getRestaurantId();
void initFineItemTabBarViewPage(); void initFineItemTabBarViewPage();
void showFinePage(); void showFinePage();
......
...@@ -17,6 +17,7 @@ public class OrderRequest { ...@@ -17,6 +17,7 @@ public class OrderRequest {
private int person; private int person;
private int tableId; private int tableId;
private int restaurantId;
private Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails; private Map<Long, List<OrderBean.OrderDetailsBean>> orderDetails;
public int getPerson() { public int getPerson() {
...@@ -35,6 +36,14 @@ public class OrderRequest { ...@@ -35,6 +36,14 @@ public class OrderRequest {
this.tableId = tableId; this.tableId = tableId;
} }
public int getRestaurantId() {
return restaurantId;
}
public void setRestaurantId(int restaurantId) {
this.restaurantId = restaurantId;
}
public Map<Long, List<OrderBean.OrderDetailsBean>> getOrderDetails() { public Map<Long, List<OrderBean.OrderDetailsBean>> getOrderDetails() {
return orderDetails; return orderDetails;
} }
......
...@@ -9,7 +9,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderBean; ...@@ -9,7 +9,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils; import com.gingersoft.gsa.cloud.base.utils.gson.GsonUtils;
import com.gingersoft.gsa.cloud.database.bean.ComboItem; import com.gingersoft.gsa.cloud.database.bean.ComboItem;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
...@@ -41,7 +40,6 @@ import org.simple.eventbus.Subscriber; ...@@ -41,7 +40,6 @@ import org.simple.eventbus.Subscriber;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import javax.inject.Inject; import javax.inject.Inject;
...@@ -329,6 +327,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -329,6 +327,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
public void createOrder() { public void createOrder() {
OrderRequest request = getCreateOrderRequest(getOrderFoodLists()); OrderRequest request = getCreateOrderRequest(getOrderFoodLists());
request.setRestaurantId(mRootView.getRestaurantId());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request)); RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), GsonUtils.GsonString(request));
String json = GsonUtils.GsonString(request); String json = GsonUtils.GsonString(request);
mModel.createOrder(requestBody) mModel.createOrder(requestBody)
...@@ -347,7 +346,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -347,7 +346,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
setOrderId((Double) info.getData()); setOrderId((Double) info.getData());
} }
mRootView.showMessage("送單成功"); mRootView.showMessage("送單成功");
printSendOrder(MyOrderManage.getInstance().getOrderFoodList()); printSendOrder(getOrderFoodLists());
IActivity.returnTableActivity(true); IActivity.returnTableActivity(true);
} else { } else {
mRootView.showMessage("送單失敗"); mRootView.showMessage("送單失敗");
...@@ -380,7 +379,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -380,7 +379,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//通知更新餐台状态 //通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event"); EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
} }
printSendOrder(getOrderFoodLists()); printSendOrder(getNewOrderFoodLists());
mRootView.killMyself(); mRootView.killMyself();
} else { } else {
if (!hasNesOrderFoods()) { if (!hasNesOrderFoods()) {
...@@ -390,7 +389,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod ...@@ -390,7 +389,7 @@ public class MealStandPresenter extends BaseOrderPresenter<MealStandContract.Mod
//通知更新餐台状态 //通知更新餐台状态
EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event"); EventBus.getDefault().post(OpenTableManage.getDefault().getTableBean().getId(), "initTable_status_event");
} }
printSendOrder(getOrderFoodLists()); printSendOrder(getNewOrderFoodLists());
mRootView.killMyself(); mRootView.killMyself();
} else { } else {
mRootView.showMessage("送單失敗"); mRootView.showMessage("送單失敗");
......
...@@ -31,7 +31,6 @@ import com.gingersoft.gsa.cloud.base.utils.other.SPUtils; ...@@ -31,7 +31,6 @@ import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ViewUtils; import com.gingersoft.gsa.cloud.base.utils.view.ViewUtils;
import com.gingersoft.gsa.cloud.base.widget.DialogUtils; import com.gingersoft.gsa.cloud.base.widget.DialogUtils;
import com.gingersoft.gsa.cloud.database.bean.Food; import com.gingersoft.gsa.cloud.database.bean.Food;
import com.gingersoft.gsa.cloud.database.bean.FoodModifier;
import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ComboItemDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodComboDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
...@@ -424,6 +423,11 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -424,6 +423,11 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
} }
@Override @Override
public int getRestaurantId() {
return GsaCloudApplication.getRestaurantId(mContext);
}
@Override
public void initFineItemTabBarViewPage() { public void initFineItemTabBarViewPage() {
fm = getSupportFragmentManager(); fm = getSupportFragmentManager();
List<Fragment> fragmentList = new ArrayList<>(); List<Fragment> fragmentList = new ArrayList<>();
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application <application
android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication" android:name="com.gingersoft.gsa.cloud.base.application.GsaCloudApplication"
android:allowBackup="true" android:allowBackup="true"
......
...@@ -10,6 +10,7 @@ import android.text.method.HideReturnsTransformationMethod; ...@@ -10,6 +10,7 @@ import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod; import android.text.method.PasswordTransformationMethod;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.view.WindowManager;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.EditText; import android.widget.EditText;
import android.widget.ImageView; import android.widget.ImageView;
...@@ -110,6 +111,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -110,6 +111,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
@Override @Override
public int initView(@Nullable Bundle savedInstanceState) { public int initView(@Nullable Bundle savedInstanceState) {
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
return R.layout.user_login_activity_login; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0 return R.layout.user_login_activity_login; //如果你不需要框架帮你设置 setContentView(id) 需要自行设置,请返回 0
} }
...@@ -215,6 +217,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -215,6 +217,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
private void killBeforeActivty() { private void killBeforeActivty() {
List<Activity> activities = mAppManager.getActivityList(); List<Activity> activities = mAppManager.getActivityList();
for (int i = activities.size() - 1; i >= 0; i--) { for (int i = activities.size() - 1; i >= 0; i--) {
if (i < activities.size()) {
Activity activity = activities.get(i); Activity activity = activities.get(i);
if (!activity.getClass().getName().equals(getClass().getName())) { if (!activity.getClass().getName().equals(getClass().getName())) {
LogUtil.d(TAG, "killBeforeActivty: " + i + " - " + activity.getClass().getSimpleName()); LogUtil.d(TAG, "killBeforeActivty: " + i + " - " + activity.getClass().getSimpleName());
...@@ -223,6 +226,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -223,6 +226,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
} }
} }
} }
}
@Override @Override
public void initIntent() { public void initIntent() {
...@@ -320,11 +324,10 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -320,11 +324,10 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
if (brandsBean != null) { if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText()); saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText());
} }
jumpDownloadActivity();
dialog.dismiss(); dialog.dismiss();
killMyself(); jumpDownloadActivity();
}).build(); }).build();
if (!isFinishing() && dialog1 != null && !dialog1.isShowing()) { if (!isFinishing() && dialog1 != null && !dialog1.isShowing() && !isDestroy) {
dialog1.show(); dialog1.show();
} }
} }
...@@ -333,6 +336,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -333,6 +336,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
} }
} }
private boolean isDestroy = false;
@Override @Override
protected void onDestroy() { protected void onDestroy() {
super.onDestroy(); super.onDestroy();
...@@ -340,6 +345,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -340,6 +345,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
if (dialog1 != null) { if (dialog1 != null) {
dialog1.dismiss(); dialog1.dismiss();
} }
isDestroy = true;
} }
/** /**
...@@ -412,6 +418,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -412,6 +418,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
.setActionName("showDownloadActivity") .setActionName("showDownloadActivity")
.build() .build()
.call(); .call();
killMyself();
} }
private void jumpMainActivity() { private void jumpMainActivity() {
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?><!--<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"-->
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" <!-- xmlns:app="http://schemas.android.com/apk/res-auto"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="match_parent"-->
<!-- android:fillViewport="true">-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:fillViewport="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/theme_white_color" android:background="@color/theme_white_color"
android:clipChildren="true" android:clipChildren="true"
android:orientation="vertical"> android:orientation="vertical">
...@@ -173,13 +173,11 @@ ...@@ -173,13 +173,11 @@
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_10"
android:text="v1.0" android:text="v1.0"
android:textSize="16dp" android:textSize="@dimen/sp_16"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintRight_toRightOf="parent" />
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.95" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout><!--</ScrollView>-->
</ScrollView>
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