diff --git a/pom.xml b/pom.xml
index 9df6b0f..f499a46 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,9 +44,7 @@
2.0.0-alpha
1.3.3
1.3.6
- 32.1.3-jre
2.0.9
- 3.13.0
5.10.1
@@ -67,11 +65,6 @@
slf4j-api
${slf4j.version}
-
- com.google.guava
- guava
- ${guava.version}
-
de.swiesend
secret-service
@@ -82,12 +75,6 @@
kdewallet
${kdewallet.version}
-
-
- org.apache.commons
- commons-lang3
- ${commons-lang3.version}
-
org.purejava
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index 6116212..9ec0149 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -9,8 +9,6 @@
module org.cryptomator.integrations.linux {
requires org.cryptomator.integrations.api;
requires org.slf4j;
- requires com.google.common;
- requires org.apache.commons.lang3;
requires org.freedesktop.dbus;
requires org.purejava.appindicator;
requires org.purejava.kwallet;
diff --git a/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java b/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java
index 5478199..52e0771 100644
--- a/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java
+++ b/src/main/java/org/cryptomator/linux/keychain/KDEWalletKeychainAccess.java
@@ -1,10 +1,10 @@
package org.cryptomator.linux.keychain;
-import com.google.common.base.Preconditions;
import org.cryptomator.integrations.common.OperatingSystem;
import org.cryptomator.integrations.common.Priority;
import org.cryptomator.integrations.keychain.KeychainAccessException;
import org.cryptomator.integrations.keychain.KeychainAccessProvider;
+import org.cryptomator.linux.util.CheckUtil;
import org.freedesktop.dbus.connections.impl.DBusConnection;
import org.freedesktop.dbus.connections.impl.DBusConnectionBuilder;
import org.freedesktop.dbus.exceptions.DBusConnectionException;
@@ -49,25 +49,25 @@ public boolean isLocked() {
@Override
public void storePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
- Preconditions.checkState(wallet.isPresent(), "Keychain not supported.");
+ CheckUtil.checkState(wallet.isPresent(), "Keychain not supported.");
wallet.get().storePassphrase(key, passphrase);
}
@Override
public char[] loadPassphrase(String key) throws KeychainAccessException {
- Preconditions.checkState(wallet.isPresent(), "Keychain not supported.");
+ CheckUtil.checkState(wallet.isPresent(), "Keychain not supported.");
return wallet.get().loadPassphrase(key);
}
@Override
public void deletePassphrase(String key) throws KeychainAccessException {
- Preconditions.checkState(wallet.isPresent(), "Keychain not supported.");
+ CheckUtil.checkState(wallet.isPresent(), "Keychain not supported.");
wallet.get().deletePassphrase(key);
}
@Override
public void changePassphrase(String key, String displayName, CharSequence passphrase) throws KeychainAccessException {
- Preconditions.checkState(wallet.isPresent(), "Keychain not supported.");
+ CheckUtil.checkState(wallet.isPresent(), "Keychain not supported.");
wallet.get().changePassphrase(key, passphrase);
}
@@ -95,11 +95,7 @@ private static DBusConnection getNewConnection() throws DBusException {
} catch (DBusConnectionException | DBusExecutionException de) {
LOG.warn("Connecting to SESSION bus failed.", de);
LOG.warn("Falling back to SYSTEM DBus");
- try {
- return DBusConnectionBuilder.forSystemBus().build();
- } catch (DBusException e) {
- throw e;
- }
+ return DBusConnectionBuilder.forSystemBus().build();
}
}
@@ -144,7 +140,7 @@ public char[] loadPassphrase(String key) throws KeychainAccessException {
} else {
LOG.debug("loadPassphrase: wallet is closed.");
}
- return (password.equals("")) ? null : password.toCharArray();
+ return (password.isEmpty()) ? null : password.toCharArray();
} catch (RuntimeException e) {
throw new KeychainAccessException("Loading the passphrase failed.", e);
}
diff --git a/src/main/java/org/cryptomator/linux/revealpath/DBusSendRevealPathService.java b/src/main/java/org/cryptomator/linux/revealpath/DBusSendRevealPathService.java
index 533a8e5..39529ff 100644
--- a/src/main/java/org/cryptomator/linux/revealpath/DBusSendRevealPathService.java
+++ b/src/main/java/org/cryptomator/linux/revealpath/DBusSendRevealPathService.java
@@ -1,6 +1,5 @@
package org.cryptomator.linux.revealpath;
-import com.google.common.base.Preconditions;
import org.cryptomator.integrations.revealpath.RevealFailedException;
import org.cryptomator.integrations.revealpath.RevealPathService;
@@ -91,7 +90,9 @@ public boolean isSupported() {
* @throws IOException if the Inputer reader on the process output cannot be created
*/
private boolean parseOutputForFileManagerInterface(Process fileManager1Process) throws IOException {
- Preconditions.checkState(!fileManager1Process.isAlive());
+ if( fileManager1Process.isAlive()) {
+ throw new IllegalArgumentException("Process " + fileManager1Process + " must be terminated to read output.");
+ }
try (var reader = fileManager1Process.inputReader(StandardCharsets.UTF_8)) {
return reader.lines().map(String::trim).anyMatch(FILEMANAGER1_XML_ELEMENT::equals);
}
diff --git a/src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java b/src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java
index 66daabc..573d178 100644
--- a/src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java
+++ b/src/main/java/org/cryptomator/linux/tray/AppindicatorTrayMenuController.java
@@ -31,7 +31,6 @@ public class AppindicatorTrayMenuController implements TrayMenuController {
private static final Arena ARENA = Arena.global();
private MemorySegment indicator;
private MemorySegment menu = gtk_menu_new();
- private Optional svgSourcePath;
@CheckAvailability
public static boolean isAvailable() {
@@ -48,9 +47,9 @@ public void showTrayIcon(Consumer iconLoader, Runnable runnable,
private void showTrayIconWithSVG(String s) {
try (var arena = Arena.ofConfined()) {
- svgSourcePath = Optional.ofNullable(System.getProperty(SVG_SOURCE_PROPERTY));
+ var svgSourcePath = System.getProperty(SVG_SOURCE_PROPERTY);
// flatpak
- if (svgSourcePath.isEmpty()) {
+ if (svgSourcePath != null) {
indicator = app_indicator_new(arena.allocateUtf8String(APP_INDICATOR_ID),
arena.allocateUtf8String(s),
APP_INDICATOR_CATEGORY_APPLICATION_STATUS());
@@ -60,7 +59,7 @@ private void showTrayIconWithSVG(String s) {
arena.allocateUtf8String(s),
APP_INDICATOR_CATEGORY_APPLICATION_STATUS(),
// find tray icons theme in mounted AppImage / installed on system by ppa
- arena.allocateUtf8String(svgSourcePath.get()));
+ arena.allocateUtf8String(svgSourcePath));
}
}
}
@@ -105,7 +104,7 @@ private void addChildren(MemorySegment menu, List items) {
}
gtk_menu_shell_append(menu, gtkMenuItem);
}
- case SeparatorItem separatorItem -> {
+ case SeparatorItem _ -> {
var gtkSeparator = gtk_menu_item_new();
gtk_menu_shell_append(menu, gtkSeparator);
}
diff --git a/src/main/java/org/cryptomator/linux/util/CheckUtil.java b/src/main/java/org/cryptomator/linux/util/CheckUtil.java
new file mode 100644
index 0000000..02cc829
--- /dev/null
+++ b/src/main/java/org/cryptomator/linux/util/CheckUtil.java
@@ -0,0 +1,26 @@
+package org.cryptomator.linux.util;
+
+public class CheckUtil {
+
+
+ /**
+ * Ensures the truth of an expression involving the state of the calling instance, but not
+ * involving any parameters to the calling method.
+ *
+ * @param expression a boolean expression
+ * @param errorMessage the exception message to use if the check fails; will be converted to a
+ * string using {@link String#valueOf(Object)}
+ * @throws IllegalStateException if {@code expression} is false
+ */
+ public static void checkState(boolean expression, String errorMessage) {
+ if (!expression) {
+ throw new IllegalStateException(errorMessage);
+ }
+ }
+
+ public static void checkState(boolean expression) {
+ if (!expression) {
+ throw new IllegalStateException();
+ }
+ }
+}