Merge branch 'develop' into release/1.7.0
This commit is contained in:
commit
88ff45e44e
@ -6,8 +6,6 @@ import org.cryptomator.domain.repository.VaultRepository;
|
||||
import org.cryptomator.generator.Parameter;
|
||||
import org.cryptomator.generator.UseCase;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@UseCase
|
||||
class DeleteVault {
|
||||
|
||||
@ -20,12 +18,7 @@ class DeleteVault {
|
||||
}
|
||||
|
||||
public Long execute() throws BackendException {
|
||||
Long vaultId = vaultRepository.delete(vault);
|
||||
|
||||
List<Vault> reorderVaults = MoveVaultHelper.Companion.reorderVaults(vaultRepository);
|
||||
MoveVaultHelper.Companion.updateVaultsInDatabase(reorderVaults, vaultRepository);
|
||||
|
||||
return vaultId;
|
||||
return vaultRepository.delete(vault);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,30 @@
|
||||
package org.cryptomator.domain.usecases.vault;
|
||||
|
||||
import org.cryptomator.domain.Vault;
|
||||
import org.cryptomator.domain.exception.BackendException;
|
||||
import org.cryptomator.domain.repository.VaultRepository;
|
||||
import org.cryptomator.generator.Parameter;
|
||||
import org.cryptomator.generator.UseCase;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@UseCase
|
||||
class DeleteVaults {
|
||||
|
||||
private final VaultRepository vaultRepository;
|
||||
private final List<Vault> vaults;
|
||||
|
||||
public DeleteVaults(VaultRepository vaultRepository, @Parameter List<Vault> vaults) {
|
||||
this.vaultRepository = vaultRepository;
|
||||
this.vaults = vaults;
|
||||
}
|
||||
|
||||
public List<Long> execute() throws BackendException {
|
||||
List<Long> ids = new ArrayList<>();
|
||||
for (Vault vault : vaults) {
|
||||
ids.add(vaultRepository.delete(vault));
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
}
|
@ -3,7 +3,6 @@ package org.cryptomator.domain.usecases.vault;
|
||||
import org.cryptomator.domain.Vault
|
||||
import org.cryptomator.domain.repository.VaultRepository
|
||||
import java.util.Collections
|
||||
import java.util.Comparator
|
||||
|
||||
class MoveVaultHelper {
|
||||
|
||||
@ -40,7 +39,9 @@ class MoveVaultHelper {
|
||||
}
|
||||
|
||||
fun updateVaultsInDatabase(vaults: List<Vault>, vaultRepository: VaultRepository): List<Vault> {
|
||||
vaults.forEach { vault -> vaultRepository.store(vault) }
|
||||
for(vault in vaults) {
|
||||
vaultRepository.store(vault)
|
||||
}
|
||||
return vaultRepository.vaults()
|
||||
}
|
||||
}
|
||||
|
@ -233,6 +233,8 @@ class AuthenticateCloudPresenter @Inject constructor( //
|
||||
private fun startAuthentication(cloud: CloudModel) {
|
||||
authenticationStarted = true
|
||||
|
||||
Toast.makeText(context(), R.string.notification_authenticating, Toast.LENGTH_SHORT).show()
|
||||
|
||||
PublicClientApplication.createMultipleAccountPublicClientApplication(
|
||||
context(),
|
||||
R.raw.auth_config_onedrive,
|
||||
|
@ -21,7 +21,7 @@ import org.cryptomator.domain.usecases.cloud.AddOrChangeCloudConnectionUseCase
|
||||
import org.cryptomator.domain.usecases.cloud.GetCloudsUseCase
|
||||
import org.cryptomator.domain.usecases.cloud.GetUsernameUseCase
|
||||
import org.cryptomator.domain.usecases.cloud.RemoveCloudUseCase
|
||||
import org.cryptomator.domain.usecases.vault.DeleteVaultUseCase
|
||||
import org.cryptomator.domain.usecases.vault.DeleteVaultsUseCase
|
||||
import org.cryptomator.domain.usecases.vault.GetVaultListUseCase
|
||||
import org.cryptomator.generator.Callback
|
||||
import org.cryptomator.presentation.R
|
||||
@ -48,7 +48,7 @@ class CloudConnectionListPresenter @Inject constructor( //
|
||||
private val removeCloudUseCase: RemoveCloudUseCase, //
|
||||
private val addOrChangeCloudConnectionUseCase: AddOrChangeCloudConnectionUseCase, //
|
||||
private val getVaultListUseCase: GetVaultListUseCase, //
|
||||
private val deleteVaultUseCase: DeleteVaultUseCase, //
|
||||
private val deleteVaultsUseCase: DeleteVaultsUseCase, //
|
||||
private val cloudModelMapper: CloudModelMapper, //
|
||||
exceptionMappings: ExceptionHandlers
|
||||
) : Presenter<CloudConnectionListView>(exceptionMappings) {
|
||||
@ -93,18 +93,25 @@ class CloudConnectionListPresenter @Inject constructor( //
|
||||
}
|
||||
|
||||
private fun vaultsFor(cloudModel: CloudModel, allVaults: List<Vault>): ArrayList<Vault> {
|
||||
return allVaults.filterTo(ArrayList()) { it.cloud.type() == cloudModel.toCloud().type() }
|
||||
return allVaults.filterTo(ArrayList()) { it.cloud.id() == cloudModel.toCloud().id() }
|
||||
}
|
||||
|
||||
fun onDeleteCloudConnectionAndVaults(cloudModel: CloudModel, vaultsOfCloud: ArrayList<Vault>) {
|
||||
vaultsOfCloud.forEach { vault ->
|
||||
deleteVault(vault)
|
||||
}
|
||||
deleteCloud(cloudModel)
|
||||
}
|
||||
if (vaultsOfCloud.isEmpty()) {
|
||||
deleteCloud(cloudModel)
|
||||
} else {
|
||||
deleteVaultsUseCase
|
||||
.withVaults(vaultsOfCloud)
|
||||
.run(object : DefaultResultHandler<List<Long>>() {
|
||||
override fun onFinished() {
|
||||
deleteCloud(cloudModel)
|
||||
}
|
||||
|
||||
private fun deleteVault(vault: Vault) {
|
||||
deleteVaultUseCase.withVault(vault).run(DefaultResultHandler())
|
||||
override fun onError(e: Throwable) {
|
||||
Timber.tag("CloudConnectionListPresenter").e(e, "Failed to remove all vaults")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
private fun deleteCloud(cloudModel: CloudModel) {
|
||||
@ -345,6 +352,6 @@ class CloudConnectionListPresenter @Inject constructor( //
|
||||
}
|
||||
|
||||
init {
|
||||
unsubscribeOnDestroy(getCloudsUseCase, removeCloudUseCase, addOrChangeCloudConnectionUseCase, getVaultListUseCase, deleteVaultUseCase)
|
||||
unsubscribeOnDestroy(getCloudsUseCase, removeCloudUseCase, addOrChangeCloudConnectionUseCase, getVaultListUseCase, deleteVaultsUseCase)
|
||||
}
|
||||
}
|
||||
|
@ -119,13 +119,20 @@
|
||||
<string name="screen_webdav_settings_msg_password_must_not_be_empty">পাসওয়ার্ড খালি থাকতে পারবে না।</string>
|
||||
<!-- ## screen: s3 settings -->
|
||||
<string name="screen_s3_settings_display_name_label">নাম প্রদর্শন করুন</string>
|
||||
<string name="screen_s3_settings_bucket_label">বিদ্যমান বাকেট</string>
|
||||
<string name="screen_s3_settings_endpoint_label">এন্ডপয়েন্ট</string>
|
||||
<string name="screen_s3_settings_region_label">অঞ্চল</string>
|
||||
<string name="screen_s3_settings_msg_display_name_not_empty">নাম খালি হতে পারব না</string>
|
||||
<!-- ## screen: enter vault name -->
|
||||
<string name="screen_enter_vault_name_vault_label">ভোল্ট এর নাম</string>
|
||||
<string name="screen_enter_vault_name_button_text">তৈরি করুন</string>
|
||||
<!-- ## screen: set password -->
|
||||
<string name="screen_set_password_title">পাসওয়ার্ড সেট করুন</string>
|
||||
<string name="screen_set_password_msg_password_mismatch">পাসওয়ার্ড মেলেনা, আবার লিখুন।</string>
|
||||
<string name="screen_set_password_button_text">সম্পন্ন হয়েছে</string>
|
||||
<string name="screen_set_password_hint">সতর্কতা: আপনি যদি আপনার পাসওয়ার্ড ভুলে যান, তাহলে পাসওয়ার্ডটি পুনরুদ্ধার করার কোনো উপায় থাকবে না।</string>
|
||||
<string name="screen_set_password_retype_password_label">পুনরায় পাসওয়ার্ডটি লিখুন</string>
|
||||
<string name="screen_set_password_strength_indicator_0">ভোল্টটি তৈরির জন্য পাসওয়ার্ডটি অত্যন্ত দুর্বল</string>
|
||||
<string name="screen_set_password_strength_indicator_1">দুর্বল</string>
|
||||
<string name="screen_set_password_strength_indicator_2">ভালো</string>
|
||||
<string name="screen_set_password_strength_indicator_3">শক্তিশালী</string>
|
||||
@ -135,15 +142,70 @@
|
||||
<string name="screen_settings_cloud_settings_label">ক্লাউড পরিষেবাসমূহ</string>
|
||||
<string name="screen_settings_biometric_auth">বায়োমেট্রিক সনাক্তকরণ</string>
|
||||
<string name="screen_settings_activate_biometric_auth">বায়োমেট্রিক সনাক্তকরণ সক্রিয় করুন</string>
|
||||
<string name="screen_settings_confirm_face_unlock">ফেইস আনলক নিশ্চিত করুন (যদি থাকে)</string>
|
||||
<string name="screen_settings_block_app_when_obscured">অন্যান্য আ্যপকে ক্রিপ্টোমেটর ব্যবহারে বাধা দিন</string>
|
||||
<string name="screen_settings_secure_screen">স্ক্রিনশট নিতে বাধা দিন</string>
|
||||
<string name="screen_settings_section_search">খুঁজুন</string>
|
||||
<string name="screen_settings_auto_lock_on_screen_lock">যখন স্ক্রিন বন্ধ থাকে</string>
|
||||
<string name="screen_settings_section_auto_photo_upload">স্বয়ংক্রিয় ছবি আপলোড</string>
|
||||
<string name="screen_settings_section_auto_photo_upload_vault">আপলোডের জন্য ভোল্ট নির্বাচন করুন</string>
|
||||
<string name="screen_settings_section_auto_photo_upload_toggle">সক্রিয় করুন</string>
|
||||
<string name="screen_settings_section_auto_photo_upload_toggle_summary">ব্যাকগ্রাউন্ডে ছবি তুলুন এবং যখন নির্বাচিত ভোল্টটি আনলক করা হবে, আপলোড করুন</string>
|
||||
<string name="screen_settings_section_auto_photo_upload_toggle_instant_upload_summary">ভোল্ট আনলোক থাকলে সরাসরি আপলোড করুন</string>
|
||||
<string name="screen_settings_section_auto_photo_upload_only_wifi_toggle">শুধু WiFi ব্যবহার করে আপলোড করুন</string>
|
||||
<string name="screen_settings_section_auto_photo_upload_including_videos">ভিডিও আপলোড করুন</string>
|
||||
<string name="screen_settings_auto_photo_upload_title">… তে অটো আপলোড ফাইলগুলি সংরক্ষণ করুন</string>
|
||||
<string name="screen_settings_website_label">ক্রিপ্টোমেটরের ওয়েবসাইট</string>
|
||||
<string name="screen_settings_twitter_label">টুইটারে আমাদের অনুসরণ করুন</string>
|
||||
<string name="screen_settings_facebook_label">ফেসবুকে আমাদের লাইক দিন</string>
|
||||
<string name="screen_settings_section_legal">আইনি</string>
|
||||
<string name="screen_settings_licenses_label">লাইসেন্স</string>
|
||||
<string name="screen_settings_license_terms_label">লাইসেন্স এর শর্তাবলি</string>
|
||||
<string name="screen_settings_section_support">সহায়তা</string>
|
||||
<string name="screen_settings_contact_label">সাহায্য জিজ্ঞাসা</string>
|
||||
<string name="screen_settings_debug_mode_label">ডিবাগ মোড</string>
|
||||
<string name="screen_settings_error_report_label">লগ ফাইলটি পাঠান</string>
|
||||
<string name="screen_settings_error_report_failed">পাঠাতে ব্যর্থ হয়েছে</string>
|
||||
<string name="screen_settings_section_version">সংস্করণ</string>
|
||||
<string name="screen_settings_advanced_settings">অ্যাডভান্স সেটিংস</string>
|
||||
<string name="screen_settings_keep_unlocked_while_editing_files">আনলক রাখুন</string>
|
||||
<string name="screen_settings_keep_unlocked_while_editing_files_summary">ফাইল সম্পাদনার সময় ভোল্ট আনলক রাখুন</string>
|
||||
<!-- ## screen: cloud settings -->
|
||||
<string name="screen_cloud_settings_onedrive_connections">OneDrive সংযোগ</string>
|
||||
<string name="screen_cloud_settings_webdav_connections">WebDAV সংযোগ</string>
|
||||
<string name="screen_cloud_settings_pcloud_connections">pCloud সংযোগ</string>
|
||||
<string name="screen_cloud_settings_s3_connections">S3 সংযোগ</string>
|
||||
<string name="screen_cloud_settings_local_storage_locations">লোকাল স্টোরেজ এর ঠিকানা</string>
|
||||
<string name="screen_cloud_settings_log_in_to">লগ ইন</string>
|
||||
<string name="screen_cloud_settings_sign_out_from_cloud">সাইন আউট</string>
|
||||
<!-- ## screen: licenses -->
|
||||
<!-- ## screen: authenticate cloud -->
|
||||
<!-- ## screen: insecure android version info -->
|
||||
<!-- # dialogs -->
|
||||
<string name="dialog_button_cancel">বাতিল করুন</string>
|
||||
<string name="dialog_enter_password_positive_button">আনলক করুন</string>
|
||||
<string name="dialog_change_password_old_password_label">পুরাতন পাসওয়ার্ড</string>
|
||||
<string name="dialog_change_password_new_password_label">নতুন পাসওয়ার্ড</string>
|
||||
<string name="dialog_change_password">পাসওয়ার্ড পরিবর্তন করুন</string>
|
||||
<string name="dialog_change_password_msg_old_password_empty">পুরনো পাসওয়ার্ড অংশ খালি থাকতে পারবে না।</string>
|
||||
<string name="dialog_change_password_msg_new_password_empty">নতুন পাসওয়ার্ড অংশ খালি থাকতে পারবে না।</string>
|
||||
<string name="dialog_change_password_msg_password_mismatch">নতুন পাসওয়ার্ডটি পুনরায় টাইপ করা পাসওয়ার্ডের সাথে মেলে না।</string>
|
||||
<!-- Vault not found -->
|
||||
<string name="dialog_vault_not_found_title">%1$s ভোল্টটি পাওয়া যায়নি</string>
|
||||
<string name="dialog_vault_not_found_message">ভোল্টটির হয়তো নাম পরিবর্তন, স্থানান্তর বা মুছে ফেলা হয়েছে। তালিকা থেকে ভোল্টটি সরান এবং চালিয়ে যেতে পুনরায় যোগ করুন। ভোল্টটি সরাবেন?</string>
|
||||
<string name="dialog_vault_not_found_positive_button_text">বাতিল</string>
|
||||
<string name="dialog_existing_file_title">ফাইলটি ইতিমধ্যে রয়েছে</string>
|
||||
<string name="dialog_existing_file_positive_button">প্রতিস্থাপন করুন</string>
|
||||
<string name="dialog_existing_file_message">%1$s নামে একটি ফাইল ইতিমধ্যে রয়েছে.</string>
|
||||
<string name="dialog_replace_negative_button_at_least_two_but_not_all_files_exist">বিদ্যমান ফাইলটি এড়িয়ে যান</string>
|
||||
<string name="dialog_replace_positive_button_all_files_exist">সবগুলো প্রতিস্থাপন করুন</string>
|
||||
<string name="dialog_replace_positive_button_some_files_exist">বিদ্যমানটি প্রতিস্থাপন করুন</string>
|
||||
<string name="dialog_replace_positive_button_single_file_exists">প্রতিস্থাপন করুন</string>
|
||||
<string name="dialog_replace_msg_single_file_exists">%1$s নামে একটি ফাইল ইতিমধ্যে রয়েছে। আপনি কি এটা প্রতিস্থাপন করতে চান?</string>
|
||||
<string name="dialog_replace_msg_all_files_exists">সব ফাইলগুলি ইতিমধ্যে রয়েছে। আপনি কি তাদের প্রতিস্থাপন করতে চান?</string>
|
||||
<string name="dialog_lock_vault">লক করুন</string>
|
||||
<string name="dialog_app_is_obscured_info_neutral_button">বন্ধ করুন</string>
|
||||
<string name="dialog_sym_link_back_button">পিছনে</string>
|
||||
<!-- # error reports -->
|
||||
<!-- # misc -->
|
||||
<!-- ## file size helper -->
|
||||
|
Loading…
x
Reference in New Issue
Block a user