Commit 7fc67f14 by 王宇航

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

parent 4522d151
......@@ -16,6 +16,7 @@ import java.util.List;
/**
* 图表横轴
*
* @author huangyanbin
*/
......@@ -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> {
/**
* 计算刻度大小
* <p>通过计算刻度的宽高得到轴的大小,然后保存到scaleData对象中,以便后面的计算</p>
*
* @param chartData 图表数据
* @param rect 图表原始范围
* @param paint 画笔
* @param rect 图表原始范围
* @param paint 画笔
*/
@Override
public void computeScale(ChartData<? extends BarData> chartData, Rect rect, Paint paint) {
if(isDisplay()) {
scaleData = chartData.getScaleData();
if (isDisplay()) {
scaleData = chartData.getScaleData();
scaleStyle.fillPaint(paint);
Paint.FontMetrics fontMetrics = paint.getFontMetrics();
textHeight = (int) (fontMetrics.descent - fontMetrics.ascent);
......@@ -105,13 +107,14 @@ public class HorizontalAxis extends BaseAxis<String> {
/**
* 绘制刻度
* <p>通过zoomRect计算出每个刻度的宽度,迭代绘制刻度</p>
* @param canvas 画布
* @param zoomRect 缩放之后范围
* @param rect 原始范围
* @param paint 画笔
*
* @param canvas 画布
* @param zoomRect 缩放之后范围
* @param rect 原始范围
* @param paint 画笔
* @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();
List<String> groupDataList = chartData.getCharXDataList();
......@@ -122,21 +125,21 @@ public class HorizontalAxis extends BaseAxis<String> {
}
float startY;
if (direction == AxisDirection.BOTTOM) {
startY = zoomRect.bottom -scaleData.scaleRect.bottom/2;
startY = zoomRect.bottom - scaleData.scaleRect.bottom / 2;
} 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;
double perWidth = ((double) width) / (isLine? groupSize -1 : groupSize);
int filterMultiple = (int) (textWidth / perWidth +1);
double perWidth = ((double) width) / (isLine ? groupSize - 1 : groupSize);
int filterMultiple = (int) (textWidth / perWidth + 1);
for (int i = 0; i < groupSize; i++) {
String content = groupDataList.get(i);
int startX = getGravityStartX(left, i, perWidth);
//留1px缓冲
if (startX >= rect.left-1 && startX<= rect.right+1) {
if( i % filterMultiple == 0) {
drawText(canvas, content,startX, startY,i, paint);
if (startX >= rect.left - 1 && startX <= rect.right + 1) {
if (i % filterMultiple == 0) {
drawText(canvas, content, startX, startY, i, paint);
drawGrid(canvas, startX, rect, scaleData.scaleRect, paint);
}
}
......@@ -146,7 +149,8 @@ public class HorizontalAxis extends BaseAxis<String> {
/**
* 获取刻度起始X的位置
* <p>根据gravity来判断偏移的值</p>
* @param left 左边
*
* @param left 左边
* @param position 位置
* @param perWidth 每个刻度的宽度
* @return 刻度起始X的位置
......@@ -164,12 +168,13 @@ public class HorizontalAxis extends BaseAxis<String> {
/**
* 绘制文字
* <p>完成文字偏移,文字旋转,绘制</p>
* @param canvas 画布
*
* @param canvas 画布
* @param contentStr 文字内容
* @param startX 文字绘制起始X位置
* @param startY 文字绘制起始Y位置
* @param position 刻度序号
* @param paint 画笔
* @param startX 文字绘制起始X位置
* @param startY 文字绘制起始Y位置
* @param position 刻度序号
* @param paint 画笔
*/
private void drawText(Canvas canvas, String contentStr, int startX, float startY, int position, Paint paint) {
String content = formatData(contentStr);
......@@ -177,10 +182,10 @@ public class HorizontalAxis extends BaseAxis<String> {
paint.setTextAlign(Paint.Align.CENTER);
if (isShowFullValue && position == 0) {
int width = (int) paint.measureText(content);
startX+= width/2;
startX += width / 2;
} else if (isShowFullValue && position == scaleData.rowSize - 1) {
int width = (int) paint.measureText(content);
startX-= width/2;
startX -= width / 2;
}
if (isRotateAngle) {
canvas.save();
......@@ -194,35 +199,38 @@ public class HorizontalAxis extends BaseAxis<String> {
/**
* 格式化文字
*
* @param data 文字
* @return 格式化完成之后的文字
*/
private String formatData(String data){
return getFormat()!= null ? getFormat().format(data) :data;
private String formatData(String data) {
return getFormat() != null ? getFormat().format(data) : data;
}
/**
* 绘制竖向网格
* @param canvas 画布
* @param startX 网格起始X位置
* @param rect 原始范围
*
* @param canvas 画布
* @param startX 网格起始X位置
* @param rect 原始范围
* @param scaleRect 缩放范围
* @param paint 画布
* @param paint 画布
*/
public void drawGrid(Canvas canvas, float startX, Rect rect, Rect scaleRect, Paint paint) {
if (gridStyle != null && isDrawGrid) {
gridStyle.fillPaint(paint);
Path path = new Path();
path.moveTo(startX, rect.top + scaleRect.top);
path.lineTo(startX, rect.bottom - scaleRect.bottom);
canvas.drawPath(path, paint);
gridStyle.fillPaint(paint);
Path path = new Path();
path.moveTo(startX, rect.top + scaleRect.top);
path.lineTo(startX, rect.bottom - scaleRect.bottom);
canvas.drawPath(path, paint);
}
}
/**
* 计算出裁切轴之后的范围
* @param rect 原始范围
*
* @param rect 原始范围
* @param scaleRect 缩放范围
* @return 上下左右的大小
*/
......@@ -242,8 +250,8 @@ public class HorizontalAxis extends BaseAxis<String> {
/**
* 设置轴方位
* <p>横轴只能设置上下方位</p>
* @param axisDirection 轴方位
*
* @param axisDirection 轴方位
*/
@Override
public void setAxisDirection(int axisDirection) {
......@@ -255,6 +263,7 @@ public class HorizontalAxis extends BaseAxis<String> {
/**
* 设置文字旋转角度
*
* @param rotateAngle
*/
public void setRotateAngle(int rotateAngle) {
......@@ -270,10 +279,11 @@ public class HorizontalAxis extends BaseAxis<String> {
public boolean isShowFullValue() {
return isShowFullValue;
}
/**
* 设置是否需要偏移来完整显示左右两边文字
*
* @param showFullValue 设置是否需要偏移
* @param showFullValue 设置是否需要偏移
*/
public void setShowFullValue(boolean showFullValue) {
isShowFullValue = showFullValue;
......
......@@ -36,7 +36,7 @@ public class ScaleData {
public List<Double> getScaleList(int direction){
List<Double> scaleList = new ArrayList<>();
List<Double> scaleList = new ArrayList<>();//asdfghjkl
int total = (int) (totalScale *zoom);
double scale = getTotalScaleLength(direction) /(total-1);
double minValue = getMinScaleValue(direction);
......
......@@ -59,14 +59,15 @@ public abstract class BaseBarLineProvider<C extends BarData> extends BaseProvide
scale = setMaxMinValue(scale[0],scale[1]);
if(columnData.getDirection() == IAxis.AxisDirection.LEFT){
if(!scaleData.isLeftHasValue){
//asdfghjkl
scaleData.maxLeftValue = scale[0];
scaleData.minLeftValue = scale[1];
scaleData.isLeftHasValue = true;
}else{
//asdfghjkl
scaleData.maxLeftValue = Math.max( scaleData.maxLeftValue,scale[0]);
scaleData.minLeftValue = Math.min( scaleData.minLeftValue,scale[1]);
}
}else{
if(!scaleData.isRightHasValue){
scaleData.maxRightValue = scale[0];
......@@ -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;
......
......@@ -5,6 +5,7 @@ import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.PointF;
import android.graphics.Rect;
import android.util.Log;
import com.daivd.chart.data.LineData;
import com.daivd.chart.data.style.LineStyle;
......@@ -43,7 +44,7 @@ public class LineProvider extends BaseBarLineProvider<LineData> {
@Override
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();
rowSize = chartData.getCharXDataList().size();
int filter = rowSize / filterPointTextCount;
......@@ -95,7 +96,9 @@ public class LineProvider extends BaseBarLineProvider<LineData> {
ILineModel model = lineData.getLineModel();
model = model == null ? lineModel : model;
for (int i = 0; i < pointY.size(); i++) {
Log.e("bbb", "前值:" + pointY.get(i));
pointY.set(i, pointY.get(i) - style.getWidth() / 2);
Log.e("bbb", "後值:" + pointY.get(i));
}
for (int i = 0; i < pointX.size(); i++) {
pointX.set(i, pointX.get(i) + style.getWidth() / 2);
......@@ -126,7 +129,7 @@ public class LineProvider extends BaseBarLineProvider<LineData> {
private float getStartX(Rect zoomRect, int position) {
if (isStartZero) {
perWidth = (zoomRect.width()) / (rowSize - 1);
perWidth = (zoomRect.width()) / (rowSize - 1);//得到每個x點之間的寬度
return (float) (position * perWidth + zoomRect.left);
} else {
perWidth = (zoomRect.width()) / rowSize;
......
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.gingersoft.gsa.cloud.main">
<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>
<activity android:name=".mvp.ui.activity.NewMainActivity"/>
<activity android:name=".mvp.ui.activity.MainActivity"/>
......
......@@ -65,7 +65,7 @@ public class MainTopPresenter extends BasePresenter<MainTopContract.Model, MainT
public void getRestaurantReport(String restaurantId) {
RequestBody requestBody = new FormBody.Builder()
.add("restaurantId", restaurantId)
.add("startTime", TimeUtils.getYesterdayTime(TimeUtils.DATE_FORMAT_DATE))
.add("startTime", TimeUtils.getOldDate(-1))
.add("endTime", TimeUtils.getCurrentTimeInString(TimeUtils.DATE_FORMAT_DATE))
.build();
mModel.getRestaurantReport(requestBody)
......@@ -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()
.add("restaurantId", "26")
.add("restaurantId", restaurantId)
.build();
mModel.getOrderInfoChart(requestBody)
.subscribeOn(Schedulers.io())
......
......@@ -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.toast.ToastUtils;
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.R;
import com.gingersoft.gsa.cloud.main.R2;
......@@ -41,6 +40,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
import butterknife.BindViews;
import butterknife.OnClick;
import static com.jess.arms.utils.Preconditions.checkNotNull;
......@@ -88,6 +88,8 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
QMUIPullRefreshLayout refresh;
private MainTopFragment mainTopFragment;
@BindViews({R2.id.tv_function_name1, R2.id.tv_function_name2, R2.id.tv_function_name3})
TextView[] mTvFunctionNames;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
......@@ -147,11 +149,29 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
private void initFuncationData() {
//拿到功能列表數據
FunctionDaoUtils functionDao = new FunctionDaoUtils(mContext);
List<Function> functions = functionDao.queryAllFunction();
if (functions == null) {
return;
}
// FunctionDaoUtils functionDao = new FunctionDaoUtils(mContext);
// List<Function> functions = functionDao.queryAllFunction();
// if (functions == null) {
// 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<List<Function>> funMap = new SparseArray<>();
......@@ -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) {
if (funMap.size() > i && parents.size() > i) {
mTvFunctionNames[i].setText(parents.get(parents.keyAt(i)));
List<Function> mOrderingMeals = funMap.get(parents.keyAt(i));
MainOrderingAdapter adapter = new MainOrderingAdapter(p, mOrderingMeals);
rvOrdering.setLayoutManager(new GridLayoutManager(mContext, i2) {
......
......@@ -130,7 +130,7 @@ public class MainTopFragment extends BaseFragment<MainTopPresenter> implements M
private void getInfo() {
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
lineChart.setShowChartName(false);
//底部不顯示顏色代表的意思
lineChart.getLegend().setDisplay(false);
lineChart.getMatrixHelper().setWidthMultiple(1.5f);
lineChart.getMatrixHelper().setWidthMultiple(1.2f);
lineChart.getMatrixHelper().setCanZoom(true);
lineChart.getHorizontalAxis().setRotateAngle(0);//設置底部文字旋轉角度
lineChart.setFirstAnim(true);
......
......@@ -283,10 +283,10 @@
android:paddingBottom="@dimen/dp_16">
<TextView
android:id="@+id/tv_function_name2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"
android:text="管理"
android:textColor="#181818"
android:textSize="@dimen/sp_14" />
......@@ -305,11 +305,11 @@
android:background="#F0F0F0" />
<TextView
android:id="@+id/tv_function_name3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_15"
android:layout_marginTop="@dimen/dp_20"
android:text="員工"
android:textColor="#181818"
android:textSize="@dimen/sp_14" />
......@@ -344,10 +344,10 @@
android:paddingBottom="@dimen/dp_20">
<TextView
android:id="@+id/tv_function_name1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_22"
android:text="點餐"
android:textColor="#181818"
android:textSize="@dimen/sp_17" />
......
......@@ -12,7 +12,7 @@ import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject;
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 okhttp3.RequestBody;
......@@ -51,13 +51,13 @@ public class PrintListModel extends BaseModel implements PrintListContract.Model
@Override
public Observable<BaseResult> getPrinterList(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class)
return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.getPrinterList(restaurantId);
}
@Override
public Observable<BaseResult> deletePrinter(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class)
return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.deletePrinterList(requestBody);
}
}
\ No newline at end of file
......@@ -12,7 +12,7 @@ import com.jess.arms.di.scope.ActivityScope;
import javax.inject.Inject;
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;
......@@ -50,7 +50,7 @@ public class PrintModel extends BaseModel implements PrintContract.Model {
@Override
public Observable<BaseResult> getPrinterList(int restaurantId) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class)
return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.getPrinterList(restaurantId);
}
}
\ No newline at end of file
......@@ -4,16 +4,14 @@ import android.app.Application;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
import com.google.gson.Gson;
import com.jess.arms.di.scope.ActivityScope;
import com.jess.arms.integration.IRepositoryManager;
import com.jess.arms.mvp.BaseModel;
import com.jess.arms.di.scope.ActivityScope;
import com.joe.print.mvp.contract.PrinterAddContract;
import com.joe.print.mvp.model.server.PrintInfoService;
import javax.inject.Inject;
import com.joe.print.mvp.contract.PrinterAddContract;
import com.joe.print.mvp.model.server.PrinterService;
import io.reactivex.Observable;
import okhttp3.RequestBody;
......@@ -51,12 +49,12 @@ public class PrinterAddModel extends BaseModel implements PrinterAddContract.Mod
@Override
public Observable<BaseResult> addPrinter(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class)
return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.addPrinter(requestBody);
}
@Override
public Observable<BaseResult> updatePrinter(RequestBody requestBody) {
return mRepositoryManager.obtainRetrofitService(PrinterService.class)
return mRepositoryManager.obtainRetrofitService(PrintInfoService.class)
.updatePrinter(requestBody);
}
......
......@@ -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.TableBean;
import io.reactivex.Observable;
import me.jessyan.retrofiturlmanager.RetrofitUrlManager;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.Field;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;
......@@ -16,7 +14,7 @@ import retrofit2.http.Query;
/**
* Created by Wyh on 2019/12/20.
*/
public interface PrinterService {
public interface PrintInfoService {
@POST("PrinterDevice/add" + RetrofitUrlManager.IDENTIFICATION_PATH_SIZE + 2)
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;
import android.os.IBinder;
import android.os.Looper;
import android.os.RemoteException;
import android.util.Log;
import com.billy.cc.core.component.CC;
import com.billy.cc.core.component.CCResult;
......@@ -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.database.bean.PrinterDeviceBean;
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.server.aidl.IOnPrintCallback;
import com.jess.arms.base.BaseActivity;
......@@ -100,6 +102,29 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
@Override
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);
List<Bitmap> bitmaps = PrintUtils.getPrintBitmap(mContext, type, 500);
if (bitmaps.size() <= 0) {
......@@ -181,27 +206,14 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} else if (mN5.contains(model)) {
//N5打印
try {
PrinterUtil.appendImage(bitmap, PrinterConstant.ALIGN_CENTER);
PrinterUtil.startPrint(true, new IOnPrintCallback() {
@Override
public void onPrintResult(int i) {
Looper.prepare();
if (i == 0) {
//打印成功
ToastUtils.show(mContext, "N5打印結果:成功");
printSuccess();
} else {
//打印失敗
ToastUtils.show(mContext, "N5打印結果:失敗");
printFile();
}
}
@Override
public IBinder asBinder() {
return null;
}
});
try {
PrinterUtil.appendImage(bitmap, PrinterConstant.ALIGN_CENTER);
startN5Print();
} catch (NullPointerException e) {
ToastUtils.show(mContext, "打印失敗,請重試");
Log.e("error", "打印失敗請重試:" + e.getMessage());
finish();
}
} catch (RemoteException e) {
e.printStackTrace();
printFile();
......@@ -212,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;
}
};
/**
* 打印失敗
*/
......@@ -231,6 +290,12 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
}
@Override
protected void onDestroy() {
super.onDestroy();
Log.e("error", "PrintActivity :onDestroy");
}
@Override
public void initIntent() {
}
......
......@@ -2,8 +2,8 @@ package com.gingersoft.gsa.cloud.base.application;
import android.app.Activity;
import android.content.Context;
import android.os.Build;
import android.os.RemoteException;
import android.util.Log;
import com.billy.cc.core.component.CC;
import com.elvishew.xlog.LogConfiguration;
......@@ -56,7 +56,6 @@ public class GsaCloudApplication extends BaseApplication {
public void onCreate() {
super.onCreate();
this.mAppContext = this;
CC.enableVerboseLog(true);
CC.enableDebug(true);
CC.enableRemoteCC(true);
......@@ -66,15 +65,13 @@ public class GsaCloudApplication extends BaseApplication {
AppCrashHandler.getInstance().init(this, "test");
androidSetting = new CurrentAndroidSetting();
if (mV2.contains(Build.MODEL)) {
} else if (mN5.contains(Build.MODEL)) {
try {
//初始化N5打印
PrinterUtil.initPrinter(this);
} catch (NoInitPrinterException | RemoteException e) {
e.printStackTrace();
}
try {
//初始化N5打印
PrinterUtil.initPrinter(this);
} catch (NoInitPrinterException | RemoteException e) {
e.printStackTrace();
Log.e("error", "GsaCloudApplication打印初始化失敗:" + e.getMessage());
}
}
......
......@@ -51,7 +51,7 @@ public class LogUtil {
d(TAG, msg);
}
public static void d(String tagName, String msg) {
if (isPrintLog) {
if (isPrintLog && msg != null) {
int strLength = msg.length();
int start = 0;
int end = LOG_MAXLENGTH;
......
......@@ -90,6 +90,14 @@ public class Function {
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) {
this.nameRes = nameRes;
this.textColorRes = textColorRes;
......
......@@ -237,6 +237,9 @@ public class ChooseRestaurantDialog extends Dialog {
}
public ChooseRestaurantDialog build() {
if(mDialog != null){
return mDialog;
}
mDialog = new ChooseRestaurantDialog(mContext);
View contentView = buildViews();
mDialog.setContentView(contentView, new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, QMUIDisplayHelper.getScreenHeight(mContext)));
......
package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.graphics.Color;
import android.text.TextUtils;
import android.widget.BaseAdapter;
import com.billy.cc.core.component.CC;
import com.gingersoft.gsa.cloud.base.common.bean.BaseResult;
......@@ -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.utils.JsonUtils;
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.FoodCombo;
import com.gingersoft.gsa.cloud.database.bean.Modifier;
import com.gingersoft.gsa.cloud.database.utils.FoodDaoUtils;
import com.gingersoft.gsa.cloud.table.R;
......
......@@ -2,10 +2,10 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.graphics.Color;
import android.util.Log;
import android.view.View;
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.OrderBean;
import com.gingersoft.gsa.cloud.base.common.bean.OrderDetail;
......@@ -211,7 +211,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
}
/**
* 打印上菜紙
* 送單
*/
private void printSendOrder(List<OrderDetail> newFoods) {
MyOrderManage.getInstance().setNewFoodList(newFoods);
......@@ -220,6 +220,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.addParam("type", 3)
.build()
.callAsync((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
if (result.isSuccess()) {
//打印成功
}
......@@ -262,6 +263,7 @@ public class OrderContentPresenter extends BaseOrderPresenter<OrderContentContra
.setActionName("printActivity")
.build()
.callAsync((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
if (result.isSuccess()) {
//打印成功
mRootView.printSuccess();
......
......@@ -2,6 +2,7 @@ package com.gingersoft.gsa.cloud.table.mvp.presenter;
import android.app.Application;
import android.os.CountDownTimer;
import android.util.Log;
import android.view.View;
import com.billy.cc.core.component.CC;
......@@ -148,6 +149,7 @@ public class TablePresenter extends BasePresenter<TableContract.Model, TableCont
.addParam("type", 0)
.build()
.callAsync((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
if (result.isSuccess()) {
//打印成功
}
......
......@@ -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.constans.Constans;
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.widget.DialogUtils;
import com.gingersoft.gsa.cloud.database.bean.Food;
......@@ -289,7 +288,7 @@ public class MealStandActivity extends BaseActivity<MealStandPresenter> implemen
}
private void initTableDetail() {
if(OpenTableManage.getDefault().getPeopleNumber() == 0){
if (OpenTableManage.getDefault().getPeopleNumber() == 0) {
showChoosePeopleNumDialog(false);
}
}
......
......@@ -6,6 +6,7 @@ import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
......@@ -516,6 +517,7 @@ public class OrderPayActivity extends BaseActivity<OrderPayPresenter> implements
.addParam("type", 2)
.build()
.callAsync((cc, result) -> {
Log.e("error", "是否成功打印:" + result.isSuccess());
if (result.isSuccess()) {
//打印成功
......
......@@ -24,6 +24,7 @@
<activity
android:name=".mvp.ui.activity.LoginActivity"
android:windowSoftInputMode="adjustResize|stateHidden"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
......
......@@ -6,6 +6,9 @@ import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.util.Log;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
......@@ -81,6 +84,10 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
ImageView icClearAccount;
@BindView(R2.id.rb_remember_password)
CheckBox mRbRememberPwd;
@BindView(R2.id.ic_look_pwd)
ImageView mIvSeePwd;
private boolean passwrodVisibility = false;
@Override
public void setupActivityComponent(@NonNull AppComponent appComponent) {
......@@ -120,6 +127,8 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
// jumpActivity();
// finish();
// }
edPwd.setOnFocusChangeListener(mOnFocusChangeListener);
edAccount.setOnFocusChangeListener(mOnFocusChangeListener);
edPwd.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
......@@ -133,14 +142,15 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
@Override
public void afterTextChanged(Editable s) {
if (edPwd.getText().equals("")) {
if (edPwd.getText() != null && edPwd.getText().toString().equals("")) {
icClear.setVisibility(View.GONE);
mIvSeePwd.setVisibility(View.GONE);
} else {
icClear.setVisibility(View.VISIBLE);
mIvSeePwd.setVisibility(View.VISIBLE);
}
}
});
edAccount.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
......@@ -149,7 +159,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
@Override
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);
} else {
icClearAccount.setVisibility(View.VISIBLE);
......@@ -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
public void onResume() {
super.onResume();
......@@ -235,15 +278,7 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
finish();
}
@Override
protected void onDestroy() {
super.onDestroy();
if (dialog != null) {
dialog.dismiss();
}
}
private Dialog dialog;
private Dialog dialog1;
@Override
public void loginSuccess(LoginBean loginBean) {
......@@ -280,23 +315,36 @@ public class LoginActivity extends BaseActivity<LoginPresenter> implements Login
}
jumpDownloadActivity();
} else {
dialog = new ChooseRestaurantDialog.BottomListSheetBuilder(this)
.addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> {
LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brands, item.getId());
if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText());
}
jumpDownloadActivity();
dialog.dismiss();
killMyself();
}).build();
dialog.show();
if (!isFinishing()) {
dialog1 = new ChooseRestaurantDialog.BottomListSheetBuilder(this)
.addBrandItems(brandsBeans)
.setOnItemClickListener((dialog, item, position) -> {
LoginBean.DataBean.UserBean.BrandsBean brandsBean = getBrandByRestaurantId(brands, item.getId());
if (brandsBean != null) {
saveBrandAndRestaurantInfo(brandsBean.getBrandId(), brandsBean.getBrandName(), item.getId(), item.getText());
}
jumpDownloadActivity();
dialog.dismiss();
killMyself();
}).build();
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
}
@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) {
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:
//登陸
if (edAccount.getText() != null && edPwd.getText() != null) {
......
......@@ -53,7 +53,7 @@
android:id="@+id/iv_clear_account"
android:layout_width="@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:visibility="gone"
app:layout_constraintBottom_toBottomOf="@id/ed_login_user_account"
......@@ -90,7 +90,7 @@
android:textSize="@dimen/edit_text_size"
app:layout_constraintBottom_toBottomOf="@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" />
<CheckBox
......@@ -102,6 +102,7 @@
app:layout_constraintTop_toBottomOf="@id/ed_login_user_pwd" />
<TextView
android:id="@+id/tv_remember_pwd_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="@dimen/dp_5"
......@@ -113,10 +114,21 @@
app:layout_constraintTop_toTopOf="@id/rb_remember_password" />
<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:layout_width="@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:visibility="gone"
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