Browse Source

修复屏蔽商品后闪退

ccc 1 year ago
parent
commit
fe327c7b39
30 changed files with 819 additions and 85 deletions
  1. 3 3
      .idea/misc.xml
  2. 4 2
      BaseLibrary/src/main/java/com/hboxs/base_library/constant/Global.java
  3. 2 0
      BaseLibrary/src/main/java/com/hboxs/base_library/constant/Name.java
  4. 7 7
      BaseLibrary/src/main/java/com/hboxs/base_library/util/DrawableSelectorUtils.java
  5. BIN
      BaseLibrary/src/main/res/drawable/logo_7cloud.png
  6. 2 2
      app/src/main/java/com/bgy/autosale/ui/MainActivity.java
  7. 15 13
      app/src/main/java/com/bgy/autosale/ui/consumer/IceCreamFragment.java
  8. 4 0
      app/src/main/java/com/bgy/autosale/ui/consumer/MainFragment.java
  9. 30 28
      app/src/main/java/com/bgy/autosale/ui/operator/fragments/PriceFragment.java
  10. 80 3
      app/src/main/java/com/bgy/autosale/ui/operator/fragments/SwitchFragment.java
  11. 4 3
      app/src/main/java/com/bgy/autosale/ui/operator/fragments/TechnologySupportFragment.java
  12. 9 2
      app/src/main/res/layout/fragment_ice_cream.xml
  13. 12 0
      app/src/main/res/layout/fragment_main.xml
  14. 127 4
      app/src/main/res/layout/fragment_switch.xml
  15. 5 5
      app/src/main/res/layout/fragment_technology_support.xml
  16. 2 0
      app/src/main/res/values-cs/strings.xml
  17. 2 1
      app/src/main/res/values-de/strings.xml
  18. 2 1
      app/src/main/res/values-en/strings.xml
  19. 2 0
      app/src/main/res/values-es/strings.xml
  20. 2 0
      app/src/main/res/values-et/strings.xml
  21. 474 0
      app/src/main/res/values-hy/strings.xml
  22. 2 0
      app/src/main/res/values-ko/strings.xml
  23. 2 0
      app/src/main/res/values-lt/strings.xml
  24. 2 0
      app/src/main/res/values-lv/strings.xml
  25. 3 0
      app/src/main/res/values-ru/strings.xml
  26. 2 0
      app/src/main/res/values-zh/strings.xml
  27. 2 0
      app/src/main/res/values/strings.xml
  28. 2 2
      config.gradle
  29. 15 8
      lm-library/src/main/java/top/keepempty/sph/library/SphDataProcess.java
  30. 1 1
      module_offpay/src/main/java/com/example/offpay/ictrs232/SerialPortUtil.java

+ 3 - 3
.idea/misc.xml

@@ -23,11 +23,11 @@
         <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/dialog_pay.xml" value="0.24947916666666667" />
         <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/dialog_shopping_trolley_choose_pay.xml" value="0.24947916666666667" />
         <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/dialog_update.xml" value="0.24947916666666667" />
-        <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_ice_cream.xml" value="0.152" />
-        <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_main.xml" value="0.24947916666666667" />
+        <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_ice_cream.xml" value="0.536" />
+        <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_main.xml" value="0.264" />
         <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_pay_select.xml" value="0.24947916666666667" />
         <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_price.xml" value="0.2" />
-        <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_switch.xml" value="0.264" />
+        <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_switch.xml" value="0.4" />
         <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/fragment_technology_support.xml" value="0.24947916666666667" />
         <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/item_price.xml" value="0.2" />
         <entry key="..\:/Users/Desktop/iceCream-QX/icecream-lite-main/app/src/main/res/layout/item_shop_cart_dishes.xml" value="0.1" />

+ 4 - 2
BaseLibrary/src/main/java/com/hboxs/base_library/constant/Global.java

