From ade16a3a0b7994dc9feb4982791834e84946a436 Mon Sep 17 00:00:00 2001 From: "artsiom.panko" Date: Thu, 22 Jun 2023 23:15:07 +0300 Subject: [PATCH] SettingsController refactoring, added additional check --- .../apod/controller/SettingsController.java | 25 +++++++++++-------- src/main/resources/scene/settings-scene.fxml | 2 +- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/panko/apod/controller/SettingsController.java b/src/main/java/com/panko/apod/controller/SettingsController.java index ee8396b..d0f6e8d 100644 --- a/src/main/java/com/panko/apod/controller/SettingsController.java +++ b/src/main/java/com/panko/apod/controller/SettingsController.java @@ -11,8 +11,6 @@ import javafx.scene.control.Hyperlink; import javafx.scene.control.TextField; import javafx.scene.control.ToggleGroup; -import javafx.stage.DirectoryChooser; -import javafx.stage.Stage; import java.awt.*; import java.io.IOException; @@ -29,11 +27,10 @@ public class SettingsController implements Initializable, SceneController { @FXML - private TextField newApiKey; + private TextField apiKeyField; @FXML private ToggleGroup languageGroup; - private Stage primaryStage; private SceneService sceneService; private final PreferencesManager preferencesManager = new PreferencesManager(); @@ -43,7 +40,7 @@ public void initialize(URL url, ResourceBundle resourceBundle) { String key = preferencesManager.readKey(NASA_API_KEY); if (key != null && !key.isEmpty()) { - newApiKey.setText(key); + apiKeyField.setText(key); } } @@ -56,11 +53,10 @@ private void openHyperlink(ActionEvent event) throws URISyntaxException, IOExcep private void saveSettings() { Path applicationAbsolutePath = FileSystems.getDefault().getPath("").toAbsolutePath(); String picturesPath = applicationAbsolutePath.toString().concat("\\pictures\\"); - String enteredApiKey = newApiKey.getText(); - if (!enteredApiKey.isBlank() && isApiKeyValid(enteredApiKey)) { + if (isEnteredApiKeyValid(apiKeyField)) { preferencesManager.saveKey(PICTURES_FOLDER, picturesPath); - preferencesManager.saveKey(NASA_API_KEY, newApiKey.getText()); + preferencesManager.saveKey(NASA_API_KEY, apiKeyField.getText()); // preferencesManager.saveKey(LANGUAGE, ((RadioButton) languageGroup.getSelectedToggle()).getText()); sceneService.launchMainThread(); @@ -77,9 +73,18 @@ public void setSceneService(SceneService sceneService) { this.sceneService = sceneService; } - private boolean isApiKeyValid(String apiKey) { + private boolean isEnteredApiKeyValid(TextField apiKeyToCheck) { + if (apiKeyToCheck == null) { + return false; + } + + String enteredApiKeyValue = apiKeyToCheck.getText(); + if (!enteredApiKeyValue.isBlank() && !preferencesManager.readKey(NASA_API_KEY).equals(enteredApiKeyValue)) { + return false; + } + ApiService apiService = new ApiService(); - HttpResponse httpResponse = apiService.sendHttpRequest(apiKey); + HttpResponse httpResponse = apiService.sendHttpRequest(enteredApiKeyValue); return !httpResponse.body().contains("API_KEY_INVALID"); } diff --git a/src/main/resources/scene/settings-scene.fxml b/src/main/resources/scene/settings-scene.fxml index a26f319..0be2a88 100644 --- a/src/main/resources/scene/settings-scene.fxml +++ b/src/main/resources/scene/settings-scene.fxml @@ -50,7 +50,7 @@ - +