Add linux paths for Dropbox and OneDrive

This commit is contained in:
Armin Schrenk
2023-05-22 14:51:52 +02:00
parent 6acda9b13c
commit a3d30612ec
3 changed files with 40 additions and 3 deletions

View File

@@ -7,7 +7,7 @@ import org.cryptomator.common.locationpresets.ICloudMacLocationPresetsProvider;
import org.cryptomator.common.locationpresets.ICloudWindowsLocationPresetsProvider;
import org.cryptomator.common.locationpresets.LocationPresetsProvider;
import org.cryptomator.common.locationpresets.MegaLocationPresetsProvider;
import org.cryptomator.common.locationpresets.OneDriveMacLocationPresetsProvider;
import org.cryptomator.common.locationpresets.OneDriveLocationPresetsProvider;
import org.cryptomator.common.locationpresets.OneDriveWindowsLocationPresetsProvider;
import org.cryptomator.common.locationpresets.PCloudLocationPresetsProvider;
import org.cryptomator.integrations.tray.TrayMenuController;
@@ -56,5 +56,5 @@ open module org.cryptomator.desktop {
DropboxWindowsLocationPresetsProvider, ICloudMacLocationPresetsProvider, //
ICloudWindowsLocationPresetsProvider, GoogleDriveWindowsLocationPresetsProvider, //
GoogleDriveMacLocationPresetsProvider, PCloudLocationPresetsProvider, //
MegaLocationPresetsProvider, OneDriveMacLocationPresetsProvider, OneDriveWindowsLocationPresetsProvider;
MegaLocationPresetsProvider, OneDriveLocationPresetsProvider, OneDriveWindowsLocationPresetsProvider;
}

View File

@@ -0,0 +1,35 @@
package org.cryptomator.common.locationpresets;
import org.cryptomator.integrations.common.OperatingSystem;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import java.util.stream.StreamSupport;
import static org.cryptomator.integrations.common.OperatingSystem.Value.LINUX;
@OperatingSystem(LINUX)
public final class DropboxLinuxLocationPresetsProvider implements LocationPresetsProvider {
private static final Path USER_HOME = LocationPresetsProvider.resolveLocation("~/.").toAbsolutePath();
private static final Pattern PATTERN = Pattern.compile("Dropbox \\(.+\\)");
@Override
public Stream<LocationPreset> getLocations() {
try (var dirStream = Files.newDirectoryStream(USER_HOME,"Dropbox*")){
return StreamSupport.stream(dirStream.spliterator(), false).flatMap(p -> {
var matcher = PATTERN.matcher(p.getFileName().toString());
if(matcher.matches() && Files.isDirectory(p)) {
return Stream.of(new LocationPreset(matcher.group(), p));
} else {
return Stream.of();
}
});
} catch (IOException e) {
return Stream.of();
}
}
}

View File

@@ -7,11 +7,13 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.stream.Stream;
import static org.cryptomator.integrations.common.OperatingSystem.Value.LINUX;
import static org.cryptomator.integrations.common.OperatingSystem.Value.MAC;
@OperatingSystem(MAC)
@OperatingSystem(LINUX)
@CheckAvailability
public final class OneDriveMacLocationPresetsProvider implements LocationPresetsProvider {
public final class OneDriveLocationPresetsProvider implements LocationPresetsProvider {
private static final Path LOCATION = LocationPresetsProvider.resolveLocation("~/OneDrive");