From 981ba3286f5d7d6edc0a6d51d79f3877d570ae02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20S=C3=A1nchez?= Date: Tue, 10 Dec 2024 10:30:32 -0300 Subject: [PATCH] Settings now loads existing settings. --- .../ui/settings/SettingsFragment.java | 15 ++++++++++++++ .../ui/settings/SettingsViewModel.java | 20 +++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) 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 1d2dcbf..40a7520 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 @@ -38,6 +38,21 @@ public class SettingsFragment extends Fragment { Button buttonSaveSettings = root.findViewById(R.id.buttonSaveSettings); + //Load settings if settings.json exists + SettingsData settingsData = settingsViewModel.loadSettings(getContext()); + + if (settingsData != null) { + editProfileName.setText(settingsData.profileName); + editApiUrl.setText(settingsData.apiUrl); + editApiKey.setText(settingsData.apiKey); + checkBox.setChecked(settingsData.useTelegram); + editBotToken.setText(settingsData.botToken); + editChatId.setText(settingsData.chatId); + editTimeBetweenQueries.setText(String.valueOf(settingsData.timeBetweenQueries)); + editAmountOfLogLines.setText(String.valueOf(settingsData.amountOfLogLines)); + editAmountOfLastTrades.setText(String.valueOf(settingsData.amountOfLastTrades)); + } + // 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) -> { diff --git a/app/src/main/java/com/example/dcav2gui/ui/settings/SettingsViewModel.java b/app/src/main/java/com/example/dcav2gui/ui/settings/SettingsViewModel.java index c77efec..5a14454 100644 --- a/app/src/main/java/com/example/dcav2gui/ui/settings/SettingsViewModel.java +++ b/app/src/main/java/com/example/dcav2gui/ui/settings/SettingsViewModel.java @@ -7,14 +7,15 @@ import android.content.Context; import androidx.lifecycle.ViewModel; import com.google.gson.Gson; +import com.google.gson.JsonIOException; +import com.google.gson.JsonSyntaxException; import java.io.File; +import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class SettingsViewModel extends ViewModel { - //private Context context; - public String profileName; public String apiUrl; public String apiKey; @@ -73,4 +74,19 @@ public class SettingsViewModel extends ViewModel { e.printStackTrace(); } } + + public SettingsData loadSettings(Context context) { + Gson gson = new Gson(); + File file = new File(context.getFilesDir(), "settings.json"); + + if (file.exists()) { + try { + FileReader reader = new FileReader(file); + return gson.fromJson(reader, SettingsData.class); + } catch (IOException e) { + e.printStackTrace(); + } + } + return null; + } } \ No newline at end of file