package com.lotaai.canguiayw;
|
|
import android.app.AlarmManager;
|
import android.app.PendingIntent;
|
import android.content.ComponentName;
|
import android.content.Context;
|
import android.content.Intent;
|
import android.graphics.Canvas;
|
import android.graphics.Color;
|
import android.graphics.Paint;
|
import android.graphics.Rect;
|
import android.os.Bundle;
|
import android.os.Handler;
|
import android.os.Message;
|
import android.text.Spannable;
|
import android.view.LayoutInflater;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.ViewGroup;
|
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 View root;
|
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) {
|
super.onCreate(savedInstanceState);
|
}
|
|
@Override
|
public void onDestroy() {
|
super.onDestroy();
|
}
|
|
@Override
|
public View onCreateView(LayoutInflater inflater, final ViewGroup container,
|
Bundle savedInstanceState) {
|
if (root == null) {
|
root = inflater.inflate(R.layout.framgment_setting, container, false);
|
}
|
DynamicToast.Config.getInstance().setTextSize(30).apply();
|
context = container.getContext();
|
initSpinner();
|
|
ManageActivity.MyTouchListener myTouchListener = new ManageActivity.MyTouchListener() {
|
@Override
|
public void onTouchEvent(MotionEvent event) {
|
HideKeyboard(container.getChildAt(0));
|
}
|
};
|
|
// 将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(tty)) {
|
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();
|
restartApp();
|
}
|
}
|
});
|
return root;
|
}
|
public void restartApp() {
|
Intent intent =getActivity().getPackageManager().getLaunchIntentForPackage(getActivity().getPackageName());
|
ComponentName componentName = intent.getComponent();
|
Intent mainIntent = Intent.makeRestartActivityTask(componentName);
|
startActivity(mainIntent);
|
Runtime.getRuntime().exit(0);
|
}
|
|
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++;
|
// }
|
|
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) + "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);
|
}
|
}
|
|
}
|