Commit c4b2740c authored by 姜敏's avatar 姜敏

Merge remote-tracking branch 'origin/master'

parents c731857c c04a281f
......@@ -11,7 +11,6 @@ import com.xingdata.zzdpos.model.Category;
import com.xingdata.zzdpos.model.Gbound;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Pager;
import com.xingdata.zzdpos.model.Smt;
import com.xingdata.zzdpos.model.Trule;
import com.xingdata.zzdpos.model.Ubound;
import com.xingdata.zzdpos.model.UsskuParam;
......@@ -1083,7 +1082,7 @@ public final class ApiFactory {
public static class Recard {
public static Observable<Boolean> checkPwd(Long vipId, String cardNo, String pwd) {
return Api.getInstance().service.checkPwd(vipId, cardNo, pwd)
return Api.getInstance().service.checkPwd(vipId, cardNo, EncryptUtils.encryptMD5ToString(pwd))
.onErrorReturn(new ErrorFilter<>())
.map(new ResultFilter<>())
.subscribeOn(Schedulers.io())
......
......@@ -29,6 +29,7 @@ import com.xingdata.zzdpos.ui.login.fragment.bean.LoginReturnBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.StoreAddressJsonBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.StoreTypeJsonBean;
import com.xingdata.zzdpos.ui.login.fragment.bean.UserStoreInfo;
import com.xingdata.zzdpos.util.Global;
import com.xingdata.zzdpos.util.PhoneFormatCheckUtils;
import com.xingdata.zzdpos.util.SystemUtil;
......@@ -249,6 +250,10 @@ public class LoginPresenter extends LoginContract.Presenter {
public void createCounter(long shopMapId, PromptDialog promptDialog, LoadingDialog
loadingDialog) {
ApiFactory.Test.addCounter(shopMapId).subscribe(addCounter -> {
if (Global.isSnNull()) {
ToastUtils.showLong("Sn为空");
return;
}
mView.bindingCounterSucc(promptDialog, loadingDialog);
}, throwable -> {
mView.errorInfo(throwable.getMessage(), promptDialog, loadingDialog);
......@@ -261,6 +266,10 @@ public class LoginPresenter extends LoginContract.Presenter {
public void bindingCounter(long casherId, PromptDialog promptDialog, LoadingDialog
loadingDialog) {
ApiFactory.Test.bindCounter(casherId).subscribe(bindCounter -> {
if (Global.isSnNull()) {
ToastUtils.showLong("Sn为空");
return;
}
mView.bindingCounterSucc(promptDialog, loadingDialog);
}, throwable -> {
mView.errorInfo(throwable.getMessage(), promptDialog, loadingDialog);
......@@ -299,6 +308,10 @@ public class LoginPresenter extends LoginContract.Presenter {
public void deviceRegister(String phone, String password, PromptDialog promptDialog,
LoadingDialog loadingDialog) {
ApiFactory.Test.deviceRegister().subscribe(s -> {
if (Global.isSnNull()) {
ToastUtils.showLong("Sn为空");
return;
}
signIn(phone, password, promptDialog, loadingDialog);
}, throwable -> {
mView.errorInfo(throwable.getMessage(), new PromptDialog(), loadingDialog);
......
......@@ -11,6 +11,7 @@ import android.widget.EditText;
import android.widget.Toast;
import com.blankj.utilcode.util.ActivityUtils;
import com.xingdata.api.print.ZX_PrintPOS;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
import com.xingdata.zzdpos.base.BaseFragment;
......@@ -209,4 +210,9 @@ public class MainActivity extends BaseActivity<MainPresenter, ActivityMainBindin
}
@Override
protected void onDestroy() {
ZX_PrintPOS.getInstance(this).Destory();
super.onDestroy();
}
}
......@@ -176,6 +176,7 @@ public class BaleEditFragment extends BaseFragment<BalePresenter, FragmentBaleEd
break;
case R.id.btn_scan: {
ScanFragment mScanFragment = new ScanFragment();
mScanFragment.setTitle("添加商品组合");
mScanFragment.setOnScanCompletedListener(new ScanFragment
.OnScanCompletedListener() {
@Override
......
......@@ -79,6 +79,7 @@ public class BaleIndexFragment extends BaseFragment<BalePresenter, FragmentBaleI
case R.id.btn_scan: {
ScanFragment mScanFragment = new
ScanFragment();
mScanFragment.setTitle("商品组合");
mScanFragment.setOnScanCompletedListener
(new ScanFragment
.OnScanCompletedListener() {
......@@ -94,9 +95,11 @@ public class BaleIndexFragment extends BaseFragment<BalePresenter, FragmentBaleI
loadingDialog);
}
});
if (!mScanFragment.isAdded()) {
start(mScanFragment);
}
}
break;
default: {
......@@ -117,6 +120,11 @@ public class BaleIndexFragment extends BaseFragment<BalePresenter, FragmentBaleI
LoadingDialog
loadingDialog) {
mViewBinding.tvKeyword.setText(wd);
if (usskuPager.getTotalRow() <= 0) {
mViewBinding.btnGroup.setVisibility(View.GONE);
} else {
mViewBinding.btnGroup.setVisibility(View.VISIBLE);
}
mViewBinding.btnGroup.setText(Html.fromHtml(getResources().getString(R.string
.tv_bale_count, "<font color='#1f7bdb'><big> " + usskuPager.getTotalRow() +
"</big></font>")));
......@@ -229,7 +237,6 @@ public class BaleIndexFragment extends BaseFragment<BalePresenter, FragmentBaleI
private View getEmptyView(int resHint) {
View view = getLayoutInflater().inflate(R.layout.view_empty, null);
view.setBackgroundResource(R.color.gray_zhouyu);
((TextView) view.findViewById(R.id.tv_empty)).setText(resHint);
return view;
}
......
......@@ -63,6 +63,9 @@ public class InventoryAddFragment extends BaseFragment<InventoryPresenter, Fragm
mViewBinding.edTitle.setHint(R.string.inventory_add_et_hint);
if (mViewBinding.edTitle.getText().toString().length() != 0) {
mViewBinding.edTitle.setText("");
}
mViewBinding.edTitle.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {
......@@ -226,7 +229,7 @@ public class InventoryAddFragment extends BaseFragment<InventoryPresenter, Fragm
}, view1 -> {
promptDialog.dismiss();
mPresenter.changeTitle("盘库记录",false);
mPresenter.changeTitle("盘库记录", false);
pop();
......
......@@ -32,13 +32,12 @@ public class OtherSelectAdapter extends BaseAdapter<Ossku, ItemOtherSelectBindin
mViewBinding.imgGoods.setImageURI(item.getSpuImg());
// mViewBinding.tvNum.setText(item.getSkuStock() + "个");
mViewBinding.setShopName(item.getShopName());
mViewBinding.setStock("库存:" +item.getSkuStock()+item.getSpuUnitName());
mViewBinding.setAddress(item.getCityProvName()+item.getCityName()+item.getCityCountyName()+item.getCityAddress());
mViewBinding.setPhone(item.getContactTel());
mViewBinding.setStock("库存:" + item.getSkuStock() + item.getSpuUnitName());
mViewBinding.setAddress(item.getCityProvName() + item.getCityName() + item.getCityCountyName() + item.getCityAddress());
mViewBinding.setPhone(item.getContactMob() + "");
// mViewBinding.tvAddress.setText(item.getCityAddress());
// mViewBinding.tvTel.setText(item.getContactTel());
}
}
......@@ -162,6 +162,7 @@ public class SsskuActivity extends BaseActivity<SsskuPresenter, ActivitySsskuBin
mScanFragment.setOnBackPressedListener(this::backToAddFragment);
break;
}
KeyboardUtils.hideSoftInput(mViewBinding.etSearch);
this.start(mScanFragment);
}
......
......@@ -95,10 +95,12 @@ public class SsskuPresenter extends SsskuContract.Presenter {
if (ssskuPager.getList().size() > 1) {
mView.loadCheckSkus(ssskuPager.getList());
} else if (ssskuPager.getList().size() == 1) {
mView.backToManagerFragment();
mView.showEditorFragment(ssskuPager.getList().get(0), C.SKU_EDITOR_MODE.ADD);
} else {
Sssku sssku = new Sssku();
sssku.setSpuBarcode(ConvertUtil.stringToLong(barcode));
mView.backToManagerFragment();
mView.showEditorFragment(sssku, C.SKU_EDITOR_MODE.UNKNOWN);
}
})
......
......@@ -83,8 +83,8 @@ public class GroupCateView extends BaseGroupView<ViewGroupCateBinding> {
if (mMs != null && mMs.getSpuCateId() != null) {
cateId = mMs.getSpuCateId();
}
mViewBinding.nsType3.setVisibility(View.GONE);
loadCla();
mViewBinding.nsType1.setOnItemSelectedListener(mOnItemSelectedListener);
mViewBinding.nsType2.setOnItemSelectedListener(mOnItemSelectedListener);
mViewBinding.nsType3.setOnItemSelectedListener(mOnItemSelectedListener);
......
......@@ -55,6 +55,7 @@ public class GroupSkuView<Sku extends BaseSku> extends BaseGroupView<ViewGroupSk
if (sku != null) {
mViewBinding.setName(sku.getSpuName());
mViewBinding.setPrice(ConvertUtil.fenToYuan(sku.getSkuRetailPrice1(), true));
mViewBinding.tvProductPic.setImageURI(sku.getSpuImg());
mViewBinding.llProduct.setVisibility(View.VISIBLE);
} else {
mViewBinding.llProduct.setVisibility(View.GONE);
......
......@@ -74,7 +74,7 @@ public class TickerIndexFragment extends BaseFragment<ReturnTicketPresenter,
if (trulePager == null || trulePager.getList() == null || trulePager.getList().size() <=
0) {
// mViewBinding.tvEmpty.setVisibility(View.VISIBLE);
returnTicketAdapter.setEmptyView(getEmptyView("没有积分规则~"));
returnTicketAdapter.setEmptyView(getEmptyView("没有优惠券~"));
}
if (trulePager != null && trulePager.getList() != null) {
mViewBinding.tvEmpty.setVisibility(View.GONE);
......
......@@ -2,6 +2,9 @@ package com.xingdata.zzdpos.ui.scan;
import android.content.Context;
import android.os.Handler;
import android.view.View;
import android.view.ViewStub;
import android.widget.TextView;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseFragment;
......@@ -12,10 +15,14 @@ import me.dm7.barcodescanner.core.IViewFinder;
import me.dm7.barcodescanner.core.ViewFinderView;
import me.dm7.barcodescanner.zxing.ZXingScannerView;
public class ScanFragment<P extends BasePresenter> extends BaseFragment<P, FragmentStoreScanBinding> {
public class ScanFragment<P extends BasePresenter> extends BaseFragment<P,
FragmentStoreScanBinding> {
private ZXingScannerView mScannerView;
private ZXingScannerView.ResultHandler mResultHandler;
private String titleStr = "";
private ViewStub viewStub;
private View inflated;
@Override
public int getLayoutId() {
......@@ -51,6 +58,21 @@ public class ScanFragment<P extends BasePresenter> extends BaseFragment<P, Fragm
@Override
public void initView() {
if (!titleStr.equals("")) {
mViewBinding.vsTitle.getViewStub().setVisibility(View.VISIBLE);
viewStub = mViewBinding.vsTitle.getViewStub();
if (viewStub.getParent() != null) {
inflated = viewStub.inflate();
}
inflated.findViewById(R.id.iv_back).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
pop();
}
});
((TextView) (inflated.findViewById(R.id.tv_title))).setText(titleStr);
}
mScannerView = new ZXingScannerView(mContext) {
@Override
protected IViewFinder createViewFinderView(Context context) {
......@@ -99,7 +121,8 @@ public class ScanFragment<P extends BasePresenter> extends BaseFragment<P, Fragm
int themeColor = getResources().getColor(R.color.blue_mawu);
this.setBorderColor(themeColor);
this.setBorderStrokeWidth(getResources().getDimensionPixelOffset(R.dimen.all_shape_radius));
this.setBorderStrokeWidth(getResources().getDimensionPixelOffset(R.dimen
.all_shape_radius));
this.setLaserColor(themeColor);
this.setLaserEnabled(true);
......@@ -107,4 +130,8 @@ public class ScanFragment<P extends BasePresenter> extends BaseFragment<P, Fragm
}
public void setTitle(String titleStr) {
this.titleStr = titleStr;
}
}
\ No newline at end of file
package com.xingdata.zzdpos.ui.settle;
import android.view.MotionEvent;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
......@@ -57,16 +55,9 @@ public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettle
this.loadRootFragment(R.id.f_settle, mSettleFragment);
mViewBinding.setTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.btnBack.setOnClickListener(view -> getTopFragment().onBackPressedSupport());
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH) {
KeyboardUtils.hideSoftInput(textView);
switch (mViewBinding.getTitleMode()) {
case C.TITLE_MODE.VIP:
mPresenter.searchVip(textView.getText().toString());
break;
}
}
return false;
mViewBinding.vSearch.setOnSearchListener(keyword -> {
mPresenter.searchVip(keyword);
});
}
......@@ -87,6 +78,8 @@ public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettle
@Override
public void showVipFragment() {
this.showTitleBarByTitleMode(C.TITLE_MODE.VIP);
mViewBinding.vSearch.clear();
mViewBinding.vSearch.showSoftInput();
this.start(mVipFragment);
}
......@@ -205,9 +198,9 @@ public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettle
@Override
public void backToSettleFragment() {
this.popTo(mSettleFragment.getClass(), false);
this.showTitleBarByTitleMode(C.TITLE_MODE.TEXT);
mViewBinding.tvTitle.setText(R.string.settle_title);
this.pop();
}
@Override
......@@ -229,12 +222,6 @@ public class SettleActivity extends BaseActivity<SettlePresenter, ActivitySettle
public void showTitleBarByTitleMode(int titleMode) {
if (mViewBinding.getTitleMode() == titleMode) return;
mViewBinding.setTitleMode(titleMode);
switch (titleMode) {
case C.TITLE_MODE.VIP:
mViewBinding.etSearch.setHint(R.string.settle_vip_search_hint);
mViewBinding.etSearch.setText("");
break;
}
}
@Override
......
......@@ -276,13 +276,13 @@ public class SettlePresenter extends SettleContract.Presenter {
@Override
public void payInCard(Long cardNo, String password) {
ApiFactory.Recard.checkPwd(mVip.getVipId(), String.valueOf(cardNo), password).subscribe(
ApiFactory.Recard.checkPwd(mVip.getVipId(), null, password).subscribe(
b -> {
mView.dismissPasswordDialog();
mView.showLoadingDialog();
subscribePay(commitOrder().flatMap(orderNo -> ApiFactory.Saleorder.addOrderPayMis(mSaleorder.pay(orderNo, C.PAY_CHANNEL.CARD, String.valueOf(cardNo))).doFinally(() -> mView.dismissLoadingDialog())));
},
throwable -> mView.showMsg("密码错误")
throwable -> mView.showMsg(throwable.getMessage())
);
}
......@@ -294,7 +294,7 @@ public class SettlePresenter extends SettleContract.Presenter {
mView.showLoadingDialog();
subscribePay(commitOrder().flatMap(orderNo -> ApiFactory.Saleorder.addOrderPayMis(mSaleorder.pay(orderNo, C.PAY_CHANNEL.TALLY)).doFinally(() -> mView.dismissLoadingDialog())));
},
throwable -> mView.showMsg("密码错误")
throwable -> mView.showMsg(throwable.getMessage())
);
}
......
......@@ -39,7 +39,7 @@ public class VipFragment extends BaseFragment<SettlePresenter, FragmentSettleVip
mVipAdapter.setOnItemClickListener((adapter, view, position) -> {
mPresenter.selectVip(mVipAdapter.getData().get(position));
this.pop();
((SettleActivity) getActivity()).backToSettleFragment();
});
}
......@@ -52,7 +52,7 @@ public class VipFragment extends BaseFragment<SettlePresenter, FragmentSettleVip
((TextView) mVipAdapter.getEmptyView().findViewById(R.id.tv_empty)).setText(R.string.settle_vip_search_none);
if (vips.size() == 1) {
mPresenter.selectVip(vips.get(0));
this.pop();
((SettleActivity) getActivity()).backToSettleFragment();
} else {
mViewBinding.setEmpty(vips.size() == 0);
mVipAdapter.setNewData(vips);
......
......@@ -277,7 +277,7 @@ public class StatisticsDetailActivity extends BaseActivity<StatisticsDetailPrese
@Override
protected void myOnClickListener(View v) {
try {
ZX_PrintPOS.getInstance(StatisticsDetailActivity.this).print(1, mSaleorder);
ZX_PrintPOS.getInstance(MainActivity.mainActivity).print(1, mSaleorder);
} catch (Exception e) {
ToastUtils.showShort("打印异常");
}
......
......@@ -35,7 +35,7 @@ public class StatisticsTicketGroupAdapter extends BaseSectionQuickAdapter<Ticket
protected void convert(BaseViewHolder helper, Ticket item) {
helper.setText(R.id.tv_left_top, ConvertUtil.fenToYuanNoZero(item.getTicketValAmt()) + "元优惠券");
helper.setText(R.id.tv_left_bottom, TimeUtils.date2String(item.getCreateTime(),new SimpleDateFormat(StringUtil.mmddhhmmmDatePattern)));
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.icon_record);
((ImageView) helper.getView(R.id.img_left)).setImageResource(R.mipmap.icon_voucher02);
}
......
......@@ -7,13 +7,11 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.constant.PermissionConstants;
import com.blankj.utilcode.util.ActivityUtils;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.PermissionUtils;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.C;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.base.BaseActivity;
......@@ -59,13 +57,7 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
mViewBinding.tvSettle.setOnClickListener(view -> mPresenter.clickSettle());
mViewBinding.btnBack.setOnClickListener(view -> onBackPressedSupport());
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH && !StringUtils.isEmpty(textView.getText())) {
KeyboardUtils.hideSoftInput(textView);
mPresenter.searchSku(textView.getText().toString());
}
return false;
});
mViewBinding.vSearch.setOnSearchListener(keyword -> mPresenter.searchSku(keyword));
mViewBinding.btnScan.setOnClickListener(view ->
PermissionUtils.permission(PermissionConstants.CAMERA)
......@@ -84,6 +76,11 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
mScanFragment.setOnScanCompletedListener(barcode -> mPresenter.scanComplete(barcode));
}
@Override
public void showMsg(String msg) {
ToastUtils.showShort(msg);
}
@Override
public <Sku extends BaseSku> void loadSkus(List<Sku> skus, boolean isRefresh) {
mStoreFragment.loadSkus(skus, isRefresh);
......@@ -161,10 +158,8 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
public void showSearchFragment() {
if (!mSearchFragment.isAdded()) {
mViewBinding.setTitleMode(C.TITLE_MODE.SKU);
mViewBinding.etSearch.setVisibility(View.VISIBLE);
mViewBinding.etSearch.setText("");
mViewBinding.etSearch.requestFocus();
KeyboardUtils.showSoftInput(mViewBinding.etSearch);
mViewBinding.vSearch.clear();
mViewBinding.vSearch.showSoftInput();
this.start(mSearchFragment.setKeyword(""));
}
}
......@@ -173,8 +168,7 @@ public class StoreActivity extends BaseActivity<StorePresenter, ActivityStoreBin
public void showSearchFragment(String keyword) {
if (!mSearchFragment.isAdded()) {
mViewBinding.setTitleMode(C.TITLE_MODE.SKU);
mViewBinding.etSearch.setText(keyword);
mViewBinding.etSearch.requestFocus();
mViewBinding.vSearch.setText(keyword);
this.start(mSearchFragment.setKeyword(keyword));
}
}
......
......@@ -13,6 +13,14 @@ import java.util.List;
interface StoreContract {
interface View extends BaseView {
/**
* 显示提示
*
* @param msg 提示内容
*/
void showMsg(String msg);
/**
* 加载商品
*
......
......@@ -360,6 +360,7 @@ public class StorePresenter extends StoreContract.Presenter {
} else if (ssskus.size() == 0 && usskus.size() == 1) {
this.clickAddSku(usskus.get(0), 1);
} else {
mView.showMsg("没有找到此商品~");
mView.resetScanner();
}
mView.dismissLoadingDialog();
......
......@@ -63,7 +63,6 @@ public class StoreFragment extends BaseFragment<StorePresenter, FragmentStoreBin
mSkuAdapter.setOnCountChangeListener((view, sku, value) -> {
if (value > 0) this.clickAdd(view, sku, value);
else mPresenter.clickRemoveSku(sku, value);
});
// set grp listener
......
......@@ -17,6 +17,7 @@ import com.xingdata.zzdpos.model.Level;
import com.xingdata.zzdpos.model.Mscard;
import com.xingdata.zzdpos.model.Vip;
import com.xingdata.zzdpos.model.VipRechargeOrder;
import com.xingdata.zzdpos.ui.main.MainActivity;
import com.xingdata.zzdpos.ui.vip.fragment.VipAddSucceedFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipExpenseListFragment;
import com.xingdata.zzdpos.ui.vip.fragment.VipInfoEditFragment;
......@@ -39,7 +40,7 @@ public class VipPresenter extends VipContract.Presenter {
public VipTruleListFragment vipMscardListFragment = new VipTruleListFragment();
public VipSearchFragment vipSearchFragment = new VipSearchFragment();
public VipRechargeFragment vipRechargeFragment = new VipRechargeFragment();
public VipAddSucceedFragment vipAddSucceedFragment =new VipAddSucceedFragment();
public VipAddSucceedFragment vipAddSucceedFragment = new VipAddSucceedFragment();
public ArrayList<Level> levels = new ArrayList<>();
@Override
......@@ -78,10 +79,9 @@ public class VipPresenter extends VipContract.Presenter {
}
@Override
public void addVip(Vip vip) {
int vipDis= vip.getVipDefDiscount();
int vipDis = vip.getVipDefDiscount();
if (vip.getVipId() == null) {
ApiFactory.User.addVip(vip).subscribe(mVip -> {
mVip.setVipLevelName(vip.getVipLevelName());
......@@ -210,7 +210,7 @@ public class VipPresenter extends VipContract.Presenter {
mVipRechangeOrdervip.setRechangeBefore(vipOld.getAcctCbal());
mVipRechangeOrdervip.setRechangeAfter(vip.getAcctCbal());
try {
ZX_PrintPOS.getInstance(App.instance).printSave(1, mVipRechangeOrdervip);
ZX_PrintPOS.getInstance(MainActivity.mainActivity).printSave(1, mVipRechangeOrdervip);
} catch (Exception e) {
ToastUtils.showShort("打印异常");
}
......
......@@ -12,6 +12,21 @@ import android.widget.EditText;
*/
public class Global {
public static boolean isNull(String str) {
if (null == str || str.equals("")) {
return true;
}
return false;
}
public static boolean isSnNull() {
if (isNull(SystemUtil.getDeviceSN())) {
return true;
} else {
return false;
}
}
public static void clickHideKeyboard(MotionEvent ev, Activity context) {
if (ev.getAction() == MotionEvent.ACTION_DOWN) {
View v = context.getCurrentFocus();
......@@ -52,4 +67,6 @@ public class Global {
}
return false;
}
}
......@@ -28,8 +28,8 @@ public final class SystemUtil {
* @return 设备型号
*/
public static String getDeviceModel() {
return DeviceUtils.getModel();
// return "AECRC10";
// return DeviceUtils.getModel();
return "MI5";
}
......@@ -57,8 +57,8 @@ public final class SystemUtil {
e.printStackTrace();
}
}
return deviceSN;
// return "5484965656";
// return deviceSN;
return "5484965656";
}
/**
......
package com.xingdata.zzdpos.view;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.databinding.DataBindingUtil;
import android.support.constraint.ConstraintLayout;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.LayoutInflater;
import android.view.inputmethod.EditorInfo;
import com.blankj.utilcode.util.KeyboardUtils;
import com.blankj.utilcode.util.StringUtils;
import com.blankj.utilcode.util.ToastUtils;
import com.xingdata.zzdpos.R;
import com.xingdata.zzdpos.databinding.ViewSearchBarBinding;
@SuppressLint("AppCompatCustomView")
public class SearchBar extends ConstraintLayout {
private ViewSearchBarBinding mViewBinding;
public interface OnSearchListener {
void onSearch(String keyword);
}
private OnSearchListener mOnSearchListener;
public void setOnSearchListener(OnSearchListener onSearchListener) {
this.mOnSearchListener = onSearchListener;
}
/**
* 设置搜索框内的字符串
*
* @param str 字符串
*/
public void setText(String str) {
mViewBinding.etSearch.setText(str);
}
/**
* 设置搜索框里的提示信息
*
* @param hint 提示信息
*/
public void setHint(String hint) {
mViewBinding.etSearch.setHint(hint);
}
/**
* 清空搜索框
*/
public void clear() {
setText("");
}
/**
* 显示软键盘
*/
public void showSoftInput() {
KeyboardUtils.showSoftInput(mViewBinding.etSearch);
}
public SearchBar(Context context, AttributeSet attrs) {
super(context, attrs);
mViewBinding = DataBindingUtil.inflate(LayoutInflater.from(context), R.layout.view_search_bar, this, true);
mViewBinding.etSearch.setOnEditorActionListener((textView, i, keyEvent) -> {
if (i == EditorInfo.IME_ACTION_SEARCH && !StringUtils.isEmpty(textView.getText())) {
String str = mViewBinding.etSearch.getText().toString();
if (StringUtils.isEmpty(str)) {
ToastUtils.showShort("请输入搜索内容");
return false;
}
KeyboardUtils.hideSoftInput(mViewBinding.etSearch);
mOnSearchListener.onSearch(str);
}
return false;
});
mViewBinding.tvSearch.setOnClickListener(view -> {
String str = mViewBinding.etSearch.getText().toString();
if (StringUtils.isEmpty(str)) {
ToastUtils.showShort("请输入搜索内容");
return;
}
KeyboardUtils.hideSoftInput(mViewBinding.etSearch);
mOnSearchListener.onSearch(str);
});
mViewBinding.btnClear.setOnClickListener(view -> {
mViewBinding.etSearch.setText("");
KeyboardUtils.showSoftInput(mViewBinding.etSearch);
});
mViewBinding.etSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
mViewBinding.setKeywordLength(editable.length());
}
});
//拿到布局文件中的每一个自定义属性的值
TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.SearchBar);
if (typedArray != null) {
mViewBinding.etSearch.setHint(typedArray.getString(R.styleable.SearchBar_hint));
mViewBinding.etSearch.setInputType(typedArray.getInt(R.styleable.SearchBar_inputType, 0x00000001));
typedArray.recycle();
}
}
}
......@@ -5,6 +5,8 @@
<data>
<import type="android.view.View" />
<variable
name="titleMode"
type="int" />
......@@ -31,24 +33,17 @@
android:src="@mipmap/back_black"
app:layout_constraintLeft_toLeftOf="parent" />
<LinearLayout
<com.xingdata.zzdpos.view.SearchBar
android:id="@+id/v_search"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
android:visibility="@{titleMode>1?0:8}"
app:layout_constraintBottom_toTopOf="parent"
android:layout_height="0dp"
android:visibility="@{titleMode>1?View.VISIBLE:View.INVISIBLE}"
app:hint="@string/settle_vip_search_hint"
app:inputType="number"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent">
<EditText
android:id="@+id/et_search"
style="@style/searchBarEditor"
android:layout_width="0dp"
android:layout_weight="1"
android:inputType="number"
android:labelFor="@+id/et_search" />
</LinearLayout>
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_title"
......
......@@ -11,7 +11,7 @@
<include
android:id="@+id/ic_title"
layout="@layout/title"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"/>
<FrameLayout
......@@ -26,25 +26,25 @@
android:id="@+id/view_order_detail"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/view_order_detail" />
android:layout="@layout/view_order_detail"/>
<ViewStub
android:id="@+id/view_vip_recharge"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/view_vip_recharge" />
android:layout="@layout/view_vip_recharge"/>
<ViewStub
android:id="@+id/view_ticket"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/view_ticket" />
android:layout="@layout/view_ticket"/>
<ViewStub
android:id="@+id/view_cs"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout="@layout/view_inventory_detail" />
android:layout="@layout/view_inventory_detail"/>
</FrameLayout>
<android.support.constraint.ConstraintLayout
......@@ -71,13 +71,13 @@
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/btn_return"
app:layout_constraintTop_toTopOf="parent"
tools:targetApi="lollipop" />
tools:targetApi="lollipop"/>
<Button
android:id="@+id/btn_return"
style="@style/button_positive"
android:layout_width="@dimen/button1_width"
android:layout_height="37dp"
android:layout_height="@dimen/button1_height"
android:gravity="center"
android:stateListAnimator="@null"
android:text="@string/pay_return"
......@@ -87,13 +87,13 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_goneMarginStart="@dimen/all_margin_big_big"
tools:targetApi="lollipop" />
tools:targetApi="lollipop"/>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/view_line_L050"
android:background="@color/gray_huanggai"
app:layout_constraintTop_toTopOf="parent" />
app:layout_constraintTop_toTopOf="parent"/>
</android.support.constraint.ConstraintLayout>
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
......@@ -54,36 +54,16 @@
android:src="@mipmap/back_black"
app:layout_constraintLeft_toLeftOf="parent" />
<LinearLayout
<com.xingdata.zzdpos.view.SearchBar
android:id="@+id/v_search"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginEnd="@dimen/all_margin"
app:layout_constraintBottom_toTopOf="parent"
android:layout_height="0dp"
android:visibility="@{titleMode>1?View.VISIBLE:View.INVISIBLE}"
app:hint="@string/store_search_hint"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toRightOf="@id/btn_back"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent">
<EditText
android:id="@+id/et_search"
style="@style/searchBarEditor"
android:layout_width="0dp"
android:layout_weight="1"
android:hint="@string/store_search_hint"
android:inputType="text"
android:labelFor="@+id/et_search"
android:visibility="@{titleMode>1?View.VISIBLE:View.INVISIBLE}" />
<ImageButton
android:id="@+id/btn_scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/all_spacing"
android:background="@color/transparent"
android:contentDescription="@string/store_scan"
android:foreground="?android:attr/actionBarItemBackground"
android:src="@mipmap/but_sweep_yard"
android:visibility="@{titleMode>1?View.GONE:View.VISIBLE}" />
</LinearLayout>
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/tv_title"
......@@ -97,6 +77,21 @@
app:layout_constraintLeft_toRightOf="parent"
app:layout_constraintRight_toLeftOf="parent" />
<ImageButton
android:id="@+id/btn_scan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/all_margin"
android:layout_marginStart="@dimen/all_spacing"
android:background="@color/transparent"
android:contentDescription="@string/store_scan"
android:foreground="?android:attr/actionBarItemBackground"
android:src="@mipmap/but_sweep_yard"
android:visibility="@{titleMode>1?View.GONE:View.VISIBLE}"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="parent" />
<View
android:layout_width="match_parent"
android:layout_height="@dimen/all_line_width"
......
......@@ -19,6 +19,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="@dimen/all_padding"
android:orientation="vertical">
<View
......@@ -117,7 +118,7 @@
android:layout_marginTop="@dimen/all_spacing"
android:contentDescription="@string/store_cart"
android:foreground="?attr/actionBarItemBackground"
android:src="@mipmap/shopping_cart" />
android:src="@mipmap/inventory_cart" />
<TextView
android:layout_width="@dimen/store_cart_count"
......
......@@ -111,7 +111,7 @@
style="@style/button_positive"
android:layout_width="@dimen/all_button_radius_width"
android:layout_height="@dimen/all_button_radius_height"
android:layout_marginLeft="@dimen/all_margin_big"
android:layout_marginLeft="@dimen/all_margin_big_big"
android:onClick="@{OnClickListener}"
android:stateListAnimator="@null"
android:text="组 合"
......
......@@ -211,8 +211,9 @@
android:id="@+id/srl_products"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:padding="@dimen/all_padding">
android:layout_marginLeft="@dimen/all_padding"
android:layout_marginRight="@dimen/all_padding"
android:layout_marginTop="@dimen/all_padding">
<android.support.v7.widget.RecyclerView
android:id="@+id/rc_bale_shop"
......
......@@ -75,7 +75,7 @@
android:paddingLeft="@dimen/all_padding"
android:saveEnabled="false"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_text_size"/>
android:textSize="@dimen/all_text_size_low"/>
<TextView
android:id="@+id/btn_seach"
......
......@@ -67,7 +67,7 @@
android:labelFor="@+id/et_search"
android:saveEnabled="false"
android:textColor="@color/black_likui"
android:textSize="@dimen/all_text_size"/>
android:textSize="@dimen/all_text_size_low"/>
<TextView
android:id="@+id/btn_seach"
......
......@@ -250,8 +250,6 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="9"
android:paddingLeft="@dimen/all_padding"
android:paddingRight="@dimen/all_padding"
android:visibility="visible"/>
</LinearLayout>
......@@ -274,6 +272,7 @@
android:layout_weight="3"
android:gravity="center|left"
android:text="白金会员"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/et_textsize"/>
<Button
......
......@@ -67,7 +67,7 @@
android:maxLength="11"
android:textColor="@color/black_likui"
android:textColorHint="@color/gray_huanggai"
android:textSize="@dimen/all_text_size"/>
android:textSize="@dimen/all_text_size_low"/>
</LinearLayout>
......
......@@ -150,7 +150,7 @@
android:text="@{@string/settle_vip_dis_rate_hint + disRate + @string/settle_vip_dis_rate}"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_caption_size"
android:visibility="@{defualtVip?View.INVISIBLE:View.VISIBLE}"
android:visibility="@{defualtVip||disRate==null?View.INVISIBLE:View.VISIBLE}"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintRight_toLeftOf="@id/iv_arrow"
app:layout_constraintTop_toBottomOf="parent" />
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.constraint.ConstraintLayout
<data>
<variable
name="onClickListener"
type="com.xingdata.zzdpos.util.OnClickListener"></variable>
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ViewStub
android:id="@+id/vs_title"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="?attr/actionBarSize"
android:inflatedId="@+id/iv_VsContent"
android:layout="@layout/title"
android:onClick="@{onClickListener}"
android:visibility="gone"/>
<FrameLayout
android:id="@+id/content_frame"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</android.support.constraint.ConstraintLayout>
android:layout_height="match_parent"/>
</LinearLayout>
</layout>
\ No newline at end of file
......@@ -63,7 +63,10 @@
android:layout_marginRight="@dimen/all_bounced_padding"
android:background="@drawable/frame_frame_zhouyu_bg"
android:padding="@dimen/dp_4"
android:maxLines="1"
android:lines="1"
android:text="规格"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_small"
app:layout_constraintBottom_toBottomOf="@id/tv_no"
app:layout_constraintEnd_toEndOf="parent"
......
......@@ -74,15 +74,15 @@
<TextView
android:id="@+id/tv_No"
style="@style/other_select_smallstyle"
android:layout_width="150dp"
android:layout_width="140dp"
android:layout_height="wrap_content"
android:text="8531651233213"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="right"
android:layout_marginRight="@dimen/all_bounced_padding"
android:gravity="right"
android:orientation="horizontal">
<TextView
......@@ -90,8 +90,11 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/frame_frame_zhouyu_bg"
android:lines="1"
android:maxLines="1"
android:padding="@dimen/dp_4"
android:text="规格"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_small"
/>
</LinearLayout>
......
......@@ -81,6 +81,7 @@
android:background="@drawable/frame_frame_zhouyu_bg"
android:padding="@dimen/dp_4"
android:text="规格"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_text_size_small"
app:layout_constraintStart_toStartOf="@id/tv_goods_code_hint"
app:layout_constraintTop_toBottomOf="@id/tv_goods_code_hint" />
......
......@@ -47,11 +47,14 @@
<TextView
android:id="@+id/tv_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="@dimen/all_margin_big"
android:layout_marginTop="@dimen/all_margin"
android:background="@drawable/shape_black_b2"
android:padding="@dimen/all_spacing"
android:gravity="center"
android:paddingEnd="@dimen/all_spacing"
android:paddingStart="@dimen/all_spacing"
android:text="@{@string/sku_size+spuUnitName}"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_caption_size"
app:layout_constraintBottom_toBottomOf="@id/ll_price"
app:layout_constraintLeft_toLeftOf="@id/tv_name" />
......
......@@ -4,7 +4,6 @@
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_zhouyu"
android:gravity="center"
android:orientation="vertical">
......
......@@ -49,7 +49,6 @@
android:id="@+id/ns_type_3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="@id/ns_type_1"
app:layout_constraintRight_toRightOf="parent"
......
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<import type="android.view.View" />
<variable
name="keywordLength"
type="int" />
</data>
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<EditText
android:id="@+id/et_search"
style="@style/searchBarEditor"
android:layout_width="0dp"
android:labelFor="@+id/et_search"
android:paddingEnd="@dimen/all_margin_big"
android:paddingStart="@dimen/all_spacing"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toLeftOf="@id/tv_search"
app:layout_constraintTop_toBottomOf="parent" />
<ImageButton
android:id="@+id/btn_clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/actionBarItemBackground"
android:contentDescription="@string/search_clear"
android:padding="@dimen/all_spacing"
android:src="@mipmap/ic_clear"
android:visibility="@{keywordLength>0?View.VISIBLE:View.GONE}"
app:layout_constraintBottom_toTopOf="parent"
app:layout_constraintRight_toRightOf="@id/et_search"
app:layout_constraintTop_toBottomOf="parent" />
<TextView
android:id="@+id/tv_search"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:background="?attr/actionBarItemBackground"
android:gravity="center"
android:paddingEnd="@dimen/all_margin"
android:paddingStart="@dimen/all_margin"
android:text="@string/search_action"
android:textColor="@color/black_baozheng"
android:textSize="@dimen/all_body_size"
app:layout_constraintLeft_toRightOf="@id/et_search"
app:layout_constraintRight_toRightOf="parent" />
</android.support.constraint.ConstraintLayout>
</layout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="NineGridImageView">
<attr format="dimension" name="imgGap"/>
<attr name="imgGap" format="dimension" />
</declare-styleable>
<declare-styleable name="SearchBar">
<attr name="inputType">
<!-- There is no content type. The text is not editable. -->
<flag name="none" value="0x00000000" />
<!-- Just plain old text. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_NORMAL}. -->
<flag name="text" value="0x00000001" />
<!-- Can be combined with <var>text</var> and its variations to
request capitalization of all characters. Corresponds to
{@link android.text.InputType#TYPE_TEXT_FLAG_CAP_CHARACTERS}. -->
<flag name="textCapCharacters" value="0x00001001" />
<!-- Can be combined with <var>text</var> and its variations to
request capitalization of the first character of every word. Corresponds to
{@link android.text.InputType#TYPE_TEXT_FLAG_CAP_WORDS}. -->
<flag name="textCapWords" value="0x00002001" />
<!-- Can be combined with <var>text</var> and its variations to
request capitalization of the first character of every sentence. Corresponds to
{@link android.text.InputType#TYPE_TEXT_FLAG_CAP_SENTENCES}. -->
<flag name="textCapSentences" value="0x00004001" />
<!-- Can be combined with <var>text</var> and its variations to
request auto-correction of text being input. Corresponds to
{@link android.text.InputType#TYPE_TEXT_FLAG_AUTO_CORRECT}. -->
<flag name="textAutoCorrect" value="0x00008001" />
<!-- Can be combined with <var>text</var> and its variations to
specify that this field will be doing its own auto-completion and
talking with the input method appropriately. Corresponds to
{@link android.text.InputType#TYPE_TEXT_FLAG_AUTO_COMPLETE}. -->
<flag name="textAutoComplete" value="0x00010001" />
<!-- Can be combined with <var>text</var> and its variations to
allow multiple lines of text in the field. If this flag is not set,
the text field will be constrained to a single line. Corresponds to
{@link android.text.InputType#TYPE_TEXT_FLAG_MULTI_LINE}. -->
<flag name="textMultiLine" value="0x00020001" />
<!-- Can be combined with <var>text</var> and its variations to
indicate that though the regular text view should not be multiple
lines, the IME should provide multiple lines if it can. Corresponds to
{@link android.text.InputType#TYPE_TEXT_FLAG_IME_MULTI_LINE}. -->
<flag name="textImeMultiLine" value="0x00040001" />
<!-- Can be combined with <var>text</var> and its variations to
indicate that the IME should not show any
dictionary-based word suggestions. Corresponds to
{@link android.text.InputType#TYPE_TEXT_FLAG_NO_SUGGESTIONS}. -->
<flag name="textNoSuggestions" value="0x00080001" />
<!-- Text that will be used as a URI. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_URI}. -->
<flag name="textUri" value="0x00000011" />
<!-- Text that will be used as an e-mail address. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_EMAIL_ADDRESS}. -->
<flag name="textEmailAddress" value="0x00000021" />
<!-- Text that is being supplied as the subject of an e-mail. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_EMAIL_SUBJECT}. -->
<flag name="textEmailSubject" value="0x00000031" />
<!-- Text that is the content of a short message. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_SHORT_MESSAGE}. -->
<flag name="textShortMessage" value="0x00000041" />
<!-- Text that is the content of a long message. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_LONG_MESSAGE}. -->
<flag name="textLongMessage" value="0x00000051" />
<!-- Text that is the name of a person. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_PERSON_NAME}. -->
<flag name="textPersonName" value="0x00000061" />
<!-- Text that is being supplied as a postal mailing address. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_POSTAL_ADDRESS}. -->
<flag name="textPostalAddress" value="0x00000071" />
<!-- Text that is a password. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_PASSWORD}. -->
<flag name="textPassword" value="0x00000081" />
<!-- Text that is a password that should be visible. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_VISIBLE_PASSWORD}. -->
<flag name="textVisiblePassword" value="0x00000091" />
<!-- Text that is being supplied as text in a web form. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_WEB_EDIT_TEXT}. -->
<flag name="textWebEditText" value="0x000000a1" />
<!-- Text that is filtering some other data. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_FILTER}. -->
<flag name="textFilter" value="0x000000b1" />
<!-- Text that is for phonetic pronunciation, such as a phonetic name
field in a contact entry. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_PHONETIC}. -->
<flag name="textPhonetic" value="0x000000c1" />
<!-- Text that will be used as an e-mail address on a web form. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_WEB_EMAIL_ADDRESS}. -->
<flag name="textWebEmailAddress" value="0x000000d1" />
<!-- Text that will be used as a password on a web form. Corresponds to
{@link android.text.InputType#TYPE_CLASS_TEXT} |
{@link android.text.InputType#TYPE_TEXT_VARIATION_WEB_PASSWORD}. -->
<flag name="textWebPassword" value="0x000000e1" />
<!-- A numeric only field. Corresponds to
{@link android.text.InputType#TYPE_CLASS_NUMBER} |
{@link android.text.InputType#TYPE_NUMBER_VARIATION_NORMAL}. -->
<flag name="number" value="0x00000002" />
<!-- Can be combined with <var>number</var> and its other options to
allow a signed number. Corresponds to
{@link android.text.InputType#TYPE_CLASS_NUMBER} |
{@link android.text.InputType#TYPE_NUMBER_FLAG_SIGNED}. -->
<flag name="numberSigned" value="0x00001002" />
<!-- Can be combined with <var>number</var> and its other options to
allow a decimal (fractional) number. Corresponds to
{@link android.text.InputType#TYPE_CLASS_NUMBER} |
{@link android.text.InputType#TYPE_NUMBER_FLAG_DECIMAL}. -->
<flag name="numberDecimal" value="0x00002002" />
<!-- A numeric password field. Corresponds to
{@link android.text.InputType#TYPE_CLASS_NUMBER} |
{@link android.text.InputType#TYPE_NUMBER_VARIATION_PASSWORD}. -->
<flag name="numberPassword" value="0x00000012" />
<!-- For entering a phone number. Corresponds to
{@link android.text.InputType#TYPE_CLASS_PHONE}. -->
<flag name="phone" value="0x00000003" />
<!-- For entering a date and time. Corresponds to
{@link android.text.InputType#TYPE_CLASS_DATETIME} |
{@link android.text.InputType#TYPE_DATETIME_VARIATION_NORMAL}. -->
<flag name="datetime" value="0x00000004" />
<!-- For entering a date. Corresponds to
{@link android.text.InputType#TYPE_CLASS_DATETIME} |
{@link android.text.InputType#TYPE_DATETIME_VARIATION_DATE}. -->
<flag name="date" value="0x00000014" />
<!-- For entering a time. Corresponds to
{@link android.text.InputType#TYPE_CLASS_DATETIME} |
{@link android.text.InputType#TYPE_DATETIME_VARIATION_TIME}. -->
<flag name="time" value="0x00000024" />
</attr>
<attr name="hint" format="reference|string" />
</declare-styleable>
</resources>
\ No newline at end of file
......@@ -272,16 +272,16 @@
<string name="other_selcet_shop">共%s个门店库存</string>
<!--补货界面-->
<string name="replenishment_meun">补货</string>
<string name="replenishment_meun">补货</string>
<string name="replenishment_add">一键补货</string>
<string name="replenishment_order">共%s个订单</string>
<string name="replenishment_search_hint">搜索供货商订单</string>
<string name="replenishment_empty_hint">还没有货单哦~</string>
<string name="replenishment_empty_hint">还没有货单哦~</string>
<string name="replenishment_detail_cancel">关闭</string>
<string name="replenishment_detail_submit">定货提交</string>
<string name="replenishment_detail_print">打印</string>
<string name="replenishment_detail_title">定货明细</string>
<string name="replenishment_detail_full">货物满满\n不需要货哦~</string>
<string name="replenishment_detail_full">货物满满\n不需要货哦~</string>
<!--盘点界面-->
<string name="inventory_meun">库存盘点</string>
<string name="inventory_add">开始盘库</string>
......@@ -421,7 +421,7 @@
<string name="sssku_cost_hint">是否按此包装进货:</string>
<string name="sssku_stock_low_limit">库存下限:</string>
<string name="sssku_stock_upper_limit">库存上限:</string>
<string name="sssku_min_oder">最小货:</string>
<string name="sssku_min_oder">最小货:</string>
<string name="sssku_pack_name">品名:</string>
<string name="sssku_pack_price">售价:</string>
<string name="sssku_pack_default_unit"></string>
......@@ -513,7 +513,7 @@
<string name="menu_manager_oper">店员管理</string>
<string name="menu_manager_goods">商品维护</string>
<string name="menu_manager_bale">商品组合</string>
<string name="menu_manager_replenishment">补货</string>
<string name="menu_manager_replenishment">补货</string>
<string name="menu_manager_other">邻库查询</string>
<string name="menu_manager_inventory">库存盘点</string>
......@@ -726,7 +726,7 @@
<string name="sku_cost">进价:</string>
<string name="sku_stock_low_limit">库存下限:</string>
<string name="sku_stock_upper_limit">库存上限:</string>
<string name="sku_min_oder">最小货:</string>
<string name="sku_min_oder">最小货:</string>
<string name="sku_update">编辑商品</string>
<string name="sku_update_price">调整价格</string>
......@@ -736,4 +736,10 @@
<string name="sku_empty_hint">没有找到对应商品~</string>
<string name="search_action">搜索</string>
<string name="search_clear">清空</string>
</resources>
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