Simplify device rgistration code

This commit is contained in:
tl 2022-07-13 11:09:00 +02:00
parent 321a67c44a
commit faf1994962
1 changed files with 51 additions and 95 deletions

View File

@ -3,24 +3,15 @@ package eu.csc.vehown.ui.registration.device;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import androidx.lifecycle.Observer;
import androidx.lifecycle.ViewModelProvider;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.lifecycle.ViewModelProvider;
import eu.csc.vehown.data.model.CustomerDevice;
import eu.csc.vehown.databinding.FragmentDeviceRegistrationBinding;
import eu.csc.vehown.ui.base.AbstractFragment;
@ -68,15 +59,8 @@ public class DeviceRegistrationFragment extends AbstractFragment {
mViewModel = new ViewModelProvider(this, new AppViewModelFactory(getContext()))
.get(DeviceRegistrationViewModel.class);
mViewModel = new ViewModelProvider(this).get(DeviceRegistrationViewModel.class);
EditText edSerialnumber = binding.edSerialnumber;
Button btnFindSerialnumber = binding.btnFindSerialnumber;
Button btnStore = binding.btnStore;
ProgressBar progressBar = binding.loading;
var textInputLayout = binding.textField;
edSerialnumber.addTextChangedListener(new TextWatcher() {
binding.edSerialnumber.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
@ -92,103 +76,75 @@ public class DeviceRegistrationFragment extends AbstractFragment {
mViewModel.getMSerialnumber().postValue(s.toString());
}
});
mViewModel.getMSerialnumber().observe(getViewLifecycleOwner(), new Observer<String>() {
@Override
public void onChanged(String s) {
btnFindSerialnumber.setEnabled(s != null && !s.equals(""));
mViewModel.getMSerialnumber().observe(getViewLifecycleOwner(), s -> binding.btnFindSerialnumber.setEnabled(s != null && !s.equals("")));
mViewModel.getMCustomerDevice().observe(getViewLifecycleOwner(), customerDevice -> {
binding.btnStore.setEnabled(customerDevice != null);
if (customerDevice == null) {
} else {
binding.textField.getEditText().setText(customerDevice.toString());
}
});
mViewModel.getMCustomerDevice().observe(getViewLifecycleOwner(), new Observer<CustomerDevice>() {
@Override
public void onChanged(CustomerDevice customerDevice) {
btnStore.setEnabled(customerDevice != null);
if(customerDevice == null){
}else{
textInputLayout.getEditText().setText(customerDevice.toString());
}
binding.btnStore.setOnClickListener(v -> {
mViewModel.storeDevice();
if (result_code != null) {
getActivity().setResult(result_code);
getActivity().finish();
}
});
btnStore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mViewModel.storeDevice();
binding.btnFindSerialnumber.setOnClickListener(v -> {
CustomerDevice item = new CustomerDevice();
item.setName(binding.edSerialnumber.getText().toString());
item.setSerialNumber(binding.edSerialnumber.getText().toString());
item.setDeviceNumber(binding.edSerialnumber.getText().toString());
mViewModel.getMCustomerDevice().postValue(item);
if (result_code != null)
{
getActivity().setResult(result_code);
getActivity().finish();
}
/*
mViewModel.storeDevice();
//mViewModel.doRegisterDevice();
if (result_code != null)
{
getActivity().setResult(result_code);
getActivity().finish();
}
});
btnFindSerialnumber.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
CustomerDevice item = new CustomerDevice();
item.setName(edSerialnumber.getText().toString());
item.setSerialNumber(edSerialnumber.getText().toString());
item.setDeviceNumber(edSerialnumber.getText().toString());
mViewModel.getMCustomerDevice().postValue(item);
/*
mViewModel.storeDevice();
//mViewModel.doRegisterDevice();
if (result_code != null)
{
getActivity().setResult(result_code);
getActivity().finish();
}
*/
}
*/
});
//return inflater.inflate(R.layout.device_registration_fragment, container, false);
mViewModel.getMIsEnabled().observe(getViewLifecycleOwner(), new Observer<Boolean>() {
@Override
public void onChanged(Boolean aBoolean) {
if (aBoolean != null && aBoolean == false) {
btnFindSerialnumber.setEnabled(false);
edSerialnumber.setEnabled(false);
mViewModel.getMIsEnabled().observe(getViewLifecycleOwner(), aBoolean -> {
if (aBoolean != null && !aBoolean) {
binding.btnFindSerialnumber.setEnabled(false);
binding.edSerialnumber.setEnabled(false);
if (mViewModel.getMSerialnumber().getValue() != null)
progressBar.setVisibility(View.GONE);
else
progressBar.setVisibility(View.VISIBLE);
} else {
progressBar.setVisibility(View.GONE);
btnFindSerialnumber.setEnabled(true);
edSerialnumber.setEnabled(true);
}
if (mViewModel.getMSerialnumber().getValue() != null)
binding.loading.setVisibility(View.GONE);
else
binding.loading.setVisibility(View.VISIBLE);
} else {
binding.loading.setVisibility(View.GONE);
binding.edSerialnumber.setEnabled(true);
binding.edSerialnumber.setEnabled(true);
}
});
mViewModel.getMRegistrationResult().observe(getViewLifecycleOwner(), new Observer<Result<CustomerDevice>>() {
@Override
public void onChanged(Result<CustomerDevice> result) {
if (result instanceof Result.Success) {
mViewModel.getMIsEnabled().postValue(true);
mViewModel.getMRegistrationResult().observe(getViewLifecycleOwner(), result -> {
if (result instanceof Result.Success) {
mViewModel.getMIsEnabled().postValue(true);
} else {
Helper.showErrorDialog(getContext(), "ERROR", result.toString(), new Helper.IDialogOkHandler() {
@Override
public void onOk() {
} else {
Helper.showErrorDialog(getContext(), "ERROR", result.toString(), () -> {
}
});
}
});
}
});
//checkUserAuth();
return root;