From cca5f79b3af36e5a908c5dfecbd30110febe3baa Mon Sep 17 00:00:00 2001
From: 陈力 <chenli@lotaai.com>
Date: 星期五, 09 六月 2023 20:58:09 +0800
Subject: [PATCH] 增加mqtt

---
 app/src/main/java/com/lotaai/canguiayw/SettingFragment.java |  164 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 152 insertions(+), 12 deletions(-)

diff --git a/app/src/main/java/com/lotaai/canguiayw/SettingFragment.java b/app/src/main/java/com/lotaai/canguiayw/SettingFragment.java
index fe23641..dc4c622 100644
--- a/app/src/main/java/com/lotaai/canguiayw/SettingFragment.java
+++ b/app/src/main/java/com/lotaai/canguiayw/SettingFragment.java
@@ -16,19 +16,40 @@
 import android.view.inputmethod.InputMethodManager;
 import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
+import android.widget.Button;
+import android.widget.EditText;
 import android.widget.Spinner;
 
 import androidx.fragment.app.Fragment;
 
+import com.alibaba.fastjson.JSONObject;
 import com.bin.david.form.core.SmartTable;
+import com.blankj.utilcode.util.CacheDiskUtils;
+import com.blankj.utilcode.util.DeviceUtils;
 import com.blankj.utilcode.util.KeyboardUtils;
 import com.blankj.utilcode.util.LogUtils;
+import com.lotaai.canguiayw.common.HttpLoggerInterceptor;
+import com.lotaai.canguiayw.common.HttpUrlDefine;
+import com.lotaai.canguiayw.common.SettingConfig;
+import com.pranavpandey.android.dynamic.toasts.DynamicToast;
 
 import org.angmarch.views.NiceSpinner;
 import org.angmarch.views.SpinnerTextFormatter;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.concurrent.TimeUnit;
+
+import android_serialport_api.SerialPortFinder;
+import okhttp3.Call;
+import okhttp3.Callback;
+import okhttp3.FormBody;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import okhttp3.Response;
+import okhttp3.logging.HttpLoggingInterceptor;
 
 public class SettingFragment extends Fragment {
 
@@ -36,6 +57,11 @@
     private Context context;
     private SmartTable setTable;
     private NiceSpinner chuanKouSpinner;
+    private EditText deviceCode;
+    private EditText devicePwd;
+    private Button jihuoBtn;
+    private Button saveBtn;
+    List<String> list = new ArrayList<String>();
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -53,6 +79,7 @@
         if (root == null) {
             root = inflater.inflate(R.layout.framgment_setting, container, false);
         }
+        DynamicToast.Config.getInstance().setTextSize(30).apply();
         context = container.getContext();
         initSpinner();
 
@@ -64,36 +91,149 @@
         };
 
         // 将myTouchListener注册到分发列表
-        ((ManageActivity)this.getActivity()).registerMyTouchListener(myTouchListener);
+        ((ManageActivity) this.getActivity()).registerMyTouchListener(myTouchListener);
 
+        //初始化
+        deviceCode = root.findViewById(R.id.deviceCode);
+        devicePwd = root.findViewById(R.id.devicePwd);
+        deviceCode.setText(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code));
+        // devicePwd.setText(CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Pwd));
+        jihuoBtn = root.findViewById(R.id.jihuo);
+        saveBtn = root.findViewById(R.id.save);
+        jihuoBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                String code = deviceCode.getText().toString().trim();
+                String pwd = devicePwd.getText().toString().trim();
+                if ("".equals(code) || "".equals(pwd)) {
+                    DynamicToast.makeError(context, "设备号和设备秘钥必填", 3).show();
+                    return;
+                }
+                active();
+            }
+        });
+        saveBtn.setOnClickListener(new View.OnClickListener() {
+            @Override
+            public void onClick(View view) {
+                DynamicToast.Config.getInstance().setTextSize(30).apply();
+                String code = deviceCode.getText().toString().trim();
+                String pwd = devicePwd.getText().toString().trim();
+                String tty = list.get(chuanKouSpinner.getSelectedIndex());
+                if ("".equals(code)) {
+                    DynamicToast.makeError(context, "设备号必填", 3).show();
+                } else {
+                    CacheDiskUtils.getInstance().put(SettingConfig.getInstance().Cache_Device_Code, code);
+//                    CacheDiskUtils.getInstance().put(SettingConfig.getInstance().Cache_Device_Pwd,pwd);
+                    CacheDiskUtils.getInstance().put(SettingConfig.getInstance().Cache_Device_Tty, tty);
+                    DynamicToast.makeSuccess(context, "保存成功", 3).show();
+                }
+            }
+        });
         return root;
     }
 
 
