Apply sorting of vaults when sharing with CM and biometric setup too
This commit is contained in:
parent
503a6cf0c1
commit
9767466064
@ -0,0 +1,10 @@
|
|||||||
|
package org.cryptomator.presentation.model.comparator
|
||||||
|
|
||||||
|
import org.cryptomator.presentation.model.VaultModel
|
||||||
|
|
||||||
|
class VaultPositionComparator : Comparator<VaultModel> {
|
||||||
|
|
||||||
|
override fun compare(v1: VaultModel, v2: VaultModel): Int {
|
||||||
|
return v1.position - v2.position
|
||||||
|
}
|
||||||
|
}
|
@ -2,15 +2,18 @@ package org.cryptomator.presentation.ui.adapter
|
|||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.google.android.material.switchmaterial.SwitchMaterial
|
import com.google.android.material.switchmaterial.SwitchMaterial
|
||||||
import kotlinx.android.synthetic.main.item_biometric_auth_vault.view.*
|
|
||||||
import org.cryptomator.presentation.R
|
import org.cryptomator.presentation.R
|
||||||
import org.cryptomator.presentation.model.VaultModel
|
import org.cryptomator.presentation.model.VaultModel
|
||||||
|
import org.cryptomator.presentation.model.comparator.VaultPositionComparator
|
||||||
import org.cryptomator.presentation.ui.adapter.BiometricAuthSettingsAdapter.BiometricAuthSettingsViewHolder
|
import org.cryptomator.presentation.ui.adapter.BiometricAuthSettingsAdapter.BiometricAuthSettingsViewHolder
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import kotlinx.android.synthetic.main.item_biometric_auth_vault.view.cloud
|
||||||
|
import kotlinx.android.synthetic.main.item_biometric_auth_vault.view.toggleBiometricAuth
|
||||||
|
import kotlinx.android.synthetic.main.item_biometric_auth_vault.view.vaultName
|
||||||
|
|
||||||
class BiometricAuthSettingsAdapter //
|
class BiometricAuthSettingsAdapter //
|
||||||
@Inject
|
@Inject
|
||||||
constructor() : RecyclerViewBaseAdapter<VaultModel, BiometricAuthSettingsAdapter.OnVaultBiometricAuthSettingsChanged, BiometricAuthSettingsViewHolder>() {
|
constructor() : RecyclerViewBaseAdapter<VaultModel, BiometricAuthSettingsAdapter.OnVaultBiometricAuthSettingsChanged, BiometricAuthSettingsViewHolder>(VaultPositionComparator()) {
|
||||||
|
|
||||||
private var onVaultBiometricAuthSettingsChanged: OnVaultBiometricAuthSettingsChanged? = null
|
private var onVaultBiometricAuthSettingsChanged: OnVaultBiometricAuthSettingsChanged? = null
|
||||||
|
|
||||||
|
@ -1,14 +1,19 @@
|
|||||||
package org.cryptomator.presentation.ui.adapter
|
package org.cryptomator.presentation.ui.adapter
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import kotlinx.android.synthetic.main.item_shareable_location.view.*
|
|
||||||
import org.cryptomator.presentation.R
|
import org.cryptomator.presentation.R
|
||||||
import org.cryptomator.presentation.model.VaultModel
|
import org.cryptomator.presentation.model.VaultModel
|
||||||
|
import org.cryptomator.presentation.model.comparator.VaultPositionComparator
|
||||||
import org.cryptomator.presentation.ui.adapter.SharedLocationsAdapter.VaultViewHolder
|
import org.cryptomator.presentation.ui.adapter.SharedLocationsAdapter.VaultViewHolder
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import kotlinx.android.synthetic.main.item_shareable_location.view.chooseFolderLocation
|
||||||
|
import kotlinx.android.synthetic.main.item_shareable_location.view.chosenLocation
|
||||||
|
import kotlinx.android.synthetic.main.item_shareable_location.view.cloudImage
|
||||||
|
import kotlinx.android.synthetic.main.item_shareable_location.view.selectedVault
|
||||||
|
import kotlinx.android.synthetic.main.item_shareable_location.view.vaultName
|
||||||
|
|
||||||
class SharedLocationsAdapter @Inject
|
class SharedLocationsAdapter @Inject
|
||||||
constructor() : RecyclerViewBaseAdapter<VaultModel, SharedLocationsAdapter.Callback, VaultViewHolder>() {
|
constructor() : RecyclerViewBaseAdapter<VaultModel, SharedLocationsAdapter.Callback, VaultViewHolder>(VaultPositionComparator()) {
|
||||||
|
|
||||||
private var selectedVault: VaultModel? = null
|
private var selectedVault: VaultModel? = null
|
||||||
private var selectedLocation: String? = null
|
private var selectedLocation: String? = null
|
||||||
|
@ -1,15 +1,22 @@
|
|||||||
package org.cryptomator.presentation.ui.adapter
|
package org.cryptomator.presentation.ui.adapter
|
||||||
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import kotlinx.android.synthetic.main.item_vault.view.*
|
|
||||||
import org.cryptomator.presentation.R
|
import org.cryptomator.presentation.R
|
||||||
import org.cryptomator.presentation.model.VaultModel
|
import org.cryptomator.presentation.model.VaultModel
|
||||||
|
import org.cryptomator.presentation.model.comparator.VaultPositionComparator
|
||||||
import org.cryptomator.presentation.ui.adapter.VaultsAdapter.VaultViewHolder
|
import org.cryptomator.presentation.ui.adapter.VaultsAdapter.VaultViewHolder
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
import kotlinx.android.synthetic.main.item_vault.view.cloudImage
|
||||||
|
import kotlinx.android.synthetic.main.item_vault.view.settings
|
||||||
|
import kotlinx.android.synthetic.main.item_vault.view.unlockedImage
|
||||||
|
import kotlinx.android.synthetic.main.item_vault.view.vaultName
|
||||||
|
import kotlinx.android.synthetic.main.item_vault.view.vaultPath
|
||||||
|
|
||||||
class VaultsAdapter @Inject
|
class VaultsAdapter @Inject
|
||||||
internal constructor() : RecyclerViewBaseAdapter<VaultModel, VaultsAdapter.OnItemInteractionListener, VaultViewHolder>(VaultModelComparator()), VaultsMoveListener.Listener {
|
internal constructor() : RecyclerViewBaseAdapter<VaultModel, VaultsAdapter.OnItemInteractionListener, VaultViewHolder>(VaultPositionComparator()), VaultsMoveListener.Listener {
|
||||||
|
|
||||||
interface OnItemInteractionListener {
|
interface OnItemInteractionListener {
|
||||||
|
|
||||||
fun onVaultClicked(vaultModel: VaultModel)
|
fun onVaultClicked(vaultModel: VaultModel)
|
||||||
|
|
||||||
fun onVaultSettingsClicked(vaultModel: VaultModel)
|
fun onVaultSettingsClicked(vaultModel: VaultModel)
|
||||||
@ -76,10 +83,4 @@ internal constructor() : RecyclerViewBaseAdapter<VaultModel, VaultsAdapter.OnIte
|
|||||||
override fun onRowMoved(fromPosition: Int, toPosition: Int) {
|
override fun onRowMoved(fromPosition: Int, toPosition: Int) {
|
||||||
callback.onRowMoved(fromPosition, toPosition)
|
callback.onRowMoved(fromPosition, toPosition)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal class VaultModelComparator : java.util.Comparator<VaultModel> {
|
|
||||||
override fun compare(o1: VaultModel, o2: VaultModel): Int {
|
|
||||||
return o1.position - o2.position
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,7 @@ import org.cryptomator.presentation.R
|
|||||||
import org.cryptomator.presentation.model.CloudFolderModel
|
import org.cryptomator.presentation.model.CloudFolderModel
|
||||||
import org.cryptomator.presentation.model.SharedFileModel
|
import org.cryptomator.presentation.model.SharedFileModel
|
||||||
import org.cryptomator.presentation.model.VaultModel
|
import org.cryptomator.presentation.model.VaultModel
|
||||||
|
import org.cryptomator.presentation.model.comparator.VaultPositionComparator
|
||||||
import org.cryptomator.presentation.presenter.SharedFilesPresenter
|
import org.cryptomator.presentation.presenter.SharedFilesPresenter
|
||||||
import org.cryptomator.presentation.ui.adapter.SharedFilesAdapter
|
import org.cryptomator.presentation.ui.adapter.SharedFilesAdapter
|
||||||
import org.cryptomator.presentation.ui.adapter.SharedFilesAdapter.Callback
|
import org.cryptomator.presentation.ui.adapter.SharedFilesAdapter.Callback
|
||||||
@ -69,9 +70,10 @@ class SharedFilesFragment : BaseFragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun displayVaults(vaults: List<VaultModel>?) {
|
fun displayVaults(vaults: List<VaultModel>?) {
|
||||||
if (vaults?.isNotEmpty() == true) {
|
val sortedVaults = vaults?.sortedWith(VaultPositionComparator())
|
||||||
presenter.selectedVault?.let { presenter.selectedVault = vaults[vaults.indexOf(it)] }
|
if (sortedVaults?.isNotEmpty() == true) {
|
||||||
val preselectedVault = presenter.selectedVault ?: vaults[0]
|
presenter.selectedVault?.let { presenter.selectedVault = sortedVaults[sortedVaults.indexOf(it)] }
|
||||||
|
val preselectedVault = presenter.selectedVault ?: sortedVaults[0]
|
||||||
locationsAdapter.setPreselectedVault(preselectedVault)
|
locationsAdapter.setPreselectedVault(preselectedVault)
|
||||||
presenter.onVaultSelected(preselectedVault)
|
presenter.onVaultSelected(preselectedVault)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user