diff --git a/app/src/main/java/com/example/dcav2gui/ui/settings/SettingsFragment.java b/app/src/main/java/com/example/dcav2gui/ui/settings/SettingsFragment.java index c54c463..e4625d8 100644 --- a/app/src/main/java/com/example/dcav2gui/ui/settings/SettingsFragment.java +++ b/app/src/main/java/com/example/dcav2gui/ui/settings/SettingsFragment.java @@ -40,6 +40,18 @@ public class SettingsFragment extends Fragment { Button buttonSaveSettings = root.findViewById(R.id.buttonSaveSettings); + // Add listener to the checkbox so we can enable or disable the editTexts if the checkbox + // is checked or unchecked respectively + checkBox.setOnCheckedChangeListener((buttonView, isChecked) -> { + editBotToken.setEnabled(isChecked); + editBotToken.setFocusable(isChecked); + editBotToken.setFocusableInTouchMode(isChecked); + + editChatId.setEnabled(isChecked); + editChatId.setFocusable(isChecked); + editChatId.setFocusableInTouchMode(isChecked); + }); + buttonSaveSettings.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -49,9 +61,26 @@ public class SettingsFragment extends Fragment { boolean useTelegram = checkBox.isChecked(); String botToken = editBotToken.getText().toString(); String chatId = editChatId.getText().toString(); - int timeBetweenQueries = Integer.parseInt(editTimeBetweenQueries.getText().toString()); - int amountOfLogLines = Integer.parseInt(editAmountOfLogLines.getText().toString()); - int amountOfLastTrades = Integer.parseInt(editAmountofLastTrades.getText().toString()); + float timeBetweenQueries = 0; + int amountOfLogLines = 0; + int amountOfLastTrades = 0; + + //Check if the user entered valid strings + if (profileName.isEmpty() || apiUrl.isEmpty() || apiKey.isEmpty() || botToken.isEmpty() || chatId.isEmpty()) { + Toast.makeText(getContext(), "Invalid input, please enter valid strings", Toast.LENGTH_SHORT).show(); + return; + } + + //Check if the user entered valid numbers + try { + timeBetweenQueries = Float.parseFloat(editTimeBetweenQueries.getText().toString()); + amountOfLogLines = Integer.parseInt(editAmountOfLogLines.getText().toString()); + amountOfLastTrades = Integer.parseInt(editAmountofLastTrades.getText().toString()); + } catch (NumberFormatException e) { + Toast.makeText(getContext(), "Invalid input, please enter valid numbers", Toast.LENGTH_SHORT).show(); + return; + } + settingsViewModel.saveSettings( getContext(), profileName, diff --git a/app/src/main/res/layout/fragment_settings.xml b/app/src/main/res/layout/fragment_settings.xml index 467da6b..f4609ce 100644 --- a/app/src/main/res/layout/fragment_settings.xml +++ b/app/src/main/res/layout/fragment_settings.xml @@ -23,15 +23,16 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/profile_name_title" - android:textSize="18sp"/> + android:textSize="14sp"/> + android:textSize="16sp"/> + android:textSize="14sp"/> + android:textSize="16sp"/> + android:textSize="14sp"/> + android:textSize="16sp"/> + android:textSize="14sp"/> + android:textSize="16sp"/> + android:textSize="14sp"/> + android:textSize="16sp"/> + android:textSize="14sp"/> + android:textSize="16sp"/> + android:textSize="14sp"/> + android:textSize="16sp"/> + android:textSize="14sp"/> + android:textSize="16sp"/>