-    public void initSpinner(){
+    public void active() {
+        HttpLoggerInterceptor loggingInterceptor = new HttpLoggerInterceptor(true);
+        OkHttpClient client = new OkHttpClient.Builder()
+                .connectTimeout(20, TimeUnit.SECONDS)//响应时间,读取时间
+                .readTimeout(20, TimeUnit.SECONDS)
+                .callTimeout(20, TimeUnit.SECONDS)
+                .addInterceptor(loggingInterceptor)//添加日志拦截器
+                .build();
+
+        RequestBody body = new FormBody.Builder()
+                .add("equipmentCode", CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Code))
+                .add("equipmentSecret", devicePwd.getText().toString())
+                .add("equipmentUid", DeviceUtils.getUniqueDeviceId()).build();
+        final Request request = new Request.Builder()
+                .url(HttpUrlDefine.equipmentBind)
+                .addHeader("language", "zh-CN")
+                .post(body)
+                .build();
+        client.newCall(request).enqueue(new Callback() {
+            @Override
+            public void onFailure(Call call, IOException e) {
+                Message msg = new Message();
+                msg.what = 0;
+                msg.obj = "激活失败";
+                showHandler.sendMessage(msg);
+                LogUtils.e(e);
+            }
+
+            @Override
+            public void onResponse(Call call, Response response) throws IOException {
+                String result = response.body().string();
+                LogUtils.i("获取到的数据:"+result);
+                JSONObject obj = JSONObject.parseObject(result);
+                if ("0".equals(obj.getString("code"))) {
+                    JSONObject dataObj = obj.getJSONObject("data");
+                    String name = dataObj.getString("name");
+                    Message msg = new Message();
+                    msg.what = 1;
+                    msg.obj = "激活成功!" + name;
+                    showHandler.sendMessage(msg);
+                } else {
+                    Message msg = new Message();
+                    msg.what = 0;
+                    msg.obj = "激活失败:" + obj.getString("msg");
+                    showHandler.sendMessage(msg);
+                }
+            }
+        });
+    }
+
+    private Handler showHandler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            if (msg.what == 0) {
+                DynamicToast.makeError(context, msg.obj.toString(), 3).show();
+            } else if (msg.what == 1) {
+                DynamicToast.makeSuccess(context, msg.obj.toString(), 3).show();
+            } else {
+                DynamicToast.makeWarning(context, msg.obj.toString(), 3).show();
+            }
+        }
+    };
+
+    public void initSpinner() {
         chuanKouSpinner = root.findViewById(R.id.chuankouhao);
         chuanKouSpinner.setBackgroundResource(R.drawable.round_editstyle);
         chuanKouSpinner.setTextSize(30);
+        String ty = CacheDiskUtils.getInstance().getString(SettingConfig.getInstance().Cache_Device_Tty);
+        int select = 0;
+//        SerialPortFinder finder = new SerialPortFinder();
+//        String[] ttysPath = finder.getAllDevicesPath();
+//        int p = 0;
+//        for (String sp : ttysPath){
+//            if (sp.equals(ty)){
+//                select = p;
+//            }
+//            list.add(sp);
+//            p++;
+//        }
 
-        final List<String> list = new ArrayList<String>();
-        for (int i = 1; i<10 ;i++){
-            list.add("ttyS" + i);
+        list.clear();
+        for (int pp = 0; pp < 6; pp++) {
+            list.add("/dev/ttyS" + pp);
+            if (ty!=null && ty.equals("/dev/ttyS" + pp)) {
+                select = pp;
+            }
         }
         chuanKouSpinner.attachDataSource(list);
         chuanKouSpinner.addOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
-               LogUtils.i(list.get(position));
+                LogUtils.i(list.get(position) + "position:" + position);
             }
         });
+        chuanKouSpinner.setSelectedIndex(select);
     }
 
-    public static void HideKeyboard(View v)
-    {
-        InputMethodManager imm = ( InputMethodManager ) v.getContext( ).getSystemService( Context.INPUT_METHOD_SERVICE );
-        if ( imm.isActive( ) ) {
-            imm.hideSoftInputFromWindow( v.getApplicationWindowToken( ) , 0 );
-
+    public static void HideKeyboard(View v) {
+        InputMethodManager imm = (InputMethodManager) v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
+        if (imm.isActive()) {
+            imm.hideSoftInputFromWindow(v.getApplicationWindowToken(), 0);
         }
     }
 

--
Gitblit v1.7.1