Commit 8dcec7ed by 宁斌

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	main/src/main/java/com/gingersoft/gsa/cloud/main/mvp/ui/activity/NewMainActivity.java
parents 6806a379 7fc67f14
...@@ -72,12 +72,21 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem ...@@ -72,12 +72,21 @@ public abstract class BaseFragment<P extends IPresenter> extends Fragment implem
return mLifecycleSubject; return mLifecycleSubject;
} }
private View view;
@Nullable @Nullable
@Override @Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
mContext = getActivity(); mContext = getActivity();
return initView(inflater, container, savedInstanceState); if (view != null) {
ViewGroup viewGroup = (ViewGroup) view.getRootView();
if (viewGroup != null) {
viewGroup.removeView(view);
}
return view;
}
view = initView(inflater, container, savedInstanceState);
return view;
} }
......
...@@ -26,7 +26,7 @@ buildscript { ...@@ -26,7 +26,7 @@ buildscript {
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2'
// classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.8' // classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.8'
// classpath fileTree(dir:'plugins', include:['*.jar']) classpath fileTree(dir:'plugins', include:['*.jar'])
} }
} }
......
...@@ -16,6 +16,7 @@ import java.util.List; ...@@ -16,6 +16,7 @@ import java.util.List;
/** /**
* 图表横轴 * 图表横轴
*
* @author huangyanbin * @author huangyanbin
*/ */
...@@ -32,7 +33,7 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -32,7 +33,7 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 文字旋转角度 * 文字旋转角度
*/ */
private int rotateAngle= 0; private int rotateAngle = 0;
/** /**
* 文字是否旋转 * 文字是否旋转
*/ */
...@@ -61,14 +62,15 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -61,14 +62,15 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 计算刻度大小 * 计算刻度大小
* <p>通过计算刻度的宽高得到轴的大小,然后保存到scaleData对象中,以便后面的计算</p> * <p>通过计算刻度的宽高得到轴的大小,然后保存到scaleData对象中,以便后面的计算</p>
*
* @param chartData 图表数据 * @param chartData 图表数据
* @param rect 图表原始范围 * @param rect 图表原始范围
* @param paint 画笔 * @param paint 画笔
*/ */
@Override @Override
public void computeScale(ChartData<? extends BarData> chartData, Rect rect, Paint paint) { public void computeScale(ChartData<? extends BarData> chartData, Rect rect, Paint paint) {
if(isDisplay()) { if (isDisplay()) {
scaleData = chartData.getScaleData(); scaleData = chartData.getScaleData();
scaleStyle.fillPaint(paint); scaleStyle.fillPaint(paint);
Paint.FontMetrics fontMetrics = paint.getFontMetrics(); Paint.FontMetrics fontMetrics = paint.getFontMetrics();
textHeight = (int) (fontMetrics.descent - fontMetrics.ascent); textHeight = (int) (fontMetrics.descent - fontMetrics.ascent);
...@@ -105,13 +107,14 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -105,13 +107,14 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 绘制刻度 * 绘制刻度
* <p>通过zoomRect计算出每个刻度的宽度,迭代绘制刻度</p> * <p>通过zoomRect计算出每个刻度的宽度,迭代绘制刻度</p>
* @param canvas 画布 *
* @param zoomRect 缩放之后范围 * @param canvas 画布
* @param rect 原始范围 * @param zoomRect 缩放之后范围
* @param paint 画笔 * @param rect 原始范围
* @param paint 画笔
* @param chartData 图表数据 * @param chartData 图表数据
*/ */
protected void drawScale(Canvas canvas, Rect zoomRect, Rect rect, Paint paint, ChartData<? extends BarData> chartData) { protected void drawScale(Canvas canvas, Rect zoomRect, Rect rect, Paint paint, ChartData<? extends BarData> chartData) {
ScaleData scaleData = chartData.getScaleData(); ScaleData scaleData = chartData.getScaleData();
List<String> groupDataList = chartData.getCharXDataList(); List<String> groupDataList = chartData.getCharXDataList();
...@@ -122,21 +125,21 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -122,21 +125,21 @@ public class HorizontalAxis extends BaseAxis<String> {
} }
float startY; float startY;
if (direction == AxisDirection.BOTTOM) { if (direction == AxisDirection.BOTTOM) {
startY = zoomRect.bottom -scaleData.scaleRect.bottom/2; startY = zoomRect.bottom - scaleData.scaleRect.bottom / 2;
} else { } else {
startY = zoomRect.top + scaleData.scaleRect.top/2; startY = zoomRect.top + scaleData.scaleRect.top / 2;
} }
int left = zoomRect.left ; int left = zoomRect.left;
int width = zoomRect.right - left; int width = zoomRect.right - left;
double perWidth = ((double) width) / (isLine? groupSize -1 : groupSize); double perWidth = ((double) width) / (isLine ? groupSize - 1 : groupSize);
int filterMultiple = (int) (textWidth / perWidth +1); int filterMultiple = (int) (textWidth / perWidth + 1);
for (int i = 0; i < groupSize; i++) { for (int i = 0; i < groupSize; i++) {
String content = groupDataList.get(i); String content = groupDataList.get(i);
int startX = getGravityStartX(left, i, perWidth); int startX = getGravityStartX(left, i, perWidth);
//留1px缓冲 //留1px缓冲
if (startX >= rect.left-1 && startX<= rect.right+1) { if (startX >= rect.left - 1 && startX <= rect.right + 1) {
if( i % filterMultiple == 0) { if (i % filterMultiple == 0) {
drawText(canvas, content,startX, startY,i, paint); drawText(canvas, content, startX, startY, i, paint);
drawGrid(canvas, startX, rect, scaleData.scaleRect, paint); drawGrid(canvas, startX, rect, scaleData.scaleRect, paint);
} }
} }
...@@ -146,7 +149,8 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -146,7 +149,8 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 获取刻度起始X的位置 * 获取刻度起始X的位置
* <p>根据gravity来判断偏移的值</p> * <p>根据gravity来判断偏移的值</p>
* @param left 左边 *
* @param left 左边
* @param position 位置 * @param position 位置
* @param perWidth 每个刻度的宽度 * @param perWidth 每个刻度的宽度
* @return 刻度起始X的位置 * @return 刻度起始X的位置
...@@ -164,12 +168,13 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -164,12 +168,13 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 绘制文字 * 绘制文字
* <p>完成文字偏移,文字旋转,绘制</p> * <p>完成文字偏移,文字旋转,绘制</p>
* @param canvas 画布 *
* @param canvas 画布
* @param contentStr 文字内容 * @param contentStr 文字内容
* @param startX 文字绘制起始X位置 * @param startX 文字绘制起始X位置
* @param startY 文字绘制起始Y位置 * @param startY 文字绘制起始Y位置
* @param position 刻度序号 * @param position 刻度序号
* @param paint 画笔 * @param paint 画笔
*/ */
private void drawText(Canvas canvas, String contentStr, int startX, float startY, int position, Paint paint) { private void drawText(Canvas canvas, String contentStr, int startX, float startY, int position, Paint paint) {
String content = formatData(contentStr); String content = formatData(contentStr);
...@@ -177,10 +182,10 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -177,10 +182,10 @@ public class HorizontalAxis extends BaseAxis<String> {
paint.setTextAlign(Paint.Align.CENTER); paint.setTextAlign(Paint.Align.CENTER);
if (isShowFullValue && position == 0) { if (isShowFullValue && position == 0) {
int width = (int) paint.measureText(content); int width = (int) paint.measureText(content);
startX+= width/2; startX += width / 2;
} else if (isShowFullValue && position == scaleData.rowSize - 1) { } else if (isShowFullValue && position == scaleData.rowSize - 1) {
int width = (int) paint.measureText(content); int width = (int) paint.measureText(content);
startX-= width/2; startX -= width / 2;
} }
if (isRotateAngle) { if (isRotateAngle) {
canvas.save(); canvas.save();
...@@ -194,35 +199,38 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -194,35 +199,38 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 格式化文字 * 格式化文字
*
* @param data 文字 * @param data 文字
* @return 格式化完成之后的文字 * @return 格式化完成之后的文字
*/ */
private String formatData(String data){ private String formatData(String data) {
return getFormat()!= null ? getFormat().format(data) :data; return getFormat() != null ? getFormat().format(data) : data;
} }
/** /**
* 绘制竖向网格 * 绘制竖向网格
* @param canvas 画布 *
* @param startX 网格起始X位置 * @param canvas 画布
* @param rect 原始范围 * @param startX 网格起始X位置
* @param rect 原始范围
* @param scaleRect 缩放范围 * @param scaleRect 缩放范围
* @param paint 画布 * @param paint 画布
*/ */
public void drawGrid(Canvas canvas, float startX, Rect rect, Rect scaleRect, Paint paint) { public void drawGrid(Canvas canvas, float startX, Rect rect, Rect scaleRect, Paint paint) {
if (gridStyle != null && isDrawGrid) { if (gridStyle != null && isDrawGrid) {
gridStyle.fillPaint(paint); gridStyle.fillPaint(paint);
Path path = new Path(); Path path = new Path();
path.moveTo(startX, rect.top + scaleRect.top); path.moveTo(startX, rect.top + scaleRect.top);
path.lineTo(startX, rect.bottom - scaleRect.bottom); path.lineTo(startX, rect.bottom - scaleRect.bottom);
canvas.drawPath(path, paint); canvas.drawPath(path, paint);
} }
} }
/** /**
* 计算出裁切轴之后的范围 * 计算出裁切轴之后的范围
* @param rect 原始范围 *
* @param rect 原始范围
* @param scaleRect 缩放范围 * @param scaleRect 缩放范围
* @return 上下左右的大小 * @return 上下左右的大小
*/ */
...@@ -242,8 +250,8 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -242,8 +250,8 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 设置轴方位 * 设置轴方位
* <p>横轴只能设置上下方位</p> * <p>横轴只能设置上下方位</p>
* @param axisDirection 轴方位
* *
* @param axisDirection 轴方位
*/ */
@Override @Override
public void setAxisDirection(int axisDirection) { public void setAxisDirection(int axisDirection) {
...@@ -255,6 +263,7 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -255,6 +263,7 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 设置文字旋转角度 * 设置文字旋转角度
*
* @param rotateAngle * @param rotateAngle
*/ */
public void setRotateAngle(int rotateAngle) { public void setRotateAngle(int rotateAngle) {
...@@ -270,10 +279,11 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -270,10 +279,11 @@ public class HorizontalAxis extends BaseAxis<String> {
public boolean isShowFullValue() { public boolean isShowFullValue() {
return isShowFullValue; return isShowFullValue;
} }
/** /**
* 设置是否需要偏移来完整显示左右两边文字 * 设置是否需要偏移来完整显示左右两边文字
* *
* @param showFullValue 设置是否需要偏移 * @param showFullValue 设置是否需要偏移
*/ */
public void setShowFullValue(boolean showFullValue) { public void setShowFullValue(boolean showFullValue) {
isShowFullValue = showFullValue; isShowFullValue = showFullValue;
......
...@@ -36,7 +36,7 @@ public class ScaleData { ...@@ -36,7 +36,7 @@ public class ScaleData {
public List<Double> getScaleList(int direction){ public List<Double> getScaleList(int direction){
List<Double> scaleList = new ArrayList<>(); List<Double> scaleList = new ArrayList<>();//asdfghjkl
int total = (int) (totalScale *zoom); int total = (int) (totalScale *zoom);
double scale = getTotalScaleLength(direction) /(total-1); double scale = getTotalScaleLength(direction) /(total-1);
double minValue = getMinScaleValue(direction); double minValue = getMinScaleValue(direction);
......
...@@ -59,14 +59,15 @@ public abstract class BaseBarLineProvider<C extends BarData> extends BaseProvide ...@@ -59,14 +59,15 @@ public abstract class BaseBarLineProvider<C extends BarData> extends BaseProvide
scale = setMaxMinValue(scale[0],scale[1]); scale = setMaxMinValue(scale[0],scale[1]);
if(columnData.getDirection() == IAxis.AxisDirection.LEFT){ if(columnData.getDirection() == IAxis.AxisDirection.LEFT){
if(!scaleData.isLeftHasValue){ if(!scaleData.isLeftHasValue){
//asdfghjkl
scaleData.maxLeftValue = scale[0]; scaleData.maxLeftValue = scale[0];
scaleData.minLeftValue = scale[1]; scaleData.minLeftValue = scale[1];
scaleData.isLeftHasValue = true; scaleData.isLeftHasValue = true;
}else{ }else{
//asdfghjkl
scaleData.maxLeftValue = Math.max( scaleData.maxLeftValue,scale[0]); scaleData.maxLeftValue = Math.max( scaleData.maxLeftValue,scale[0]);
scaleData.minLeftValue = Math.min( scaleData.minLeftValue,scale[1]); scaleData.minLeftValue = Math.min( scaleData.minLeftValue,scale[1]);
} }
}else{ }else{
if(!scaleData.isRightHasValue){ if(!scaleData.isRightHasValue){
scaleData.maxRightValue = scale[0]; scaleData.maxRightValue = scale[0];
...@@ -78,6 +79,9 @@ public abstract class BaseBarLineProvider<C extends BarData> extends BaseProvide ...@@ -78,6 +79,9 @@ public abstract class BaseBarLineProvider<C extends BarData> extends BaseProvide
} }
} }
} }
if(scaleData.maxLeftValue == 0){
scaleData.maxLeftValue = 18000;
}
return chartData.getScaleData().rowSize != 0; return chartData.getScaleData().rowSize != 0;
......
...@@ -5,6 +5,7 @@ import android.graphics.Paint; ...@@ -5,6 +5,7 @@ import android.graphics.Paint;
import android.graphics.Path; import android.graphics.Path;
import android.graphics.PointF; import android.graphics.PointF;
import android.graphics.Rect; import android.graphics.Rect;
import android.util.Log;
import com.daivd.chart.data.LineData; import com.daivd.chart.data.LineData;
import com.daivd.chart.data.style.LineStyle; import com.daivd.chart.data.style.LineStyle;
...@@ -43,7 +44,7 @@ public class LineProvider extends BaseBarLineProvider<LineData> { ...@@ -43,7 +44,7 @@ public class LineProvider extends BaseBarLineProvider<LineData> {
@Override @Override
public void drawProvider(Canvas canvas, Rect zoomRect, Rect rect, Paint paint) { public void drawProvider(Canvas canvas, Rect zoomRect, Rect rect, Paint paint) {
List<LineData> columnDataList = chartData.getColumnDataList(); List<LineData> columnDataList = chartData.getColumnDataList();//asdfghjkl
int columnSize = columnDataList.size(); int columnSize = columnDataList.size();
rowSize = chartData.getCharXDataList().size(); rowSize = chartData.getCharXDataList().size();
int filter = rowSize / filterPointTextCount; int filter = rowSize / filterPointTextCount;
...@@ -95,7 +96,9 @@ public class LineProvider extends BaseBarLineProvider<LineData> { ...@@ -95,7 +96,9 @@ public class LineProvider extends BaseBarLineProvider<LineData> {
ILineModel model = lineData.getLineModel(); ILineModel model = lineData.getLineModel();
model = model == null ? lineModel : model; model = model == null ? lineModel : model;
for (int i = 0; i < pointY.size(); i++) { for (int i = 0; i < pointY.size(); i++) {
Log.e("bbb", "前值:" + pointY.get(i));
pointY.set(i, pointY.get(i) - style.getWidth() / 2); pointY.set(i, pointY.get(i) - style.getWidth() / 2);
Log.e("bbb", "後值:" + pointY.get(i));
} }
for (int i = 0; i < pointX.size(); i++) { for (int i = 0; i < pointX.size(); i++) {
pointX.set(i, pointX.get(i) + style.getWidth() / 2); pointX.set(i, pointX.get(i) + style.getWidth() / 2);
...@@ -126,7 +129,7 @@ public class LineProvider extends BaseBarLineProvider<LineData> { ...@@ -126,7 +129,7 @@ public class LineProvider extends BaseBarLineProvider<LineData> {
private float getStartX(Rect zoomRect, int position) { private float getStartX(Rect zoomRect, int position) {
if (isStartZero) { if (isStartZero) {
perWidth = (zoomRect.width()) / (rowSize - 1); perWidth = (zoomRect.width()) / (rowSize - 1);//得到每個x點之間的寬度
return (float) (position * perWidth + zoomRect.left); return (float) (position * perWidth + zoomRect.left);
} else { } else {
perWidth = (zoomRect.width()) / rowSize; perWidth = (zoomRect.width()) / rowSize;
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" <manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.gingersoft.gsa.cloud.main"> package="com.gingersoft.gsa.cloud.main">
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:resizeable="true"
android:smallScreens="true" />
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission
android:name="android.permission.ACCESS_MOCK_LOCATION"
tools:ignore="MockLocation" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.RESTART_PACKAGES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- <uses-permission android:name="android.permission.RESTART_PACKAGES" /> -->
<!-- <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> -->
<uses-permission android:name="android.permission.WRITE_MEDIA_STORAGE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<!-- <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> -->
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.VIBRATE" />
<!-- 使用照相机权限 -->
<uses-permission android:name="android.permission.REORDER_TASKS" />
<!-- 自动聚焦权限 -->
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application> <application>
<activity android:name=".mvp.ui.activity.NewMainActivity"/> <activity android:name=".mvp.ui.activity.NewMainActivity"/>
<activity android:name=".mvp.ui.activity.MainActivity"/> <activity android:name=".mvp.ui.activity.MainActivity"/>
......
...@@ -65,7 +65,7 @@ public class MainTopPresenter extends BasePresenter<MainTopContract.Model, MainT ...@@ -65,7 +65,7 @@ public class MainTopPresenter extends BasePresenter<MainTopContract.Model, MainT
public void getRestaurantReport(String restaurantId) { public void getRestaurantReport(String restaurantId) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", restaurantId) .add("restaurantId", restaurantId)
.add("startTime", TimeUtils.getYesterdayTime(TimeUtils.DATE_FORMAT_DATE)) .add("startTime", TimeUtils.getOldDate(-1))
.add("endTime", TimeUtils.getCurrentTimeInString(TimeUtils.DATE_FORMAT_DATE)) .add("endTime", TimeUtils.getCurrentTimeInString(TimeUtils.DATE_FORMAT_DATE))
.build(); .build();
mModel.getRestaurantReport(requestBody) mModel.getRestaurantReport(requestBody)
...@@ -102,9 +102,9 @@ public class MainTopPresenter extends BasePresenter<MainTopContract.Model, MainT ...@@ -102,9 +102,9 @@ public class MainTopPresenter extends BasePresenter<MainTopContract.Model, MainT
}); });
} }
public void getOrderInfoChart(){ public void getOrderInfoChart(String restaurantId){
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", "26") .add("restaurantId", restaurantId)
.build(); .build();
mModel.getOrderInfoChart(requestBody) mModel.getOrderInfoChart(requestBody)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
......
...@@ -61,9 +61,9 @@ public class PaymentMethodReportPresenter extends BasePresenter<PaymentMethodRep ...@@ -61,9 +61,9 @@ public class PaymentMethodReportPresenter extends BasePresenter<PaymentMethodRep
this.mApplication = null; this.mApplication = null;
} }
public void getPaymentInfo(String startTime) { public void getPaymentInfo(String restaurandId, String startTime) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", "26") .add("restaurantId", restaurandId)
.add("startTime", startTime)//TimeUtils.getYesterdayTime(TimeUtils.DATE_FORMAT_DATE) .add("startTime", startTime)//TimeUtils.getYesterdayTime(TimeUtils.DATE_FORMAT_DATE)
.add("endTime", TimeUtils.getYear(0))//TimeUtils.getCurrentTimeInString(TimeUtils.DATE_FORMAT_DATE) .add("endTime", TimeUtils.getYear(0))//TimeUtils.getCurrentTimeInString(TimeUtils.DATE_FORMAT_DATE)
.build(); .build();
......
...@@ -63,9 +63,9 @@ public class SalesPresenter extends BasePresenter<SalesContract.Model, SalesCont ...@@ -63,9 +63,9 @@ public class SalesPresenter extends BasePresenter<SalesContract.Model, SalesCont
this.mApplication = null; this.mApplication = null;
} }
public void getSalesReportInfo(String startTime) { public void getSalesReportInfo(String restaurantId, String startTime) {
RequestBody requestBody = new FormBody.Builder() RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", "26") .add("restaurantId", restaurantId)
.add("startTime", startTime)//TimeUtils.getYesterdayTime(TimeUtils.DATE_FORMAT_DATE) .add("startTime", startTime)//TimeUtils.getYesterdayTime(TimeUtils.DATE_FORMAT_DATE)
.add("endTime", TimeUtils.getYear(0))//TimeUtils.getCurrentTimeInString(TimeUtils.DATE_FORMAT_DATE) .add("endTime", TimeUtils.getYear(0))//TimeUtils.getCurrentTimeInString(TimeUtils.DATE_FORMAT_DATE)
.build(); .build();
......
...@@ -18,6 +18,13 @@ public class BusinessInfoAdapter extends BaseQuickAdapter<BusinessBean, BaseView ...@@ -18,6 +18,13 @@ public class BusinessInfoAdapter extends BaseQuickAdapter<BusinessBean, BaseView
super(R.layout.report_business_info_item, data); super(R.layout.report_business_info_item, data);
} }
// @Override
// public void setNewData(@Nullable List<BusinessBean> data) {
//// super.setNewData(data);
// this.mData = data;
// notifyDataSetChanged();
// }
@Override @Override
protected void convert(BaseViewHolder helper, BusinessBean item) { protected void convert(BaseViewHolder helper, BusinessBean item) {
helper.setText(R.id.tv_business_info_amount, item.getAmount() + ""); helper.setText(R.id.tv_business_info_amount, item.getAmount() + "");
......
...@@ -2,8 +2,8 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter; ...@@ -2,8 +2,8 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter; import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder; import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SectionItem;
import java.util.List; import java.util.List;
...@@ -13,8 +13,8 @@ import androidx.annotation.Nullable; ...@@ -13,8 +13,8 @@ import androidx.annotation.Nullable;
* Created by Wyh on 2020/2/19. * Created by Wyh on 2020/2/19.
* 首頁點餐 * 首頁點餐
*/ */
public class MainOrderingAdapter extends BaseQuickAdapter<SectionItem, BaseViewHolder> { public class MainOrderingAdapter extends BaseQuickAdapter<Function, BaseViewHolder> {
public MainOrderingAdapter(int layoutResId, @Nullable List<SectionItem> data) { public MainOrderingAdapter(int layoutResId, @Nullable List<Function> data) {
super(layoutResId, data); super(layoutResId, data);
} }
...@@ -23,8 +23,8 @@ public class MainOrderingAdapter extends BaseQuickAdapter<SectionItem, BaseViewH ...@@ -23,8 +23,8 @@ public class MainOrderingAdapter extends BaseQuickAdapter<SectionItem, BaseViewH
// } // }
@Override @Override
protected void convert(BaseViewHolder helper, SectionItem item) { protected void convert(BaseViewHolder helper, Function item) {
helper.setImageResource(R.id.iv_main_home_item_function_icon, item.getImage()); // helper.setImageResource(R.id.iv_main_home_item_function_icon, item.getImageURL());
helper.setText(R.id.tv_main_home_item_function_name, item.getText()); helper.setText(R.id.tv_main_home_item_function_name, item.getResName());
} }
} }
...@@ -106,7 +106,7 @@ public class BusinessReportFragment extends BaseFragment<BusinessReportPresenter ...@@ -106,7 +106,7 @@ public class BusinessReportFragment extends BaseFragment<BusinessReportPresenter
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
//獲取一段時間內的營業信息,默認獲取七天的數據 //獲取一段時間內的營業信息,默認獲取七天的數據
mPresenter.getRestaurantBusinessInfo("26", TimeUtils.getOldDate(-6), TimeUtils.getOldDate(0)); mPresenter.getRestaurantBusinessInfo(GsaCloudApplication.getRestaurantId(mContext) +"", TimeUtils.getOldDate(-6), TimeUtils.getOldDate(0));
mRestaurantName.setText(GsaCloudApplication.getRestaurantName(mContext)); mRestaurantName.setText(GsaCloudApplication.getRestaurantName(mContext));
mTvStartTime.setText(TimeUtils.getOldDate(-6)); mTvStartTime.setText(TimeUtils.getOldDate(-6));
......
...@@ -33,13 +33,13 @@ import com.gingersoft.gsa.cloud.main.mvp.contract.MainTopContract; ...@@ -33,13 +33,13 @@ import com.gingersoft.gsa.cloud.main.mvp.contract.MainTopContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.HomeTurnoverBean; import com.gingersoft.gsa.cloud.main.mvp.model.bean.HomeTurnoverBean;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.MainOrderInfoChartBean; import com.gingersoft.gsa.cloud.main.mvp.model.bean.MainOrderInfoChartBean;
import com.gingersoft.gsa.cloud.main.mvp.presenter.MainTopPresenter; import com.gingersoft.gsa.cloud.main.mvp.presenter.MainTopPresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.NewMainActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.activity.ReportActivity; import com.gingersoft.gsa.cloud.main.mvp.ui.activity.ReportActivity;
import com.gingersoft.gsa.cloud.main.mvp.ui.view.CustomMarkView; import com.gingersoft.gsa.cloud.main.mvp.ui.view.CustomMarkView;
import com.jess.arms.base.BaseFragment; import com.jess.arms.base.BaseFragment;
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 java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -124,9 +124,13 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M ...@@ -124,9 +124,13 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
getInfo();
time.setText(TimeUtils.getCurrentTimeInString(TimeUtils.dateFormatYMDE));
}
private void getInfo() {
mPresenter.getRestaurantReport(GsaCloudApplication.getRestaurantId(mContext) + "");//GsaCloudApplication.getRestaurantId(mContext) 獲取餐廳營業信息 mPresenter.getRestaurantReport(GsaCloudApplication.getRestaurantId(mContext) + "");//GsaCloudApplication.getRestaurantId(mContext) 獲取餐廳營業信息
mPresenter.getOrderInfoChart(); mPresenter.getOrderInfoChart(GsaCloudApplication.getRestaurantId(mContext) + "");
time.setText(TimeUtils.getCurrentTimeInString(new SimpleDateFormat("yyyy-MM-dd E")));
} }
/** /**
...@@ -167,7 +171,17 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M ...@@ -167,7 +171,17 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
*/ */
@Override @Override
public void setData(@Nullable Object data) { public void setData(@Nullable Object data) {
if (data instanceof Message) {
switch (((Message) data).what) {
case 0:
//刷新數據
getInfo();
break;
default:
//do something
break;
}
}
} }
...@@ -219,19 +233,23 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M ...@@ -219,19 +233,23 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
if (yesterdayBean != null) { if (yesterdayBean != null) {
double turnover = MoneyUtil.sub(Double.parseDouble(bean.getBusiness_amount()), Double.parseDouble(yesterdayBean.getBusiness_amount())); double turnover = MoneyUtil.sub(Double.parseDouble(bean.getBusiness_amount()), Double.parseDouble(yesterdayBean.getBusiness_amount()));
ivTurnoverTrend.setVisibility(View.VISIBLE);
ivTurnoverTrend.setImageResource(getTrendImg(turnover)); ivTurnoverTrend.setImageResource(getTrendImg(turnover));
tvTurnoverTrend.setText(String.format(getString(R.string.format_one_point), turnover)); tvTurnoverTrend.setText(String.format(getString(R.string.format_one_point), turnover));
double sales = MoneyUtil.sub(Double.parseDouble(bean.getSales()), Double.parseDouble(yesterdayBean.getSales())); double sales = MoneyUtil.sub(Double.parseDouble(bean.getSales()), Double.parseDouble(yesterdayBean.getSales()));
tvProjectAmountTrend.setText(String.format(getString(R.string.format_one_point), sales)); tvProjectAmountTrend.setText(String.format(getString(R.string.format_one_point), sales));
ivProjectAmountState.setVisibility(View.VISIBLE);
ivProjectAmountState.setImageResource(getTrendImg(sales)); ivProjectAmountState.setImageResource(getTrendImg(sales));
int people = Integer.parseInt(bean.getPeople()) - Integer.parseInt(yesterdayBean.getPeople()); int people = Integer.parseInt(bean.getPeople()) - Integer.parseInt(yesterdayBean.getPeople());
ivPeopleTrend.setImageResource(getTrendImg(people)); ivPeopleTrend.setImageResource(getTrendImg(people));
ivPeopleTrend.setVisibility(View.VISIBLE);
tvPeopleTrend.setText(people + ""); tvPeopleTrend.setText(people + "");
int billNum = Integer.parseInt(bean.getNumber_bill()) - Integer.parseInt(yesterdayBean.getNumber_bill()); int billNum = Integer.parseInt(bean.getNumber_bill()) - Integer.parseInt(yesterdayBean.getNumber_bill());
ivBillTrend.setImageResource(getTrendImg(billNum)); ivBillTrend.setImageResource(getTrendImg(billNum));
ivBillTrend.setVisibility(View.VISIBLE);
tvBillTrend.setText(billNum + ""); tvBillTrend.setText(billNum + "");
} }
} }
...@@ -239,6 +257,8 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M ...@@ -239,6 +257,8 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
@Override @Override
public void loadChart(List<MainOrderInfoChartBean.DataBean> dataBeans) { public void loadChart(List<MainOrderInfoChartBean.DataBean> dataBeans) {
((NewMainActivity)getActivity()).onFinishRefresh();
Resources res = getResources(); Resources res = getResources();
FontStyle.setDefaultTextSpSize(mContext, 12); FontStyle.setDefaultTextSpSize(mContext, 12);
//存儲今天的線條數據 //存儲今天的線條數據
...@@ -342,8 +362,8 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M ...@@ -342,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(1f); lineChart.getMatrixHelper().setWidthMultiple(1.2f);
lineChart.getMatrixHelper().setCanZoom(false); lineChart.getMatrixHelper().setCanZoom(true);
lineChart.getHorizontalAxis().setRotateAngle(0);//設置底部文字旋轉角度 lineChart.getHorizontalAxis().setRotateAngle(0);//設置底部文字旋轉角度
lineChart.setFirstAnim(true); lineChart.setFirstAnim(true);
lineChart.setChartData(chartData2); lineChart.setChartData(chartData2);
......
...@@ -9,6 +9,7 @@ import android.view.View; ...@@ -9,6 +9,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
...@@ -98,7 +99,7 @@ public class PaymentMethodReportFragment extends BaseFragment<PaymentMethodRepor ...@@ -98,7 +99,7 @@ public class PaymentMethodReportFragment extends BaseFragment<PaymentMethodRepor
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
mPresenter.getPaymentInfo(TimeUtils.getYear(-1)); mPresenter.getPaymentInfo(GsaCloudApplication.getRestaurantId(mContext) + "", TimeUtils.getYear(-1));
mTvStartTime.setText(TimeUtils.getOldDate(-6)); mTvStartTime.setText(TimeUtils.getOldDate(-6));
mTvEndTime.setText(TimeUtils.getOldDate(0)); mTvEndTime.setText(TimeUtils.getOldDate(0));
...@@ -299,7 +300,7 @@ public class PaymentMethodReportFragment extends BaseFragment<PaymentMethodRepor ...@@ -299,7 +300,7 @@ public class PaymentMethodReportFragment extends BaseFragment<PaymentMethodRepor
//打開時間選擇器 //打開時間選擇器
TimePickerUtils.showReportTimePicker(mContext, cal, (date, v1) -> { TimePickerUtils.showReportTimePicker(mContext, cal, (date, v1) -> {
mTvStartTime.setText(TimeUtils.DATE_FORMAT_DATE.format(date)); mTvStartTime.setText(TimeUtils.DATE_FORMAT_DATE.format(date));
mPresenter.getPaymentInfo(mTvStartTime.getText().toString()); mPresenter.getPaymentInfo(GsaCloudApplication.getRestaurantId(mContext) + "", mTvStartTime.getText().toString());
}); });
} }
} }
......
...@@ -9,6 +9,7 @@ import android.view.View; ...@@ -9,6 +9,7 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimePickerUtils;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
...@@ -99,7 +100,7 @@ public class SalesFragment extends BaseFragment<SalesPresenter> implements Sales ...@@ -99,7 +100,7 @@ public class SalesFragment extends BaseFragment<SalesPresenter> implements Sales
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
mPresenter.getSalesReportInfo(TimeUtils.getYear(-1)); mPresenter.getSalesReportInfo(GsaCloudApplication.getRestaurantId(mContext) + "", TimeUtils.getYear(-1));
mTvStartTime.setText(TimeUtils.getYear(-1)); mTvStartTime.setText(TimeUtils.getYear(-1));
mTvEndTime.setText(TimeUtils.getOldDate(0)); mTvEndTime.setText(TimeUtils.getOldDate(0));
...@@ -340,7 +341,7 @@ public class SalesFragment extends BaseFragment<SalesPresenter> implements Sales ...@@ -340,7 +341,7 @@ public class SalesFragment extends BaseFragment<SalesPresenter> implements Sales
} }
TimePickerUtils.showReportTimePicker(mContext, cal, (date, v1) -> { TimePickerUtils.showReportTimePicker(mContext, cal, (date, v1) -> {
mTvStartTime.setText(TimeUtils.DATE_FORMAT_DATE.format(date)); mTvStartTime.setText(TimeUtils.DATE_FORMAT_DATE.format(date));
mPresenter.getSalesReportInfo(mTvStartTime.getText().toString()); mPresenter.getSalesReportInfo(GsaCloudApplication.getRestaurantId(mContext) + "", mTvStartTime.getText().toString());
}); });
} }
} }
......

4.24 KB | W: | H:

4.08 KB | W: | H:

main/src/main/res/drawable-xhdpi/ic_dining_table_mode.png
main/src/main/res/drawable-xhdpi/ic_dining_table_mode.png
main/src/main/res/drawable-xhdpi/ic_dining_table_mode.png
main/src/main/res/drawable-xhdpi/ic_dining_table_mode.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -27,8 +27,8 @@ ...@@ -27,8 +27,8 @@
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="@dimen/sp_12" android:textSize="@dimen/sp_12"
app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toBottomOf="@id/cl_title_layout" /> app:layout_constraintRight_toRightOf="parent"/>
<TextView <TextView
android:id="@+id/tv_today_amount" android:id="@+id/tv_today_amount"
...@@ -186,7 +186,6 @@ ...@@ -186,7 +186,6 @@
android:gravity="center" android:gravity="center"
android:orientation="horizontal"> android:orientation="horizontal">
<TextView <TextView
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
...@@ -197,7 +196,8 @@ ...@@ -197,7 +196,8 @@
<ImageView <ImageView
android:id="@+id/iv_project_amount_state" android:id="@+id/iv_project_amount_state"
android:layout_width="@dimen/dp_8" android:layout_width="@dimen/dp_8"
android:layout_height="@dimen/dp_9" /> android:layout_height="@dimen/dp_9"
android:visibility="gone" />
<TextView <TextView
android:id="@+id/tv_project_amount_trend" android:id="@+id/tv_project_amount_trend"
...@@ -278,7 +278,8 @@ ...@@ -278,7 +278,8 @@
<ImageView <ImageView
android:id="@+id/iv_people_trend" android:id="@+id/iv_people_trend"
android:layout_width="@dimen/dp_8" android:layout_width="@dimen/dp_8"
android:layout_height="@dimen/dp_9" /> android:layout_height="@dimen/dp_9"
android:visibility="gone" />
<TextView <TextView
android:id="@+id/tv_people_trend" android:id="@+id/tv_people_trend"
...@@ -350,7 +351,8 @@ ...@@ -350,7 +351,8 @@
<ImageView <ImageView
android:id="@+id/iv_bill_trend" android:id="@+id/iv_bill_trend"
android:layout_width="@dimen/dp_8" android:layout_width="@dimen/dp_8"
android:layout_height="@dimen/dp_9" /> android:layout_height="@dimen/dp_9"
android:visibility="gone" />
<TextView <TextView
android:id="@+id/tv_bill_trend" android:id="@+id/tv_bill_trend"
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
<ImageView <ImageView
android:id="@+id/iv_main_home_item_function_icon" android:id="@+id/iv_main_home_item_function_icon"
android:layout_width="@dimen/dp_50" android:layout_width="@dimen/dp_44"
android:layout_height="@dimen/dp_50" android:layout_height="@dimen/dp_44"
android:src="@drawable/ic_dining_table" /> android:src="@drawable/ic_dining_table" />
<TextView <TextView
...@@ -19,6 +19,6 @@ ...@@ -19,6 +19,6 @@
android:text="餐檯模式" android:text="餐檯模式"
android:layout_marginTop="@dimen/dp_8" android:layout_marginTop="@dimen/dp_8"
android:textColor="@color/normal_color" android:textColor="@color/normal_color"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_12" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
<ImageView <ImageView
android:id="@+id/iv_main_home_item_function_icon" android:id="@+id/iv_main_home_item_function_icon"
android:layout_width="@dimen/dp_30" android:layout_width="@dimen/dp_32"
android:layout_height="@dimen/dp_30" android:layout_height="wrap_content"
android:src="@drawable/ic_dining_table" /> android:src="@drawable/ic_dining_table" />
<TextView <TextView
...@@ -20,6 +20,6 @@ ...@@ -20,6 +20,6 @@
android:singleLine="true" android:singleLine="true"
android:text="餐檯模式" android:text="餐檯模式"
android:textColor="@color/normal_color" android:textColor="@color/normal_color"
android:textSize="@dimen/sp_13" /> android:textSize="@dimen/sp_12" />
</LinearLayout> </LinearLayout>
\ No newline at end of file
...@@ -40,7 +40,6 @@ android { ...@@ -40,7 +40,6 @@ android {
dependencies { dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/nexgon5lib.jar')
implementation 'androidx.appcompat:appcompat:1.1.0' implementation 'androidx.appcompat:appcompat:1.1.0'
androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
......
...@@ -12,7 +12,7 @@ import com.jess.arms.di.scope.ActivityScope; ...@@ -12,7 +12,7 @@ import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject; import javax.inject.Inject;
import com.joe.print.mvp.contract.PrintListContract; import com.joe.print.mvp.contract.PrintListContract;
import com.joe.print.mvp.model.server.PrinterService; import com.joe.print.mvp.model.server.PrintInfoService;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody; import okhttp3.RequestBody;
...@@ -51,13 +51,13 @@ public class PrintListModel extends BaseModel implements PrintListContract.Model ...@@ -51,13 +51,13 @@ public class PrintListModel extends BaseModel implements PrintListContract.Model
@Override @Override
public Observable<BaseResult> getPrinterList(int restaurantId) { public Observable<BaseResult> getPrinterList(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class) return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.getPrinterList(restaurantId); .getPrinterList(restaurantId);
} }
@Override @Override
public Observable<BaseResult> deletePrinter(RequestBody requestBody) { public Observable<BaseResult> deletePrinter(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class) return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.deletePrinterList(requestBody); .deletePrinterList(requestBody);
} }
} }
\ No newline at end of file
...@@ -12,7 +12,7 @@ import com.jess.arms.di.scope.ActivityScope; ...@@ -12,7 +12,7 @@ import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject; import javax.inject.Inject;
import com.joe.print.mvp.contract.PrintContract; import com.joe.print.mvp.contract.PrintContract;
import com.joe.print.mvp.model.server.PrinterService; import com.joe.print.mvp.model.server.PrintInfoService;
import io.reactivex.Observable; import io.reactivex.Observable;
...@@ -50,7 +50,7 @@ public class PrintModel extends BaseModel implements PrintContract.Model { ...@@ -50,7 +50,7 @@ public class PrintModel extends BaseModel implements PrintContract.Model {
@Override @Override
public Observable<BaseResult> getPrinterList(int restaurantId) { public Observable<BaseResult> getPrinterList(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class) return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.getPrinterList(restaurantId); .getPrinterList(restaurantId);
} }
} }
\ No newline at end of file
...@@ -4,16 +4,14 @@ import android.app.Application; ...@@ -4,16 +4,14 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager; import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel; import com.jess.arms.mvp.BaseModel;
import com.joe.print.mvp.contract.PrinterAddContract;
import com.jess.arms.di.scope.ActivityScope; import com.joe.print.mvp.model.server.PrintInfoService;
import javax.inject.Inject; import javax.inject.Inject;
import com.joe.print.mvp.contract.PrinterAddContract;
import com.joe.print.mvp.model.server.PrinterService;
import io.reactivex.Observable; import io.reactivex.Observable;
import okhttp3.RequestBody; import okhttp3.RequestBody;
...@@ -51,12 +49,12 @@ public class PrinterAddModel extends BaseModel implements PrinterAddContract.Mod ...@@ -51,12 +49,12 @@ public class PrinterAddModel extends BaseModel implements PrinterAddContract.Mod
@Override @Override
public Observable<BaseResult> addPrinter(RequestBody requestBody) { public Observable<BaseResult> addPrinter(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class) return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.addPrinter(requestBody); .addPrinter(requestBody);
} }
@Override @Override
public Observable<BaseResult> updatePrinter(RequestBody requestBody) { public Observable<BaseResult> updatePrinter(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class) return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.updatePrinter(requestBody); .updatePrinter(requestBody);
} }
......
...@@ -2,13 +2,11 @@ package com.joe.print.mvp.model.server; ...@@ -2,13 +2,11 @@ package com.joe.print.mvp.model.server;
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.TableBean;
import io.reactivex.Observable; import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager; import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody; import okhttp3.RequestBody;
import retrofit2.http.Body; import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.GET; import retrofit2.http.GET;
import retrofit2.http.POST; import retrofit2.http.POST;
import retrofit2.http.Query; import retrofit2.http.Query;
...@@ -16,7 +14,7 @@ import retrofit2.http.Query; ...@@ -16,7 +14,7 @@ import retrofit2.http.Query;
/** /**
* Created by Wyh on 2019/12/20. * Created by Wyh on 2019/12/20.
*/ */
public interface PrinterService { public interface PrintInfoService {
@POST("PrinterDevice/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2) @POST("PrinterDevice/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
Observable<BaseResult> addPrinter(@Body RequestBody requestBody); Observable<BaseResult> addPrinter(@Body RequestBody requestBody);
......
package com.joe.print.mvp.print;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.RemoteException;
import android.widget.Toast;
import com.gingersoft.gsa.cloud.base.utils.LanguageUtils;
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.InnerPrinterException;
import com.sunmi.peripheral.printer.InnerPrinterManager;
import com.sunmi.peripheral.printer.SunmiPrinterService;
public class AidlUtil {
private static final String SERVICE_PACKAGE = "woyou.aidlservice.jiuiv5";
private static AidlUtil mAidlUtil = new AidlUtil();
private Context context;
private SunmiPrinterService sunmiPrinterService;
private AidlUtil() {
}
public static AidlUtil getInstance() {
return mAidlUtil;
}
/**
* 连接服务
*
* @param context context
*/
public void connectPrinterService(Context context) {
this.context = context.getApplicationContext();
try {
InnerPrinterManager.getInstance().bindService(context, innerPrinterCallback);
} catch (InnerPrinterException e) {
e.printStackTrace();
}
}
/**
* 断开服务
*
* @param context context
*/
public void disconnectPrinterService(Context context) {
if (sunmiPrinterService != null) {
try {
InnerPrinterManager.getInstance().unBindService(context, innerPrinterCallback);
sunmiPrinterService = null;
} catch (InnerPrinterException e) {
e.printStackTrace();
}
}
}
public boolean isConnect() {
return sunmiPrinterService != null;
}
private InnerPrinterCallback innerPrinterCallback = new InnerPrinterCallback() {
@Override
protected void onConnected(SunmiPrinterService service) {
sunmiPrinterService = service;
//初始化打印机
AidlUtil.getInstance().initPrinter();
}
@Override
protected void onDisconnected() {
}
};
/**
* 设置打印浓度
*/
private int[] darkness = new int[]{0x0600, 0x0500, 0x0400, 0x0300, 0x0200, 0x0100, 0,
0xffff, 0xfeff, 0xfdff, 0xfcff, 0xfbff, 0xfaff};
/**
* 初始化打印机
*/
public void initPrinter() {
if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return;
}
try {
sunmiPrinterService.printerInit(new com.sunmi.peripheral.printer.ICallback.Stub() {
@Override
public void onRunResult(boolean isSuccess) throws RemoteException {
LogUtil.d("printerInit", "onRunResult: " + isSuccess);
}
@Override
public void onReturnString(String result) throws RemoteException {
LogUtil.d("printerInit", "onReturnString: " + result);
}
@Override
public void onRaiseException(int code, String msg) throws RemoteException {
LogUtil.d("printerInit", "onRaiseException: " + msg);
}
@Override
public void onPrintResult(int code, String msg) throws RemoteException {
LogUtil.d("onPrintResult", "onPrintResult: " + msg);
}
});
} catch (RemoteException e) {
e.printStackTrace();
}
}
/**
* 打印二维码
*/
public void printQr(String data, int modulesize, int errorlevel) {
if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return;
}
try {
sunmiPrinterService.setAlignment(1, null);
sunmiPrinterService.printQRCode(data, modulesize, errorlevel, null);
sunmiPrinterService.lineWrap(1, null);
} catch (RemoteException e) {
e.printStackTrace();
}
}
/**
* 打印条形码
*/
public void printBarCode(String data, int symbology, int height, int width, int textposition) {
if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return;
}
try {
sunmiPrinterService.printBarCode(data, symbology, height, width, textposition, null);
sunmiPrinterService.lineWrap(3, null);
} catch (RemoteException e) {
e.printStackTrace();
}
}
/*
*打印图片
*/
public void printBitmap(Bitmap bitmap) {
if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return;
}
try {
sunmiPrinterService.setAlignment(1, null);
sunmiPrinterService.printBitmap(bitmap, null);
sunmiPrinterService.lineWrap(3, null);
} catch (RemoteException e) {
e.printStackTrace();
}
}
/**
* 打印图片和文字按照指定排列顺序
*/
public void printBitmap(Bitmap bitmap, int orientation) {
if (sunmiPrinterService == null) {
Toast.makeText(context, "服務已斷開!", Toast.LENGTH_LONG).show();
return;
}
try {
if (orientation == 0) {
sunmiPrinterService.printBitmap(bitmap, null);
// sunmiPrinterService.printText("横向排列\n", null);
// sunmiPrinterService.printBitmap(bitmap, null);
// sunmiPrinterService.printText("横向排列\n", null);
} else {
sunmiPrinterService.printBitmap(bitmap, null);
// sunmiPrinterService.printText("\n纵向排列\n", null);
// sunmiPrinterService.printBitmap(bitmap, null);
// sunmiPrinterService.printText("\n纵向排列\n", null);
}
sunmiPrinterService.lineWrap(3, null);
} catch (RemoteException e) {
e.printStackTrace();
}
}
/**
* 打印表格
*/
// public void printTable(LinkedList<TableItem> list) {
// if (sunmiPrinterService == null) {
// Toast.makeText(context,LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"),Toast.LENGTH_LONG).show();
// return;
// }
//
// try {
// for (TableItem tableItem : list) {
// Log.i("kaltin", "printTable: "+tableItem.getText()[0]+tableItem.getText()[1]+tableItem.getText()[2]);
// sunmiPrinterService.printColumnsString(tableItem.getText(), tableItem.getWidth(), tableItem.getAlign(), null);
// }
// sunmiPrinterService.lineWrap(3, null);
// } catch (RemoteException e) {
// e.printStackTrace();
// }
// }
/*
* 空打三行!
*/
public void print3Line() {
if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return;
}
try {
sunmiPrinterService.lineWrap(3, null);
} catch (RemoteException e) {
e.printStackTrace();
}
}
public void sendRawData(byte[] data) {
if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return;
}
try {
sunmiPrinterService.sendRAWData(data, null);
} catch (RemoteException e) {
e.printStackTrace();
}
}
public void printerSelfChecking(com.sunmi.peripheral.printer.ICallback callback) {
if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return;
}
try {
sunmiPrinterService.printerSelfChecking(callback);
} catch (RemoteException e) {
e.printStackTrace();
}
}
/**
* 1 ! 打印机⼯作正常
* 2 ! 打印机准备中
* 3 ! 通讯异常
* 4 ! 缺纸
* 5 ! 过热
* 6 ! 开盖
* 7 ! 切⼑异常
* 8 ! 切⼑恢复
* 9 ! 未检测到⿊标
* 505 !未检测到打印机
* 507 !打印机固件升级失败
*
* @return
*/
public int updatePrinterState() {
if (sunmiPrinterService == null) {
Toast.makeText(context, LanguageUtils.get_language_system(context, "server.disconnected", "未連接上打印機!"), Toast.LENGTH_LONG).show();
return 2;
}
try {
return sunmiPrinterService.updatePrinterState();
} catch (RemoteException e) {
e.printStackTrace();
}
return 2;
}
}
package com.gingersoft.gsa.cloud.base.utils; package com.joe.print.mvp.print;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
...@@ -6,7 +6,6 @@ import android.view.View; ...@@ -6,7 +6,6 @@ import android.view.View;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import com.gingersoft.gsa.cloud.base.R;
import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.BillAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.BillTypeAdapter;
import com.gingersoft.gsa.cloud.base.adapter.print.FoodAdapter; import com.gingersoft.gsa.cloud.base.adapter.print.FoodAdapter;
...@@ -17,9 +16,11 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail; ...@@ -17,9 +16,11 @@ import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
import com.gingersoft.gsa.cloud.base.common.bean.TableBean; import com.gingersoft.gsa.cloud.base.common.bean.TableBean;
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.MoneyUtil;
import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils; import com.gingersoft.gsa.cloud.base.utils.time.TimeUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils; import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils;
import com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils; import com.gingersoft.gsa.cloud.base.utils.view.LayoutToBitmapUtils;
import com.joe.print.R;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
...@@ -53,7 +54,10 @@ public class PrintUtils { ...@@ -53,7 +54,10 @@ public class PrintUtils {
public static List<Bitmap> getPrintBitmap(Context mContext, int type, int paperWidth) { public static List<Bitmap> getPrintBitmap(Context mContext, int type, int paperWidth) {
List<Bitmap> bitmaps = new ArrayList<>(); List<Bitmap> bitmaps = new ArrayList<>();
PrintUtils.paperWidth = paperWidth; PrintUtils.paperWidth = paperWidth;
if (type == 0) { if (type == -1) {
//測試紙
bitmaps.add(PrintUtils.getTestPrintBitmap(mContext));
} else if (type == 0) {
//上菜紙 //上菜紙
bitmaps.add(PrintUtils.getPrintBitmap(mContext, MyOrderManage.getInstance().getNewFoodList())); bitmaps.add(PrintUtils.getPrintBitmap(mContext, MyOrderManage.getInstance().getNewFoodList()));
} else if (type == 1) { } else if (type == 1) {
...@@ -322,9 +326,18 @@ public class PrintUtils { ...@@ -322,9 +326,18 @@ public class PrintUtils {
//操作人員 //操作人員
tvOperator.setText(GsaCloudApplication.userName); tvOperator.setText(GsaCloudApplication.userName);
LayoutToBitmapUtils.layoutView(context, view);//先测量view LayoutToBitmapUtils.layoutView(context, view);//先测量view
//580為程序支持的打印紙最大寬度 //580為程序支持的打印紙最大寬度
return ImageUtils.zoomDrawable(LayoutToBitmapUtils.loadBitmapFromView(view), paperWidth);//将view轉bitmap return ImageUtils.zoomDrawable(LayoutToBitmapUtils.loadBitmapFromView(view), paperWidth);//将view轉bitmap
} }
private static Bitmap getTestPrintBitmap(Context context){
View view = LinearLayout.inflate(context, R.layout.print_test, null);
LayoutToBitmapUtils.layoutView(context, view);//先测量view
//580為程序支持的打印紙最大寬度
return ImageUtils.zoomDrawable(LayoutToBitmapUtils.loadBitmapFromView(view), paperWidth);//将view轉bitmap
}
} }
...@@ -3,7 +3,6 @@ package com.joe.print.mvp.print; ...@@ -3,7 +3,6 @@ package com.joe.print.mvp.print;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import com.gingersoft.gsa.cloud.base.utils.PrintUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import java.util.ArrayList; import java.util.ArrayList;
...@@ -41,9 +40,6 @@ public class SendPrint implements PrintDataMaker { ...@@ -41,9 +40,6 @@ public class SendPrint implements PrintDataMaker {
printer.setAlignCenter(); printer.setAlignCenter();
data.add(printer.getDataAndReset()); data.add(printer.getDataAndReset());
// //壓縮bitmap到指定大小
// bitmap = ImageUtils.zoomDrawabe(bitmap, width, bitmap.getHeight());
// ArrayList<byte[]> image1 = PrinterUtils.decodeBitmapToDataList(bitmap, parting);//bitmap转字节码
List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, printType, width);//根據打印類型獲得不同的bitmap List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, printType, width);//根據打印類型獲得不同的bitmap
if (bitmaps.size() <= 0) { if (bitmaps.size() <= 0) {
ToastUtils.show(mContext, "打印失敗"); ToastUtils.show(mContext, "打印失敗");
......
...@@ -41,6 +41,7 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt ...@@ -41,6 +41,7 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt
private int paperType = 1;//打印紙類型 1:58mm,2::80mm private int paperType = 1;//打印紙類型 1:58mm,2::80mm
private int printWidth = 560;//打印出來的內容寬度 private int printWidth = 560;//打印出來的內容寬度
/** /**
* -1:打印測試
* 0:上菜紙 * 0:上菜紙
* 1:印單 * 1:印單
* 2:結賬單 * 2:結賬單
...@@ -83,7 +84,8 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt ...@@ -83,7 +84,8 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt
dialog.dismiss(); dialog.dismiss();
} }
dialog = LoadingDialog.showNewDialogForLoading(this, "初始化...", true); dialog = LoadingDialog.showNewDialogForLoading(this, "初始化...", true);
dialog.setOnDismissListener(this); dialog.setOnDismissListener(dialog -> dismiss(""));
dialog.setOnCancelListener(dialog -> dismiss(""));
if (executor == null) { if (executor == null) {
executor = new PrintExecutor(ip, Integer.parseInt(port), paperType); executor = new PrintExecutor(ip, Integer.parseInt(port), paperType);
executor.setOnStateChangedListener(this); executor.setOnStateChangedListener(this);
...@@ -154,9 +156,12 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt ...@@ -154,9 +156,12 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt
private void dismiss(String msg) { private void dismiss(String msg) {
ToastUtils.show(this, msg); if(msg != null && !msg.equals("")){
ToastUtils.show(this, msg);
}
//延遲一秒 //延遲一秒
dialog.dismiss(); dialog.dismiss();
dialog.setOnCancelListener(dialog -> finish());
LoadingDialog.cancelDialogForLoading(); LoadingDialog.cancelDialogForLoading();
//判断是否为CC调用打开本页面 //判断是否为CC调用打开本页面
if (callId != null) { if (callId != null) {
...@@ -171,7 +176,6 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt ...@@ -171,7 +176,6 @@ public class OldPrintActivity extends Activity implements PrintSocketHolder.OnSt
} }
finish(); finish();
} }
@Override @Override
public void onDismiss(DialogInterface dialog) { public void onDismiss(DialogInterface dialog) {
finish(); finish();
......
...@@ -9,17 +9,16 @@ import android.os.Bundle; ...@@ -9,17 +9,16 @@ import android.os.Bundle;
import android.os.IBinder; import android.os.IBinder;
import android.os.Looper; import android.os.Looper;
import android.os.RemoteException; import android.os.RemoteException;
import android.util.Log;
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.PrintUtils;
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;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils;
import com.gingersoft.gsa.cloud.base.widget.DialogUtils; import com.gingersoft.gsa.cloud.base.widget.DialogUtils;
import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean; import com.gingersoft.gsa.cloud.database.bean.PrinterDeviceBean;
import com.hyweb.n5.lib.constant.PrinterConstant; import com.hyweb.n5.lib.constant.PrinterConstant;
...@@ -33,6 +32,7 @@ import com.joe.print.R; ...@@ -33,6 +32,7 @@ import com.joe.print.R;
import com.joe.print.di.component.DaggerPrintComponent; 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.SunMiPrint; 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.yanzhenjie.recyclerview.widget.DefaultItemDecoration; import com.yanzhenjie.recyclerview.widget.DefaultItemDecoration;
...@@ -102,6 +102,29 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -102,6 +102,29 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void initData(@Nullable Bundle savedInstanceState) { public void initData(@Nullable Bundle savedInstanceState) {
// if (mV2.contains(Build.MODEL)) {
//
// } else if (mN5.contains(Build.MODEL)) {
try {
//初始化N5打印
int state = PrinterUtil.getStatus();
Log.e("error", "打印機狀態:" + state);
} catch (NullPointerException e) {
e.printStackTrace();
//如果是空指針,那麼需要初始化
try {
PrinterUtil.initPrinter(this);
} catch (NoInitPrinterException | RemoteException ex) {
ex.printStackTrace();
ToastUtils.show(mContext, "打印初始化失敗" + ex.getMessage());
Log.e("error", "打印初始化失敗:" + ex.getMessage());
}
} catch (RemoteException e){
ToastUtils.show(mContext, "獲取狀態失敗:" + e.getMessage());
Log.e("error", "獲取狀態失敗:" + e.getMessage());
}
// }
type = CCUtil.getNavigateParam(this, "type", 1001); type = CCUtil.getNavigateParam(this, "type", 1001);
List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, type, 500); List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, type, 500);
if (bitmaps.size() <= 0) { if (bitmaps.size() <= 0) {
...@@ -183,29 +206,15 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -183,29 +206,15 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} else if (mN5.contains(model)) { } else if (mN5.contains(model)) {
//N5打印 //N5打印
try { try {
PrinterUtil.initPrinter(mContext); try {
PrinterUtil.appendImage(bitmap, PrinterConstant.ALIGN_CENTER); PrinterUtil.appendImage(bitmap, PrinterConstant.ALIGN_CENTER);
PrinterUtil.startPrint(true, new IOnPrintCallback() { startN5Print();
@Override } catch (NullPointerException e) {
public void onPrintResult(int i) { ToastUtils.show(mContext, "打印失敗,請重試");
Looper.prepare(); Log.e("error", "打印失敗請重試:" + e.getMessage());
if (i == 0) { finish();
//打印成功 }
ToastUtils.show(mContext, "N5打印結果:成功"); } catch (RemoteException e) {
printSuccess();
} else {
//打印失敗
ToastUtils.show(mContext, "N5打印結果:失敗");
printFile();
}
}
@Override
public IBinder asBinder() {
return null;
}
});
} catch (RemoteException | NoInitPrinterException e) {
e.printStackTrace(); e.printStackTrace();
printFile(); printFile();
} }
...@@ -215,6 +224,53 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -215,6 +224,53 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} }
} }
private void startN5Print() {
try {
PrinterUtil.startPrint(true, new IOnPrintCallback.Stub() {
@Override
public void onPrintResult(int i) throws RemoteException {
Log.e("error", "打印回調:" + i);
Looper.prepare();
if (i == 0) {
//打印成功
printSuccess();
} else {
//打印失敗
printFile();
}
}
@Override
public IBinder asBinder() {
return this;
}
});
} catch (RemoteException e) {
e.printStackTrace();
}
}
private IOnPrintCallback mIOnPrintCallback = new IOnPrintCallback() {
@Override
public void onPrintResult(int i) {
Log.e("error", "打印回調:" + i);
Looper.prepare();
if (i == 0) {
//打印成功
ToastUtils.show(mContext, "N5打印結果:成功");
printSuccess();
} else {
//打印失敗
ToastUtils.show(mContext, "N5打印結果:失敗");
printFile();
}
}
@Override
public IBinder asBinder() {
return null;
}
};
/** /**
* 打印失敗 * 打印失敗
*/ */
...@@ -233,13 +289,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -233,13 +289,10 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
finish(); finish();
} }
//初始化打印內容 @Override
public Bitmap initPrintBitmap(int width) { protected void onDestroy() {
Bitmap bitmap = getIntent().getParcelableExtra("bitmap"); super.onDestroy();
if (bitmap == null) { Log.e("error", "PrintActivity :onDestroy");
return null;
}
return ImageUtils.zoomDrawable(bitmap, width, bitmap.getHeight());
} }
@Override @Override
...@@ -280,7 +333,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -280,7 +333,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override @Override
public void showMessage(@NonNull String message) { public void showMessage(@NonNull String message) {
checkNotNull(message); checkNotNull(message);
// ArmsUtils.snackbarText(message);
ToastUtils.show(mContext, message); ToastUtils.show(mContext, message);
} }
...@@ -319,11 +371,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -319,11 +371,13 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
intent.putExtra("paperType", deviceBeans.get(position).getType()); intent.putExtra("paperType", deviceBeans.get(position).getType());
intent.putExtra("type", type); intent.putExtra("type", type);
startActivity(intent); startActivity(intent);
dialog.dismiss();
finish();
}); });
dialog.setOnDismissListener(dialog1 -> finish()); dialog.setOnDismissListener(PrintActivity.this);
dialog.setOnCancelListener(dialog1 -> finish());
} }
} }
// .setWidth(ArmsUtils.getScreenHeidth(mContext))
.setHeight(ArmsUtils.getScreenHeidth(mContext) / 2) .setHeight(ArmsUtils.getScreenHeidth(mContext) / 2)
.createDialogView() .createDialogView()
.show(); .show();
...@@ -336,4 +390,5 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -336,4 +390,5 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
finish(); finish();
} }
} }
} }
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<!-- 打印測試-->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="打印測試"
android:textColor="@color/theme_333_color"
android:textSize="@dimen/sp_25" />
</LinearLayout>
\ No newline at end of file
...@@ -2,7 +2,7 @@ ext.alwaysLib = true //虽然apply了cc-settings-2.gradle,但一直作为libra ...@@ -2,7 +2,7 @@ ext.alwaysLib = true //虽然apply了cc-settings-2.gradle,但一直作为libra
apply from: rootProject.file("cc-settings.gradle") apply from: rootProject.file("cc-settings.gradle")
apply plugin: 'com.jakewharton.butterknife' apply plugin: 'com.jakewharton.butterknife'
apply plugin: 'org.greenrobot.greendao' apply plugin: 'org.greenrobot.greendao'
//apply plugin: 'android-aspectjx' apply plugin: 'android-aspectjx'
android { android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"] compileSdkVersion rootProject.ext.android["compileSdkVersion"]
...@@ -67,7 +67,6 @@ dependencies { ...@@ -67,7 +67,6 @@ dependencies {
testImplementation rootProject.ext.dependencies["canary-release"] testImplementation rootProject.ext.dependencies["canary-release"]
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"] annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
// implementation 'androidx.appcompat:appcompat:1.1.0' // implementation 'androidx.appcompat:appcompat:1.1.0'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0' androidTestImplementation 'androidx.test:runner:1.2.0'
...@@ -80,11 +79,12 @@ dependencies { ...@@ -80,11 +79,12 @@ dependencies {
implementation 'org.greenrobot:greendao-generator:3.2.2' implementation 'org.greenrobot:greendao-generator:3.2.2'
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"] implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation 'com.android.support:design:28.0.0' implementation 'com.android.support:design:28.0.0'
implementation 'com.gcssloop.recyclerview:pagerlayoutmanager:2.3.8' implementation 'com.gcssloop.recyclerview:pagerlayoutmanager:2.3.8'
//陰影背景 //陰影背景
// implementation 'com.github.Liberuman:ShadowDrawable:0.1' // implementation 'com.github.Liberuman:ShadowDrawable:0.1'
api 'com.github.lihangleo2:ShadowLayout:2.1.6' api 'com.github.lihangleo2:ShadowLayout:2.1.6'
// implementation 'org.aspectj:aspectjrt:1.8.9' api 'com.contrarywind:Android-PickerView:3.2.4'
api 'com.contrarywind:Android-PickerView:3.2.4'//時間選擇控件 //時間選擇控件
implementation 'org.aspectj:aspectjrt:1.8.9'
api files('libs/nexgon5lib.jar')
} }
//package com.gingersoft.gsa.cloud.aspectj; package com.gingersoft.gsa.cloud.aspectj;
//
//import java.lang.annotation.ElementType; import java.lang.annotation.ElementType;
//import java.lang.annotation.Retention; import java.lang.annotation.Retention;
//import java.lang.annotation.RetentionPolicy; import java.lang.annotation.RetentionPolicy;
//import java.lang.annotation.Target; import java.lang.annotation.Target;
//
///** /**
// * Created by Wyh on 2020/2/29. * Created by Wyh on 2020/2/29.
// */ * 雙擊檢測
//@Retention(RetentionPolicy.RUNTIME) */
//@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME)
//public @interface SingleClick { @Target(ElementType.METHOD)
// /* 点击间隔时间 */ public @interface SingleClick {
// long value() default 1000; /* 点击间隔时间 */
//} long value() default 1000;
}
//package com.gingersoft.gsa.cloud.aspectj; package com.gingersoft.gsa.cloud.aspectj;
//
//import android.view.View; import android.view.View;
//
//import java.lang.reflect.Method; import org.aspectj.lang.ProceedingJoinPoint;
// import org.aspectj.lang.annotation.Around;
///** import org.aspectj.lang.annotation.Aspect;
// * Created by Wyh on 2020/2/29. import org.aspectj.lang.annotation.Pointcut;
// */ import org.aspectj.lang.reflect.MethodSignature;
//@Aspect
//public class SingleClickAspect { import java.lang.reflect.Method;
// private static final long DEFAULT_TIME_INTERVAL = 5000;
// /**
// /** * Created by Wyh on 2020/2/29.
// * 定义切点,标记切点为所有被@SingleClick注解的方法 */
// * 注意:这里me.baron.test.annotation.SingleClick需要替换成 @Aspect
// * 你自己项目中SingleClick这个类的全路径哦 public class SingleClickAspect {
// */ private static final long DEFAULT_TIME_INTERVAL = 5000;
// @Pointcut("execution(@com.gingersoft.gsa.cloud.aspectj.SingleClick * *(..))")
// public void methodAnnotated() { /**
// } * 定义切点,标记切点为所有被@SingleClick注解的方法
// * 注意:这里me.baron.test.annotation.SingleClick需要替换成
// /** * 你自己项目中SingleClick这个类的全路径哦
// * 定义一个切面方法,包裹切点方法 */
// */ @Pointcut("execution(@com.gingersoft.gsa.cloud.aspectj.SingleClick * *(..))")
// @Around("methodAnnotated()") public void methodAnnotated() {
// public void aroundJoinPoint(ProceedingJoinPoint joinPoint) throws Throwable { }
// // 取出方法的参数
// View view = null; /**
// for (Object arg : joinPoint.getArgs()) { * 定义一个切面方法,包裹切点方法
// if (arg instanceof View) { */
// view = (View) arg; @Around("methodAnnotated()")
// break; public void aroundJoinPoint(ProceedingJoinPoint joinPoint) throws Throwable {
// } // 取出方法的参数
// } View view = null;
// if (view == null) { for (Object arg : joinPoint.getArgs()) {
// return; if (arg instanceof View) {
// } view = (View) arg;
// // 取出方法的注解 break;
// MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); }
// Method method = methodSignature.getMethod(); }
// if (!method.isAnnotationPresent(SingleClick.class)) { if (view == null) {
// return; return;
// } }
// SingleClick singleClick = method.getAnnotation(SingleClick.class); // 取出方法的注解
// // 判断是否快速点击 MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature();
// if (!XClickUtil.isFastDoubleClick(view, singleClick.value())) { Method method = methodSignature.getMethod();
// // 不是快速点击,执行原方法 if (!method.isAnnotationPresent(SingleClick.class)) {
// joinPoint.proceed(); return;
// } }
// } SingleClick singleClick = method.getAnnotation(SingleClick.class);
//} // 判断是否快速点击
if (!XClickUtil.isFastDoubleClick(view, singleClick.value())) {
// 不是快速点击,执行原方法
joinPoint.proceed();
}
}
}
package com.gingersoft.gsa.cloud.aspectj;
import org.aspectj.lang.annotation.Aspect;
/**
* Created by Wyh on 2020/3/2.
*/
@Aspect
public class SwitchPrintAspect {
}
package com.gingersoft.gsa.cloud.aspectj;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Created by Wyh on 2020/3/2.
* 切換默認打印方式
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface SwitchPrintMethod {
}
//package com.gingersoft.gsa.cloud.aspectj; package com.gingersoft.gsa.cloud.aspectj;
//
//import android.view.View; import android.view.View;
//
///** /**
// * Created by Wyh on 2020/2/29. * Created by Wyh on 2020/2/29.
// */ */
//public class XClickUtil { public class XClickUtil {
// /** /**
// * 最近一次点击的时间 * 最近一次点击的时间
// */ */
// private static long mLastClickTime; private static long mLastClickTime;
// /** /**
// * 最近一次点击的控件ID * 最近一次点击的控件ID
// */ */
// private static int mLastClickViewId; private static int mLastClickViewId;
//
// /** /**
// * 是否是快速点击 * 是否是快速点击
// * *
// * @param v 点击的控件 * @param v 点击的控件
// * @param intervalMillis 时间间期(毫秒) * @param intervalMillis 时间间期(毫秒)
// * @return true:是,false:不是 * @return true:是,false:不是
// */ */
// public static boolean isFastDoubleClick(View v, long intervalMillis) { public static boolean isFastDoubleClick(View v, long intervalMillis) {
// int viewId = v.getId(); int viewId = v.getId();
// long time = System.currentTimeMillis(); long time = System.currentTimeMillis();
// long timeInterval = Math.abs(time - mLastClickTime); long timeInterval = Math.abs(time - mLastClickTime);
// if (timeInterval < intervalMillis && viewId == mLastClickViewId) { if (timeInterval < intervalMillis && viewId == mLastClickViewId) {
// return true; return true;
// } else { } else {
// mLastClickTime = time; mLastClickTime = time;
// mLastClickViewId = viewId; mLastClickViewId = viewId;
// return false; return false;
// } }
// } }
//} }
...@@ -2,6 +2,8 @@ package com.gingersoft.gsa.cloud.base.application; ...@@ -2,6 +2,8 @@ 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.RemoteException;
import android.util.Log;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.elvishew.xlog.LogConfiguration; import com.elvishew.xlog.LogConfiguration;
...@@ -22,6 +24,8 @@ import com.gingersoft.gsa.cloud.base.utils.file.FileUtils; ...@@ -22,6 +24,8 @@ import com.gingersoft.gsa.cloud.base.utils.file.FileUtils;
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.database.DaoManager; import com.gingersoft.gsa.cloud.database.DaoManager;
import com.hyweb.n5.lib.exception.NoInitPrinterException;
import com.hyweb.n5.lib.util.PrinterUtil;
import com.jess.arms.base.BaseApplication; import com.jess.arms.base.BaseApplication;
/** /**
...@@ -42,21 +46,33 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -42,21 +46,33 @@ public class GsaCloudApplication extends BaseApplication {
public static boolean isLogin = false; public static boolean isLogin = false;
public static CurrentAndroidSetting androidSetting; public static CurrentAndroidSetting androidSetting;
public static String userName = ""; public static String userName = "";
/**
* 商米:V2、V2_PRO N5:N5
*/
public static String mV2 = "V2,V2_PRO";
public static String mN5 = "N5";
@Override @Override
public void onCreate() { public void onCreate() {
super.onCreate(); super.onCreate();
this.mAppContext = this; this.mAppContext = this;
CC.enableVerboseLog(true); CC.enableVerboseLog(true);
CC.enableDebug(true); CC.enableDebug(true);
CC.enableRemoteCC(true); CC.enableRemoteCC(true);
//初始化日誌管理庫 //初始化日誌管理庫
initXLog(); initXLog();
initGreenDao(); initGreenDao();
AppCrashHandler.getInstance().init(this,"test"); AppCrashHandler.getInstance().init(this, "test");
androidSetting = new CurrentAndroidSetting(); androidSetting = new CurrentAndroidSetting();
try {
//初始化N5打印
PrinterUtil.initPrinter(this);
} catch (NoInitPrinterException | RemoteException e) {
e.printStackTrace();
Log.e("error", "GsaCloudApplication打印初始化失敗:" + e.getMessage());
}
} }
public Activity getCurrentActivity() { public Activity getCurrentActivity() {
...@@ -159,6 +175,7 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -159,6 +175,7 @@ public class GsaCloudApplication extends BaseApplication {
public static void setBrandId(Context context, int restaurantId) { public static void setBrandId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.brandId, restaurantId); SPUtils.put(context, UserConstans.brandId, restaurantId);
} }
public static void setBrandName(Context context, String restaurantName) { public static void setBrandName(Context context, String restaurantName) {
SPUtils.put(context, UserConstans.brandName, restaurantName); SPUtils.put(context, UserConstans.brandName, restaurantName);
} }
...@@ -166,9 +183,11 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -166,9 +183,11 @@ public class GsaCloudApplication extends BaseApplication {
public static void setRestaurantId(Context context, int restaurantId) { public static void setRestaurantId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.restaurantId, restaurantId); SPUtils.put(context, UserConstans.restaurantId, restaurantId);
} }
public static void setRestaurantName(Context context, String restaurantName) { public static void setRestaurantName(Context context, String restaurantName) {
SPUtils.put(context, UserConstans.restaurantName, restaurantName); SPUtils.put(context, UserConstans.restaurantName, restaurantName);
} }
public static void setBrandRestaurantInfos(Context context, String brandRestaurantIds) { public static void setBrandRestaurantInfos(Context context, String brandRestaurantIds) {
SPUtils.put(context, UserConstans.brandRestaurantInfos, brandRestaurantIds); SPUtils.put(context, UserConstans.brandRestaurantInfos, brandRestaurantIds);
} }
......
...@@ -51,7 +51,7 @@ public class LogUtil { ...@@ -51,7 +51,7 @@ public class LogUtil {
d(TAG, msg); d(TAG, msg);
} }
public static void d(String tagName, String msg) { public static void d(String tagName, String msg) {
if (isPrintLog) { if (isPrintLog && msg != null) {
int strLength = msg.length(); int strLength = msg.length();
int start = 0; int start = 0;
int end = LOG_MAXLENGTH; int end = LOG_MAXLENGTH;
......
...@@ -51,7 +51,7 @@ public class TimeUtils { ...@@ -51,7 +51,7 @@ public class TimeUtils {
*/ */
public static String dateFormatAHM = "aHH:mm"; public static String dateFormatAHM = "aHH:mm";
public static String dateFormatYMDE = "yyyy/MM/dd E"; public static SimpleDateFormat dateFormatYMDE = new SimpleDateFormat("yyyy/MM/dd E");
public static String dateFormatYMD2 = "yyyy/MM/dd"; public static String dateFormatYMD2 = "yyyy/MM/dd";
private TimeUtils() { private TimeUtils() {
......
...@@ -25,6 +25,9 @@ public class Function { ...@@ -25,6 +25,9 @@ public class Function {
@NotNull @NotNull
private Long id; private Long id;
private int parentId;
private int groupId;
private int status; private int status;
private long effectiveTime; private long effectiveTime;
private String resName; private String resName;
...@@ -52,11 +55,13 @@ public class Function { ...@@ -52,11 +55,13 @@ public class Function {
private int textSizeRes; private int textSizeRes;
@Generated(hash = 1134214411) @Generated(hash = 1165180133)
public Function(Long dbid, @NotNull Long id, int status, long effectiveTime, public Function(Long dbid, @NotNull Long id, int parentId, int groupId, int status,
String resName, String resUrl, String imageURL) { long effectiveTime, String resName, String resUrl, String imageURL) {
this.dbid = dbid; this.dbid = dbid;
this.id = id; this.id = id;
this.parentId = parentId;
this.groupId = groupId;
this.status = status; this.status = status;
this.effectiveTime = effectiveTime; this.effectiveTime = effectiveTime;
this.resName = resName; this.resName = resName;
...@@ -67,7 +72,7 @@ public class Function { ...@@ -67,7 +72,7 @@ public class Function {
@Generated(hash = 133141990) @Generated(hash = 133141990)
public Function() { public Function() {
} }
public Function(@NotNull Long id, int status, long effectiveTime, public Function(@NotNull Long id, int status, long effectiveTime,
String resName, String resUrl, String imageURL) { String resName, String resUrl, String imageURL) {
this.id = id; this.id = id;
...@@ -85,6 +90,14 @@ public class Function { ...@@ -85,6 +90,14 @@ public class Function {
this.textSize = textSize; this.textSize = textSize;
} }
public Function(Long id, int parentId, int groupId, String resName, int nameRes) {
this.id = id;
this.parentId = parentId;
this.groupId = groupId;
this.resName = resName;
this.nameRes = nameRes;
}
public Function(int nameRes, int textColorRes, int backgroundColorRes, int textSizeRes) { public Function(int nameRes, int textColorRes, int backgroundColorRes, int textSizeRes) {
this.nameRes = nameRes; this.nameRes = nameRes;
this.textColorRes = textColorRes; this.textColorRes = textColorRes;
...@@ -221,4 +234,20 @@ public class Function { ...@@ -221,4 +234,20 @@ public class Function {
public void setDbid(Long dbid) { public void setDbid(Long dbid) {
this.dbid = dbid; this.dbid = dbid;
} }
public int getParentId() {
return this.parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public int getGroupId() {
return this.groupId;
}
public void setGroupId(int groupId) {
this.groupId = groupId;
}
} }
...@@ -26,11 +26,13 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -26,11 +26,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
public static class Properties { public static class Properties {
public final static Property Dbid = new Property(0, Long.class, "dbid", true, "_id"); public final static Property Dbid = new Property(0, Long.class, "dbid", true, "_id");
public final static Property Id = new Property(1, Long.class, "id", false, "ID"); public final static Property Id = new Property(1, Long.class, "id", false, "ID");
public final static Property Status = new Property(2, int.class, "status", false, "STATUS"); public final static Property ParentId = new Property(2, int.class, "parentId", false, "PARENT_ID");
public final static Property EffectiveTime = new Property(3, long.class, "effectiveTime", false, "EFFECTIVE_TIME"); public final static Property GroupId = new Property(3, int.class, "groupId", false, "GROUP_ID");
public final static Property ResName = new Property(4, String.class, "resName", false, "RES_NAME"); public final static Property Status = new Property(4, int.class, "status", false, "STATUS");
public final static Property ResUrl = new Property(5, String.class, "resUrl", false, "RES_URL"); public final static Property EffectiveTime = new Property(5, long.class, "effectiveTime", false, "EFFECTIVE_TIME");
public final static Property ImageURL = new Property(6, String.class, "imageURL", false, "IMAGE_URL"); public final static Property ResName = new Property(6, String.class, "resName", false, "RES_NAME");
public final static Property ResUrl = new Property(7, String.class, "resUrl", false, "RES_URL");
public final static Property ImageURL = new Property(8, String.class, "imageURL", false, "IMAGE_URL");
} }
...@@ -48,11 +50,13 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -48,11 +50,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
db.execSQL("CREATE TABLE " + constraint + "\"FUNCTION\" (" + // db.execSQL("CREATE TABLE " + constraint + "\"FUNCTION\" (" + //
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: dbid "\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: dbid
"\"ID\" INTEGER NOT NULL ," + // 1: id "\"ID\" INTEGER NOT NULL ," + // 1: id
"\"STATUS\" INTEGER NOT NULL ," + // 2: status "\"PARENT_ID\" INTEGER NOT NULL ," + // 2: parentId
"\"EFFECTIVE_TIME\" INTEGER NOT NULL ," + // 3: effectiveTime "\"GROUP_ID\" INTEGER NOT NULL ," + // 3: groupId
"\"RES_NAME\" TEXT," + // 4: resName "\"STATUS\" INTEGER NOT NULL ," + // 4: status
"\"RES_URL\" TEXT," + // 5: resUrl "\"EFFECTIVE_TIME\" INTEGER NOT NULL ," + // 5: effectiveTime
"\"IMAGE_URL\" TEXT);"); // 6: imageURL "\"RES_NAME\" TEXT," + // 6: resName
"\"RES_URL\" TEXT," + // 7: resUrl
"\"IMAGE_URL\" TEXT);"); // 8: imageURL
} }
/** Drops the underlying database table. */ /** Drops the underlying database table. */
...@@ -70,22 +74,24 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -70,22 +74,24 @@ public class FunctionDao extends AbstractDao<Function, Long> {
stmt.bindLong(1, dbid); stmt.bindLong(1, dbid);
} }
stmt.bindLong(2, entity.getId()); stmt.bindLong(2, entity.getId());
stmt.bindLong(3, entity.getStatus()); stmt.bindLong(3, entity.getParentId());
stmt.bindLong(4, entity.getEffectiveTime()); stmt.bindLong(4, entity.getGroupId());
stmt.bindLong(5, entity.getStatus());
stmt.bindLong(6, entity.getEffectiveTime());
String resName = entity.getResName(); String resName = entity.getResName();
if (resName != null) { if (resName != null) {
stmt.bindString(5, resName); stmt.bindString(7, resName);
} }
String resUrl = entity.getResUrl(); String resUrl = entity.getResUrl();
if (resUrl != null) { if (resUrl != null) {
stmt.bindString(6, resUrl); stmt.bindString(8, resUrl);
} }
String imageURL = entity.getImageURL(); String imageURL = entity.getImageURL();
if (imageURL != null) { if (imageURL != null) {
stmt.bindString(7, imageURL); stmt.bindString(9, imageURL);
} }
} }
...@@ -98,22 +104,24 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -98,22 +104,24 @@ public class FunctionDao extends AbstractDao<Function, Long> {
stmt.bindLong(1, dbid); stmt.bindLong(1, dbid);
} }
stmt.bindLong(2, entity.getId()); stmt.bindLong(2, entity.getId());
stmt.bindLong(3, entity.getStatus()); stmt.bindLong(3, entity.getParentId());
stmt.bindLong(4, entity.getEffectiveTime()); stmt.bindLong(4, entity.getGroupId());
stmt.bindLong(5, entity.getStatus());
stmt.bindLong(6, entity.getEffectiveTime());
String resName = entity.getResName(); String resName = entity.getResName();
if (resName != null) { if (resName != null) {
stmt.bindString(5, resName); stmt.bindString(7, resName);
} }
String resUrl = entity.getResUrl(); String resUrl = entity.getResUrl();
if (resUrl != null) { if (resUrl != null) {
stmt.bindString(6, resUrl); stmt.bindString(8, resUrl);
} }
String imageURL = entity.getImageURL(); String imageURL = entity.getImageURL();
if (imageURL != null) { if (imageURL != null) {
stmt.bindString(7, imageURL); stmt.bindString(9, imageURL);
} }
} }
...@@ -127,11 +135,13 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -127,11 +135,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
Function entity = new Function( // Function entity = new Function( //
cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // dbid cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // dbid
cursor.getLong(offset + 1), // id cursor.getLong(offset + 1), // id
cursor.getInt(offset + 2), // status cursor.getInt(offset + 2), // parentId
cursor.getLong(offset + 3), // effectiveTime cursor.getInt(offset + 3), // groupId
cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // resName cursor.getInt(offset + 4), // status
cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // resUrl cursor.getLong(offset + 5), // effectiveTime
cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6) // imageURL cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6), // resName
cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // resUrl
cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8) // imageURL
); );
return entity; return entity;
} }
...@@ -140,11 +150,13 @@ public class FunctionDao extends AbstractDao<Function, Long> { ...@@ -140,11 +150,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
public void readEntity(Cursor cursor, Function entity, int offset) { public void readEntity(Cursor cursor, Function entity, int offset) {
entity.setDbid(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0)); entity.setDbid(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
entity.setId(cursor.getLong(offset + 1)); entity.setId(cursor.getLong(offset + 1));
entity.setStatus(cursor.getInt(offset + 2)); entity.setParentId(cursor.getInt(offset + 2));
entity.setEffectiveTime(cursor.getLong(offset + 3)); entity.setGroupId(cursor.getInt(offset + 3));
entity.setResName(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4)); entity.setStatus(cursor.getInt(offset + 4));
entity.setResUrl(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5)); entity.setEffectiveTime(cursor.getLong(offset + 5));
entity.setImageURL(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6)); entity.setResName(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6));
entity.setResUrl(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
entity.setImageURL(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8));
} }
@Override @Override
......
...@@ -237,6 +237,9 @@ public class ChooseRestaurantDialog extends Dialog { ...@@ -237,6 +237,9 @@ public class ChooseRestaurantDialog extends Dialog {
} }
public ChooseRestaurantDialog build() { public ChooseRestaurantDialog build() {
if(mDialog != null){
return mDialog;
}
mDialog = new ChooseRestaurantDialog(mContext); mDialog = new ChooseRestaurantDialog(mContext);
View contentView = buildViews(); View contentView = buildViews();
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, QMUIDisplayHelper.getScreenHeight(mContext))); mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, QMUIDisplayHelper.getScreenHeight(mContext)));
......
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/alpha_20_white" android:state_checkable="true" />
<item android:drawable="@color/alpha_20_white" android:state_pressed="true" />
<item android:drawable="@color/alpha_20_white" android:state_checked="true" />
<item android:drawable="@color/trans" />
</selector>
\ No newline at end of file
...@@ -4,11 +4,12 @@ ...@@ -4,11 +4,12 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<TextView <Button
android:id="@+id/tv_item_keyboard" android:id="@+id/tv_item_keyboard"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:gravity="center" android:gravity="center"
android:background="@drawable/selector_keyboard_btn_bg"
android:textColor="@color/theme_white_color" android:textColor="@color/theme_white_color"
android:textSize="@dimen/sp_24" /> android:textSize="@dimen/sp_24" />
......
...@@ -132,6 +132,26 @@ ...@@ -132,6 +132,26 @@
<color name="alpha_90_white">#E6FFFFFF</color> <color name="alpha_90_white">#E6FFFFFF</color>
<color name="alpha_95_white">#F2FFFFFF</color> <color name="alpha_95_white">#F2FFFFFF</color>
<color name="alpha_05_black">#0D000000</color>
<color name="alpha_10_black">#1A000000</color>
<color name="alpha_15_black">#26000000</color>
<color name="alpha_20_black">#33000000</color>
<color name="alpha_25_black">#40000000</color>
<color name="alpha_30_black">#4D000000</color>
<color name="alpha_35_black">#59000000</color>
<color name="alpha_40_black">#66000000</color>
<color name="alpha_45_black">#73000000</color>
<color name="alpha_50_black">#80000000</color>
<color name="alpha_55_black">#8C000000</color>
<color name="alpha_60_black">#99000000</color>
<color name="alpha_65_black">#A6000000</color>
<color name="alpha_70_black">#B3000000</color>
<color name="alpha_75_black">#BF000000</color>
<color name="alpha_80_black">#CC000000</color>
<color name="alpha_85_black">#D9000000</color>
<color name="alpha_90_black">#E6000000</color>
<color name="alpha_95_black">#F2000000</color>
<color name="red_50">#fde0dc</color> <color name="red_50">#fde0dc</color>
<color name="red_100">#f9bdbb</color> <color name="red_100">#f9bdbb</color>
<color name="red_200">#f69988</color> <color name="red_200">#f69988</color>
......
package com.gingersoft.gsa.cloud.table.mvp.presenter; package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.graphics.Color;
import android.text.TextUtils; import android.text.TextUtils;
import android.widget.BaseAdapter;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult; import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
...@@ -14,8 +12,8 @@ import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; ...@@ -14,8 +12,8 @@ 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.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.FoodCombo;
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.Modifier; import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils; import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils; import com.gingersoft.gsa.cloud.database.utils.ModifierDaoUtils;
......
...@@ -2,10 +2,10 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,10 +2,10 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.graphics.Color; import android.graphics.Color;
import android.util.Log;
import android.view.View; import android.view.View;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCUtil;
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.OrderBean; 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;
...@@ -214,7 +214,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -214,7 +214,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
} }
/** /**
* 打印上菜紙 * 送單
*/ */
private void printSendOrder(List<OrderDetail> newFoods) { private void printSendOrder(List<OrderDetail> newFoods) {
MyOrderManage.getInstance().setNewFoodList(newFoods); MyOrderManage.getInstance().setNewFoodList(newFoods);
...@@ -223,6 +223,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -223,6 +223,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.addParam("type", 3) .addParam("type", 3)
.build() .build()
.callAsync((cc, result) -> { .callAsync((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
if (result.isSuccess()) { if (result.isSuccess()) {
//打印成功 //打印成功
} }
...@@ -265,6 +266,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -265,6 +266,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.setActionName("printActivity") .setActionName("printActivity")
.build() .build()
.callAsync((cc, result) -> { .callAsync((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
if (result.isSuccess()) { if (result.isSuccess()) {
//打印成功 //打印成功
mRootView.printSuccess(); mRootView.printSuccess();
......
...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter; ...@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application; import android.app.Application;
import android.os.CountDownTimer; import android.os.CountDownTimer;
import android.util.Log;
import android.view.View; import android.view.View;
import com.billy.cc.core.component.CC; import com.billy.cc.core.component.CC;
...@@ -149,6 +150,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -149,6 +150,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.addParam("type", 0) .addParam("type", 0)
.build() .build()
.callAsync((cc, result) -> { .callAsync((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
if (result.isSuccess()) { if (result.isSuccess()) {
//打印成功 //打印成功
} }
......
...@@ -28,7 +28,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; ...@@ -28,7 +28,6 @@ import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.VibratorUtils; import com.gingersoft.gsa.cloud.base.utils.VibratorUtils;
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.time.TimeUtils;
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;
...@@ -293,7 +292,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -293,7 +292,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
} }
private void initTableDetail() { private void initTableDetail() {
if(OpenTableManage.getDefault().getPeopleNumber() == 0){ if (OpenTableManage.getDefault().getPeopleNumber() == 0) {
showChoosePeopleNumDialog(false); showChoosePeopleNumDialog(false);
} }
} }
......
...@@ -6,6 +6,7 @@ import android.content.Intent; ...@@ -6,6 +6,7 @@ import android.content.Intent;
import android.graphics.Color; import android.graphics.Color;
import android.os.Bundle; import android.os.Bundle;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.Button; import android.widget.Button;
import android.widget.TextView; import android.widget.TextView;
...@@ -516,6 +517,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements ...@@ -516,6 +517,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.addParam("type", 2) .addParam("type", 2)
.build() .build()
.callAsync((cc, result) -> { .callAsync((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
if (result.isSuccess()) { if (result.isSuccess()) {
//打印成功 //打印成功
......
ext.mainApp = true //设置为true,表示此module为主app module,一直以application方式编译 ext.mainApp = true //设置为true,表示此module为主app module,一直以application方式编译
apply from: rootProject.file("cc-settings.gradle") apply from: rootProject.file("cc-settings.gradle")
apply plugin: 'com.jakewharton.butterknife' apply plugin: 'com.jakewharton.butterknife'
//apply plugin: 'android-aspectjx' apply plugin: 'android-aspectjx'
android { android {
signingConfigs { signingConfigs {
GSAndroidNew { GSAndroidNew {
......
...@@ -16,20 +16,24 @@ ...@@ -16,20 +16,24 @@
android:allowBackup="true" android:allowBackup="true"
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="@string/user_login_name" android:label="@string/user_login_name"
tools:replace="android:label"
android:networkSecurityConfig="@xml/network_android" android:networkSecurityConfig="@xml/network_android"
android:roundIcon="@mipmap/ic_logo" android:roundIcon="@mipmap/ic_logo"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme"
tools:replace="android:label">
<activity android:name=".mvp.ui.activity.LoginActivity" <activity
android:name=".mvp.ui.activity.LoginActivity"
android:windowSoftInputMode="adjustResize|stateHidden"
android:launchMode="singleTop"> android:launchMode="singleTop">
<intent-filter> <intent-filter>
<action android:name="android.intent.action.MAIN" /> <action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" /> <action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
</activity> </activity>
<activity android:name=".mvp.ui.activity.SwitchServerActivity" />
<meta-data <meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration" android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
......
...@@ -5,6 +5,7 @@ import com.billy.cc.core.component.CCResult; ...@@ -5,6 +5,7 @@ import com.billy.cc.core.component.CCResult;
import com.billy.cc.core.component.CCUtil; import com.billy.cc.core.component.CCUtil;
import com.billy.cc.core.component.IComponent; import com.billy.cc.core.component.IComponent;
import com.gingersoft.gsa.cloud.user.login.mvp.ui.activity.LoginActivity; import com.gingersoft.gsa.cloud.user.login.mvp.ui.activity.LoginActivity;
import com.gingersoft.gsa.cloud.user.login.mvp.ui.activity.SwitchServerActivity;
public class ComponentLogin implements IComponent { public class ComponentLogin implements IComponent {
...@@ -43,6 +44,11 @@ public class ComponentLogin implements IComponent { ...@@ -43,6 +44,11 @@ public class ComponentLogin implements IComponent {
case "getInfo": case "getInfo":
getInfo(cc); getInfo(cc);
break; break;
case "switchServer":
//切換環境
CCUtil.navigateTo(cc, SwitchServerActivity.class);
CC.sendCCResult(cc.getCallId(), CCResult.success());
break;
default: default:
//这个逻辑分支上没有调用CC.sendCCResult(...),是一种错误的示例 //这个逻辑分支上没有调用CC.sendCCResult(...),是一种错误的示例
//并且方法的返回值为false,代表不会异步调用CC.sendCCResult(...) //并且方法的返回值为false,代表不会异步调用CC.sendCCResult(...)
......
package com.gingersoft.gsa.cloud.user.login.mvp.ui.activity; package com.gingersoft.gsa.cloud.user.login.mvp.ui.activity;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog;
import android.content.Intent; import android.content.Intent;
import android.os.Bundle; import android.os.Bundle;
import android.text.Editable; import android.text.Editable;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.CheckBox; import android.widget.CheckBox;
import android.widget.EditText; import android.widget.EditText;
...@@ -19,7 +23,6 @@ import com.gingersoft.gsa.cloud.base.utils.log.LogUtil; ...@@ -19,7 +23,6 @@ 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.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean; import com.gingersoft.gsa.cloud.ui.bean.mode.LoginBean;
import com.gingersoft.gsa.cloud.ui.bean.view.SectionTextItem;
import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.ChooseRestaurantDialog;
import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog; import com.gingersoft.gsa.cloud.ui.widget.dialog.LoadingDialog;
import com.gingersoft.gsa.cloud.user.login.R; import com.gingersoft.gsa.cloud.user.login.R;
...@@ -81,6 +84,10 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -81,6 +84,10 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
ImageView icClearAccount; ImageView icClearAccount;
@BindView(R2.id.rb_remember_password) @BindView(R2.id.rb_remember_password)
CheckBox mRbRememberPwd; CheckBox mRbRememberPwd;
@BindView(R2.id.ic_look_pwd)
ImageView mIvSeePwd;
private boolean passwrodVisibility = false;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
...@@ -120,6 +127,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -120,6 +127,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
// jumpActivity(); // jumpActivity();
// finish(); // finish();
// } // }
edPwd.setOnFocusChangeListener(mOnFocusChangeListener);
edAccount.setOnFocusChangeListener(mOnFocusChangeListener);
edPwd.addTextChangedListener(new TextWatcher() { edPwd.addTextChangedListener(new TextWatcher() {
@Override @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { public void beforeTextChanged(CharSequence s, int start, int count, int after) {
...@@ -133,14 +142,15 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -133,14 +142,15 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
@Override @Override
public void afterTextChanged(Editable s) { public void afterTextChanged(Editable s) {
if (edPwd.getText().equals("")) { if (edPwd.getText() != null && edPwd.getText().toString().equals("")) {
icClear.setVisibility(View.GONE); icClear.setVisibility(View.GONE);
mIvSeePwd.setVisibility(View.GONE);
} else { } else {
icClear.setVisibility(View.VISIBLE); icClear.setVisibility(View.VISIBLE);
mIvSeePwd.setVisibility(View.VISIBLE);
} }
} }
}); });
edAccount.addTextChangedListener(new TextWatcher() { edAccount.addTextChangedListener(new TextWatcher() {
@Override @Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) { public void beforeTextChanged(CharSequence s, int start, int count, int after) {
...@@ -149,7 +159,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -149,7 +159,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
@Override @Override
public void onTextChanged(CharSequence s, int start, int before, int count) { public void onTextChanged(CharSequence s, int start, int before, int count) {
if (edAccount.getText().equals("")) { if (edPwd.getText() != null && edAccount.getText().toString().equals("")) {
icClearAccount.setVisibility(View.GONE); icClearAccount.setVisibility(View.GONE);
} else { } else {
icClearAccount.setVisibility(View.VISIBLE); icClearAccount.setVisibility(View.VISIBLE);
...@@ -163,6 +173,39 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -163,6 +173,39 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
}); });
} }
private View.OnFocusChangeListener mOnFocusChangeListener = new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
editFocusChange(v, hasFocus);
if (v.getId() == R.id.ed_login_user_account && hasFocus) {
//賬號框獲得焦點
if (edAccount.getText() != null && edAccount.getText().toString().length() > 0) {
icClearAccount.setVisibility(View.VISIBLE);
} else {
icClearAccount.setVisibility(View.GONE);
}
} else {
icClearAccount.setVisibility(View.GONE);
}
}
};
private void editFocusChange(View v, boolean hasFocus) {
if (v.getId() == R.id.ed_login_user_pwd && hasFocus) {
//密碼框獲得焦點
if (edPwd.getText() != null && edPwd.getText().toString().length() > 0) {
icClear.setVisibility(View.VISIBLE);
mIvSeePwd.setVisibility(View.VISIBLE);
} else {
icClear.setVisibility(View.GONE);
mIvSeePwd.setVisibility(View.GONE);
}
} else {
icClear.setVisibility(View.GONE);
mIvSeePwd.setVisibility(View.GONE);
}
}
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
...@@ -235,6 +278,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -235,6 +278,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
finish(); finish();
} }
private Dialog dialog1;
@Override @Override
public void loginSuccess(LoginBean loginBean) { public void loginSuccess(LoginBean loginBean) {
//記住密碼 //記住密碼
...@@ -270,30 +315,36 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -270,30 +315,36 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
} }
jumpDownloadActivity(); jumpDownloadActivity();
} else { } else {
new ChooseRestaurantDialog.BottomListSheetBuilder(this) if (!isFinishing()) {
.addBrandItems(brandsBeans) dialog1 = new ChooseRestaurantDialog.BottomListSheetBuilder(this)
.setOnItemClickListener(new ChooseRestaurantDialog.BottomListSheetBuilder.OnItemClickListener() { .addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> {
@Override
public void onItemClick(ChooseRestaurantDialog dialog, SectionTextItem item, int position) {
LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brands, item.getId()); LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brands, item.getId());
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(); jumpDownloadActivity();
killMyself();
dialog.dismiss(); dialog.dismiss();
} killMyself();
}) }).build();
.build() if (!isFinishing() && dialog1 != null && !dialog1.isShowing()) {
.show(); dialog1.show();
}
}
} }
} }
} }
} }
@Override
protected void onDestroy() {
super.onDestroy();
Log.e("error", "登陸頁面銷毀:onDestroy");
// if (dialog != null) {
// dialog.dismiss();
// }
}
/** /**
* 記住密碼 * 記住密碼
*/ */
...@@ -384,9 +435,28 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -384,9 +435,28 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
} }
@Override @Override
@OnClick({R2.id.tv_gsa_user_login, R2.id.iv_clear_pwd, R2.id.iv_clear_account}) @OnClick({R2.id.tv_gsa_user_login, R2.id.iv_clear_pwd, R2.id.iv_clear_account, R2.id.tv_remember_pwd_text, R2.id.ic_look_pwd})
public void onClick(View v) { public void onClick(View v) {
switch (v.getId()) { switch (v.getId()) {
case R.id.ic_look_pwd:
passwrodVisibility = !passwrodVisibility;
if (passwrodVisibility) {
//如果选中,显示密码
mIvSeePwd.setImageDrawable(getResources().getDrawable(R.mipmap.ic_password_show));
edPwd.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
edPwd.setSelection(edPwd.getText().toString().length());
} else {
//否则隐藏密码
mIvSeePwd.setImageDrawable(getResources().getDrawable(R.mipmap.ic_password_hide));
edPwd.setTransformationMethod(PasswordTransformationMethod.getInstance());
edPwd.setSelection(edPwd.getText().toString().length());
}
edPwd.setSelection(edPwd.getText() == null ? 0 : edPwd.getText().toString().length());
break;
case R.id.tv_remember_pwd_text:
//記住密碼
mRbRememberPwd.toggle();
break;
case R.id.tv_gsa_user_login: case R.id.tv_gsa_user_login:
//登陸 //登陸
if (edAccount.getText() != null && edPwd.getText() != null) { if (edAccount.getText() != null && edPwd.getText() != null) {
......
...@@ -19,7 +19,6 @@ import com.jess.arms.utils.ArmsUtils; ...@@ -19,7 +19,6 @@ import com.jess.arms.utils.ArmsUtils;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import butterknife.BindView; import butterknife.BindView;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -81,6 +80,7 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im ...@@ -81,6 +80,7 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im
HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_HK; HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_HK;
} }
finish(); finish();
startActivity(new Intent(mContext, LoginActivity.class));
}); });
} }
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
android:id="@+id/iv_clear_account" android:id="@+id/iv_clear_account"
android:layout_width="@dimen/dp_30" android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30" android:layout_height="@dimen/dp_30"
android:layout_marginRight="@dimen/dp_10" android:padding="@dimen/dp_5"
android:src="@mipmap/ic_clear_text" android:src="@mipmap/ic_clear_text"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/ed_login_user_account" app:layout_constraintBottom_toBottomOf="@id/ed_login_user_account"
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
android:textSize="@dimen/edit_text_size" android:textSize="@dimen/edit_text_size"
app:layout_constraintBottom_toBottomOf="@id/iv_login_pwd_icon" app:layout_constraintBottom_toBottomOf="@id/iv_login_pwd_icon"
app:layout_constraintLeft_toRightOf="@id/iv_login_pwd_icon" app:layout_constraintLeft_toRightOf="@id/iv_login_pwd_icon"
app:layout_constraintRight_toLeftOf="@id/iv_clear_pwd" app:layout_constraintRight_toLeftOf="@id/ic_look_pwd"
app:layout_constraintTop_toTopOf="@id/iv_login_pwd_icon" /> app:layout_constraintTop_toTopOf="@id/iv_login_pwd_icon" />
<CheckBox <CheckBox
...@@ -102,6 +102,7 @@ ...@@ -102,6 +102,7 @@
app:layout_constraintTop_toBottomOf="@id/ed_login_user_pwd" /> app:layout_constraintTop_toBottomOf="@id/ed_login_user_pwd" />
<TextView <TextView
android:id="@+id/tv_remember_pwd_text"
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_5" android:layout_marginLeft="@dimen/dp_5"
...@@ -113,10 +114,21 @@ ...@@ -113,10 +114,21 @@
app:layout_constraintTop_toTopOf="@id/rb_remember_password" /> app:layout_constraintTop_toTopOf="@id/rb_remember_password" />
<ImageView <ImageView
android:id="@+id/ic_look_pwd"
android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30"
android:padding="@dimen/dp_5"
android:visibility="gone"
android:src="@mipmap/ic_password_hide"
app:layout_constraintBottom_toBottomOf="@id/ed_login_user_pwd"
app:layout_constraintRight_toLeftOf="@id/iv_clear_pwd"
app:layout_constraintTop_toTopOf="@id/ed_login_user_pwd" />
<ImageView
android:id="@+id/iv_clear_pwd" android:id="@+id/iv_clear_pwd"
android:layout_width="@dimen/dp_30" android:layout_width="@dimen/dp_30"
android:layout_height="@dimen/dp_30" android:layout_height="@dimen/dp_30"
android:layout_marginRight="@dimen/dp_10" android:padding="@dimen/dp_5"
android:src="@mipmap/ic_clear_text" android:src="@mipmap/ic_clear_text"
android:visibility="gone" android:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/ed_login_user_pwd" app:layout_constraintBottom_toBottomOf="@id/ed_login_user_pwd"
......

5.94 KB | W: | H:

522 Bytes | W: | H:

user-login/src/main/res/mipmap-xhdpi/ic_clear_text.png
user-login/src/main/res/mipmap-xhdpi/ic_clear_text.png
user-login/src/main/res/mipmap-xhdpi/ic_clear_text.png
user-login/src/main/res/mipmap-xhdpi/ic_clear_text.png
  • 2-up
  • Swipe
  • Onion skin
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