#168 final clean-up

This commit is contained in:
Julian Raufelder 2021-02-01 00:37:31 +01:00
parent a6b327f264
commit 657e2877ba
No known key found for this signature in database
GPG Key ID: 17EE71F6634E381D
7 changed files with 28 additions and 29 deletions

View File

@ -14,15 +14,15 @@ internal class Upgrade3To4 @Inject constructor() : DatabaseUpgrade(3, 4) {
override fun internalApplyTo(db: Database, origin: Int) { override fun internalApplyTo(db: Database, origin: Int) {
db.beginTransaction() db.beginTransaction()
try { try {
upgradeDatabaseSchema(db) addPositionToVaultSchema(db)
updateVaultPositions(db) initVaultPositionUsingCurrentSortOrder(db)
db.setTransactionSuccessful() db.setTransactionSuccessful()
} finally { } finally {
db.endTransaction() db.endTransaction()
} }
} }
private fun upgradeDatabaseSchema(db: Database) { private fun addPositionToVaultSchema(db: Database) {
Sql.alterTable("VAULT_ENTITY").renameTo("VAULT_ENTITY_OLD").executeOn(db) Sql.alterTable("VAULT_ENTITY").renameTo("VAULT_ENTITY_OLD").executeOn(db)
Sql.createTable("VAULT_ENTITY") // Sql.createTable("VAULT_ENTITY") //
.id() // .id() //
@ -53,7 +53,7 @@ internal class Upgrade3To4 @Inject constructor() : DatabaseUpgrade(3, 4) {
Sql.dropTable("VAULT_ENTITY_OLD").executeOn(db) Sql.dropTable("VAULT_ENTITY_OLD").executeOn(db)
} }
private fun updateVaultPositions(db: Database) { private fun initVaultPositionUsingCurrentSortOrder(db: Database) {
CloudEntityDao(DaoConfig(db, VaultEntityDao::class.java)) // CloudEntityDao(DaoConfig(db, VaultEntityDao::class.java)) //
.loadAll() // .loadAll() //
.map { .map {

View File

@ -7,17 +7,17 @@ import java.util.*
class MoveVaultHelper { class MoveVaultHelper {
companion object { companion object {
fun updateVaultPosition(from: Int, to: Int, vaultRepository: VaultRepository): List<Vault> { fun updateVaultPosition(fromPosition: Int, toPosition: Int, vaultRepository: VaultRepository): List<Vault> {
val vaults = vaultRepository.vaults() val vaults = vaultRepository.vaults()
vaults.sortWith(VaultComparator()) vaults.sortWith(VaultComparator())
if (from < to) { if (fromPosition < toPosition) {
for (i in from until to) { for (i in fromPosition until toPosition) {
Collections.swap(vaults, i, i + 1) Collections.swap(vaults, i, i + 1)
} }
} else { } else {
for (i in from downTo to + 1) { for (i in fromPosition downTo toPosition + 1) {
Collections.swap(vaults, i, i - 1) Collections.swap(vaults, i, i - 1)
} }
} }
@ -26,8 +26,6 @@ class MoveVaultHelper {
vaults[i] = Vault.aCopyOf(vaults[i]).withPosition(i + 1).build() vaults[i] = Vault.aCopyOf(vaults[i]).withPosition(i + 1).build()
} }
vaults.forEach { vault -> vaultRepository.store(vault) }
return vaults return vaults
} }

View File

@ -9,20 +9,20 @@ import org.cryptomator.generator.UseCase;
import java.util.List; import java.util.List;
@UseCase @UseCase
class MoveVault { class MoveVaultPosition {
private final VaultRepository vaultRepository; private final VaultRepository vaultRepository;
private final int from; private final int fromPosition;
private final int to; private final int toPosition;
public MoveVault(VaultRepository vaultRepository, @Parameter Integer from, @Parameter Integer to) { public MoveVaultPosition(VaultRepository vaultRepository, @Parameter Integer fromPosition, @Parameter Integer toPosition) {
this.vaultRepository = vaultRepository; this.vaultRepository = vaultRepository;
this.from = from; this.fromPosition = fromPosition;
this.to = to; this.toPosition = toPosition;
} }
public List<Vault> execute() throws BackendException { public List<Vault> execute() throws BackendException {
List<Vault> vaults = MoveVaultHelper.Companion.updateVaultPosition(from, to, vaultRepository); List<Vault> vaults = MoveVaultHelper.Companion.updateVaultPosition(fromPosition, toPosition, vaultRepository);
return MoveVaultHelper.Companion.updateVaultsInDatabase(vaults, vaultRepository); return MoveVaultHelper.Companion.updateVaultsInDatabase(vaults, vaultRepository);
} }
} }

View File

@ -53,7 +53,7 @@ class VaultListPresenter @Inject constructor( //
private val addExistingVaultWorkflow: AddExistingVaultWorkflow, // private val addExistingVaultWorkflow: AddExistingVaultWorkflow, //
private val createNewVaultWorkflow: CreateNewVaultWorkflow, // private val createNewVaultWorkflow: CreateNewVaultWorkflow, //
private val saveVaultUseCase: SaveVaultUseCase, // private val saveVaultUseCase: SaveVaultUseCase, //
private val moveVaultUseCase: MoveVaultUseCase, // private val moveVaultPositionUseCase: MoveVaultPositionUseCase, //
private val changePasswordUseCase: ChangePasswordUseCase, // private val changePasswordUseCase: ChangePasswordUseCase, //
private val removeStoredVaultPasswordsUseCase: RemoveStoredVaultPasswordsUseCase, // private val removeStoredVaultPasswordsUseCase: RemoveStoredVaultPasswordsUseCase, //
private val licenseCheckUseCase: DoLicenseCheckUseCase, // private val licenseCheckUseCase: DoLicenseCheckUseCase, //
@ -609,9 +609,9 @@ class VaultListPresenter @Inject constructor( //
} }
fun onVaultMoved(fromPosition: Int, toPosition: Int) { fun onVaultMoved(fromPosition: Int, toPosition: Int) {
moveVaultUseCase moveVaultPositionUseCase
.withFrom(fromPosition) // .withFromPosition(fromPosition) //
.andTo(toPosition) // .andToPosition(toPosition) //
.run(object : DefaultResultHandler<List<Vault>>() { .run(object : DefaultResultHandler<List<Vault>>() {
override fun onSuccess(vaults: List<Vault>) { override fun onSuccess(vaults: List<Vault>) {
view?.vaultMoved(vaults.mapTo(ArrayList()) { VaultModel(it) }) view?.vaultMoved(vaults.mapTo(ArrayList()) { VaultModel(it) })
@ -710,6 +710,7 @@ class VaultListPresenter @Inject constructor( //
lockVaultUseCase, // lockVaultUseCase, //
getVaultListUseCase, // getVaultListUseCase, //
saveVaultUseCase, // saveVaultUseCase, //
moveVaultPositionUseCase, //
removeStoredVaultPasswordsUseCase, // removeStoredVaultPasswordsUseCase, //
unlockVaultUseCase, // unlockVaultUseCase, //
prepareUnlockUseCase, // prepareUnlockUseCase, //

View File

@ -150,14 +150,14 @@ class VaultListActivity : BaseActivity(), //
return biometricAuthentication?.stoppedBiometricAuthDuringCloudAuthentication() == true return biometricAuthentication?.stoppedBiometricAuthDuringCloudAuthentication() == true
} }
override fun vaultMoved(vaults: List<VaultModel>) {
vaultListFragment().vaultMoved(vaults)
}
override fun rowMoved(fromPosition: Int, toPosition: Int) { override fun rowMoved(fromPosition: Int, toPosition: Int) {
vaultListFragment().rowMoved(fromPosition, toPosition) vaultListFragment().rowMoved(fromPosition, toPosition)
} }
override fun vaultMoved(vaults: List<VaultModel>) {
vaultListFragment().vaultMoved(vaults)
}
override fun showVaultSettingsDialog(vaultModel: VaultModel) { override fun showVaultSettingsDialog(vaultModel: VaultModel) {
val vaultSettingDialog = // val vaultSettingDialog = //
SettingsVaultBottomSheet.newInstance(vaultModel) SettingsVaultBottomSheet.newInstance(vaultModel)

View File

@ -23,7 +23,7 @@ interface VaultListView : View {
fun isVaultLocked(vaultModel: VaultModel): Boolean fun isVaultLocked(vaultModel: VaultModel): Boolean
fun cancelBasicAuthIfRunning() fun cancelBasicAuthIfRunning()
fun stoppedBiometricAuthDuringCloudAuthentication(): Boolean fun stoppedBiometricAuthDuringCloudAuthentication(): Boolean
fun vaultMoved(vaults: List<VaultModel>)
fun rowMoved(fromPosition: Int, toPosition: Int) fun rowMoved(fromPosition: Int, toPosition: Int)
fun vaultMoved(vaults: List<VaultModel>)
} }

View File

@ -17,7 +17,7 @@ import org.cryptomator.domain.usecases.vault.ChangePasswordUseCase;
import org.cryptomator.domain.usecases.vault.DeleteVaultUseCase; import org.cryptomator.domain.usecases.vault.DeleteVaultUseCase;
import org.cryptomator.domain.usecases.vault.GetVaultListUseCase; import org.cryptomator.domain.usecases.vault.GetVaultListUseCase;
import org.cryptomator.domain.usecases.vault.LockVaultUseCase; import org.cryptomator.domain.usecases.vault.LockVaultUseCase;
import org.cryptomator.domain.usecases.vault.MoveVaultUseCase; import org.cryptomator.domain.usecases.vault.MoveVaultPositionUseCase;
import org.cryptomator.domain.usecases.vault.PrepareUnlockUseCase; import org.cryptomator.domain.usecases.vault.PrepareUnlockUseCase;
import org.cryptomator.domain.usecases.vault.RemoveStoredVaultPasswordsUseCase; import org.cryptomator.domain.usecases.vault.RemoveStoredVaultPasswordsUseCase;
import org.cryptomator.domain.usecases.vault.RenameVaultUseCase; import org.cryptomator.domain.usecases.vault.RenameVaultUseCase;
@ -124,7 +124,7 @@ public class VaultListPresenterTest {
private SaveVaultUseCase saveVaultUseCase = Mockito.mock(SaveVaultUseCase.class); private SaveVaultUseCase saveVaultUseCase = Mockito.mock(SaveVaultUseCase.class);
private MoveVaultUseCase moveVaultUseCase = Mockito.mock(MoveVaultUseCase.class); private MoveVaultPositionUseCase moveVaultPositionUseCase = Mockito.mock(MoveVaultPositionUseCase.class);
private ChangePasswordUseCase changePasswordUseCase = Mockito.mock(ChangePasswordUseCase.class); private ChangePasswordUseCase changePasswordUseCase = Mockito.mock(ChangePasswordUseCase.class);
@ -163,7 +163,7 @@ public class VaultListPresenterTest {
addExistingVaultWorkflow, // addExistingVaultWorkflow, //
createNewVaultWorkflow, // createNewVaultWorkflow, //
saveVaultUseCase, // saveVaultUseCase, //
moveVaultUseCase, // moveVaultPositionUseCase, //
changePasswordUseCase, // changePasswordUseCase, //
removeStoredVaultPasswordsUseCase, // removeStoredVaultPasswordsUseCase, //
doLicenceCheckUsecase, // doLicenceCheckUsecase, //