changed BooleanBinding updateAvailable to ObservableValue<Boolean>

This commit is contained in:
Jan-Peter Klein
2024-05-07 13:23:53 +02:00
parent 3bf1e659ef
commit 9ad2d223c3
4 changed files with 12 additions and 18 deletions

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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 {