mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-04-21 01:56:55 -04:00
Add linux paths for Dropbox and OneDrive
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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");
|
||||
Reference in New Issue
Block a user