Commit 7fc67f14 by 王宇航

3-05 解決N5打印問題,登陸UI優化

parent 4522d151
...@@ -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,13 +62,14 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -61,13 +62,14 @@ 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();
...@@ -105,6 +107,7 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -105,6 +107,7 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 绘制刻度 * 绘制刻度
* <p>通过zoomRect计算出每个刻度的宽度,迭代绘制刻度</p> * <p>通过zoomRect计算出每个刻度的宽度,迭代绘制刻度</p>
*
* @param canvas 画布 * @param canvas 画布
* @param zoomRect 缩放之后范围 * @param zoomRect 缩放之后范围
* @param rect 原始范围 * @param rect 原始范围
...@@ -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,6 +149,7 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -146,6 +149,7 @@ 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 每个刻度的宽度
...@@ -164,6 +168,7 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -164,6 +168,7 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 绘制文字 * 绘制文字
* <p>完成文字偏移,文字旋转,绘制</p> * <p>完成文字偏移,文字旋转,绘制</p>
*
* @param canvas 画布 * @param canvas 画布
* @param contentStr 文字内容 * @param contentStr 文字内容
* @param startX 文字绘制起始X位置 * @param startX 文字绘制起始X位置
...@@ -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,15 +199,17 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -194,15 +199,17 @@ 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 canvas 画布
* @param startX 网格起始X位置 * @param startX 网格起始X位置
* @param rect 原始范围 * @param rect 原始范围
...@@ -222,6 +229,7 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -222,6 +229,7 @@ public class HorizontalAxis extends BaseAxis<String> {
/** /**
* 计算出裁切轴之后的范围 * 计算出裁切轴之后的范围
*
* @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,6 +279,7 @@ public class HorizontalAxis extends BaseAxis<String> { ...@@ -270,6 +279,7 @@ public class HorizontalAxis extends BaseAxis<String> {
public boolean isShowFullValue() { public boolean isShowFullValue() {
return isShowFullValue; return isShowFullValue;
} }
/** /**
* 设置是否需要偏移来完整显示左右两边文字 * 设置是否需要偏移来完整显示左右两边文字
* *
......
...@@ -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())
......
...@@ -15,7 +15,6 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication; ...@@ -15,7 +15,6 @@ import com.gingersoft.gsa.cloud.base.application.GsaCloudApplication;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
import com.gingersoft.gsa.cloud.database.bean.Function; import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.database.utils.FunctionDaoUtils;
import com.gingersoft.gsa.cloud.main.BuildConfig; import com.gingersoft.gsa.cloud.main.BuildConfig;
import com.gingersoft.gsa.cloud.main.R; import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2; import com.gingersoft.gsa.cloud.main.R2;
...@@ -41,6 +40,7 @@ import androidx.fragment.app.FragmentManager; ...@@ -41,6 +40,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.GridLayoutManager; import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView; import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView; import butterknife.BindView;
import butterknife.BindViews;
import butterknife.OnClick; import butterknife.OnClick;
import static com.jess.arms.utils.Preconditions.checkNotNull; import static com.jess.arms.utils.Preconditions.checkNotNull;
...@@ -88,6 +88,8 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -88,6 +88,8 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
QMUIPullRefreshLayout refresh; QMUIPullRefreshLayout refresh;
private MainTopFragment mainTopFragment; private MainTopFragment mainTopFragment;
@BindViews({R2.id.tv_function_name1, R2.id.tv_function_name2, R2.id.tv_function_name3})
TextView[] mTvFunctionNames;
@Override @Override
public void setupActivityComponent(@NonNull AppComponent appComponent) { public void setupActivityComponent(@NonNull AppComponent appComponent) {
...@@ -147,11 +149,29 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -147,11 +149,29 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
private void initFuncationData() { private void initFuncationData() {
//拿到功能列表數據 //拿到功能列表數據
FunctionDaoUtils functionDao = new FunctionDaoUtils(mContext); // FunctionDaoUtils functionDao = new FunctionDaoUtils(mContext);
List<Function> functions = functionDao.queryAllFunction(); // List<Function> functions = functionDao.queryAllFunction();
if (functions == null) { // if (functions == null) {
return; // return;
} // }
List<Function> functions = new ArrayList<>();
functions.add(new Function((long) 150,0,5,"點餐",0));
functions.add(new Function((long) 138,150,5,"餐臺模式",0));
functions.add(new Function((long) 139,150,5,"外送模式",0));
functions.add(new Function((long) 140,150,5,"外賣模式",0));
functions.add(new Function((long) 141,150,5,"預點餐模式",0));
functions.add(new Function((long) 151,0,5,"管理",0));
functions.add(new Function((long) 142,151,5,"餐牌管理",0));
functions.add(new Function((long) 143,151,5,"餐臺管理",0));
functions.add(new Function((long) 144,151,5,"打印管理",0));
functions.add(new Function((long) 145,151,5,"支付管理",0));
functions.add(new Function((long) 146,151,5,"折扣管理",0));
functions.add(new Function((long) 152,0,5,"員工",0));
functions.add(new Function((long) 147,152,5,"員工管理",0));
functions.add(new Function((long) 148,152,5,"權限管理",0));
functions.add(new Function((long) 149,152,5,"操作記錄",0));
//將功能列表數據分組 //將功能列表數據分組
SparseArray<String> parents = new SparseArray<>(); SparseArray<String> parents = new SparseArray<>();
SparseArray<List<Function>> funMap = new SparseArray<>(); SparseArray<List<Function>> funMap = new SparseArray<>();
...@@ -176,6 +196,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N ...@@ -176,6 +196,7 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
private void initAdapter(SparseArray<String> parents, SparseArray<List<Function>> funMap, int i, int p, RecyclerView rvOrdering, int i2) { private void initAdapter(SparseArray<String> parents, SparseArray<List<Function>> funMap, int i, int p, RecyclerView rvOrdering, int i2) {
if (funMap.size() > i && parents.size() > i) { if (funMap.size() > i && parents.size() > i) {
mTvFunctionNames[i].setText(parents.get(parents.keyAt(i)));
List<Function> mOrderingMeals = funMap.get(parents.keyAt(i)); List<Function> mOrderingMeals = funMap.get(parents.keyAt(i));
MainOrderingAdapter adapter = new MainOrderingAdapter(p, mOrderingMeals); MainOrderingAdapter adapter = new MainOrderingAdapter(p, mOrderingMeals);
rvOrdering.setLayoutManager(new GridLayoutManager(mContext, i2) { rvOrdering.setLayoutManager(new GridLayoutManager(mContext, i2) {
......
...@@ -130,7 +130,7 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M ...@@ -130,7 +130,7 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
private void getInfo() { 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) + "");
} }
/** /**
...@@ -362,7 +362,7 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M ...@@ -362,7 +362,7 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
lineChart.setShowChartName(false); lineChart.setShowChartName(false);
//底部不顯示顏色代表的意思 //底部不顯示顏色代表的意思
lineChart.getLegend().setDisplay(false); lineChart.getLegend().setDisplay(false);
lineChart.getMatrixHelper().setWidthMultiple(1.5f); lineChart.getMatrixHelper().setWidthMultiple(1.2f);
lineChart.getMatrixHelper().setCanZoom(true); lineChart.getMatrixHelper().setCanZoom(true);
lineChart.getHorizontalAxis().setRotateAngle(0);//設置底部文字旋轉角度 lineChart.getHorizontalAxis().setRotateAngle(0);//設置底部文字旋轉角度
lineChart.setFirstAnim(true); lineChart.setFirstAnim(true);
......
...@@ -283,10 +283,10 @@ ...@@ -283,10 +283,10 @@
android:paddingBottom="@dimen/dp_16"> android:paddingBottom="@dimen/dp_16">
<TextView <TextView
android:id="@+id/tv_function_name2"
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_15" android:layout_marginLeft="@dimen/dp_15"
android:text="管理"
android:textColor="#181818" android:textColor="#181818"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
...@@ -305,11 +305,11 @@ ...@@ -305,11 +305,11 @@
android:background="#F0F0F0" /> android:background="#F0F0F0" />
<TextView <TextView
android:id="@+id/tv_function_name3"
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_15" android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_20" android:layout_marginTop="@dimen/dp_20"
android:text="員工"
android:textColor="#181818" android:textColor="#181818"
android:textSize="@dimen/sp_14" /> android:textSize="@dimen/sp_14" />
...@@ -344,10 +344,10 @@ ...@@ -344,10 +344,10 @@
android:paddingBottom="@dimen/dp_20"> android:paddingBottom="@dimen/dp_20">
<TextView <TextView
android:id="@+id/tv_function_name1"
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_22" android:layout_marginLeft="@dimen/dp_22"
android:text="點餐"
android:textColor="#181818" android:textColor="#181818"
android:textSize="@dimen/sp_17" /> android:textSize="@dimen/sp_17" />
......
...@@ -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;
}
}
...@@ -9,6 +9,7 @@ import android.os.Bundle; ...@@ -9,6 +9,7 @@ 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;
...@@ -21,6 +22,7 @@ import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils; ...@@ -21,6 +22,7 @@ import com.gingersoft.gsa.cloud.base.utils.toast.ToastUtils;
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;
import com.hyweb.n5.lib.exception.NoInitPrinterException;
import com.hyweb.n5.lib.util.PrinterUtil; import com.hyweb.n5.lib.util.PrinterUtil;
import com.hyweb.n5.server.aidl.IOnPrintCallback; import com.hyweb.n5.server.aidl.IOnPrintCallback;
import com.jess.arms.base.BaseActivity; import com.jess.arms.base.BaseActivity;
...@@ -100,6 +102,29 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -100,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) {
...@@ -181,37 +206,71 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -181,37 +206,71 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} else if (mN5.contains(model)) { } else if (mN5.contains(model)) {
//N5打印 //N5打印
try { try {
try {
PrinterUtil.appendImage(bitmap, PrinterConstant.ALIGN_CENTER); PrinterUtil.appendImage(bitmap, PrinterConstant.ALIGN_CENTER);
PrinterUtil.startPrint(true, new IOnPrintCallback() { startN5Print();
} catch (NullPointerException e) {
ToastUtils.show(mContext, "打印失敗,請重試");
Log.e("error", "打印失敗請重試:" + e.getMessage());
finish();
}
} catch (RemoteException e) {
e.printStackTrace();
printFile();
}
} else {
ToastUtils.show(mContext, "暫不支持本機型打印");
printFile();
}
}
private void startN5Print() {
try {
PrinterUtil.startPrint(true, new IOnPrintCallback.Stub() {
@Override @Override
public void onPrintResult(int i) { public void onPrintResult(int i) throws RemoteException {
Log.e("error", "打印回調:" + i);
Looper.prepare(); Looper.prepare();
if (i == 0) { if (i == 0) {
//打印成功 //打印成功
ToastUtils.show(mContext, "N5打印結果:成功");
printSuccess(); printSuccess();
} else { } else {
//打印失敗 //打印失敗
ToastUtils.show(mContext, "N5打印結果:失敗");
printFile(); printFile();
} }
} }
@Override @Override
public IBinder asBinder() { public IBinder asBinder() {
return null; return this;
} }
}); });
} catch (RemoteException e) { } catch (RemoteException e) {
e.printStackTrace(); e.printStackTrace();
printFile();
} }
}
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 { } else {
ToastUtils.show(mContext, "暫不支持本機型打印"); //打印失敗
ToastUtils.show(mContext, "N5打印結果:失敗");
printFile(); printFile();
} }
} }
@Override
public IBinder asBinder() {
return null;
}
};
/** /**
* 打印失敗 * 打印失敗
*/ */
...@@ -231,6 +290,12 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print ...@@ -231,6 +290,12 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} }
@Override @Override
protected void onDestroy() {
super.onDestroy();
Log.e("error", "PrintActivity :onDestroy");
}
@Override
public void initIntent() { public void initIntent() {
} }
......
...@@ -2,8 +2,8 @@ package com.gingersoft.gsa.cloud.base.application; ...@@ -2,8 +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.Build;
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.elvishew.xlog.LogConfiguration; import com.elvishew.xlog.LogConfiguration;
...@@ -56,7 +56,6 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -56,7 +56,6 @@ public class GsaCloudApplication extends BaseApplication {
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);
...@@ -66,15 +65,13 @@ public class GsaCloudApplication extends BaseApplication { ...@@ -66,15 +65,13 @@ public class GsaCloudApplication extends BaseApplication {
AppCrashHandler.getInstance().init(this, "test"); AppCrashHandler.getInstance().init(this, "test");
androidSetting = new CurrentAndroidSetting(); androidSetting = new CurrentAndroidSetting();
if (mV2.contains(Build.MODEL)) {
} else if (mN5.contains(Build.MODEL)) {
try { try {
//初始化N5打印 //初始化N5打印
PrinterUtil.initPrinter(this); PrinterUtil.initPrinter(this);
} catch (NoInitPrinterException | RemoteException e) { } catch (NoInitPrinterException | RemoteException e) {
e.printStackTrace(); e.printStackTrace();
} Log.e("error", "GsaCloudApplication打印初始化失敗:" + e.getMessage());
} }
} }
......
...@@ -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;
......
...@@ -90,6 +90,14 @@ public class Function { ...@@ -90,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;
......
...@@ -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)));
......
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;
...@@ -13,8 +11,8 @@ import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage; ...@@ -13,8 +11,8 @@ import com.gingersoft.gsa.cloud.base.common.bean.mealManage.MyOrderManage;
import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage; import com.gingersoft.gsa.cloud.base.common.bean.mealManage.OpenTableManage;
import com.gingersoft.gsa.cloud.base.utils.JsonUtils; import com.gingersoft.gsa.cloud.base.utils.JsonUtils;
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.table.R; import com.gingersoft.gsa.cloud.table.R;
......
...@@ -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;
...@@ -211,7 +211,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -211,7 +211,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);
...@@ -220,6 +220,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -220,6 +220,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()) {
//打印成功 //打印成功
} }
...@@ -262,6 +263,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra ...@@ -262,6 +263,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;
...@@ -148,6 +149,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont ...@@ -148,6 +149,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;
...@@ -289,7 +288,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen ...@@ -289,7 +288,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()) {
//打印成功 //打印成功
......
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
<activity <activity
android:name=".mvp.ui.activity.LoginActivity" 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" />
......
...@@ -6,6 +6,9 @@ import android.content.Intent; ...@@ -6,6 +6,9 @@ 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;
...@@ -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,15 +278,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -235,15 +278,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
finish(); finish();
} }
@Override private Dialog dialog1;
protected void onDestroy() {
super.onDestroy();
if (dialog != null) {
dialog.dismiss();
}
}
private Dialog dialog;
@Override @Override
public void loginSuccess(LoginBean loginBean) { public void loginSuccess(LoginBean loginBean) {
...@@ -280,7 +315,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -280,7 +315,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
} }
jumpDownloadActivity(); jumpDownloadActivity();
} else { } else {
dialog = new ChooseRestaurantDialog.BottomListSheetBuilder(this) if (!isFinishing()) {
dialog1 = new ChooseRestaurantDialog.BottomListSheetBuilder(this)
.addBrandItems(brandsBeans) .addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> { .setOnItemClickListener((dialog, item, position) -> {
LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brands, item.getId()); LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brands, item.getId());
...@@ -291,10 +327,22 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -291,10 +327,22 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
dialog.dismiss(); dialog.dismiss();
killMyself(); killMyself();
}).build(); }).build();
dialog.show(); if (!isFinishing() && dialog1 != null && !dialog1.isShowing()) {
dialog1.show();
}
}
}
} }
} }
} }
@Override
protected void onDestroy() {
super.onDestroy();
Log.e("error", "登陸頁面銷毀:onDestroy");
// if (dialog != null) {
// dialog.dismiss();
// }
} }
/** /**
...@@ -387,9 +435,28 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login ...@@ -387,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) {
......
...@@ -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