Commit 4522d151 by 王宇航

3-04

parent 35b7599f
......@@ -4,6 +4,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.os.Message;
import android.text.TextUtils;
import android.util.SparseArray;
import android.view.KeyEvent;
import android.view.View;
import android.widget.LinearLayout;
......@@ -20,7 +21,6 @@ import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.R2;
import com.gingersoft.gsa.cloud.main.di.component.DaggerNewMainComponent;
import com.gingersoft.gsa.cloud.main.mvp.contract.NewMainContract;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SectionItem;
import com.gingersoft.gsa.cloud.main.mvp.presenter.NewMainPresenter;
import com.gingersoft.gsa.cloud.main.mvp.ui.adapter.MainOrderingAdapter;
import com.gingersoft.gsa.cloud.main.mvp.ui.fragment.MainTopFragment;
......@@ -140,85 +140,67 @@ public class NewMainActivity extends BaseActivity<NewMainPresenter> implements N
setTitleInfo();
}
public void onFinishRefresh(){
public void onFinishRefresh() {
refresh.finishRefresh();
}
private void initFuncationData() {
//拿到功能列表數據
FunctionDaoUtils functionDao = new FunctionDaoUtils(mContext);
List<Function> functions = functionDao.queryAllFunction();
if (functions == null) {
return;
}
List<SectionItem> data = new ArrayList<>();
data.add(new SectionItem(R.drawable.ic_dining_table_mode, "餐檯模式"));
data.add(new SectionItem(R.drawable.ic_delivery_mode, "外送模式"));
data.add(new SectionItem(R.drawable.ic_outsourcing_model, "外賣模式"));
data.add(new SectionItem(R.drawable.ic_pre_order_mode, "預點餐模式"));
// int lastIndex;
// if (functions.size() >= 4) {
// lastIndex = 4;
// } else {
// lastIndex = functions.size();
// }
MainOrderingAdapter adapter = new MainOrderingAdapter(R.layout.main_home_funcation_item, data);
rvOrdering.setLayoutManager(new GridLayoutManager(mContext, 4) {
@Override
public boolean canScrollVertically() {
return false;
}
});
adapter.setOnItemClickListener((adapter1, view, position) -> {
if (data.get(position).getText().equals("餐檯模式")) {
CC.obtainBuilder("Component.Table")
.setActionName("showTableActivity")
.build()
.call();
}
});
rvOrdering.setAdapter(adapter);
List<SectionItem> managementData = new ArrayList<>();
managementData.add(new SectionItem(R.drawable.ic_meals_menu_management, "餐牌管理"));
managementData.add(new SectionItem(R.drawable.ic_dining_table_management, "餐檯管理"));
managementData.add(new SectionItem(R.drawable.ic_print_management, "打印管理"));
managementData.add(new SectionItem(R.drawable.ic_pay_management, "支付管理"));
managementData.add(new SectionItem(R.drawable.ic_discount_management, "折扣管理"));
MainOrderingAdapter managementAdapter = new MainOrderingAdapter(R.layout.main_home_management_funcation_item, managementData);
rvManagement.setLayoutManager(new GridLayoutManager(mContext, 5) {
@Override
public boolean canScrollVertically() {
return false;
}
});
rvManagement.setAdapter(managementAdapter);
managementAdapter.setOnItemClickListener((adapter12, view, position) -> {
if (managementData.get(position).getText().equals("打印管理")) {
CC.obtainBuilder("Component.Print")
.setActionName("showPrintActivity")
.build()
.call();
//將功能列表數據分組
SparseArray<String> parents = new SparseArray<>();
SparseArray<List<Function>> funMap = new SparseArray<>();
for (Function function : functions) {
if (function.getParentId() == 0) {
//父模塊
parents.put(function.getId().intValue(), function.getResName());
} else {
if (funMap.get(function.getParentId()) == null) {
List<Function> functionList = new ArrayList<>();
functionList.add(function);
funMap.put(function.getParentId(), functionList);
} else {
funMap.get(function.getParentId()).add(function);
}
}
});
}
initAdapter(parents, funMap, 0, R.layout.main_home_funcation_item, rvOrdering, 4);
initAdapter(parents, funMap, 1, R.layout.main_home_management_funcation_item, rvManagement, 5);
initAdapter(parents, funMap, 2, R.layout.main_home_management_funcation_item, rvStaffManagement, 4);
}
List<SectionItem> staffData = new ArrayList<>();
staffData.add(new SectionItem(R.drawable.ic_staff_management, "員工管理"));
staffData.add(new SectionItem(R.drawable.ic_authority_management, "權限管理"));
staffData.add(new SectionItem(R.drawable.ic_operation_record, "操作記錄"));
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) {
List<Function> mOrderingMeals = funMap.get(parents.keyAt(i));
MainOrderingAdapter adapter = new MainOrderingAdapter(p, mOrderingMeals);
rvOrdering.setLayoutManager(new GridLayoutManager(mContext, i2) {
@Override
public boolean canScrollVertically() {
return false;
}
});
adapter.setOnItemClickListener((adapter1, view, position) -> functionClick(mOrderingMeals.get(position).getResName()));
rvOrdering.setAdapter(adapter);
}
}
MainOrderingAdapter staffAdapter = new MainOrderingAdapter(R.layout.main_home_management_funcation_item, staffData);
rvStaffManagement.setLayoutManager(new GridLayoutManager(mContext, 4) {
@Override
public boolean canScrollVertically() {
return false;
}
});
rvStaffManagement.setAdapter(staffAdapter);
private void functionClick(String name) {
if (name.equals("餐臺模式")) {
CC.obtainBuilder("Component.Table")
.setActionName("showTableActivity")
.build()
.call();
} else if (name.equals("打印管理")) {
CC.obtainBuilder("Component.Print")
.setActionName("showPrintActivity")
.build()
.call();
}
}
private void setTitleInfo() {
......
......@@ -2,8 +2,8 @@ package com.gingersoft.gsa.cloud.main.mvp.ui.adapter;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.chad.library.adapter.base.BaseViewHolder;
import com.gingersoft.gsa.cloud.database.bean.Function;
import com.gingersoft.gsa.cloud.main.R;
import com.gingersoft.gsa.cloud.main.mvp.model.bean.SectionItem;
import java.util.List;
......@@ -13,8 +13,8 @@ import androidx.annotation.Nullable;
* Created by Wyh on 2020/2/19.
* 首頁點餐
*/
public class MainOrderingAdapter extends BaseQuickAdapter<SectionItem, BaseViewHolder> {
public MainOrderingAdapter(int layoutResId, @Nullable List<SectionItem> data) {
public class MainOrderingAdapter extends BaseQuickAdapter<Function, BaseViewHolder> {
public MainOrderingAdapter(int layoutResId, @Nullable List<Function> data) {
super(layoutResId, data);
}
......@@ -23,8 +23,8 @@ public class MainOrderingAdapter extends BaseQuickAdapter<SectionItem, BaseViewH
// }
@Override
protected void convert(BaseViewHolder helper, SectionItem item) {
helper.setImageResource(R.id.iv_main_home_item_function_icon, item.getImage());
helper.setText(R.id.tv_main_home_item_function_name, item.getText());
protected void convert(BaseViewHolder helper, Function item) {
// helper.setImageResource(R.id.iv_main_home_item_function_icon, item.getImageURL());
helper.setText(R.id.tv_main_home_item_function_name, item.getResName());
}
}
......@@ -40,7 +40,6 @@ android {
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/nexgon5lib.jar')
implementation 'androidx.appcompat:appcompat:1.1.0'
androidTestImplementation 'androidx.test:runner:1.2.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
......
......@@ -18,11 +18,9 @@ import com.gingersoft.gsa.cloud.base.common.bean.PrinterManger.PrinterManager;
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.toast.ToastUtils;
import com.gingersoft.gsa.cloud.base.utils.view.ImageUtils;
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;
......@@ -183,7 +181,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
} else if (mN5.contains(model)) {
//N5打印
try {
PrinterUtil.initPrinter(mContext);
PrinterUtil.appendImage(bitmap, PrinterConstant.ALIGN_CENTER);
PrinterUtil.startPrint(true, new IOnPrintCallback() {
@Override
......@@ -205,7 +202,7 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
return null;
}
});
} catch (RemoteException | NoInitPrinterException e) {
} catch (RemoteException e) {
e.printStackTrace();
printFile();
}
......@@ -233,15 +230,6 @@ public class PrintActivity extends BaseActivity<PrintPresenter> implements Print
finish();
}
//初始化打印內容
public Bitmap initPrintBitmap(int width) {
Bitmap bitmap = getIntent().getParcelableExtra("bitmap");
if (bitmap == null) {
return null;
}
return ImageUtils.zoomDrawable(bitmap, width, bitmap.getHeight());
}
@Override
public void initIntent() {
......
......@@ -67,7 +67,6 @@ dependencies {
testImplementation rootProject.ext.dependencies["canary-release"]
annotationProcessor rootProject.ext.dependencies["dagger2-compiler"]
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
// implementation 'androidx.appcompat:appcompat:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.2.0'
......@@ -80,11 +79,12 @@ dependencies {
implementation 'org.greenrobot:greendao-generator:3.2.2'
implementation rootProject.ext.dependencies["BaseRecyclerViewAdapter"]
implementation 'com.android.support:design:28.0.0'
implementation 'com.gcssloop.recyclerview:pagerlayoutmanager:2.3.8'
//陰影背景
// implementation 'com.github.Liberuman:ShadowDrawable:0.1'
// implementation 'com.github.Liberuman:ShadowDrawable:0.1'
api 'com.github.lihangleo2:ShadowLayout:2.1.6'
api 'com.contrarywind:Android-PickerView:3.2.4'//時間選擇控件
api 'com.contrarywind:Android-PickerView:3.2.4'
//時間選擇控件
implementation 'org.aspectj:aspectjrt:1.8.9'
api files('libs/nexgon5lib.jar')
}
......@@ -2,6 +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 com.billy.cc.core.component.CC;
import com.elvishew.xlog.LogConfiguration;
......@@ -16,13 +18,14 @@ import com.elvishew.xlog.printer.file.clean.FileLastModifiedCleanStrategy;
import com.elvishew.xlog.printer.file.naming.DateFileNameGenerator;
import com.gingersoft.gsa.cloud.base.BuildConfig;
import com.gingersoft.gsa.cloud.base.common.bean.CurrentAndroidSetting;
import com.gingersoft.gsa.cloud.base.utils.constans.HttpsConstans;
import com.gingersoft.gsa.cloud.base.utils.constans.UserConstans;
import com.gingersoft.gsa.cloud.base.utils.crash.AppCrashHandler;
import com.gingersoft.gsa.cloud.base.utils.file.FileUtils;
import com.gingersoft.gsa.cloud.base.utils.other.SPUtils;
import com.gingersoft.gsa.cloud.base.utils.xlog.MyBackupStrategy;
import com.gingersoft.gsa.cloud.database.DaoManager;
import com.hyweb.n5.lib.exception.NoInitPrinterException;
import com.hyweb.n5.lib.util.PrinterUtil;
import com.jess.arms.base.BaseApplication;
/**
......@@ -43,6 +46,11 @@ public class GsaCloudApplication extends BaseApplication {
public static boolean isLogin = false;
public static CurrentAndroidSetting androidSetting;
public static String userName = "";
/**
* 商米:V2、V2_PRO N5:N5
*/
public static String mV2 = "V2,V2_PRO";
public static String mN5 = "N5";
@Override
public void onCreate() {
......@@ -55,9 +63,19 @@ public class GsaCloudApplication extends BaseApplication {
//初始化日誌管理庫
initXLog();
initGreenDao();
AppCrashHandler.getInstance().init(this,"test");
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();
}
}
}
public Activity getCurrentActivity() {
......@@ -160,6 +178,7 @@ public class GsaCloudApplication extends BaseApplication {
public static void setBrandId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.brandId, restaurantId);
}
public static void setBrandName(Context context, String restaurantName) {
SPUtils.put(context, UserConstans.brandName, restaurantName);
}
......@@ -167,9 +186,11 @@ public class GsaCloudApplication extends BaseApplication {
public static void setRestaurantId(Context context, int restaurantId) {
SPUtils.put(context, UserConstans.restaurantId, restaurantId);
}
public static void setRestaurantName(Context context, String restaurantName) {
SPUtils.put(context, UserConstans.restaurantName, restaurantName);
}
public static void setBrandRestaurantInfos(Context context, String brandRestaurantIds) {
SPUtils.put(context, UserConstans.brandRestaurantInfos, brandRestaurantIds);
}
......
......@@ -25,6 +25,9 @@ public class Function {
@NotNull
private Long id;
private int parentId;
private int groupId;
private int status;
private long effectiveTime;
private String resName;
......@@ -52,11 +55,13 @@ public class Function {
private int textSizeRes;
@Generated(hash = 1134214411)
public Function(Long dbid, @NotNull Long id, int status, long effectiveTime,
String resName, String resUrl, String imageURL) {
@Generated(hash = 1165180133)
public Function(Long dbid, @NotNull Long id, int parentId, int groupId, int status,
long effectiveTime, String resName, String resUrl, String imageURL) {
this.dbid = dbid;
this.id = id;
this.parentId = parentId;
this.groupId = groupId;
this.status = status;
this.effectiveTime = effectiveTime;
this.resName = resName;
......@@ -67,7 +72,7 @@ public class Function {
@Generated(hash = 133141990)
public Function() {
}
public Function(@NotNull Long id, int status, long effectiveTime,
String resName, String resUrl, String imageURL) {
this.id = id;
......@@ -221,4 +226,20 @@ public class Function {
public void setDbid(Long dbid) {
this.dbid = dbid;
}
public int getParentId() {
return this.parentId;
}
public void setParentId(int parentId) {
this.parentId = parentId;
}
public int getGroupId() {
return this.groupId;
}
public void setGroupId(int groupId) {
this.groupId = groupId;
}
}
......@@ -26,11 +26,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
public static class Properties {
public final static Property Dbid = new Property(0, Long.class, "dbid", true, "_id");
public final static Property Id = new Property(1, Long.class, "id", false, "ID");
public final static Property Status = new Property(2, int.class, "status", false, "STATUS");
public final static Property EffectiveTime = new Property(3, long.class, "effectiveTime", false, "EFFECTIVE_TIME");
public final static Property ResName = new Property(4, String.class, "resName", false, "RES_NAME");
public final static Property ResUrl = new Property(5, String.class, "resUrl", false, "RES_URL");
public final static Property ImageURL = new Property(6, String.class, "imageURL", false, "IMAGE_URL");
public final static Property ParentId = new Property(2, int.class, "parentId", false, "PARENT_ID");
public final static Property GroupId = new Property(3, int.class, "groupId", false, "GROUP_ID");
public final static Property Status = new Property(4, int.class, "status", false, "STATUS");
public final static Property EffectiveTime = new Property(5, long.class, "effectiveTime", false, "EFFECTIVE_TIME");
public final static Property ResName = new Property(6, String.class, "resName", false, "RES_NAME");
public final static Property ResUrl = new Property(7, String.class, "resUrl", false, "RES_URL");
public final static Property ImageURL = new Property(8, String.class, "imageURL", false, "IMAGE_URL");
}
......@@ -48,11 +50,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
db.execSQL("CREATE TABLE " + constraint + "\"FUNCTION\" (" + //
"\"_id\" INTEGER PRIMARY KEY AUTOINCREMENT ," + // 0: dbid
"\"ID\" INTEGER NOT NULL ," + // 1: id
"\"STATUS\" INTEGER NOT NULL ," + // 2: status
"\"EFFECTIVE_TIME\" INTEGER NOT NULL ," + // 3: effectiveTime
"\"RES_NAME\" TEXT," + // 4: resName
"\"RES_URL\" TEXT," + // 5: resUrl
"\"IMAGE_URL\" TEXT);"); // 6: imageURL
"\"PARENT_ID\" INTEGER NOT NULL ," + // 2: parentId
"\"GROUP_ID\" INTEGER NOT NULL ," + // 3: groupId
"\"STATUS\" INTEGER NOT NULL ," + // 4: status
"\"EFFECTIVE_TIME\" INTEGER NOT NULL ," + // 5: effectiveTime
"\"RES_NAME\" TEXT," + // 6: resName
"\"RES_URL\" TEXT," + // 7: resUrl
"\"IMAGE_URL\" TEXT);"); // 8: imageURL
}
/** Drops the underlying database table. */
......@@ -70,22 +74,24 @@ public class FunctionDao extends AbstractDao<Function, Long> {
stmt.bindLong(1, dbid);
}
stmt.bindLong(2, entity.getId());
stmt.bindLong(3, entity.getStatus());
stmt.bindLong(4, entity.getEffectiveTime());
stmt.bindLong(3, entity.getParentId());
stmt.bindLong(4, entity.getGroupId());
stmt.bindLong(5, entity.getStatus());
stmt.bindLong(6, entity.getEffectiveTime());
String resName = entity.getResName();
if (resName != null) {
stmt.bindString(5, resName);
stmt.bindString(7, resName);
}
String resUrl = entity.getResUrl();
if (resUrl != null) {
stmt.bindString(6, resUrl);
stmt.bindString(8, resUrl);
}
String imageURL = entity.getImageURL();
if (imageURL != null) {
stmt.bindString(7, imageURL);
stmt.bindString(9, imageURL);
}
}
......@@ -98,22 +104,24 @@ public class FunctionDao extends AbstractDao<Function, Long> {
stmt.bindLong(1, dbid);
}
stmt.bindLong(2, entity.getId());
stmt.bindLong(3, entity.getStatus());
stmt.bindLong(4, entity.getEffectiveTime());
stmt.bindLong(3, entity.getParentId());
stmt.bindLong(4, entity.getGroupId());
stmt.bindLong(5, entity.getStatus());
stmt.bindLong(6, entity.getEffectiveTime());
String resName = entity.getResName();
if (resName != null) {
stmt.bindString(5, resName);
stmt.bindString(7, resName);
}
String resUrl = entity.getResUrl();
if (resUrl != null) {
stmt.bindString(6, resUrl);
stmt.bindString(8, resUrl);
}
String imageURL = entity.getImageURL();
if (imageURL != null) {
stmt.bindString(7, imageURL);
stmt.bindString(9, imageURL);
}
}
......@@ -127,11 +135,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
Function entity = new Function( //
cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0), // dbid
cursor.getLong(offset + 1), // id
cursor.getInt(offset + 2), // status
cursor.getLong(offset + 3), // effectiveTime
cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4), // resName
cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5), // resUrl
cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6) // imageURL
cursor.getInt(offset + 2), // parentId
cursor.getInt(offset + 3), // groupId
cursor.getInt(offset + 4), // status
cursor.getLong(offset + 5), // effectiveTime
cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6), // resName
cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7), // resUrl
cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8) // imageURL
);
return entity;
}
......@@ -140,11 +150,13 @@ public class FunctionDao extends AbstractDao<Function, Long> {
public void readEntity(Cursor cursor, Function entity, int offset) {
entity.setDbid(cursor.isNull(offset + 0) ? null : cursor.getLong(offset + 0));
entity.setId(cursor.getLong(offset + 1));
entity.setStatus(cursor.getInt(offset + 2));
entity.setEffectiveTime(cursor.getLong(offset + 3));
entity.setResName(cursor.isNull(offset + 4) ? null : cursor.getString(offset + 4));
entity.setResUrl(cursor.isNull(offset + 5) ? null : cursor.getString(offset + 5));
entity.setImageURL(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6));
entity.setParentId(cursor.getInt(offset + 2));
entity.setGroupId(cursor.getInt(offset + 3));
entity.setStatus(cursor.getInt(offset + 4));
entity.setEffectiveTime(cursor.getLong(offset + 5));
entity.setResName(cursor.isNull(offset + 6) ? null : cursor.getString(offset + 6));
entity.setResUrl(cursor.isNull(offset + 7) ? null : cursor.getString(offset + 7));
entity.setImageURL(cursor.isNull(offset + 8) ? null : cursor.getString(offset + 8));
}
@Override
......
......@@ -16,20 +16,23 @@
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/user_login_name"
tools:replace="android:label"
android:networkSecurityConfig="@xml/network_android"
android:roundIcon="@mipmap/ic_logo"
android:supportsRtl="true"
android:theme="@style/AppTheme">
android:theme="@style/AppTheme"
tools:replace="android:label">
<activity android:name=".mvp.ui.activity.LoginActivity"
<activity
android:name=".mvp.ui.activity.LoginActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".mvp.ui.activity.SwitchServerActivity" />
<meta-data
android:name="com.gingersoft.gsa.cloud.globalconfig.GlobalConfiguration"
......
......@@ -80,6 +80,7 @@ public class SwitchServerActivity extends BaseActivity<SwitchServerPresenter> im
HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL = HttpsConstans.ROOT_SERVER_ADDRESS_FORMAL_HK;
}
finish();
startActivity(new Intent(mContext, LoginActivity.class));
});
}
......
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