@@ -18,7 +18,7 @@ public abstract class Global {
      * 用来初始化这个Global的类,不然会很卡。
      */
     public static boolean isTrue=false;
-    
+
     /**
      * 控制当前是否为离线版本m
      * false 线上版本
@@ -32,7 +32,7 @@ public abstract class Global {
      * 1:
      * 2:国外线上
      */
-    public static final int isVersions = 1;
+    public static final int isVersions = 2;
 
     /**
      * 信用卡支付方式user
@@ -232,6 +232,8 @@ public abstract class Global {
     //d2的状态,表示做糖列表没有了,可以根据d2的状态进行判断。
     public static boolean d2Status = false;//false表示还在制作,true表示可以制作了。
     public static int creditCardMultiplier = Hawk.get(Name.MDB_RATE, 100);
+    public static int coinMultiplier = Hawk.get(Name.COIN_RATE, 1);
+    public static int coinMultiplierDivide = Hawk.get(Name.COIN_DIVIDE_RATE, 1);
 
     //表示
     public static int isUserHome = 0; // 0 不在 1在

+ 2 - 0
BaseLibrary/src/main/java/com/hboxs/base_library/constant/Name.java

@@ -304,6 +304,8 @@ public interface Name {
     String CREDIT_CARD_PAYMENT_TEXT_DESCRIPTION = "CREDIT_CARD_PAYMENT_TEXT_DESCRIPTION";//信用卡文本描述
     String END_CREDIT_CARD = "END_CREDIT_CARD";//信用卡对话框跟随流程结束
     String MDB_RATE = "MDB_RATE";//mdb倍率
+    String COIN_RATE = "COIN_RATE";//硬币迈冲乘以X;
+    String COIN_DIVIDE_RATE = "COIN_DIVIDE_RATE";//硬币迈冲除以X;
 
     String MDBRS232 = "MDBRS232";//威佛启动
     // ---------------------------------- 通信设置 ----------------------------------- ----------------------------------- -----------------------------------

+ 7 - 7
BaseLibrary/src/main/java/com/hboxs/base_library/util/DrawableSelectorUtils.java

@@ -220,9 +220,9 @@ public class DrawableSelectorUtils {
         int height = 0;
         String logo = Hawk.get("logo", "1");
         if ("1".equals(logo) | "SUNZ".equals(logo)) {
-            logoF = R.drawable.logo_1;
-            width = R.dimen.dp_40;
-            height = R.dimen.dp_16;
+//            logoF = R.drawable.logo_1;
+            width = R.dimen.dp_0;
+            height = R.dimen.dp_0;
         } else if ("2".equals(logo) | "8647".equals(logo)) {
             logoF = R.drawable.logo_2;
             width = R.dimen.dp_60;
@@ -327,10 +327,10 @@ public class DrawableSelectorUtils {
             logoF = R.drawable.logo_16;
             width = R.dimen.dp_100;
             height = R.dimen.dp_30;
-//        }else if ("7322".equals(logo)){
-//            logoF = R.drawable.logo_17;
-//            width = R.dimen.dp_100;
-//            height = R.dimen.dp_30;
+        }else if ("7772".equals(logo)){
+            logoF = R.drawable.logo_7cloud;
+            width = R.dimen.dp_50;
+            height = R.dimen.dp_30;
         }
         ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
         layoutParams.width = UiUtil.getDimensionPixelRes(width);

BIN
BaseLibrary/src/main/res/drawable/logo_7cloud.png


+ 2 - 2
app/src/main/java/com/bgy/autosale/ui/MainActivity.java

@@ -155,7 +155,7 @@ public class MainActivity extends BaseScanGunActivity {
 
         NetTimeClock.getInstance();
 
-        if (Hawk.get("nayax", true)) {
+        if (Hawk.get("nayax", false)) {
             Log.d(TAG, "onCreate: ALWAYS_IDLEaaaa");
             initCreditCardDriver();
             Log.d(TAG, "onCreate: ALWAYS_IDLEbbb");
@@ -355,7 +355,7 @@ public class MainActivity extends BaseScanGunActivity {
         findViewById(R.id.main_fragment).setVisibility(View.VISIBLE);
 
         if (!SPUtils.getInstance(App.app).getBoolean(Constant.LOCK_IN_ERROR, false)) {
-//            App.app.initDeviceStateListener();//是否开机
+            App.app.initDeviceStateListener();//是否开机
         }
 
         if (initView != null) {

+ 15 - 13
app/src/main/java/com/bgy/autosale/ui/consumer/IceCreamFragment.java

@@ -209,6 +209,9 @@ public class IceCreamFragment extends BaseAutoExitFragment implements View.OnCli
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
+
+        ImageView ivLogo=view.findViewById(R.id.iv_logo);
+        DrawableSelectorUtils.setImageLogo(ivLogo);
         Log.d(TAG, "onViewCreated: 1");
         Bundle bundle = getArguments();
         if (bundle != null) {
@@ -423,17 +426,15 @@ public class IceCreamFragment extends BaseAutoExitFragment implements View.OnCli
         MainActivity.openSerialPortA().setSphResultCallback(new SphResultCallback() {
             @Override
             public void onSendData(SphCmdEntity sendCom) {
-                Log.d(TAG, "onCreate:  投币测试7:发送" + sendCom.commandsHex);
             }
 
             @Override
             public void onReceiveData(SphCmdEntity data) {
-                Log.d(TAG, "onCreate:  投币测试8:读取" + data.commandsHex);
                 if (data.commandsHex.startsWith("010304") && data.commandsHex.length() >= 10) {
                     String result = data.commandsHex.substring(6, 10);
                     double coin = Integer.parseInt(result, 16) / 100.00;
                     if (!result.equals("0000")) {
-                        Global.hascoin = Global.hascoin.add(new BigDecimal(coin + "")).setScale(2, RoundingMode.HALF_UP);
+                        Global.hascoin = Global.hascoin.add(new BigDecimal((coin *Global.coinMultiplier)/Global.coinMultiplierDivide)).setScale(2, RoundingMode.HALF_UP);
                         getDefault().post(new OfflineMessageEvent(Name.CURRENCYCHANGES, null));
                     }
                 }
@@ -1222,7 +1223,7 @@ public class IceCreamFragment extends BaseAutoExitFragment implements View.OnCli
             case Name.WMDB:
                 Log.d(TAG, "wmdbDataevent1005: " + asciiData);
                 if (asciiData.startsWith("10 05")) {
-                    manualMake();
+//                    manualMake();
                     Log.d(TAG, "wmdbDataevent1005: seccess");
                 }
                 break;
@@ -1357,7 +1358,7 @@ public class IceCreamFragment extends BaseAutoExitFragment implements View.OnCli
                 break;
             case Name.CURRENCYCHANGES://入钞了
                 tvMoney.setText(haveMoney + (Global.hasmoney.doubleValue() + Global.hascoin.doubleValue()));
-                Log.d(TAG, "event: ");
+                Log.d(TAG, "event: "+Global.hascoin.doubleValue());
                 if (payMixDialog != null && payMixDialog.isShowing()) {
                     if (Global.hasmoney.doubleValue() + Global.hascoin.doubleValue() >= pri) {
                         tvMoney.setText(haveMoney + (Global.hasmoney.doubleValue() + Global.hascoin.doubleValue() - pri));
@@ -1546,17 +1547,11 @@ public class IceCreamFragment extends BaseAutoExitFragment implements View.OnCli
                             isCreditCards = true;
                             //显示投币成功弹窗
                             showDialogPaySuccess(R.string.coin_success, R.drawable.img_toubi_pay);
-                            new Handler().postDelayed(new Runnable() {
-                                @Override
-                                public void run() {
-                                    Log.d(TAG, "event: CreditCardMessage3");
-                                    manualMake();
-                                }
-                            }, 2000);
                         }
                         break;
                     case R.id.btn_cancel:
                         WeaverUtil.creditCardVendCancel();
+                        showLoading();
                         Log.d(TAG, "onClickListener: 取消支付");
                         stopTradingTimerDown(tradingTimer, tradingTimerTask);
                         //关闭 重新支付弹窗倒计
@@ -1569,6 +1564,7 @@ public class IceCreamFragment extends BaseAutoExitFragment implements View.OnCli
                                 if (mMdbCreditCardDialog != null) {
                                     mMdbCreditCardDialog.dismiss();
                                 }
+                                dismissLoading();
                             }
                         }, 3000);
                         break;
@@ -1576,7 +1572,12 @@ public class IceCreamFragment extends BaseAutoExitFragment implements View.OnCli
             }
         });
         mMdbCreditCardDialog.show((ViewGroup) iceCreamView.getParent());
-        dismissLoading();
+        new Handler().postDelayed(new Runnable() {
+            @Override
+            public void run() {
+                dismissLoading();
+            }
+        },5000);
     }
 
     private void stopTradingTimerDown(Timer timer, TimerTask task) {
@@ -1598,6 +1599,7 @@ public class IceCreamFragment extends BaseAutoExitFragment implements View.OnCli
 
     // 进入手动制作的界面
     private void manualMake() {
+        LogUtils.logWrite("制作了"+orderHelper.generateMakingIceCream().size()+"杯冰淇淋");
         if (App.app.payChannel != Constant.PAY_FREE) {
             LogUtils.logWrite("制作冰激凌了");
         }

+ 4 - 0
app/src/main/java/com/bgy/autosale/ui/consumer/MainFragment.java

@@ -10,6 +10,7 @@ import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.animation.AnimationUtils;
+import android.widget.ImageView;
 import android.widget.ProgressBar;
 import android.widget.TextView;
 
@@ -34,6 +35,7 @@ import com.bgy.autosale.ui.operator.DeviceManagerActivity;
 import com.bgy.autosale.ui.operator.fragments.PriceFragment;
 import com.bgy.autosale.utils.SPUtils;
 import com.bgy.autosale.utils.ToastUtil;
+import com.hboxs.base_library.util.DrawableSelectorUtils;
 import com.orhanobut.hawk.Hawk;
 
 import java.util.ArrayList;
@@ -78,6 +80,8 @@ public class MainFragment extends BaseFragment implements RadarCallback {
     @Override
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
+        ImageView ivLogo=view.findViewById(R.id.iv_logo);
+        DrawableSelectorUtils.setImageLogo(ivLogo);
         clickView = view.findViewById(R.id.ice_cream_bg);
         findViewById(R.id.action_view).setOnClickListener(new View.OnClickListener() {
             @Override

+ 30 - 28
app/src/main/java/com/bgy/autosale/ui/operator/fragments/PriceFragment.java

@@ -158,13 +158,15 @@ public class PriceFragment extends BaseFragment implements View.OnClickListener
             @Override
             public boolean onInterceptTouchEvent(@NonNull RecyclerView recyclerView, @NonNull MotionEvent motionEvent) {
                 View childView = recyclerView.findChildViewUnder(motionEvent.getX(), motionEvent.getY());
-                if (recyclerView.getChildViewHolder(childView) != null) {
-                    ViewHolder viewHolder = (ViewHolder) recyclerView.getChildViewHolder(childView);
-                    int position = recyclerView.getChildAdapterPosition(childView);
-                    rvPosition = position;
-                    String priceValue = viewHolder.priceView.getText().toString();
-                    String nameValue = viewHolder.nameView.getText().toString();
-                    Log.d(TAG, "onInterceptTouchEvent: " + nameValue + ":" + position + ":" + priceValue);
+                if (childView != null) {
+                    if (recyclerView.getChildViewHolder(childView) != null) {
+                        ViewHolder viewHolder = (ViewHolder) recyclerView.getChildViewHolder(childView);
+                        int position = recyclerView.getChildAdapterPosition(childView);
+                        rvPosition = position;
+                        String priceValue = viewHolder.priceView.getText().toString();
+                        String nameValue = viewHolder.nameView.getText().toString();
+                        Log.d(TAG, "onInterceptTouchEvent: " + nameValue + ":" + position + ":" + priceValue);
+                    }
                 }
                 return false;
             }
@@ -184,33 +186,33 @@ public class PriceFragment extends BaseFragment implements View.OnClickListener
             @Override
             public void onClick(View v) {
                 Log.d(TAG, "onClick:1 " + priceAdapter.getItemCount());
-                    for (int i = 0; i < priceAdapter.getItemCount(); i++) {
-                        View view = recyclerView.getChildAt(i);
-                        ViewHolder viewHolder = (ViewHolder) recyclerView.getChildViewHolder(view);
-                        Log.d(TAG, "onClick: " + viewHolder.priceView.getText().toString());
-                        Log.d(TAG, "onClick: " + viewHolder.nameView.getText().toString());
-                        Log.d(TAG, "onClick: " + viewHolder.titleView.getText().toString());
-                        SPUtils.getInstance(App.app).putString(getString(ProductAbout.title[i]), viewHolder.titleView.getText().toString());
-                        SPUtils.getInstance(App.app).putString(ProductAbout.nameKey[i], viewHolder.nameView.getText().toString());
-                        SPUtils.getInstance(App.app).putString(ProductAbout.priceKey[i], viewHolder.priceView.getText().toString());
-                        PriceBean priceBean = new PriceBean();
-                        priceBean.setDefaultName(viewHolder.titleView.getText().toString());
-                        priceBean.setChineseName(viewHolder.nameView.getText().toString());
-                        priceBean.setPriceDefault(viewHolder.priceView.getText().toString());
-                        priceList.add(priceBean);
-                        Hawk.put("PRICEBEAN", priceList);
-                        if (Global.isVersions==1){
+                for (int i = 0; i < priceAdapter.getItemCount(); i++) {
+                    View view = recyclerView.getChildAt(i);
+                    ViewHolder viewHolder = (ViewHolder) recyclerView.getChildViewHolder(view);
+                    Log.d(TAG, "onClick: " + viewHolder.priceView.getText().toString());
+                    Log.d(TAG, "onClick: " + viewHolder.nameView.getText().toString());
+                    Log.d(TAG, "onClick: " + viewHolder.titleView.getText().toString());
+                    SPUtils.getInstance(App.app).putString(getString(ProductAbout.title[i]), viewHolder.titleView.getText().toString());
+                    SPUtils.getInstance(App.app).putString(ProductAbout.nameKey[i], viewHolder.nameView.getText().toString());
+                    SPUtils.getInstance(App.app).putString(ProductAbout.priceKey[i], viewHolder.priceView.getText().toString());
+                    PriceBean priceBean = new PriceBean();
+                    priceBean.setDefaultName(viewHolder.titleView.getText().toString());
+                    priceBean.setChineseName(viewHolder.nameView.getText().toString());
+                    priceBean.setPriceDefault(viewHolder.priceView.getText().toString());
+                    priceList.add(priceBean);
+                    Hawk.put("PRICEBEAN", priceList);
+                    if (Global.isVersions == 1) {
 //                            getproducts();
-                            updateDate(priceList);
-                        }
-                        showToast("更新成功");
+                        updateDate(priceList);
                     }
+                    showToast("更新成功");
+                }
             }
         });
     }
 
     private List<PriceBean> priceBeans;
-    private ArrayList<PriceBean> priceList=new ArrayList<>();
+    private ArrayList<PriceBean> priceList = new ArrayList<>();
 
     @Override
     public void onResume() {
@@ -289,7 +291,7 @@ public class PriceFragment extends BaseFragment implements View.OnClickListener
         };
 
         String[] iconKey = {
-                "", SHARED_PREFERENCE_ICON_KERNEL_1, SHARED_PREFERENCE_SWITCH_KERNEL_2, SHARED_PREFERENCE_ICON_SAUCE_1,
+                null, SHARED_PREFERENCE_ICON_KERNEL_1, SHARED_PREFERENCE_ICON_KERNEL_2, SHARED_PREFERENCE_ICON_SAUCE_1,
                 SHARED_PREFERENCE_ICON_SAUCE_2, SHARED_PREFERENCE_ICON_SAUCE_3
         };
 

+ 80 - 3
app/src/main/java/com/bgy/autosale/ui/operator/fragments/SwitchFragment.java

@@ -2,6 +2,7 @@ package com.bgy.autosale.ui.operator.fragments;
 
 import android.content.Context;
 import android.os.Bundle;
+import android.os.Handler;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.v7.widget.LinearLayoutManager;
@@ -16,6 +17,7 @@ import android.widget.ArrayAdapter;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 import android.widget.Spinner;
@@ -45,6 +47,7 @@ import com.hboxs.base_library.http.observer.HttpResultObserver;
 import com.hboxs.base_library.http.response.HttpResult;
 import com.hboxs.base_library.http.response.HttpResultHandler;
 import com.hboxs.base_library.util.LogUtil;
+import com.hboxs.base_library.util.LongClickUtils;
 import com.hboxs.base_library.util.SharedPreferencesUtils;
 import com.hboxs.base_library.util.ToastUtil;
 import com.hboxs.base_library.util.UiUtil;
@@ -65,7 +68,7 @@ import io.reactivex.schedulers.Schedulers;
  * Created by cjx on 2020-12-31
  * 说明:
  */
-public class SwitchFragment extends BaseFragment implements RadioGroup.OnCheckedChangeListener {
+public class SwitchFragment extends BaseFragment implements RadioGroup.OnCheckedChangeListener, View.OnClickListener {
 
     private final String TAG = "SwitchFragment";
 
@@ -91,6 +94,8 @@ public class SwitchFragment extends BaseFragment implements RadioGroup.OnChecked
     RadioButton rbIsaacNo;
     RadioButton rbMdbLevel3;
     RadioButton rbMdbLevel2;
+    EditText etChanglog;
+
     @Override
     public int getViewId() {
         return R.layout.fragment_switch;
@@ -163,6 +168,9 @@ public class SwitchFragment extends BaseFragment implements RadioGroup.OnChecked
 
         Button btnMdbRate = view.findViewById(R.id.btn_mdb_rate);
         EditText etMdbRate = view.findViewById(R.id.et_mdb_rate);
+        if (Hawk.get(Name.MDB_RATE) != null) {
+            etMdbRate.setText(Hawk.get(Name.MDB_RATE, 0) + "");
+        }
         btnMdbRate.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View v) {
@@ -175,6 +183,57 @@ public class SwitchFragment extends BaseFragment implements RadioGroup.OnChecked
                 ToastUtil.showToast(UiUtil.getStringRes(R.string.update_success));
             }
         });
+
+        Button btnCoinRate = view.findViewById(R.id.btn_coin_rate);
+        EditText etCoinRate = view.findViewById(R.id.et_coin_rate);
+        if (Hawk.get(Name.COIN_RATE) != null) {
+            etCoinRate.setText(Hawk.get(Name.COIN_RATE, 1) + "");
+        }
+        btnCoinRate.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String coinRate = etCoinRate.getText().toString().trim();
+                if ("".equals(coinRate)) {
+                    ToastUtil.showToast(UiUtil.getStringRes(R.string.not_null));
+                    return;
+                }
+                Hawk.put(Name.COIN_RATE, Integer.valueOf(coinRate));
+                ToastUtil.showToast(UiUtil.getStringRes(R.string.update_success));
+            }
+        });
+
+        Button btnCoinDivideRate = view.findViewById(R.id.btn_coin_divide_rate);
+        EditText etCoinDivideRate = view.findViewById(R.id.et_coin_divide_rate);
+        if (Hawk.get(Name.COIN_DIVIDE_RATE) != null) {
+            etCoinDivideRate.setText(Hawk.get(Name.COIN_DIVIDE_RATE, 1) + "");
+        }
+        btnCoinDivideRate.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View v) {
+                String coinRate1 = etCoinDivideRate.getText().toString().trim();
+                if ("".equals(coinRate1)) {
+                    ToastUtil.showToast(UiUtil.getStringRes(R.string.not_null));
+                    return;
+                }
+                Hawk.put(Name.COIN_DIVIDE_RATE, Integer.valueOf(coinRate1));
+                ToastUtil.showToast(UiUtil.getStringRes(R.string.update_success));
+            }
+        });
+
+        TextView runMode = view.findViewById(R.id.run_mode);
+        LinearLayout llChanglogo = view.findViewById(R.id.ll_changlogo);
+        Button btnChanglogoupdate = view.findViewById(R.id.btn_changlogoupdate);
+        btnChanglogoupdate.setOnClickListener(this);
+        etChanglog = view.findViewById(R.id.et_changlog);
+        LongClickUtils.setLongClick(new Handler(), runMode, 2000, new View.OnLongClickListener() {
+            @Override
+            public boolean onLongClick(View v) {
+                llChanglogo.setVisibility(View.VISIBLE);
+                ToastUtil.showToast(UiUtil.getStringRes(R.string.update_success));
+                return false;
+            }
+        });
+
         if (Global.isVersions == 1) {
             view.findViewById(R.id.ll_abroad_pay_setting).setVisibility(View.GONE);
             view.findViewById(R.id.ll_mdb_level_select).setVisibility(View.GONE);
@@ -361,6 +420,24 @@ public class SwitchFragment extends BaseFragment implements RadioGroup.OnChecked
         }
     }
 
