diff --git a/.github/workflows/mac-dmg-x64.yml b/.github/workflows/mac-dmg-x64.yml
index 52cf69cf3..88874d238 100644
--- a/.github/workflows/mac-dmg-x64.yml
+++ b/.github/workflows/mac-dmg-x64.yml
@@ -127,7 +127,6 @@ jobs:
--java-options "-Xmx256m"
--java-options "-Dfile.encoding=\"utf-8\""
--java-options "-Djava.net.useSystemProxies=true"
- --java-options "-Dapple.awt.enableTemplateImages=true"
--java-options "-Dsun.java2d.metal=true"
--java-options "-Dcryptomator.appVersion=\"${{ needs.get-version.outputs.semVerStr }}\""
--java-options "-Dcryptomator.adminConfigPath=\"/Library/Application Support/Cryptomator/config.properties\""
diff --git a/.github/workflows/mac-dmg.yml b/.github/workflows/mac-dmg.yml
index 6b3638faf..bd23c2a37 100644
--- a/.github/workflows/mac-dmg.yml
+++ b/.github/workflows/mac-dmg.yml
@@ -125,7 +125,6 @@ jobs:
--java-options "-Xmx256m"
--java-options "-Dfile.encoding=\"utf-8\""
--java-options "-Djava.net.useSystemProxies=true"
- --java-options "-Dapple.awt.enableTemplateImages=true"
--java-options "-Dsun.java2d.metal=true"
--java-options "-Dcryptomator.appVersion=\"${{ needs.get-version.outputs.semVerStr }}\""
--java-options "-Dcryptomator.adminConfigPath=\"/Library/Application Support/Cryptomator/config.properties\""
diff --git a/.idea/runConfigurations/Cryptomator_macOS.xml b/.idea/runConfigurations/Cryptomator_macOS.xml
index 1d547de18..276387154 100644
--- a/.idea/runConfigurations/Cryptomator_macOS.xml
+++ b/.idea/runConfigurations/Cryptomator_macOS.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/.idea/runConfigurations/Cryptomator_macOS_Dev.xml b/.idea/runConfigurations/Cryptomator_macOS_Dev.xml
index 83e18650c..f9049c2e5 100644
--- a/.idea/runConfigurations/Cryptomator_macOS_Dev.xml
+++ b/.idea/runConfigurations/Cryptomator_macOS_Dev.xml
@@ -5,7 +5,7 @@
-
+
diff --git a/dist/mac/dmg/build.sh b/dist/mac/dmg/build.sh
index 53abb794f..4a1060e05 100755
--- a/dist/mac/dmg/build.sh
+++ b/dist/mac/dmg/build.sh
@@ -111,7 +111,6 @@ ${JAVA_HOME}/bin/jpackage \
--java-options "-Xmx256m" \
--java-options "-Dfile.encoding=\"utf-8\"" \
--java-options "-Djava.net.useSystemProxies=true" \
- --java-options "-Dapple.awt.enableTemplateImages=true" \
--java-options "-Dsun.java2d.metal=true" \
--java-options "-Dcryptomator.appVersion=\"${VERSION_NO}\"" \
--java-options "-Dcryptomator.adminConfigPath=\"/Library/Application Support/Cryptomator/config.properties\"" \
diff --git a/pom.xml b/pom.xml
index 93123869e..35ed971c9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -37,7 +37,7 @@
2.2.2
1.8.0
1.6.0
- 1.5.0
+ 1.5.0-SNAPSHOT
1.7.0
6.0.1
3.0.1
diff --git a/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java b/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java
index 3f6ccec10..1da6167c2 100644
--- a/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java
+++ b/src/main/java/org/cryptomator/ui/traymenu/TrayMenuBuilder.java
@@ -63,6 +63,7 @@ public class TrayMenuBuilder {
vaults.addListener(this::vaultListChanged);
vaults.forEach(v -> {
v.displayNameProperty().addListener(this::vaultListChanged);
+ v.stateProperty().addListener(this::vaultListChanged);
});
try {
@@ -76,7 +77,9 @@ public class TrayMenuBuilder {
for (Vault vault : vaults) {
VaultListManager.redetermineVaultState(vault);
}
+ rebuildMenu();
});
+ vaults.forEach(VaultListManager::redetermineVaultState);
rebuildMenu();
initialized = true;
} catch (TrayMenuException e) {
@@ -122,18 +125,27 @@ public class TrayMenuBuilder {
}
private List buildSubmenu(Vault vault) {
- if (vault.isLocked()) {
- return List.of( //
+ return switch (vault.getState()) {
+ case LOCKED -> List.of( //
new ActionItem(resourceBundle.getString("traymenu.vault.unlock"), () -> this.unlockVault(vault)) //
);
- } else if (vault.isUnlocked()) {
- return List.of( //
+ case UNLOCKED -> List.of( //
new ActionItem(resourceBundle.getString("traymenu.vault.lock"), () -> this.lockVault(vault)), //
new ActionItem(resourceBundle.getString("traymenu.vault.reveal"), () -> this.revealVault(vault)) //
);
- } else {
- return List.of();
- }
+ case PROCESSING -> List.of( //
+ new ActionItem(resourceBundle.getString("vault.state.processing"), () -> {}, false) //
+ );
+ case MISSING, VAULT_CONFIG_MISSING, ALL_MISSING -> List.of( //
+ new ActionItem(resourceBundle.getString("vault.state.missing"), () -> {}, false) //
+ );
+ case NEEDS_MIGRATION -> List.of( //
+ new ActionItem(resourceBundle.getString("vault.state.migrationNeeded"), () -> {}, false) //
+ );
+ case ERROR -> List.of( //
+ new ActionItem(resourceBundle.getString("vault.state.error"), () -> {}, false) //
+ );
+ };
}
/* action listeners: */