Преглед изворни кода

changed BooleanBinding updateAvailable to ObservableValue<Boolean>

Jan-Peter Klein пре 1 година
родитељ
комит
9ad2d223c3

+ 5 - 9
src/main/java/org/cryptomator/ui/fxapp/UpdateChecker.java

@@ -1,13 +1,13 @@
 package org.cryptomator.ui.fxapp;
 
 import org.cryptomator.common.Environment;
+import org.cryptomator.common.ObservableUtil;
 import org.cryptomator.common.SemVerComparator;
 import org.cryptomator.common.settings.Settings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
-import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.property.ObjectProperty;
 import javafx.beans.property.ReadOnlyStringProperty;
@@ -35,7 +35,7 @@ public class UpdateChecker {
 	private final ObjectProperty<UpdateCheckState> state = new SimpleObjectProperty<>(UpdateCheckState.NOT_CHECKED);
 	private final ObjectProperty<Instant> lastSuccessfulUpdateCheck = new SimpleObjectProperty<>();
 	private final Comparator<String> versionComparator = new SemVerComparator();
-	private final BooleanBinding updateAvailable;
+	private final ObservableValue<Boolean> updateAvailable;
 	//private final BooleanBinding checkFailed;
 	private final ObservableValue<Boolean> checkFailed;
 
@@ -47,11 +47,7 @@ public class UpdateChecker {
 		this.settings = settings;
 		this.updateCheckerService = updateCheckerService;
 		this.lastSuccessfulUpdateCheck.bindBidirectional(settings.lastSuccessfulUpdateCheck);
-
-		this.updateAvailable = Bindings.createBooleanBinding(() -> {
-			var latestVersion = this.latestVersion.get();
-			return latestVersion != null && versionComparator.compare(getCurrentVersion(), latestVersion) < 0;
-		}, latestVersion);
+		this.updateAvailable = ObservableUtil.mapWithDefault(latestVersion, latest -> versionComparator.compare(getCurrentVersion(), latest) < 0, false);
 		this.checkFailed = state.map(UpdateCheckState.CHECK_FAILED::equals);
 	}
 
@@ -108,7 +104,7 @@ public class UpdateChecker {
 		return latestVersion;
 	}
 
-	public BooleanBinding updateAvailableProperty() {
+	public ObservableValue<Boolean> updateAvailableProperty() {
 		return updateAvailable;
 	}
 	public ObservableValue<Boolean> checkFailedProperty() {
@@ -116,7 +112,7 @@ public class UpdateChecker {
 	}
 
 	public boolean isUpdateAvailable() {
-		return updateAvailable.get();
+		return updateAvailable.getValue();
 	}
 
 	public ObjectProperty<Instant> lastSuccessfulUpdateCheckProperty() {

+ 4 - 3
src/main/java/org/cryptomator/ui/mainwindow/MainWindowTitleController.java

@@ -15,6 +15,7 @@ import javax.inject.Inject;
 import javafx.beans.binding.Bindings;
 import javafx.beans.binding.BooleanBinding;
 import javafx.beans.property.ReadOnlyBooleanProperty;
+import javafx.beans.value.ObservableValue;
 import javafx.fxml.FXML;
 import javafx.scene.input.MouseButton;
 import javafx.scene.layout.HBox;
@@ -30,7 +31,7 @@ public class MainWindowTitleController implements FxController {
 	private final FxApplicationWindows appWindows;
 	private final boolean trayMenuInitialized;
 	private final UpdateChecker updateChecker;
-	private final BooleanBinding updateAvailable;
+	private final ObservableValue<Boolean> updateAvailable;
 	private final LicenseHolder licenseHolder;
 	private final Settings settings;
 	private final BooleanBinding showMinimizeButton;
@@ -126,12 +127,12 @@ public class MainWindowTitleController implements FxController {
 		return licenseHolder;
 	}
 
-	public BooleanBinding updateAvailableProperty() {
+	public ObservableValue<Boolean> updateAvailableProperty() {
 		return updateAvailable;
 	}
 
 	public boolean isUpdateAvailable() {
-		return updateAvailable.get();
+		return updateAvailable.getValue();
 	}
 
 	public boolean isTrayIconPresent() {

+ 3 - 3
src/main/java/org/cryptomator/ui/preferences/UpdatesPreferencesController.java

@@ -46,7 +46,7 @@ public class UpdatesPreferencesController implements FxController {
 	private final ObservableValue<Instant> lastSuccessfulUpdateCheck;
 	private final ObservableValue<String> timeDifferenceMessage;
 	private final String currentVersion;
-	private final BooleanBinding updateAvailable;
+	private final ObservableValue<Boolean> updateAvailable;
 	private final ObservableValue<Boolean> checkFailed;
 	private final BooleanProperty upToDateLabelVisible = new SimpleBooleanProperty(false);
 	private final ObjectProperty<UpdateChecker.UpdateCheckState> updateCheckState;
@@ -173,12 +173,12 @@ public class UpdatesPreferencesController implements FxController {
 		return upToDateLabelVisible.get();
 	}
 
-	public BooleanBinding updateAvailableProperty() {
+	public ObservableValue<Boolean> updateAvailableProperty() {
 		return updateAvailable;
 	}
 
 	public boolean isUpdateAvailable() {
-		return updateAvailable.get();
+		return updateAvailable.getValue();
 	}
 
 	public ObservableValue<Boolean> checkFailedProperty() {

+ 0 - 3
src/main/java/org/cryptomator/ui/updatereminder/UpdateReminderController.java

@@ -7,9 +7,6 @@ import org.cryptomator.ui.fxapp.UpdateChecker;
 import javax.inject.Inject;
 import javafx.fxml.FXML;
 import javafx.stage.Stage;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
 
 @UpdateReminderScoped
 public class UpdateReminderController implements FxController {