kopia lustrzana https://github.com/N0BOY/FT8CN
223 wiersze
8.4 KiB
Java
223 wiersze
8.4 KiB
Java
package com.bg7yoz.ft8cn.ui;
|
||
/**
|
||
* 网络模式登录ICOM的对话框。
|
||
*
|
||
* @author BGY70Z
|
||
* @date 2023-03-20
|
||
*/
|
||
|
||
import android.annotation.SuppressLint;
|
||
import android.app.Dialog;
|
||
import android.content.Context;
|
||
import android.os.Bundle;
|
||
import android.text.Editable;
|
||
import android.text.TextWatcher;
|
||
import android.text.method.HideReturnsTransformationMethod;
|
||
import android.text.method.PasswordTransformationMethod;
|
||
import android.view.View;
|
||
import android.view.WindowManager;
|
||
import android.widget.Button;
|
||
import android.widget.EditText;
|
||
import android.widget.ImageButton;
|
||
|
||
import androidx.annotation.NonNull;
|
||
|
||
import com.bg7yoz.ft8cn.GeneralVariables;
|
||
import com.bg7yoz.ft8cn.MainViewModel;
|
||
import com.bg7yoz.ft8cn.R;
|
||
import com.bg7yoz.ft8cn.icom.IComWifiRig;
|
||
import com.bg7yoz.ft8cn.icom.XieGuWifiRig;
|
||
import com.bg7yoz.ft8cn.rigs.InstructionSet;
|
||
|
||
public class LoginIcomRadioDialog extends Dialog {
|
||
private static final String TAG = "LoginIcomRadioDialog";
|
||
private final MainViewModel mainViewModel;
|
||
private EditText inputIcomAddressEdit;
|
||
private EditText inputIcomPortEdit;
|
||
private EditText inputIcomUserNameEdit;
|
||
private EditText inputIcomPasswordEdit;
|
||
private Button icomLoginButton;
|
||
private boolean passVisible = false;
|
||
|
||
|
||
public LoginIcomRadioDialog(@NonNull Context context, MainViewModel mainViewModel) {
|
||
super(context);
|
||
this.mainViewModel = mainViewModel;
|
||
}
|
||
|
||
@SuppressLint("NotifyDataSetChanged")
|
||
@Override
|
||
protected void onCreate(Bundle savedInstanceState) {
|
||
super.onCreate(savedInstanceState);
|
||
setContentView(R.layout.login_icom_dialog_layout);
|
||
inputIcomAddressEdit = (EditText) findViewById(R.id.inputIcomAddressEdit);
|
||
inputIcomPortEdit = (EditText) findViewById(R.id.inputIcomPortEdit);
|
||
inputIcomUserNameEdit = (EditText) findViewById(R.id.inputIcomUserNameEdit);
|
||
inputIcomPasswordEdit = (EditText) findViewById(R.id.inputIcomPasswordEdit);
|
||
icomLoginButton = (Button) findViewById(R.id.icomLoginButton);
|
||
ImageButton showPassImageButton = (ImageButton) findViewById(R.id.showPassImageButton);
|
||
|
||
inputIcomAddressEdit.setText(GeneralVariables.icomIp);
|
||
inputIcomPortEdit.setText(String.valueOf(GeneralVariables.icomUdpPort));
|
||
inputIcomUserNameEdit.setText(GeneralVariables.icomUserName);
|
||
inputIcomPasswordEdit.setText(GeneralVariables.icomPassword);
|
||
checkInput();
|
||
icomLoginButton.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
|
||
|
||
if (GeneralVariables.instructionSet == InstructionSet.ICOM) {//icom 电台
|
||
ToastMessage.show(String.format(
|
||
GeneralVariables.getStringFromResource(R.string.connect_icom_ip)
|
||
, inputIcomAddressEdit.getText()));
|
||
mainViewModel.connectWifiRig(new IComWifiRig(GeneralVariables.icomIp
|
||
, GeneralVariables.icomUdpPort
|
||
, GeneralVariables.icomUserName
|
||
, GeneralVariables.icomPassword));
|
||
} else if (GeneralVariables.instructionSet == InstructionSet.XIEGU_6100) {//协谷x6100
|
||
ToastMessage.show(String.format(
|
||
GeneralVariables.getStringFromResource(R.string.connect_xiegu_ip)
|
||
, inputIcomAddressEdit.getText()));
|
||
mainViewModel.connectWifiRig(new XieGuWifiRig(GeneralVariables.icomIp
|
||
, GeneralVariables.icomUdpPort
|
||
, GeneralVariables.icomUserName
|
||
, GeneralVariables.icomPassword));
|
||
}
|
||
dismiss();
|
||
}
|
||
});
|
||
|
||
|
||
inputIcomAddressEdit.addTextChangedListener(new TextWatcher() {
|
||
@Override
|
||
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void afterTextChanged(Editable editable) {
|
||
checkInput();
|
||
GeneralVariables.icomIp = inputIcomAddressEdit.getText().toString().trim();
|
||
writeConfig("icomIp", inputIcomAddressEdit.getText().toString().trim());
|
||
}
|
||
});
|
||
|
||
inputIcomPortEdit.addTextChangedListener(new TextWatcher() {
|
||
@Override
|
||
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void afterTextChanged(Editable editable) {
|
||
checkInput();
|
||
if (GeneralVariables.isInteger(inputIcomPortEdit.getText().toString().trim())) {
|
||
writeConfig("icomPort", inputIcomPortEdit.getText().toString().trim());
|
||
GeneralVariables.icomUdpPort = Integer.parseInt(inputIcomPortEdit.getText().toString().trim());
|
||
}
|
||
}
|
||
});
|
||
inputIcomUserNameEdit.addTextChangedListener(new TextWatcher() {
|
||
@Override
|
||
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void afterTextChanged(Editable editable) {
|
||
checkInput();
|
||
writeConfig("icomUserName", inputIcomUserNameEdit.getText().toString().trim());
|
||
GeneralVariables.icomUserName = inputIcomUserNameEdit.getText().toString().trim();
|
||
}
|
||
});
|
||
inputIcomPasswordEdit.addTextChangedListener(new TextWatcher() {
|
||
@Override
|
||
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
|
||
|
||
}
|
||
|
||
@Override
|
||
public void afterTextChanged(Editable editable) {
|
||
checkInput();
|
||
writeConfig("icomPassword", inputIcomPasswordEdit.getText().toString());
|
||
GeneralVariables.icomPassword = inputIcomPasswordEdit.getText().toString();
|
||
}
|
||
});
|
||
|
||
showPassImageButton.setOnClickListener(new View.OnClickListener() {
|
||
@Override
|
||
public void onClick(View view) {
|
||
passVisible = !passVisible;
|
||
if (passVisible) {
|
||
inputIcomPasswordEdit.setTransformationMethod(
|
||
HideReturnsTransformationMethod.getInstance());
|
||
} else {
|
||
inputIcomPasswordEdit.setTransformationMethod(
|
||
PasswordTransformationMethod.getInstance());
|
||
}
|
||
}
|
||
});
|
||
}
|
||
|
||
|
||
public void checkInput() {
|
||
icomLoginButton.setEnabled(!inputIcomAddressEdit.getText().toString().isEmpty()
|
||
&& !inputIcomPortEdit.getText().toString().isEmpty()
|
||
&& !inputIcomUserNameEdit.getText().toString().isEmpty()
|
||
&& !inputIcomPasswordEdit.getText().toString().isEmpty()
|
||
&& GeneralVariables.isInteger(inputIcomPortEdit.getText().toString().trim())
|
||
);
|
||
}
|
||
|
||
/**
|
||
* 把配置信息写到数据库
|
||
*
|
||
* @param KeyName 关键词
|
||
* @param Value 值
|
||
*/
|
||
private void writeConfig(String KeyName, String Value) {
|
||
mainViewModel.databaseOpr.writeConfig(KeyName, Value, null);
|
||
}
|
||
|
||
@Override
|
||
public void show() {
|
||
super.show();
|
||
WindowManager.LayoutParams params = getWindow().getAttributes();
|
||
//设置对话框的大小,以百分比0.6
|
||
int height = getWindow().getWindowManager().getDefaultDisplay().getHeight();
|
||
int width = getWindow().getWindowManager().getDefaultDisplay().getWidth();
|
||
// params.height = (int) (height * 0.6);
|
||
if (width > height) {
|
||
params.width = (int) (width * 0.6);
|
||
//params.height = (int) (height * 0.6);
|
||
} else {
|
||
params.width = (int) (width * 0.8);
|
||
//params.height = (int) (height * 0.5);
|
||
}
|
||
getWindow().setAttributes(params);
|
||
}
|
||
|
||
|
||
}
|