{@inheritDoc}
- *
- * @implNote This default implementation sorts the MPCs in ascending order
- * of their {@link #getPriority() priority.}
- */
- @Override
- default int compareTo(MountPointChooser other) {
- Preconditions.checkNotNull(other, "Other must not be null!");
-
- //Sort by priority (ascending order)
- return Integer.compare(this.getPriority(), other.getPriority());
- }
}
diff --git a/main/commons/src/main/java/org/cryptomator/common/mountpoint/MountPointChooserModule.java b/main/commons/src/main/java/org/cryptomator/common/mountpoint/MountPointChooserModule.java
index 09789dacb..cfb7b68ec 100644
--- a/main/commons/src/main/java/org/cryptomator/common/mountpoint/MountPointChooserModule.java
+++ b/main/commons/src/main/java/org/cryptomator/common/mountpoint/MountPointChooserModule.java
@@ -1,15 +1,17 @@
package org.cryptomator.common.mountpoint;
-import com.google.common.collect.ImmutableSortedSet;
+import com.google.common.collect.Iterables;
import dagger.Binds;
import dagger.Module;
import dagger.Provides;
-import dagger.multibindings.IntoSet;
+import dagger.multibindings.IntKey;
+import dagger.multibindings.IntoMap;
import org.cryptomator.common.vaults.PerVault;
import javax.inject.Named;
-import java.util.Set;
-import java.util.SortedSet;
+import java.util.Map;
+import java.util.SortedMap;
+import java.util.TreeMap;
/**
* Dagger-Module for {@link MountPointChooser MountPointChoosers.}
@@ -21,30 +23,40 @@ import java.util.SortedSet;
public abstract class MountPointChooserModule {
@Binds
- @IntoSet
+ @IntoMap
+ @IntKey(0)
@PerVault
public abstract MountPointChooser bindCustomMountPointChooser(CustomMountPointChooser chooser);
@Binds
- @IntoSet
+ @IntoMap
+ @IntKey(100)
@PerVault
public abstract MountPointChooser bindCustomDriveLetterChooser(CustomDriveLetterChooser chooser);
@Binds
- @IntoSet
+ @IntoMap
+ @IntKey(101)
+ @PerVault
+ public abstract MountPointChooser bindMacVolumeMountChooser(MacVolumeMountChooser chooser);
+
+ @Binds
+ @IntoMap
+ @IntKey(200)
@PerVault
public abstract MountPointChooser bindAvailableDriveLetterChooser(AvailableDriveLetterChooser chooser);
@Binds
- @IntoSet
+ @IntoMap
+ @IntKey(999)
@PerVault
public abstract MountPointChooser bindTemporaryMountPointChooser(TemporaryMountPointChooser chooser);
@Provides
@PerVault
@Named("orderedMountPointChoosers")
- public static SortedSet