|
@@ -0,0 +1,119 @@
|
|
|
+package com.wdkl.app.ncs.callingdoor.helper;
|
|
|
+
|
|
|
+import android.app.Activity;
|
|
|
+import android.app.AlertDialog;
|
|
|
+import android.os.Handler;
|
|
|
+import android.text.TextUtils;
|
|
|
+import android.view.LayoutInflater;
|
|
|
+import android.view.View;
|
|
|
+import android.widget.AdapterView;
|
|
|
+import android.widget.Button;
|
|
|
+import android.widget.LinearLayout;
|
|
|
+import android.widget.Spinner;
|
|
|
+import android.widget.Toast;
|
|
|
+
|
|
|
+import com.wdkl.app.ncs.callingdoor.R;
|
|
|
+import com.wdkl.app.ncs.callingdoor.adapter.SerialPortAdapter;
|
|
|
+import com.wdkl.ncs.android.lib.base.BaseApplication;
|
|
|
+import com.wdkl.ncs.android.lib.settings.SettingConfig;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+
|
|
|
+import static com.wdkl.ncs.android.lib.utils.ExtendMethodsKt.showMessage;
|
|
|
+
|
|
|
+public class SerialPortConfigDialogHelper {
|
|
|
+
|
|
|
+ private static AlertDialog alertDialog;
|
|
|
+ private static final ArrayList<String> serialPorts = new ArrayList<>(Arrays.asList("/dev/ttyS0", "/dev/ttyS1", "/dev/ttyS2"));
|
|
|
+ private static String selectPanelKeySerial, select433Serial;
|
|
|
+
|
|
|
+ public static void showDialog(Activity activity) {
|
|
|
+ View contentView = LayoutInflater.from(activity).inflate(R.layout.serial_port_config_dialog, null);
|
|
|
+ AlertDialog.Builder builder = new AlertDialog.Builder(activity);
|
|
|
+ builder.setView(contentView);
|
|
|
+ LinearLayout layout = contentView.findViewById(R.id.ll_serial_config_view);
|
|
|
+ Spinner panelKeySpinner = contentView.findViewById(R.id.spinner_keys);
|
|
|
+ Spinner s433Spinner = contentView.findViewById(R.id.spinner_433);
|
|
|
+ Button cancelButton = contentView.findViewById(R.id.cancel_button);
|
|
|
+ Button confirmButton = contentView.findViewById(R.id.confirm_button);
|
|
|
+
|
|
|
+ layout.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ try {
|
|
|
+ Utils.hideInputKeyboard(alertDialog.getWindow().getDecorView().getWindowToken());
|
|
|
+ } catch (Exception e) {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ String panelKeysSerial = SettingConfig.getPanelKeySerialPort(BaseApplication.appContext);
|
|
|
+ String s433Serial = SettingConfig.get433SerialPort(BaseApplication.appContext);
|
|
|
+
|
|
|
+ SerialPortAdapter panelKeyAdapter = new SerialPortAdapter(activity, serialPorts);
|
|
|
+ panelKeySpinner.setAdapter(panelKeyAdapter);
|
|
|
+ panelKeySpinner.setSelection(serialPorts.indexOf(panelKeysSerial));
|
|
|
+ panelKeySpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
|
|
+ @Override
|
|
|
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
|
|
+ selectPanelKeySerial = serialPorts.get(position);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNothingSelected(AdapterView<?> parent) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ SerialPortAdapter s433Adapter = new SerialPortAdapter(activity, serialPorts);
|
|
|
+ s433Spinner.setAdapter(s433Adapter);
|
|
|
+ s433Spinner.setSelection(serialPorts.indexOf(s433Serial));
|
|
|
+ s433Spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
|
|
|
+ @Override
|
|
|
+ public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
|
|
|
+ select433Serial = serialPorts.get(position);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void onNothingSelected(AdapterView<?> parent) {
|
|
|
+
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ cancelButton.setOnClickListener(v -> {
|
|
|
+ if (alertDialog != null) {
|
|
|
+ alertDialog.dismiss();
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ confirmButton.setOnClickListener(v -> {
|
|
|
+ if (!TextUtils.isEmpty(selectPanelKeySerial) && !TextUtils.isEmpty(select433Serial)
|
|
|
+ && !selectPanelKeySerial.equals(select433Serial)) {
|
|
|
+ SettingConfig.setPanelKeySerialPort(BaseApplication.appContext, selectPanelKeySerial);
|
|
|
+ SettingConfig.set433SerialPort(BaseApplication.appContext, select433Serial);
|
|
|
+
|
|
|
+ if (alertDialog != null ) {
|
|
|
+ alertDialog.dismiss();
|
|
|
+ }
|
|
|
+
|
|
|
+ Toast.makeText(activity, "restart now...", Toast.LENGTH_LONG).show();
|
|
|
+ new Handler().postDelayed(new Runnable() {
|
|
|
+ @Override
|
|
|
+ public void run() {
|
|
|
+ AppUpdateHelper.restartApp(BaseApplication.appContext);
|
|
|
+ }
|
|
|
+ }, 3000);
|
|
|
+ } else {
|
|
|
+ showMessage("select error!");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ alertDialog = builder.create();
|
|
|
+ alertDialog.setCanceledOnTouchOutside(true);
|
|
|
+ alertDialog.setCancelable(true);
|
|
|
+ alertDialog.show();
|
|
|
+
|
|
|
+ }
|
|
|
+}
|