+    @Override
+    public void onClick(View v) {
+        int id = v.getId();
+
+        if (id == R.id.btn_changlogoupdate) {
+            String s = etChanglog.getText().toString();
+            if ("7772".equals(s)) {
+                Hawk.put("logo", s);
+                Hawk.get("logo", "1");
+                ToastUtil.showToast(UiUtil.getStringRes(R.string.xgwc));
+            } else {
+                Hawk.put("logo", "1");
+                ToastUtil.showToast("输入错误");
+                return;
+            }
+        }
+    }
+
     class SwitchAdapter2 extends RecyclerView.Adapter<RecyclerView.ViewHolder> implements View.OnClickListener, InfoView.OnClickListener {
 
         ArrayList<SwitchBean> list;
@@ -437,13 +514,13 @@ public class SwitchFragment extends BaseFragment implements RadioGroup.OnChecked
                 Hawk.put(Name.WMDB, true);
                 Hawk.put(Name.NOTE_COMMUNICATION, Name.WMDB);
                 Hawk.put("MDB_COIN", true);
-                Hawk.put("nayax",false);
+                Hawk.put("nayax", false);
             } else if (App.app.payChannel == Constant.PAY_POS_DEVICE_PAY_MIX) {
                 Log.d(TAG, "onClick2: 选择了纸币支付");
                 Hawk.put(Name.WMDB, true);
                 Hawk.put(Name.NOTE_COMMUNICATION, Name.WMDB);
                 Hawk.put("MDB_COIN", true);
-                Hawk.put("nayax",false);
+                Hawk.put("nayax", false);
             } else if (App.app.payChannel == Constant.PAY_NAYAX_PAY) {
                 Hawk.put("nayax", true);
                 Hawk.put("MDB_COIN", false);

+ 4 - 3
app/src/main/java/com/bgy/autosale/ui/operator/fragments/TechnologySupportFragment.java

@@ -123,7 +123,8 @@ private final ArrayList<LanguageBean> languages = new ArrayList<>(Arrays.asList(
         new LanguageBean("Deutsch(德语)", "de", "德语"),
         new LanguageBean("eesti keel(爱沙尼亚语)", "et", "爱沙尼亚语"),
         new LanguageBean("lietuvių(立陶宛语)", "lt", "立陶宛语"),
-        new LanguageBean("latviski(拉脱维亚语)", "lv", "拉脱维亚语")
+        new LanguageBean("latviski(拉脱维亚语)", "lv", "拉脱维亚语"),
+        new LanguageBean("հայերեն(亚美尼亚语)", "hy", "亚美尼亚语")
 ));
     public static TechnologySupportFragment getFragment() {
         return new TechnologySupportFragment();
@@ -924,7 +925,7 @@ private final ArrayList<LanguageBean> languages = new ArrayList<>(Arrays.asList(
                         }
                         Heartbeat.managerId = data;
                         SharedPreferencesUtils.setParam(Name.SYSTEM_ID, Heartbeat.managerId);
-                        btnSystemLink.setText("已连接系统:\n" + Heartbeat.managerId);
+                        btnSystemLink.setText(UiUtil.getStringRes(R.string.connected_server) + Heartbeat.managerId);
                         String managerId = (String) SharedPreferencesUtils.getParam(Name.SYSTEM_ID, "");
                         Log.d(TAG, Heartbeat.deviceId + ":onNext getManagerId1:" + data);
                     }
@@ -959,7 +960,7 @@ private final ArrayList<LanguageBean> languages = new ArrayList<>(Arrays.asList(
                         }
                         Heartbeat.managerId = data;
                         SharedPreferencesUtils.setParam(Name.SYSTEM_ID, Heartbeat.managerId);
-                        btnSystemLink.setText("已连接系统:\n" + Heartbeat.managerId);
+                        btnSystemLink.setText(UiUtil.getStringRes(R.string.connected_server) + Heartbeat.managerId);
                         String managerId = (String) SharedPreferencesUtils.getParam(Name.SYSTEM_ID, "");
                         Log.d(TAG, Heartbeat.deviceId + ":onNext getManagerId:" + data);
                         showToast("设备脱离未成功,请重试。");

+ 9 - 2
app/src/main/res/layout/fragment_ice_cream.xml

@@ -371,12 +371,19 @@
         android:layout_gravity="center_vertical|end"
         android:layout_marginEnd="@dimen/dp_9"
         android:layout="@layout/view_shop_cart" />
-
+    <ImageView
+        android:id="@+id/iv_logo"
+        android:layout_width="@dimen/dp_50"
+        android:layout_height="@dimen/dp_30"
+        android:visibility="visible"
+        app:layout_constraintDimensionRatio="1:1"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintWidth_percent="0.08"/>
     <android.support.v7.widget.AppCompatImageView
         android:id="@+id/dishes_home"
         android:layout_width="@dimen/dp_60"
         android:layout_height="@dimen/dp_60"
-        android:layout_margin="@dimen/dp_10"
+        android:layout_margin="@dimen/dp_20"
         android:visibility="gone"
         app:srcCompat="@drawable/ic_home" />
     <FrameLayout

+ 12 - 0
app/src/main/res/layout/fragment_main.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <android.support.constraint.ConstraintLayout 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"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
@@ -41,6 +42,17 @@
         app:layout_constraintWidth_percent="0.08"
         app:srcCompat="@drawable/ic_click_hand" />
 
+    <ImageView
+        android:id="@+id/iv_logo"
+        android:layout_width="@dimen/dp_50"
+        android:layout_height="@dimen/dp_30"
+        android:visibility="visible"
+        app:layout_constraintDimensionRatio="1:1"
+        app:layout_constraintTop_toTopOf="parent"
+        app:layout_constraintWidth_percent="0.08"
+        app:srcCompat="@drawable/logo_7cloud"
+        tools:ignore="MissingConstraints" />
+
     <TextView
         android:id="@+id/click_tip"
         android:layout_width="@dimen/dp_120"

+ 127 - 4
app/src/main/res/layout/fragment_switch.xml

@@ -42,24 +42,68 @@
         app:layout_constraintTop_toBottomOf="@id/run_mode" />
 
     <ScrollView
-        android:layout_width="@dimen/dp_200"
+        android:layout_width="@dimen/dp_250"
         android:layout_height="@dimen/dp_250"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toBottomOf="@id/recycler_view_1">
 
         <LinearLayout
-            android:layout_width="wrap_content"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
             android:orientation="vertical">
 
             <LinearLayout
                 android:id="@+id/ll_protocol_setting"
-                android:layout_width="wrap_content"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
+                android:visibility="visible"
                 android:layout_centerVertical="true"
                 android:orientation="vertical"
                 tools:ignore="MissingConstraints">
                 <LinearLayout
+                    android:id="@+id/ll_changlogo"
+                    android:layout_width="wrap_content"
+                    android:visibility="gone"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+                <TextView
+                    android:id="@+id/tv_changlogo"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_margin="@dimen/dp_8"
+                    android:text="序号"
+                    android:textColor="#333"
+                    android:textSize="@dimen/sp_14"
+                    android:textStyle="bold" />
+
+                <LinearLayout
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:orientation="horizontal">
+
+                    <EditText
+                        android:id="@+id/et_changlog"
+                        android:layout_width="@dimen/dp_60"
+                        android:layout_height="@dimen/dp_22"
+                        android:layout_marginLeft="@dimen/dp_20"
+                        android:inputType="number"
+                        android:textColor="@color/colorHint"
+                        android:textColorHint="@color/colorHint"
+                        android:textSize="@dimen/dp_7" />
+
+                    <Button
+                        android:id="@+id/btn_changlogoupdate"
+                        android:layout_width="@dimen/dp_44"
+                        android:layout_height="@dimen/dp_22"
+                        android:layout_marginLeft="@dimen/dp_10"
+                        android:background="@drawable/shape_message_normal"
+                        android:text="@string/update"
+                        android:textColor="#333"
+                        android:textSize="@dimen/dp_8" />
+                </LinearLayout>
+                </LinearLayout>
+
+                <LinearLayout
                     android:id="@+id/ll_mdb_level_select"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
@@ -178,7 +222,7 @@
 
             <LinearLayout
                 android:id="@+id/ll_abroad_pay_setting"
-                android:layout_width="wrap_content"
+                android:layout_width="match_parent"
                 android:layout_height="wrap_content"
                 android:layout_centerVertical="true"
                 android:orientation="vertical"
@@ -274,6 +318,85 @@
                     </LinearLayout>
 
                 </LinearLayout>
+                <LinearLayout
+                    android:id="@+id/ll_coin_ratio"
+                    android:layout_width="match_parent"
+                    android:layout_height="wrap_content"
+                    android:orientation="vertical">
+
+                    <TextView
+                        android:id="@+id/tv_coin_rate"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:layout_margin="@dimen/dp_8"
+                        android:text="硬币倍率"
+                        android:textColor="#333"
+                        android:textSize="@dimen/sp_14"
+                        android:textStyle="bold" />
+
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal">
+
+                        <TextView
+                            android:layout_width="@dimen/dp_44"
+                            android:text="@string/coin_x"
+                            android:layout_height="@dimen/dp_25"
+                            android:textSize="@dimen/dp_8"
+                            android:layout_marginLeft="@dimen/dp_10"/>
+                        <EditText
+                            android:id="@+id/et_coin_rate"
+                            android:layout_width="@dimen/dp_60"
+                            android:layout_height="@dimen/dp_22"
+                            android:layout_marginLeft="@dimen/dp_20"
+                            android:inputType="number"
+                            android:textColor="@color/colorHint"
+                            android:textColorHint="@color/colorHint"
+                            android:textSize="@dimen/dp_7" />
+
+                        <Button
+                            android:id="@+id/btn_coin_rate"
+                            android:layout_width="@dimen/dp_44"
+                            android:layout_height="@dimen/dp_22"
+                            android:layout_marginLeft="@dimen/dp_10"
+                            android:background="@drawable/shape_message_normal"
+                            android:text="@string/update"
+                            android:textColor="#333"
+                            android:textSize="@dimen/dp_8" />
+                    </LinearLayout>
+                    <LinearLayout
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:orientation="horizontal">
+                        <TextView
+                            android:layout_width="@dimen/dp_44"
+                            android:text="@string/coin_divide_x"
+                            android:layout_height="@dimen/dp_25"
+                            android:textSize="@dimen/dp_8"
+                            android:layout_marginLeft="@dimen/dp_10"/>
+                        <EditText
+                            android:id="@+id/et_coin_divide_rate"
+                            android:layout_width="@dimen/dp_60"
+                            android:layout_height="@dimen/dp_22"
+                            android:layout_marginLeft="@dimen/dp_20"
+                            android:inputType="number"
+                            android:textColor="@color/colorHint"
+                            android:textColorHint="@color/colorHint"
+                            android:textSize="@dimen/dp_7" />
+
+                        <Button
+                            android:id="@+id/btn_coin_divide_rate"
+                            android:layout_width="@dimen/dp_44"
+                            android:layout_height="@dimen/dp_22"
+                            android:layout_marginLeft="@dimen/dp_10"
+                            android:background="@drawable/shape_message_normal"
+                            android:text="@string/update"
+                            android:textColor="#333"
+                            android:textSize="@dimen/dp_8" />
+                    </LinearLayout>
+
+                </LinearLayout>
 
                 <LinearLayout
                     android:id="@+id/ll_isaac_model_select"

+ 5 - 5
app/src/main/res/layout/fragment_technology_support.xml

@@ -37,7 +37,7 @@
                 android:text="@string/system_link"
                 android:layout_marginRight="@dimen/dp_20"
                 android:textColor="@android:color/white"
-                android:textSize="@dimen/sp_12" />
+                android:textSize="@dimen/sp_10" />
             <android.support.v7.widget.AppCompatButton
                 android:id="@+id/btn_system_disconnect"
                 android:layout_width="@dimen/dp_80"
@@ -58,18 +58,18 @@
                 android:text="@string/update_app"
                 android:layout_marginRight="@dimen/dp_20"
                 android:textColor="@android:color/white"
-                android:textSize="@dimen/sp_14" />
+                android:textSize="@dimen/sp_10" />
 
             <TextView
                 android:id="@+id/versionInfo"
-                android:layout_width="wrap_content"
+                android:layout_width="@dimen/dp_100"
                 android:layout_height="wrap_content"
                 android:layout_marginRight="@dimen/dp_30"
                 android:shadowColor="@android:color/black"
                 android:shadowRadius="2"
                 android:text="@string/version_information"
                 android:textColor="@color/colorPrimary"
-                android:textSize="@dimen/sp_16" />
+                android:textSize="@dimen/sp_8" />
 
         </LinearLayout>
 
@@ -93,7 +93,7 @@
                 android:layout_height="wrap_content"
                 android:text="@string/equipment_no"
                 android:textColor="@color/text_shop_cart"
-                android:textSize="@dimen/sp_12"/>
+                android:textSize="@dimen/sp_10"/>
 
             <TextView
                 android:id="@+id/tv_ts_device_id1"

+ 2 - 0
app/src/main/res/values-cs/strings.xml

@@ -466,6 +466,8 @@
     <string name="ict_currency_selection">Výběr měny ICT</string>
     <string name="banknote_exchange_protocol">Protokol výměny bankovek</string>
     <string name="mdb_level">Úroveň MDB</string>
+    <string name="coin_x">Coin rush násobený X</string>
+    <string name="coin_divide_x">Mince děleno X</string>
 
 </resources>
 <!--捷克语-->

+ 2 - 1
app/src/main/res/values-de/strings.xml

@@ -466,6 +466,7 @@
     <string name="ict_currency_selection">ICT-Währungsauswahl</string>
     <string name="banknote_exchange_protocol">Banknotenaustauschprotokoll</string>
     <string name="mdb_level">MDB-Ebene</string>
-
+    <string name="coin_x">Münzrausch multipliziert mit X</string>
+    <string name="coin_divide_x">Münze dividieren durch X</string>
 </resources>
 <!--德语-->

+ 2 - 1
app/src/main/res/values-en/strings.xml

@@ -467,6 +467,7 @@
     <string name="ict_currency_selection">ICT currency selection</string>
     <string name="banknote_exchange_protocol">Banknote Exchange Protocol</string>
     <string name="mdb_level">MDB level</string>
-
+    <string name="coin_x">Coin rush multiplied by X</string>
+    <string name="coin_divide_x">Coin Divide by X</string>
 </resources>
 <!--英语-->

+ 2 - 0
app/src/main/res/values-es/strings.xml

@@ -468,6 +468,8 @@
     <string name="ict_currency_selection">Selección de moneda TIC</string>
     <string name="banknote_exchange_protocol">Protocolo de intercambio de billetes</string>
     <string name="mdb_level">nivel MDB</string>
+    <string name="coin_x">Fiebre de monedas multiplicada por X</string>
+    <string name="coin_divide_x">División de monedas por X</string>
 
 </resources>
 <!--西班牙语-->

+ 2 - 0
app/src/main/res/values-et/strings.xml

@@ -465,6 +465,8 @@
     <string name="ict_currency_selection">IKT valuuta valik</string>
     <string name="banknote_exchange_protocol">Pangatähtede vahetusprotokoll</string>
     <string name="mdb_level">MDB tase</string>
+    <string name="coin_x">Müntide kiirus korrutatud X-ga</string>
+    <string name="coin_divide_x">Müntide jagamine X-ga</string>
 
 </resources>
 <!--爱沙尼亚语-->

+ 474 - 0
app/src/main/res/values-hy/strings.xml

@@ -0,0 +1,474 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="setting_technology_language_describe">չինարեն</string>
+
+    <!-- Կազմաձևեք տարբերության հիմնական հավելվածի անունը-->
+    <string name="app_name">Պաղպաղակի մեքենա</string>
+    <string name="bd" translatable="false">19900521</string>
+    <string name="un" translatable="false">ChenJinXu</string>
+    <string name="pos_no_ready" translatable="false">POS սարքը պատրաստ չէ:</string>
+    <string name="pay_way_tip_marshall" translatable="false">Խնդրում ենք վերջնականացնել ձեր վճարումը POS-ով:</string>
+    <string name="pay_error_pos" translatable="false">Լիազորումը մերժված է</string>
+    <string name="cache_file_name" translatable="false">Պաղպաղակ</string>
+    <string name="error_device_clean">Մաքրվող սարք</string>
+
+    <!-- Հաղորդակցության մոդուլ -->
+    <string name="plc_send_action_again">Վերուղարկելու հրամանը >>> </string>
+    <string name="plc_connect_status">Միացում՝ %s Նկարագրություն՝ %s</string>
+    <string name="plc_header_length_error">Վերագնագրի երկարության սխալ՝ %d</string>
+    <string name="plc_header_error">Գլխի տեղեկատվության սխալ. %d != %d Սկզբնական տվյալներ՝ %s %s</string>;
+    <string name="plc_message_length_error">Ստանդարտ հաղորդագրության երկարության սխալ՝ %d</string>
+    <string name = "plc_body_empty" > Մարմնի բովանդակության մասին տեղեկություն չկա</string >
+    <string name="plc_body_length_error">Բովանդակության երկարության սխալ՝ %d != %d</string>
+
+    <string name="plc_disconnect_initiative">Ակտիվորեն անջատեք հաճախորդը</string>
+    <string name="plc_disconnect">Սարքի անջատում</string>
+    <string name="plc_has_other_order">Սարքը չի մշակել վերջին պատվերը >> </string>
+    <string name="plc_send_order_again">Նորից փորձեք ուղարկել պատվերը >> </string>
+    <string name="plc_make_error_not_status">Սարքավորումը չի հաղորդել արտադրության կարգավիճակի մասին, ինչը հանգեցրել է սննդի աննորմալ առաքմանը >> </string>
+    <string name="plc_message_body_empty">Հաղորդագրության բովանդակությունը դատարկ է: </string>
+    <string name="plc_order_empty">Պատվերի բովանդակությունը ջնջված է:</string>
+    <string name="plc_order_result_empty">Պատվերի արդյունքի բովանդակության երկարությունը սխալ է:</string>
+    <string name="plc_order_start">Պատրաստ է սկսել պաղպաղակ պատրաստել՝ %s</string>
+    <string name="plc_order_making">Ենթապատվերը մատուցվում է. %s</string>
+    <string name="plc_order_prepare">Պատվերը պետք է ընդունվի՝ %s</string>
+    <string name="plc_order_taked">Պատվերն ընդունված է՝ %s</string>
+    <string name="plc_order_busy">Զբաղվածության կարգավիճակ՝ %s</string>
+    <string name="plc_order_error">Չհաջողվեց առաքել ենթապատվերը:</string>
+    <string name="plc_order_error2">Սննդի առաքման բացառություն:</string>
+    <string name="plc_prepare">Սարքը պատրաստ է պատվերներ ընդունելու:</string>
+    <string name="plc_not_order">Պատվերի մասին տեղեկություններ չկան:</string>
+    <string name="plc_order_receive">Ստացված պատվեր >> %s</string>
+    <string name="plc_order_no_response">Պատվեր կատարելիս պատասխան չկա:</string>
+
+    <!-- Գովազդի էջ -->
+    <string name="guide_touch">Սենսորային էկրանով պատվիրում</string>
+    <string name="no_ready">Աննորմալ վաճառքի կարգավիճակ</string>
+    <string name="is_in_sale_view">Խնդրում ենք դուրս գալ պատվերի էջից և նորից փորձել: </string>
+    <string name="is_in_get_dishes_info">Ապրանքի մասին տեղեկությունների ստացում~</string>
+    <string name="is_click_too_fast">Շատ արագ սեղմեց~</string>
+    <string name="is_used_code">Այս պատվերի համար պաղպաղակ պատրաստելու հնարավորություն չկա</string>
+    <string name="is_invalid_code">Վա՜յ, ձեր QR կոդը անվավեր է, խնդրում ենք կապվել մատուցողի հետ~</string>
+    <string name="check_fail">Չհաջողվեց հարցում կատարել պատվերի հարցում</string>
+    <string name="guide_text_1">Կարծես մի բաժակ պաղպաղակ ես բաց թողել, արի ու փորձիր~</string>
+    <string name="guide_text_2">Ողջույն, կարծում եմ, որ ուզում եք պաղպաղակ ուտել~</string>
+
+    <!-- Պատվիրելու էջ -->
+    <string name="price_unit">¥</string>
+    <string name="ice_cream">Պաղպաղակ</string>
+    <string name="buy_too_much">Սահմանափակված է մինչև 6 բաժակ միաժամանակ: </string>
+    <string name="no_dishes_info">Չհաջողվեց ստանալ ապրանքի մասին տեղեկությունները: </string>
+    <string name="flavor_original">Բնօրինակ պաղպաղակ</string>
+    <string name="flavor_original_hw">Օրիգինալ պաղպաղակ</string>
+    <string name="flavor_multi">Բազմհամով պաղպաղակ</string>
+    <string name="flavor_sauce">Ավելացնել ջեմ +</string>
+    <string name="flavor_kernel">+ ընտրել միջուկը</string>
+    <string name="shop_cart_add">Ավելացնել զամբյուղում</string>
+    <string name="make_now">Ստեղծեք հիմա</string>
+    <string name="shop_cart">Գնումների զամբյուղ</string>
+    <string name="shop_cart_pay">Անցնել վճարման</string>
+    <string name="shop_cart_price">Ընդամենը %d բաժակ, ընդհանուր %1s%2s</string>
+    <string name="shop_cart_half_price_tip">Նույն բնութագրերի պաղպաղակ, երկրորդը կարող է օգտվել կես գնի զեղչից: </string>
+    <string name="peanut">գետնանուշ</string>
+    <string name="filbert">պնդուկ</string>
+    <string name="cashew">Կաշյու</string>
+    <string name="pineapple">Արքայախնձոր</string>
+    <string name="strawberry">Ելակ</string>
+    <string name="blueberry">Հապալաս</string>
+    <string name="mango">Մանգո</string>
+    <string name="chocolates">Շոկոլադ</string>
+    <string name="oreo">Օրեո</string>
+    <string name="flavor_invalid">Ոչ մի</string>
+    <string name="flavor_stock_empty">Վաճառված է</string>
+    <string name="spec_stock_empty">%s-ը սպառված է</string>
+    <string name="spec_invalid">%s-ը հեռացվել է դարակներից</string>
+    <string name="flavor_stock">մնում է %d բաժակ</string>
+    <string name="material_milk">Կաթ</string>
+    <string name="material_cup">բաժակ</string>
+
+    <!-- Վճարման էջ -->
+    <string name="pay_init_error">Գնումների զամբյուղը մաքրված է, խնդրում ենք կրկին պատվիրել</string>
+    <string name="pay_close">Ավտոմատ փակել %ds-ից հետո</string>
+    <string name="pay_go">Խնդրում ենք վճարել</string>
+    <string name="pay_price">Ընդհանուր փաստացի վճարում.</string>
+    <string name="pay_way_tip">Խնդրում ենք բացել WeChat/Alipay-ը և վճարելու համար սկանավորել QR կոդը</string>
+    <string name="pay_way_tip2">Վճարումն ավարտելու համար տեղադրեք վճարման կոդը կոդի սկաների տակ</string>
+    <string name="pay_way">Վճարման եղանակ.</string>
+    <string name="pay_way_wechat">WeChat</string>
+    <string name="pay_way_alipay">Ալիպայ</string>
+    <string name="paying_tip">Վճարման հուշում</string>
+    <string name="paying_close">Ավտոմատ կերպով չեղարկել պատվերը %ds-ից հետո</string>
+    <string name="paying_describe">Վճարումն ընթացքի մեջ է, խնդրում ենք սպասել...</string>
+    <string name="paying_success_tip">Վճարումը հաջողվեց, պատվերը մշակվում է...</string>
+    <string name="paying_fail_tip">Վճարումը ձախողվեց, խնդրում ենք կրկին փորձել</string>
+    <string name="paying_back">Վերադարձեք նախորդ էջ,</string>
+    <string name="paying_again">Վճարեք նորից</string>
+    <string name="pay_way_only">Աջակցում է միայն WeChat-ի և Alipay-ի վճարումները</string>
+    <string name="pay_time_out">ժամկետի ավարտից հետո վճարում չկա, փակեք միջերեսը</string>
+    <string name="pay_cancel">Չեղարկել վճարումը և փակել միջերեսը</string>
+
+    <!-- Ճաշի էջ -->
+    <string name="error_plc_order_err">Չհաջողվեց պատվիրել</string>
+    <string name="take_tip">Սնունդ ընդունելու խորհուրդներ</string>
+    <string name="take_back">Վերադառնալ գլխավոր էջ</string>
+    <string name="pay_success">Վճարումը հաջողվեց</string>
+    <string name="order_complete">Պատվերն ավարտված է</string>
+    <string name="make_describe_ing">Ձեր պաղպաղակը պատրաստվում է, խնդրում ենք սպասել...</string>
+    <string name="make_ing">Սննդի պատրաստում</string>
+    <string name="take_describe_complete">Ձեր պաղպաղակն ավարտված է, խնդրում ենք վերցնել այն որքան հնարավոր է շուտ: </string>
+    <string name="take_complete">Խնդրում ենք ճաշել</string>
+    <string name="take_describe_close">Սննդի ընդունման պորտը փակվում է, խնդրում ենք ուշադրություն դարձնել: </string>
+    <string name="take_close">Վերակայում</string>
+    <string name="take_describe_finish">Պատվերն ավարտված է, համեցեք այցելել հաջորդ անգամ~</string>
+    <string name="take_finish">Վերցված է</string>
+    <string name="make_fail_tip">Ահ, կներեք~սարքելը ձախողվեց</string>
+    <string name="make_fail_describe">Եթե հարցեր ունեք, դիմեք հաճախորդների սպասարկման ծառայությանը~</string>
+    <string name="make_fail_describe_refund">Չպատրաստված պաղպաղակը կվերադարձվի նույն կերպ, եթե հարցեր ունեք, դիմեք հաճախորդների սպասարկմանը~</string>
+
+    <!-- Backend մուտք -->
+    <string name="auth_login_type_scan">Սկանավորեք կոդը մուտք գործելու համար</string>
+    <string name="auth_login_type_phone">Բջջային հեռախոսահամարի մուտք</string>
+    <string name="auth_login_type_phone_hint">Խնդրում ենք մուտքագրել ձեր բջջային հեռախոսահամարը</string>
+    <string name="auth_login_type_pwd_hint">Դինամիկ գաղտնաբառ</string>
+    <string name="auth_login_type_pwd_get_way">Դիտել գաղտնաբառի ձեռքբերման դինամիկ եղանակը >></string>
+    <string name="auth_login_return">Վերադառնալ պատվերի էկրանին</string>
+    <string name="auth_login_confirm">Մուտք</string>
+    <string name="auth_login_scan_hint">Խնդրում ենք ներկայացնել մուտքի QR կոդը և տեղադրել այն սկանավորման միացքում</string>
+    <string name="auth_login_scan_code_get_way">Դիտեք մուտքի QR կոդի ձեռքբերման եղանակը >></string>
+    <string name="auth_login_fail">Մուտքի նույնականացումը ձախողվեց: </string>
+    <string name="auth_login_understand">Հասկանալի է</string>
+    <string name="operate_reason_title">Խնդրում ենք ընտրել գործողության պատճառը</string>
+
+    <!-- Backend-ի կառավարում -->
+    <string name="auth_old_pwd">Խնդրում ենք մուտքագրել բնօրինակ գաղտնաբառը</string>
+    <string name="auth_old_pwd_fail">Բնօրինակ գաղտնաբառի հաստատման սխալ</string>
+    <string name="auth_new_pwd">Խնդրում ենք մուտքագրել նոր գաղտնաբառ</string>
+    <string name="auth_new_pwd_again">Խնդրում ենք կրկին մուտքագրել նոր գաղտնաբառը</string>
+    <string name="auth_new_pwd_different">Երկու նոր գաղտնաբառերը անհամապատասխան են, խնդրում ենք նորից մուտքագրեք նոր գաղտնաբառը</string>
+    <string name="auth_new_pwd_success">Փոփոխումը հաջողվեց</string>
+    <string name="auth_fail">Նույնականացումը ձախողվեց:</string>
+    <string name="ice_cream_setting">Պաղպաղակի մեքենայի կարգավորումներ</string>
+    <string name="return_start">Վերադառնալ պատվերին</string>
+    <string name="exit_app">Դուրս գալ հավելվածից</string>
+    <string name="guide_video">Օգտագործման ուղեցույց\nՕպերացիոն տեսանյութ</string>
+
+    <string name="setting_temperature_anomaly">Ջերմաստիճանի աննորմալություն</string>
+    <string name="realtime_warnings">Իրական ժամանակի տեղեկատվություն.</string>
+    <string name="setting_common">Օպերատիվ կարգավորումներ</string>
+    <string name="setting_warnings">Զգուշացման գրառում</string>
+    <string name="setting_machine">Մեքենաների կառավարում</string>
+    <string name="setting_switch">Ռեժիմի կարգավորում</string>
+    <string name="setting_price">Վաճառքի պլան</string>
+    <string name="error_plc_disconnect">Սարքը միացված չէ</string>
+    <string name="setting_select_manual">Խնդրում ենք նախ սարքը միացնել ձեռքով: </string>
+    <string name="setting_plc_connect">Միացված է</string>
+    <string name="setting_plc_un_connect">Կապված չէ</string>
+    <string name="setting_common_reset">Վերականգնել</string>
+    <string name="setting_common_manual">Ձեռնարկ</string>
+    <string name="setting_common_auto">Ավտոմատ</string>
+    <string name="setting_common_clean">Մեքենայի մաքրում</string>
+    <string name="setting_common_check">Գործողության ստուգում</string>
+    <string name="setting_common_order">Ձեռքով պատվեր</string>
+    <string name="setting_common_config">Պարամետրի կազմաձևում</string>
+    <string name="setting_version_un_support">Ընթացիկ MCU տարբերակը չի աջակցում այս գործառույթը</string>
+    <string name="setting_reset_ing">Վերակայում</string>
+    <string name="setting_reset_success">Վերակայումը հաջողվեց</string>
+    <string name="setting_reset_fail">Վերականգնումը ձախողվեց</string>
+    <string name="setting_check_prepare">Խնդրում ենք նախ ջնջել սարքի բացառությունը: </string>
+    <string name="setting_plc_send_ing">Ուղարկում...</string>
+    <string name="setting_plc_send_success">Հաջողությամբ ուղարկվեց: </string>
+    <string name="setting_plc_send_fail">Ուղարկումը ձախողվեց: </string>
+    <string name="setting_plc_send_busy">Այլ հրահանգների մշակում~</string>
+
+    <string name="setting_control_device">Մեքենայի կառավարում</string>
+    <string name="setting_control_cut_down">Էներգախնայողություն և թարմություն</string>
+    <string name="setting_control_power_on">Միացնել</string>
+    <string name="setting_control_refrigeration">Ավտոմատ (սառեցում)</string>
+    <string name="setting_control_keep_fresh">Գիշերային ռեժիմ (թարմ)</string>
+    <string name="setting_control_clean_mode">Ելքի մաքրում</string>
+    <string name="setting_control_keep_device">Սպասման ռեժիմ</string>
+    <string name="setting_control_sauce_1">Jam 1-ի կառավարում</string>
+    <string name="setting_control_sauce_2">Jam 2-ի կառավարում</string>
+    <string name="setting_control_sauce_3">Jam 3-ի կառավարում</string>
+    <string name="setting_control_kernel_1">Guoshan 1-ի կառավարում</string>
+    <string name="setting_control_kernel_2">Guoshan 2-ի կառավարում</string>
+    <string name="setting_control_kernel_3">Guoshan 3-ի կառավարում</string>
+    <string name="setting_control_positive">դրական</string>
+    <string name="setting_control_negative">Հակադարձ խաղարկություն</string>
+    <string name="setting_control_stop">Դադարեցնել</string>
+    <string name="setting_control_open">Բացել</string>
+    <string name="setting_control_close">Փակել</string>
+    <string name="setting_control_cut_down_tip">Անջատե՞լ հոսանքի բոլոր աղբյուրները, բացի թարմությունից: </string>
+    <string name="setting_control_cut_down_success">Մուտք գործեք էներգախնայողության ռեժիմ 5 վայրկյան հետո</string>
+
+
+    <string name="setting_switch_on">Միացված</string>
+    <string name="setting_switch_off">Անջատված</string>
+    <string name="setting_technology_version">Ընթացիկ տարբերակը՝ %s</string>
+    <string name="setting_technology_version_not_new">Վերջին տարբերակ չկա</string>
+    <string name="setting_technology_version_new">Վերջին տարբերակը՝ %s</string>
+    <string name="setting_technology_version_update">Թարմացնել</string>
+    <string name="setting_technology_num">Գործարանային համարը</string>
+    <string name="setting_technology_num_reset">Վերականգնել</string>
+    <string name="setting_technology_system_reset">Վերականգնել գործարանային կարգավորումները</string>
+    <string name="setting_technology_update_pwd">Փոխել գաղտնաբառը</string>
+    <string name="setting_technology_upload_log">Ծրագրի մատյան</string>
+    <string name="setting_technology_clean_config">Մաքրման կոնֆիգուրացիա</string>
+    <string name="setting_technology">Տեխնիկական աջակցություն</string>
+    <string name="setting_technology_upload_success">Վերբեռնումը հաջողվեց</string>
+    <string name="setting_technology_mcu_debug">MCU վրիպազերծում</string>
+    <string name="setting_technology_mcu_debug_fail">Մեկնարկը ձախողվեց, խնդրում ենք տեղադրել վրիպազերծման հավելված</string>
+    <string name="setting_technology_language">Ծրագրավորման լեզու</string>
+    <string name="setting_technology_sn_input">Խնդրում ենք մուտքագրել իրական սարքի համարը</string>
+    <string name="setting_technology_sn_update">Ավտոմատ վերագործարկեք հավելվածը 5 վայրկյան հետո` ուժի մեջ մտնելու համար: </string>
+    <string name="setting_technology_debug">Վրիպազերծման ռեժիմ</string>
+
+
+    <string name="setting_run_mode">Գործարկման ռեժիմ</string>
+    <string name="setting_run_online">Առցանց ռեժիմ</string>
+    <string name="setting_run_offline">Անցանց ռեժիմ</string>
+    <string name="setting_pay_mode">Վճարման եղանակ</string>
+    <string name="setting_pay_free">Անվճար ռեժիմ</string>
+    <string name="setting_pay_pos">POS մեքենա/դրամարկղային ռեժիմ</string>
+    <string name="setting_pay_online">Առցանց վճարման եղանակ</string>
+
+    <string name="setting_clean_title">Մաքրման կոնֆիգուրացիա</string>
+    <string name="setting_clean_switch">Միացնել մաքրման սահմանափակումները</string>
+    <string name="setting_lock_switch">Չմաքրված կողպեք</string>
+    <string name="setting_clean_schedule_day">Մաքրման ցիկլ (օրեր)</string>
+    <string name="setting_clean_warn_first_time">Առաջին նախազգուշացման ժամանակ (ժամեր)</string>
+    <string name="setting_clean_warn_second_time">Կրկին նախազգուշացման ժամանակ (ժամեր)</string>
+    <string name="setting_clean_warn_last_time">Վերջին նախազգուշացման ժամանակը (ժամեր)</string>
+
+    <string name="setting_icecream_title">Պաղպաղակ</string>
+    <string name="setting_icecream_name">Բնօրինակ պաղպաղակ</string>
+    <string name="setting_icecream_price">Պաղպաղակի գինը</string>
+    <string name="setting_kernel_title_1">Մրգեր մանրացված (1)</string>
+    <string name="setting_kernel_title_2">Մրգային փշուր(2)</string>
+    <string name="setting_kernel_name_1">Մրգի անուն (1)</string>
+    <string name="setting_kernel_name_2">Մրգի անուն (2)</string>
+    <string name="setting_kernel_price_1">Մրգերի մրգերի գին (1)</string>
+    <string name="setting_kernel_price_2">Մրգերի մրգերի գին (2)</string>
+    <string name="setting_sauce_title_1">Ջեմ(1)</string>
+    <string name="setting_sauce_title_2">Ջեմ (2)</string>
+    <string name="setting_sauce_title_3">Ջեմ (3)</string>
+    <string name="setting_sauce_name_1">Ջեմի անունը (1)</string>
+    <string name="setting_sauce_name_2">Ջեմի անուն (2)</string>
+    <string name="setting_sauce_name_3">Ջեմի անուն (3)</string>
+    <string name="setting_sauce_price_1">Ջեմի գին (1)</string>
+    <string name="setting_sauce_price_2">Ջեմի գին (2)</string>
+    <string name="setting_sauce_price_3">Ջեմի գին (3)</string>
+
+    <string name="setting_clean_countdown_time">Մաքրման հետհաշվարկ.</string>
+    <string name="setting_clean_countdown_time_hour">Ժամ</string>
+    <string name="setting_clean_countdown_time_minute">րոպե</string>
+    <string name="setting_clean_countdown_time_out">Մաքրման ժամանակն անցել է</string>
+    <string name="setting_clean_countdown_error_tip">Սարքը քնած է</string>
+    <string name="setting_clean_countdown_error_describe">Սպասում եմ արթնացման~</string>
+
+    <string name="setting_clean_recent_time">Վերջին մաքրման ժամանակը` %s</string>
+    <string name="setting_clean_stir_time">Հարման ժամանակը՝</string>
+    <string name="setting_clean_clean_time">Նյութի բաքի մաքրման ընթացիկ ժամանակները՝ %d</string>
+    <string name="setting_clean_button_pull_stop">Դադարեցնել բնադրելը</string>
+    <string name="setting_clean_button_pull_start">Սկսել բնադրել</string>
+    <string name="setting_clean_button_stir_stop">Դադարեցնել հարելը</string>
+    <string name="setting_clean_button_stir_start">Սկսեք հարել</string>
+    <string name="setting_clean_tip">Առաջին խառնման համար տևում է 3 րոպե</string>
+    <string name="setting_clean_describe">Նշումներ.\nՆյութերը կարող են լիցքաթափվել միայն խառնման ռեժիմում\n2 Խնդրում ենք մաքրել ջուրը լցնելուց առաջ\n3. Երբ չափիչ բաժակը լցված է 8 րոպե, ժամանակի ընթացքում կցուցադրվի «%s»-ը</string>
+    <string name="setting_clean_complete">Տանկի ամբողջական մաքրում</string>
+    <string name="setting_clean_finish">Ավարտել</string>
+    <string name="setting_clean_finish_tip">Սեղմեք Ավարտել կոճակը մաքրման ավարտից հետո</string>
+
+    <string name="setting_operate_check_start">Սկսել ստուգումը</string>
+    <string name="setting_operate_check_tip">Սարքը ստուգվում է...</string>
+    <string name="setting_operate_check_progress_ing">Ստուգում</string>
+    <string name="setting_operate_check_complete">Ստուգումն ավարտված է</string>
+    <string name="setting_operate_check_complete_return">Ստուգումն ավարտված է և ավտոմատ կվերադառնա 5 վայրկյան հետո</string>
+    <string name="setting_operate_check_exception">Ստուգել բացառությունը</string>
+    <string name="setting_operate_check_fail">Չհաջողվեց</string>
+
+    <string name="setting_config_sauce_1">Jam 1 լիցքաթափման ժամանակը</string>
+    <string name="setting_config_sauce_2">Jam 2 լիցքաթափման ժամանակը</string>
+    <string name="setting_config_sauce_3">Jam 3-ի տրամադրման ժամանակ</string>
+    <string name="setting_config_kernel_1">Մրգային տրորում 1 լիցքաթափման ժամանակ</string>
+    <string name="setting_config_kernel_2">Մրգային 2-ի լիցքաթափման ժամանակ</string>
+    <string name="setting_config_kernel_3">Մրգերի 3 լիցքաթափման ժամանակ</string>
+    <string name="setting_config_milk">Խառնել լիցքաթափման ժամանակը</string>
+    <string name="setting_config_cup">Առաջին բաժակի ժամանակը</string>
+    <string name="setting_config_free">Ազատ ժամանակ</string>
+    <string name="setting_config_recommend">Առաջարկվող կարգավորումներ</string>
+    <string name="setting_config_sauce_1_recommend">Առաջարկեք սահմանել 4000 ms</string>
+    <string name="setting_config_sauce_2_recommend">Առաջարկվող կարգավորումը 3000 մվ է</string>
+    <string name="setting_config_sauce_3_recommend">Առաջարկվող կարգավորումը 5000 մվ է</string>
+    <string name="setting_config_kernel_1_recommend">Առաջարկվող կարգավորումը 1600 մվ է</string>
+    <string name="setting_config_kernel_2_recommend">Առաջարկվող կարգավորումը 1600 մվ է</string>
+    <string name="setting_config_kernel_3_recommend">Առաջարկվող կարգավորումը 1600 մվ է</string>
+    <string name="setting_config_milk_recommend">Առաջարկվող կարգավորումը 2800 մվ է</string>
+    <string name="setting_config_cup_recommend">Առաջարկվող կարգավորումը 2400 մվ է</string>
+    <string name="setting_config_free_recommend">Առաջարկեք սահմանել 6 րոպե</string>
+
+    <string name="remote_operate_success">Գործողությունը հաջող է</string>
+    <string name="remote_operate_failed">Գործողությունը ձախողվեց</string>
+    <string name="remote_shutdown_flavor_stock">Անբավարար խառնուրդ, գործողությունը ձախողվեց</string>
+    <string name="remote_shutdown_in_sale">Գործողությունը ձախողվեց, երբ օգտատերը սնունդ էր պատվիրում</string>
+
+    <!-- Սարքավորման աննորմալություն -->
+    <string name="error_power_saving">Էներգախնայողության սպասման ռեժիմ</string>
+    <string name="error_wait">Սարքը չի մտել ավտոմատ վաճառքի վիճակ</string>
+    <string name="error_contact_format">%s-Եթե հարցեր ունեք, դիմեք խանութի սպասարկման անձնակազմին (%s)</string>
+    <string name="error_milk_slurry_empty_tip">Սպասում է մատուցողի կաթը լցնելու</string>
+    <string name="error_cup_empty_tip">Սպասում եմ, որ մատուցողը նորից լցնի պաղպաղակի բաժակը</string>
+    <string name="error_door_un_close">Սարքի դուռը փակ չէ</string>
+    <string name="error_toke_order_time_out">Սննդի ընդունման ժամկետը</string>
+    <string name="error_milk_slurry_lack">Պաղպաղակի մեքենան բացակայում է բաղադրիչներից</string>
+    <string name="error_cup_lack">Գավաթաթելին բացակայում է բաժակը</string>
+    <string name="error_cup_1_lack">Բացակայում է 1 բաժակ խողովակ</string>
+    <string name="error_cup_2_lack">2 բաժակ խողովակը բացակայում է</string>
+    <string name="error_high_pressure">Սեղմեք բարձր ճնշման ազդանշան</string>
+    <string name="error_nuts_1_lack">Nuts 1-ը բացակայում է</string>
+    <string name="error_nuts_2_lack">Nuts 2-ում չկա նյութ</string>
+    <string name="error_nuts_3_lack">Nuts 3-ում բացակայում են բաղադրիչները</string>
+    <string name="error_jam_1_lack">Ջեմ 1-ը բացակայում է բաղադրիչներից</string>
+    <string name="error_jam_2_lack">Jam 2-ում չկան բաղադրիչներ</string>
+    <string name="error_jam_3_lack">Jam 3-ում բացակայում են բաղադրիչները</string>
+    <string name="error_reset">Վերականգնումը ձախողվեց</string>
+    <string name="error_cup_empty">Գավաթի կաթիլիչը բաժակ չունի</string>
+    <string name="error_cup_1_empty">Բաժակ չկա բաժակի խողովակում 1</string>
+    <string name="error_cup_2_empty">Թիվ 2 բաժակ խողովակում բաժակ չկա</string>
+    <string name="error_no_in_refrigeration">Չի մտնում ավտոմատ սառեցում</string>
+    <string name="error_milk_slurry_empty">Պաղպաղակի մեքենա առանց բաղադրիչների</string>
+    <string name="error_machine_fault">Պաղպաղակի մեքենայի հիմնական մարմնի անսարքություն</string>
+    <string name="error_machine_offline">Պաղպաղակի մեքենայի հիմնական մասը կորցրել է հաղորդակցությունը</string>
+    <string name="error_order_time_out">Պաղպաղակի մեքենան պաղպաղակ չի արտադրում</string>
+    <string name="error_door_obstacle">Վանդակի մոտ խոչընդոտ կա</string>
+    <string name="error_claw_no_cup">Էլեկտրական ճանկը շահագործման ընթացքում գցում է բաժակը</string>
+    <string name="error_rotate_machine">Պտտվող փուլի պտտման աստիճանական շարժիչի սխալ</string>
+    <string name="error_elevator_machine">Պտտվող աստիճանի բարձրացման աստիճանային շարժիչի սխալ</string>
+    <string name="error_door_machine">Դռան վերելակի քայլային շարժիչի սխալ</string>
+    <string name="error_door_slip_fail">Չհաջողվեց սահել ճաշի գավաթը ներքև</string>
+    <string name = "error_rotate_time_out">Պտտման աղյուսակի պտտման ժամկետը</string>
+    <string name = "error_contact_phone">Հեռախոս.</string>
+
+    <!-- Նախնականացում -->
+    <string name="init_sn_input">Մուտքագրեք սարքի համարը</string>
+    <string name="init_sn_check">Խնդրում ենք համոզվել, որ մուտքագրված սարքի համարը ճշգրիտ է</string>
+    <string name="init_sn_save">Պահպանեք և վերագործարկեք ուժի մեջ մտնելու համար</string>
+    <string name="init_check_activation">Ստուգեք ակտիվացման կարգավիճակը···</string>
+    <string name="init_activation">Ակտիվացրեք սարքը···</string>
+    <string name="init_activation_error">Ակտիվացումը ձախողվեց՝ %s</string>
+    <string name="init_power">Ստացեք սարքի թույլտվությունները···</string>
+    <string name="init_power_error">Չհաջողվեց սարքի թույլտվություններ ստանալ՝ %s</string>
+    <string name="init_synchronization">Համաժամացման տվյալներ···</string>
+    <string name="init_synchronization_error">Համաժամացման տվյալների սխալ. %s</string>
+    <string name="init_synchronization_error_dishes">Ուտեստի մասին տեղեկություն չկա</string>
+    <string name="init_synchronization_error_stock">Սարքի գույքագրման տեղադրության մասին տեղեկությունները բացակայում են</string>
+    <string name="init_synchronization_error_material">Բացակայում է նյութի մասին տեղեկություն</string>
+    <string name="init_synchronization_error_spec">Բացակայում է պրակտիկայի մասին տեղեկություն</string>
+    <string name="init_startup">Գործարկման ծրագիր...</string>
+    <string name="init_complete">Նախնականացումն ավարտված է...</string>
+    <string name="init_store_config">Հայտնաբերել խանութի կոնֆիգուրացիան···</string>
+    <string name="init_store_config_error">Խանութի կազմաձևման բացառություն՝ %s</string>
+    <string name="init_store_connect">Միացեք պատվերի համակարգին···</string>
+    <string name="init_store_connect_error">Միացման կարգի համակարգի բացառություն՝ %s</string>
+    <string name="init_resource_download">Ներբեռնել ռեսուրսի ֆայլը՝ %s, ներբեռնման առաջընթացը՝ %s</string>
+    <string name="init_update_tip">Ավտոմատ թարմացումը սպասարկման փուլում է, խնդրում ենք չգործել</string>
+    <string name="init_update_install">Վերջին ծրագրի տեղադրում</string>
+    <string name="init_update_install_success">Թարմացումն ավարտված է, ծրագիրն ինքնաբերաբար կմեկնարկի, խնդրում ենք չգործել</string>
+    <string name="init_update_install_fail">Տեղադրումը ձախողվեց, խնդրում ենք կրկին փորձել</string>
+
+    <!-- թռուցիկ հուշում -->
+    <string name="tip">Խորհուրդներ</string>
+    <string name="tip_empty_order">Պատվերի մասին տեղեկություններ չեն գտնվել</string>
+    <string name="tip_used_order">Սպառված սննդի կոդը</string>
+    <string name="tip_search_order_failed">Չհաջողվեց հարցում կատարել պատվերի տվյալների վրա</string>
+    <string name="tip_use_technology">«Խնդրում ենք օգտագործել այս մոդուլը տեխնիկական աջակցության ղեկավարությամբ:</string>
+    <string name="describe_shop_cart_clear_tip">Ջնջե՞լ ընթացիկ զամբյուղի ապրանքները: </string>
+    <string name="describe_update_password">Ընթացիկ գաղտնաբառը լռելյայն է, և առկա են անվտանգության ռիսկեր: </string>
+    <string name="describe_paying_give_up_tip">Պատվերը չի կատարվի հրաժարվելուց հետո, եթե վճարումը կատարվել է, խնդրում ենք կապվել շահագործման անձնակազմի հետ: Ցանկանու՞մ եք հրաժարվել պատվերից: </string>
+    <string name="describe_open_spec_multiple">Նորմալ արտադրություն ապահովելու համար այս ֆունկցիան կկարգավորի յուրաքանչյուր համի չափաբաժնի չափը մինչև մեկ ընտրված մասի մոտ 80%-ը\nԻսկապե՞ս միացնեք այն: </string>
+    <string name="describe_open_free_mode">Իսկապե՞ս միացնու՞մ եք այս սարքի համար անվճար պաղպաղակի ռեժիմը: </string>
+    <string name="button_back">Վերադարձ</string>
+    <string name="button_update">Փոփոխել</string>
+    <string name="button_open">Դիտել</string>
+    <string name="button_start">Սկսել</string>
+    <string name="button_clear">Մաքրել</string>
+    <string name="button_delete">Հետին տարածություն</string>
+    <string name="button_confirm">Հաստատել</string>
+    <string name="button_cancel">Չեղարկել</string>
+    <string name="button_un_set_pwd">Դեռ սահմանված չէ</string>
+    <string name="button_set_pwd">Սահմանել նոր գաղտնաբառ</string>
+    <string name="button_paying_give_up">Հրաժարվել պատվերից</string>
+    <string name="button_paying_keep_on">Շարունակեք վճարել</string>
+    <string name="button_setting">Կարգավորումներ</string>
+
+    <string name="plc_errTip1">Սարքավորումների ձեռնարկի ռեժիմ</string>
+    <string name="plc_errTip2">Սարքավորման աննորմալություն</string>
+    <string name="plc_errTip3">Սարքը զբաղված է</string>
+    <string name="plc_errTip4">Սննդի կետում սենսոր կա</string>
+
+    <string name="setting_jam_set">Փոխել</string>
+    <string name="setting_ker_map">Մրգային ընդմիջման քարտեզագրում</string>
+    <string name="setting_jam_map">Քարտեզագրման խողովակաշար</string>
+    <string name="setting_ker_def">Մրգերի լռելյայն ջախջախում</string>
+    <string name="setting_jam_def">Լռելյայն խողովակ</string>
+
+    <string name="time_ready">Ընթացիկ ժամանակը պատրաստվում է</string>
+    <string name="maxcount_tips_start">Համն ապահովելու համար խնդրում ենք նորից սկանավորել կոդը 6 բաժակ վերցնելուց հետո~</string>
+    <string name="maxcount_tips_end">Դուք դեռ պաղպաղակ ունեք և պետք է շարունակեք սկանավորել կոդը~</string>
+
+    <string name="setting_warn_real_time">Իրական ժամանակի նախազգուշացում.</string>
+    <string name="setting_error_log">Սխալների մատյան.</string>
+    <string name="setting_make_fail_title">Ձախողել:</string>
+    <string name="setting_make_fail">Զարթուցիչ.</string>
+    <string name="setting_make_fail_insert">Զգուշացման ազդանշանի տեղադրում.</string>
+    <string name="setting_make_fail_warn">Զգուշացում</string>
+    <!-- Մատյան -->
+    <string name="making_error">Բացառություն պաղպաղակի պատրաստման հարցում</string>
+    <string name="making_ing">Պաղպաղակի պատրաստում</string>
+    <string name="making_out_cup">պատրաստում_out_cup</string>
+    <string name="making_out_flavor">Պաղպաղակ</string>
+    <string name="making_taking">Սպասում եմ վերցնել պաղպաղակը</string>
+    <string name="making_taked">Պաղպաղակը վերցված է</string>
+    <string name="making_finish">Լրացրեք պատվերը</string>
+    <string name="making_next">Պատրաստեք հաջորդ պաղպաղակը, և դեռ %d պաղպաղակ կա պատրաստելու</string>
+    <string name="mcu_connect">Սարքի միացումը հաջողվեց</string>
+    <string name="mcu_disconnect">Սարքն անջատված է</string>
+    <string name="mcu_waring_message">Զգուշացում՝ %s, հաղորդագրություն՝ %s</string>
+
+    <string name="setting_select_icon">Ընտրեք պատկերակ</string>
+    <string name="setting_select_kernel_icon">Ընտրեք մրգերի փշրման պատկերակը</string>
+    <string name="setting_select_sauce_icon">Ընտրեք ջեմի պատկերակը</string>
+
+    <string name="clean_recycle">Մաքրման ցիկլը՝ %d</string>
+    <string name="clean_lock_warning_last">Վերջին մաքրման նախազգուշացում</string>
+    <string name="clean_lock_warning_first">Առաջին մաքրման նախազգուշացում</string>
+    <string name="clean_lock_warning_second">Մաքրման երկրորդ նախազգուշացում</string>
+    <string name="clean_lock_notify_last">Վերջին ծանուցման մաքրում</string>
+    <string name="clean_lock_notify_first">Առաջին ծանուցման մաքրում</string>
+    <string name="clean_lock_notify_second">Երկրորդ ծանուցման մաքրում</string>
+    <string name="scan_code">Ճանաչված է QR կոդը՝ %s</string>
+
+    <string name="update_channel">Թարմացրեք վճարման ալիքը %d-ով</string>
+    <string name="update_mode">Թարմացման գործարկման ռեժիմն է՝ %d</string>
+
+    <string name="credit_failed">Քարտ ընթերցողով հաղորդակցությունը ձախողվեց, խնդրում ենք փորձել ավելի ուշ</string>
+    <string name="system_link">Միացնել համակարգը</string>
+    <string name="system_divorce">Դուրս եկեք համակարգից</string>
+    <string name="update_app">Ստուգեք թարմացումների համար</string>
+    <string name="price_model">թղթադրամների և մետաղադրամների խառը վճարում</string>
+    <string name="nayax_model1">Nayax No Idle</string>
+    <string name="nayax_model2">Նայաքս անգործունյա</string>
+    <string name="have_money">Ներդրված գումարը՝</string>
+    <string name="nayax_model">NaYax մոդել.</string>
+    <string name="nayax_pay">NaYax վճարում</string>
+    <string name="nayax_pay_mix">NaYax+խառը վճարում</string>
+    <string name="setting_pay_pos_pay_mix">MDB քարտի ընթերցող + խառը վճարում</string>
+    <string name="online_and_price_model">Երկու ծածկագիր մեկ վճարման մեջ + թղթային վճարում</string>
+    <string name="ict_currency_selection">ՏՀՏ արժույթի ընտրություն</string>
+    <string name="banknote_exchange_protocol">Թղթադրամների փոխանակման արձանագրություն</string>
+    <string name="mdb_level">MDB մակարդակ</string>
+    <string name="coin_x">Մետաղադրամների շտապում բազմապատկված X-ով</string>
+    <string name="coin_divide_x">Մետաղադրամի բաժանում X-ի</string>
+
+</resources>
+<!--亚美尼亚语-->

+ 2 - 0
app/src/main/res/values-ko/strings.xml

@@ -471,6 +471,8 @@
     <string name="ict_currency_selection">ICT 통화 선택</string>
     <string name="banknote_exchange_protocol">은행권 교환 프로토콜</string>
     <string name="mdb_level">MDB 수준</string>
+    <string name="coin_x">코인 러시 x X</string>
+    <string name="coin_divide_x">코인을 X로 나누기</string>
 
 </resources>
     <!--韩语-->

+ 2 - 0
app/src/main/res/values-lt/strings.xml

@@ -465,6 +465,8 @@
     <string name="ict_currency_selection">IRT valiutos pasirinkimas</string>
     <string name="banknote_exchange_protocol">Banknotų keitimo protokolas</string>
     <string name="mdb_level">MDB lygis</string>
+    <string name="coin_x">Monetų skubėjimas padaugintas iš X</string>
+    <string name="coin_divide_x">Monetų padalijimas iš X</string>
 
 </resources>
 <!--立陶宛-->

+ 2 - 0
app/src/main/res/values-lv/strings.xml

@@ -461,6 +461,8 @@
     <string name="ict_currency_selection">IKT valūtas atlase</string>
     <string name="banknote_exchange_protocol">Banknošu apmaiņas protokols</string>
     <string name="mdb_level">MDB līmenis</string>
+    <string name="coin_x">Monētu pieplūdums reizināts ar X</string>
+    <string name="coin_divide_x">Monētu dalīšana ar X</string>
 
 </resources>
 <!--拉脱维亚-->

+ 3 - 0
app/src/main/res/values-ru/strings.xml

@@ -463,5 +463,8 @@
     <string name="banknote_exchange_protocol">Протокол обмена банкнот</string>
     <string name="mdb_level">Уровень MDB</string>
 
+    <string name="coin_x">Выброс монет, умноженный на X</string>
+    <string name="coin_divide_x">Делить монету на X</string>
+
 </resources>
     <!--俄语-->

+ 2 - 0
app/src/main/res/values-zh/strings.xml

@@ -468,6 +468,8 @@
     <string name="ict_currency_selection">ICT币值选择</string>
     <string name="banknote_exchange_protocol">纸币器协议</string>
     <string name="mdb_level">MDB等级</string>
+    <string name="coin_x">硬币迈冲乘以X</string>
+    <string name="coin_divide_x">硬币迈冲除以X</string>
 
 </resources>
 

+ 2 - 0
app/src/main/res/values/strings.xml

@@ -473,6 +473,8 @@
     <string name="ict_currency_selection">ICT币值选择</string>
     <string name="banknote_exchange_protocol">纸币器协议</string>
     <string name="mdb_level">MDB等级</string>
+    <string name="coin_x">硬币迈冲乘以X</string>
+    <string name="coin_divide_x">硬币迈冲除以X</string>
 
 </resources>
 

+ 2 - 2
config.gradle

@@ -4,8 +4,8 @@ ext {
             "compileSdkVersion"            : 28,
             "minSdkVersion"                : 19,
             "targetSdkVersion"             : 28,
-            "versionCode"                  : 107,
-            "versionName"                  : "1.0.8",
+            "versionCode"                  : 109,
+            "versionName"                  : "1.0.13",
 
             "androidSupport"               : "28.0.0",
             "constraint-layout"            : "1.1.3",

+ 15 - 8
lm-library/src/main/java/top/keepempty/sph/library/SphDataProcess.java

@@ -4,6 +4,7 @@ import android.os.Message;
 
 /**
  * 串口数据处理
+ *
  * @author :frey
  * @date:2019/4/03 16:15
  */
@@ -77,11 +78,13 @@ public class SphDataProcess {
                     onResultCallback.onSendData(currentCommand);
                 }
                 // 设置了超时时间
-                if (currentCommand.timeOut > 0) {
-                    sphHandler.sendEmptyMessageDelayed(TIMEOUT_WHAT, currentCommand.timeOut);
+                if (currentCommand != null) {
+                    if (currentCommand.timeOut > 0) {
+                        sphHandler.sendEmptyMessageDelayed(TIMEOUT_WHAT, currentCommand.timeOut);
+                    }
+                    SerialPortJNI.writePort(currentCommand.commands);
+                    concurrentCom.setStatus(true);
                 }
-                SerialPortJNI.writePort(currentCommand.commands);
-                concurrentCom.setStatus(true);
             }
         }
     }
@@ -271,10 +274,11 @@ public class SphDataProcess {
 
     /**
      * 发送串口数据到主线程
-     * @param sphCmdEntity  串口数据
-     * @param what          数据标识
+     *
+     * @param sphCmdEntity 串口数据
+     * @param what         数据标识
      */
-    private void sendMessage(SphCmdEntity sphCmdEntity,int what){
+    private void sendMessage(SphCmdEntity sphCmdEntity, int what) {
         Message message = new Message();
         message.what = what;
         message.obj = sphCmdEntity;
@@ -283,6 +287,7 @@ public class SphDataProcess {
 
     /**
      * 获取最大读取长度
+     *
      * @return
      */
     public int getMaxSize() {
@@ -295,6 +300,7 @@ public class SphDataProcess {
      */
     private static class SphHandler extends android.os.Handler {
         private SphDataProcess processingRecData;
+
         public SphHandler(SphDataProcess processingRecData) {
             this.processingRecData = processingRecData;
         }
@@ -308,9 +314,10 @@ public class SphDataProcess {
 
     /**
      * 处理数据回调
+     *
      * @param msg
      */
-    private void receiveData(Message msg){
+    private void receiveData(Message msg) {
         switch (msg.what) {
             case TIMEOUT_WHAT:
                 reWriteCmdOrExit();

+ 1 - 1
module_offpay/src/main/java/com/example/offpay/ictrs232/SerialPortUtil.java

@@ -113,7 +113,7 @@ public class SerialPortUtil {
         }
         //如果传递的数据为12
         lastData=data;
-        Log.d(TAG, "sendSerialPort: " + data);
+        Log.d(TAG, " : " + data);
         LogUtils.logWrite("WD:" + data);
         try {
             if (outputStream != null) {