| | |
| | | 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 { |
| | | |
| | |
| | | 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) { |
| | |
| | | if (root == null) { |
| | | root = inflater.inflate(R.layout.framgment_setting, container, false); |
| | | } |
| | | DynamicToast.Config.getInstance().setTextSize(30).apply(); |
| | | context = container.getContext(); |
| | | initSpinner(); |
| | | |
| | |
| | | }; |
| | | |
| | | // 将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); |
| | | } |
| | | } |
| | | |