#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) {
db.beginTransaction()
try {
upgradeDatabaseSchema(db)
updateVaultPositions(db)
addPositionToVaultSchema(db)
initVaultPositionUsingCurrentSortOrder(db)
db.setTransactionSuccessful()
} finally {
db.endTransaction()
}
}
private fun upgradeDatabaseSchema(db: Database) {
private fun addPositionToVaultSchema(db: Database) {
Sql.alterTable("VAULT_ENTITY").renameTo("VAULT_ENTITY_OLD").executeOn(db)
Sql.createTable("VAULT_ENTITY") //
.id() //
@ -53,7 +53,7 @@ internal class Upgrade3To4 @Inject constructor() : DatabaseUpgrade(3, 4) {
Sql.dropTable("VAULT_ENTITY_OLD").executeOn(db)
}
private fun updateVaultPositions(db: Database) {
private fun initVaultPositionUsingCurrentSortOrder(db: Database) {
CloudEntityDao(DaoConfig(db, VaultEntityDao::class.java)) //
.loadAll() //
.map {

View File

@ -7,17 +7,17 @@ import java.util.*
class MoveVaultHelper {
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()
vaults.sortWith(VaultComparator())
if (from < to) {
for (i in from until to) {
if (fromPosition < toPosition) {
for (i in fromPosition until toPosition) {
Collections.swap(vaults, i, i + 1)
}
} else {
for (i in from downTo to + 1) {
for (i in fromPosition downTo toPosition + 1) {
Collections.swap(vaults, i, i - 1)
}
}
@ -26,8 +26,6 @@ class MoveVaultHelper {
vaults[i] = Vault.aCopyOf(vaults[i]).withPosition(i + 1).build()
}
vaults.forEach { vault -> vaultRepository.store(vault) }
return vaults
}

View File

@ -9,20 +9,20 @@ import org.cryptomator.generator.UseCase;
import java.util.List;
@UseCase
class MoveVault {
class MoveVaultPosition {
private final VaultRepository vaultRepository;
private final int from;
private final int to;
private final int fromPosition;
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.from = from;
this.to = to;
this.fromPosition = fromPosition;
this.toPosition = toPosition;
}
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);
}
}

View File

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

View File

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

View File

@ -23,7 +23,7 @@ interface VaultListView : View {
fun isVaultLocked(vaultModel: VaultModel): Boolean
fun cancelBasicAuthIfRunning()
fun stoppedBiometricAuthDuringCloudAuthentication(): Boolean
fun vaultMoved(vaults: List<VaultModel>)
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.GetVaultListUseCase;
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.RemoveStoredVaultPasswordsUseCase;
import org.cryptomator.domain.usecases.vault.RenameVaultUseCase;
@ -124,7 +124,7 @@ public class VaultListPresenterTest {
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);
@ -163,7 +163,7 @@ public class VaultListPresenterTest {
addExistingVaultWorkflow, //
createNewVaultWorkflow, //
saveVaultUseCase, //
moveVaultUseCase, //
moveVaultPositionUseCase, //
changePasswordUseCase, //
removeStoredVaultPasswordsUseCase, //
doLicenceCheckUsecase, //