diff --git a/changelog/unreleased/5002 b/changelog/unreleased/5002 new file mode 100644 index 00000000000..2c657aa73fc --- /dev/null +++ b/changelog/unreleased/5002 @@ -0,0 +1,8 @@ +Change: Refactor legacy sharing and space members code + +Legacy sharing classes have been renamed with an Ocs prefix, the UI shared between +shares and space members has been consolidated into neutral, reusable components, and +the space members logic has been aligned with the graph shares implementation. + +https://github.com/owncloud/android/issues/4971 +https://github.com/owncloud/android/pull/5002 diff --git a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/sharees/ui/SearchShareesFragmentTest.kt b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/sharees/ui/SearchOcsShareesFragmentTest.kt similarity index 90% rename from owncloudApp/src/androidTest/java/com/owncloud/android/sharing/sharees/ui/SearchShareesFragmentTest.kt rename to owncloudApp/src/androidTest/java/com/owncloud/android/sharing/sharees/ui/SearchOcsShareesFragmentTest.kt index e59dd49ccdc..db6f091d917 100644 --- a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/sharees/ui/SearchShareesFragmentTest.kt +++ b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/sharees/ui/SearchOcsShareesFragmentTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -34,8 +36,8 @@ import com.owncloud.android.domain.sharing.shares.model.OCShare import com.owncloud.android.domain.sharing.shares.model.ShareType import com.owncloud.android.domain.utils.Event import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.sharees.SearchShareesFragment -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.sharees.SearchOcsShareesFragment +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.sharing.shares.ui.TestShareFileActivity import com.owncloud.android.testutil.OC_SHARE import io.mockk.every @@ -49,8 +51,8 @@ import org.koin.core.context.startKoin import org.koin.core.context.stopKoin import org.koin.dsl.module -class SearchShareesFragmentTest { - private val shareViewModel = mockkClass(ShareViewModel::class, relaxed = true) +class SearchOcsShareesFragmentTest { + private val shareViewModel = mockkClass(OcsShareViewModel::class, relaxed = true) private val sharesLiveData = MutableLiveData>>>() @Before @@ -72,7 +74,7 @@ class SearchShareesFragmentTest { } ActivityScenario.launch(TestShareFileActivity::class.java).onActivity { - val searchShareesFragment = SearchShareesFragment() + val searchShareesFragment = SearchOcsShareesFragment() it.startFragment(searchShareesFragment) } } diff --git a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/EditPrivateShareFragmentTest.kt b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/EditPrivateOcsShareFragmentTest.kt similarity index 97% rename from owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/EditPrivateShareFragmentTest.kt rename to owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/EditPrivateOcsShareFragmentTest.kt index 65f823436b2..2e9cac9c8a0 100644 --- a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/EditPrivateShareFragmentTest.kt +++ b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/EditPrivateOcsShareFragmentTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -35,8 +37,8 @@ import com.owncloud.android.R import com.owncloud.android.domain.sharing.shares.model.OCShare import com.owncloud.android.domain.utils.Event import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.sharees.EditPrivateShareFragment -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.sharees.EditPrivateOcsShareFragment +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.testutil.OC_ACCOUNT import com.owncloud.android.testutil.OC_FILE import com.owncloud.android.testutil.OC_FOLDER @@ -54,10 +56,10 @@ import org.koin.core.context.startKoin import org.koin.core.context.stopKoin import org.koin.dsl.module -class EditPrivateShareFragmentTest { +class EditPrivateOcsShareFragmentTest { private val targetContext = InstrumentationRegistry.getInstrumentation().targetContext private val defaultSharedWithDisplayName = "user" - private val shareViewModel = mockk(relaxed = true) + private val shareViewModel = mockk(relaxed = true) private val privateShareAsLiveData = MutableLiveData>>() private lateinit var activityScenario: ActivityScenario @@ -251,7 +253,7 @@ class EditPrivateShareFragmentTest { val sharedFile = if (isFolder) OC_FOLDER else OC_FILE - val editPrivateShareFragment = EditPrivateShareFragment.newInstance( + val editPrivateShareFragment = EditPrivateOcsShareFragment.newInstance( shareToEdit, sharedFile, OC_ACCOUNT diff --git a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/ShareFileFragmentTest.kt b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/OcsShareFileFragmentTest.kt similarity index 96% rename from owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/ShareFileFragmentTest.kt rename to owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/OcsShareFileFragmentTest.kt index b06716e91c4..e99cead8497 100644 --- a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/ShareFileFragmentTest.kt +++ b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/OcsShareFileFragmentTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -37,9 +39,9 @@ import com.owncloud.android.domain.sharing.shares.model.OCShare import com.owncloud.android.domain.sharing.shares.model.ShareType import com.owncloud.android.domain.utils.Event import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.ShareFileFragment +import com.owncloud.android.presentation.sharing.OcsShareFileFragment import com.owncloud.android.presentation.capabilities.CapabilityViewModel -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.testutil.OC_ACCOUNT import com.owncloud.android.testutil.OC_CAPABILITY import com.owncloud.android.testutil.OC_FILE @@ -58,10 +60,10 @@ import org.koin.core.context.startKoin import org.koin.core.context.stopKoin import org.koin.dsl.module -class ShareFileFragmentTest { +class OcsShareFileFragmentTest { private val capabilityViewModel = mockk(relaxed = true) private val capabilitiesLiveData = MutableLiveData>>() - private val shareViewModel = mockk(relaxed = true) + private val shareViewModel = mockk(relaxed = true) private val sharesLiveData = MutableLiveData>>>() @Before @@ -303,7 +305,7 @@ class ShareFileFragmentTest { shares: List = listOf(OC_SHARE), sharesUIResult: UIResult> = UIResult.Success(shares) ) { - val shareFileFragment = ShareFileFragment.newInstance( + val shareFileFragment = OcsShareFileFragment.newInstance( OC_FILE, OC_ACCOUNT ) diff --git a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/ShareFolderFragmentTest.kt b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/OcsShareFolderFragmentTest.kt similarity index 90% rename from owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/ShareFolderFragmentTest.kt rename to owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/OcsShareFolderFragmentTest.kt index 414f52814c2..51666b72b74 100644 --- a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/ShareFolderFragmentTest.kt +++ b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/OcsShareFolderFragmentTest.kt @@ -3,7 +3,9 @@ * * @author David González Verdugo * @author Jesus Recio Rincon - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -32,9 +34,9 @@ import com.owncloud.android.domain.capabilities.model.OCCapability import com.owncloud.android.domain.sharing.shares.model.OCShare import com.owncloud.android.domain.utils.Event import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.ShareFileFragment +import com.owncloud.android.presentation.sharing.OcsShareFileFragment import com.owncloud.android.presentation.capabilities.CapabilityViewModel -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.testutil.OC_ACCOUNT import com.owncloud.android.testutil.OC_CAPABILITY import com.owncloud.android.testutil.OC_FOLDER @@ -50,10 +52,10 @@ import org.koin.core.context.startKoin import org.koin.core.context.stopKoin import org.koin.dsl.module -class ShareFolderFragmentTest { +class OcsShareFolderFragmentTest { private val capabilityViewModel = mockk(relaxed = true) private val capabilitiesLiveData = MutableLiveData>>() - private val shareViewModel = mockk(relaxed = true) + private val shareViewModel = mockk(relaxed = true) private val sharesLiveData = MutableLiveData>>>() @Before @@ -78,7 +80,7 @@ class ShareFolderFragmentTest { ) } - val shareFileFragment = ShareFileFragment.newInstance( + val shareFileFragment = OcsShareFileFragment.newInstance( OC_FOLDER.copy(privateLink = null), OC_ACCOUNT ) diff --git a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicShareCreationDialogFragmentTest.kt b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicOcsShareCreationDialogFragmentTest.kt similarity index 98% rename from owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicShareCreationDialogFragmentTest.kt rename to owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicOcsShareCreationDialogFragmentTest.kt index f2a7957fc86..48698ed7933 100644 --- a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicShareCreationDialogFragmentTest.kt +++ b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicOcsShareCreationDialogFragmentTest.kt @@ -41,9 +41,9 @@ import com.owncloud.android.domain.capabilities.model.CapabilityBooleanType import com.owncloud.android.domain.capabilities.model.OCCapability import com.owncloud.android.domain.utils.Event import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.shares.PublicShareDialogFragment +import com.owncloud.android.presentation.sharing.shares.PublicOcsShareDialogFragment import com.owncloud.android.presentation.capabilities.CapabilityViewModel -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.testutil.OC_ACCOUNT import com.owncloud.android.testutil.OC_CAPABILITY import com.owncloud.android.testutil.OC_FILE @@ -62,10 +62,10 @@ import org.koin.dsl.module import java.text.SimpleDateFormat import java.util.Date -class PublicShareCreationDialogFragmentTest { +class PublicOcsShareCreationDialogFragmentTest { private val capabilityViewModel = mockk(relaxed = true) private val capabilitiesLiveData = MutableLiveData>>() - private val shareViewModel = mockk(relaxed = true) + private val shareViewModel = mockk(relaxed = true) private val publicShareCreationStatus = MutableLiveData>>() @Before @@ -476,7 +476,7 @@ class PublicShareCreationDialogFragmentTest { ) { val file = if (isFolder) OC_FOLDER else OC_FILE - val publicShareDialogFragment = PublicShareDialogFragment.newInstanceToCreate( + val publicShareDialogFragment = PublicOcsShareDialogFragment.newInstanceToCreate( file, OC_ACCOUNT, "DOC_12112018.jpg link" diff --git a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicShareEditionDialogFragmentTest.kt b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicOcsShareEditionDialogFragmentTest.kt similarity index 93% rename from owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicShareEditionDialogFragmentTest.kt rename to owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicOcsShareEditionDialogFragmentTest.kt index 2e20ab38b3e..ac4a4a59399 100644 --- a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicShareEditionDialogFragmentTest.kt +++ b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/PublicOcsShareEditionDialogFragmentTest.kt @@ -37,9 +37,9 @@ import com.owncloud.android.domain.sharing.shares.model.ShareType import com.owncloud.android.domain.utils.Event import com.owncloud.android.lib.resources.shares.RemoteShare import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.shares.PublicShareDialogFragment +import com.owncloud.android.presentation.sharing.shares.PublicOcsShareDialogFragment import com.owncloud.android.presentation.capabilities.CapabilityViewModel -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.testutil.OC_ACCOUNT import com.owncloud.android.testutil.OC_FILE import com.owncloud.android.testutil.OC_SHARE @@ -57,10 +57,10 @@ import java.text.SimpleDateFormat import java.util.GregorianCalendar import java.util.TimeZone -class PublicShareEditionDialogFragmentTest { +class PublicOcsShareEditionDialogFragmentTest { private val capabilityViewModel = mockk(relaxed = true) private val capabilitiesLiveData = MutableLiveData>>() - private val shareViewModel = mockk(relaxed = true) + private val shareViewModel = mockk(relaxed = true) private val expirationDate = 1556575200000 // GMT: Monday, April 29, 2019 10:00:00 PM @@ -85,7 +85,7 @@ class PublicShareEditionDialogFragmentTest { ) } - val publicShareDialogFragment = PublicShareDialogFragment.newInstanceToUpdate( + val publicShareDialogFragment = PublicOcsShareDialogFragment.newInstanceToUpdate( OC_FILE, OC_ACCOUNT, OC_SHARE.copy( diff --git a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/TestShareFileActivity.kt b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/TestShareFileActivity.kt index f4c4ae95864..5e95d59ced0 100644 --- a/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/TestShareFileActivity.kt +++ b/owncloudApp/src/androidTest/java/com/owncloud/android/sharing/shares/ui/TestShareFileActivity.kt @@ -25,13 +25,13 @@ import androidx.fragment.app.commit import com.owncloud.android.R import com.owncloud.android.domain.files.model.OCFile import com.owncloud.android.domain.sharing.shares.model.OCShare -import com.owncloud.android.presentation.sharing.ShareFragmentListener +import com.owncloud.android.presentation.sharing.OcsShareFragmentListener import com.owncloud.android.services.OperationsService import com.owncloud.android.testing.SingleFragmentActivity import com.owncloud.android.ui.fragment.FileFragment.ContainerActivity import com.owncloud.android.ui.helpers.FileOperationsHelper -class TestShareFileActivity : SingleFragmentActivity(), ShareFragmentListener, ContainerActivity { +class TestShareFileActivity : SingleFragmentActivity(), OcsShareFragmentListener, ContainerActivity { fun startFragment(fragment: Fragment) { supportFragmentManager.commit(allowStateLoss = true) { add(R.id.container, fragment, TEST_FRAGMENT_TAG) diff --git a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/UseCaseModule.kt b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/UseCaseModule.kt index bfc43d9ac4a..fbc12fd72a2 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/UseCaseModule.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/UseCaseModule.kt @@ -89,18 +89,18 @@ import com.owncloud.android.domain.members.usecases.RemoveMemberUseCase import com.owncloud.android.domain.members.usecases.SearchMembersUseCase import com.owncloud.android.domain.roles.usecases.GetRolesAsyncUseCase import com.owncloud.android.domain.server.usecases.GetServerInfoAsyncUseCase -import com.owncloud.android.domain.sharing.sharees.GetShareesAsyncUseCase +import com.owncloud.android.domain.sharing.sharees.GetOcsShareesAsyncUseCase import com.owncloud.android.domain.sharing.shares.usecases.AddGraphShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.CreatePrivateShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.CreatePublicShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.DeleteShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.CreatePrivateOcsShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.CreatePublicOcsShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.DeleteOcsShareAsyncUseCase import com.owncloud.android.domain.sharing.shares.usecases.EditGraphShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.EditPrivateShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.EditPublicShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.EditPrivateOcsShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.EditPublicOcsShareAsyncUseCase import com.owncloud.android.domain.sharing.shares.usecases.GetGraphSharesAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.GetShareAsLiveDataUseCase -import com.owncloud.android.domain.sharing.shares.usecases.GetSharesAsLiveDataUseCase -import com.owncloud.android.domain.sharing.shares.usecases.RefreshSharesFromServerAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.GetOcsShareAsLiveDataUseCase +import com.owncloud.android.domain.sharing.shares.usecases.GetOcsSharesAsLiveDataUseCase +import com.owncloud.android.domain.sharing.shares.usecases.RefreshOcsSharesFromServerAsyncUseCase import com.owncloud.android.domain.sharing.shares.usecases.RemoveGraphShareAsyncUseCase import com.owncloud.android.domain.spaces.usecases.CreateSpaceUseCase import com.owncloud.android.domain.spaces.usecases.DisableSpaceUseCase @@ -233,17 +233,17 @@ val useCaseModule = module { // Sharing factoryOf(::AddGraphShareAsyncUseCase) - factoryOf(::CreatePrivateShareAsyncUseCase) - factoryOf(::CreatePublicShareAsyncUseCase) - factoryOf(::DeleteShareAsyncUseCase) + factoryOf(::CreatePrivateOcsShareAsyncUseCase) + factoryOf(::CreatePublicOcsShareAsyncUseCase) + factoryOf(::DeleteOcsShareAsyncUseCase) factoryOf(::EditGraphShareAsyncUseCase) - factoryOf(::EditPrivateShareAsyncUseCase) - factoryOf(::EditPublicShareAsyncUseCase) + factoryOf(::EditPrivateOcsShareAsyncUseCase) + factoryOf(::EditPublicOcsShareAsyncUseCase) factoryOf(::GetGraphSharesAsyncUseCase) - factoryOf(::GetShareAsLiveDataUseCase) - factoryOf(::GetShareesAsyncUseCase) - factoryOf(::GetSharesAsLiveDataUseCase) - factoryOf(::RefreshSharesFromServerAsyncUseCase) + factoryOf(::GetOcsShareAsLiveDataUseCase) + factoryOf(::GetOcsShareesAsyncUseCase) + factoryOf(::GetOcsSharesAsLiveDataUseCase) + factoryOf(::RefreshOcsSharesFromServerAsyncUseCase) factoryOf(::RemoveGraphShareAsyncUseCase) // Spaces diff --git a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/ViewModelModule.kt b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/ViewModelModule.kt index c22b569ea3d..1b8bca8b428 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/ViewModelModule.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/dependecyinjection/ViewModelModule.kt @@ -54,7 +54,7 @@ import com.owncloud.android.presentation.settings.logging.SettingsLogsViewModel import com.owncloud.android.presentation.settings.more.SettingsMoreViewModel import com.owncloud.android.presentation.settings.security.SettingsSecurityViewModel import com.owncloud.android.presentation.sharing.GraphShareViewModel -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.presentation.spaces.SpacesListViewModel import com.owncloud.android.presentation.spaces.links.SpaceLinksViewModel import com.owncloud.android.presentation.spaces.members.SpaceMembersViewModel @@ -95,7 +95,7 @@ val viewModelModule = module { viewModel { (accountName: String) -> CapabilityViewModel(accountName, get(), get(), get(), get()) } viewModel { (action: PasscodeAction) -> PassCodeViewModel(get(), get(), action) } viewModel { (filePath: String, accountName: String) -> - ShareViewModel(filePath, accountName, get(), get(), get(), get(), get(), get(), get(), get(), get(), get()) + OcsShareViewModel(filePath, accountName, get(), get(), get(), get(), get(), get(), get(), get(), get(), get()) } viewModel { (initialFolderToDisplay: OCFile, fileListOption: FileListOption) -> MainFileListViewModel(get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), get(), diff --git a/owncloudApp/src/main/java/com/owncloud/android/extensions/AddMemberFragmentBindingExt.kt b/owncloudApp/src/main/java/com/owncloud/android/extensions/AddMemberFragmentBindingExt.kt index bc469678838..5d3fb909918 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/extensions/AddMemberFragmentBindingExt.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/extensions/AddMemberFragmentBindingExt.kt @@ -25,7 +25,7 @@ import com.owncloud.android.R import com.owncloud.android.databinding.AddMemberFragmentBinding import com.owncloud.android.domain.members.model.OCMember import com.owncloud.android.domain.members.model.OCMemberType -import com.owncloud.android.presentation.spaces.members.SpaceRolesAdapter +import com.owncloud.android.presentation.roles.RolesAdapter fun AddMemberFragmentBinding.showOrHideEmptyView(hasMembers: Boolean, searchMinLength: Int) { membersRecyclerView.isVisible = hasMembers @@ -48,9 +48,9 @@ fun AddMemberFragmentBinding.bindSelectedMember(member: OCMember) { } } -fun AddMemberFragmentBinding.bindRoles(rolesAdapter: SpaceRolesAdapter, selectedRoleId: String?) { +fun AddMemberFragmentBinding.bindRoles(rolesAdapter: RolesAdapter, selectedRoleId: String?) { selectedRoleId?.let { - inviteMemberButton.isEnabled = true + confirmActionButton.isEnabled = true rolesAdapter.setSelectedRole(it) } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SearchMembersAdapter.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/members/SearchMembersAdapter.kt similarity index 98% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SearchMembersAdapter.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/members/SearchMembersAdapter.kt index 7f316e30e3d..990e271cc56 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SearchMembersAdapter.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/members/SearchMembersAdapter.kt @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -package com.owncloud.android.presentation.spaces.members +package com.owncloud.android.presentation.members import android.view.LayoutInflater import android.view.View diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SearchMembersDiffUtil.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/members/SearchMembersDiffUtil.kt similarity index 96% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SearchMembersDiffUtil.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/members/SearchMembersDiffUtil.kt index 074c39c39df..b19f760af08 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SearchMembersDiffUtil.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/members/SearchMembersDiffUtil.kt @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -package com.owncloud.android.presentation.spaces.members +package com.owncloud.android.presentation.members import androidx.recyclerview.widget.DiffUtil import com.owncloud.android.domain.members.model.OCMember diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceRolesAdapter.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/roles/RolesAdapter.kt similarity index 89% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceRolesAdapter.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/roles/RolesAdapter.kt index 5b0a01a1186..55baf132d71 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceRolesAdapter.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/roles/RolesAdapter.kt @@ -18,7 +18,7 @@ * along with this program. If not, see . */ -package com.owncloud.android.presentation.spaces.members +package com.owncloud.android.presentation.roles import android.view.LayoutInflater import android.view.View @@ -30,23 +30,23 @@ import com.owncloud.android.domain.roles.model.OCRole import com.owncloud.android.domain.roles.model.OCRoleType import com.owncloud.android.utils.PreferenceUtils -class SpaceRolesAdapter( +class RolesAdapter( val onRoleSelected: ((OCRole) -> Unit)? = null -): RecyclerView.Adapter() { +): RecyclerView.Adapter() { private var roles: List = emptyList() private var selectedRoleId: String? = null - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SpaceRolesViewHolder { + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RolesViewHolder { val inflater = LayoutInflater.from(parent.context) val view = inflater.inflate(R.layout.role_item, parent, false) view.filterTouchesWhenObscured = PreferenceUtils.shouldDisallowTouchesWithOtherVisibleWindows(parent.context) - return SpaceRolesViewHolder(view) + return RolesViewHolder(view) } - override fun onBindViewHolder(holder: SpaceRolesViewHolder, position: Int) { + override fun onBindViewHolder(holder: RolesViewHolder, position: Int) { val role = roles[position] holder.binding.apply { @@ -91,7 +91,7 @@ class SpaceRolesAdapter( this.selectedRoleId = id } - class SpaceRolesViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { + class RolesViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val binding = RoleItemBinding.bind(itemView) } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/AddGraphShareFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/AddGraphShareFragment.kt index fe147b4f61c..058028bfafe 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/AddGraphShareFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/AddGraphShareFragment.kt @@ -43,8 +43,8 @@ import com.owncloud.android.extensions.openDatePickerDialog import com.owncloud.android.extensions.showErrorInSnackbar import com.owncloud.android.extensions.showOrHideEmptyView import com.owncloud.android.extensions.toOCMember -import com.owncloud.android.presentation.spaces.members.SearchMembersAdapter -import com.owncloud.android.presentation.spaces.members.SpaceRolesAdapter +import com.owncloud.android.presentation.members.SearchMembersAdapter +import com.owncloud.android.presentation.roles.RolesAdapter import com.owncloud.android.utils.DisplayUtils import org.koin.androidx.viewmodel.ext.android.activityViewModel import org.koin.core.parameter.parametersOf @@ -62,7 +62,7 @@ class AddGraphShareFragment : Fragment(), SearchMembersAdapter.SearchMembersAdap } private lateinit var searchMembersAdapter: SearchMembersAdapter - private lateinit var rolesAdapter: SpaceRolesAdapter + private lateinit var rolesAdapter: RolesAdapter private lateinit var recyclerView: RecyclerView private var roles: List = emptyList() @@ -97,8 +97,8 @@ class AddGraphShareFragment : Fragment(), SearchMembersAdapter.SearchMembersAdap adapter = searchMembersAdapter } - rolesAdapter = SpaceRolesAdapter(onRoleSelected = { - binding.inviteMemberButton.isEnabled = true + rolesAdapter = RolesAdapter(onRoleSelected = { + binding.confirmActionButton.isEnabled = true graphShareViewModel.onRoleSelected(it) }) binding.rolesRecyclerView.apply { @@ -207,9 +207,9 @@ class AddGraphShareFragment : Fragment(), SearchMembersAdapter.SearchMembersAdap binding.apply { searchMemberLayout.visibility = View.GONE addMemberLayout.visibility = View.VISIBLE - inviteMemberButton.visibility = View.VISIBLE - inviteMemberButton.text = getString(if (editMode) R.string.share_confirm_public_link_button else R.string.action_share) - inviteMemberButton.contentDescription = + confirmActionButton.visibility = View.VISIBLE + confirmActionButton.text = getString(if (editMode) R.string.share_confirm_public_link_button else R.string.action_share) + confirmActionButton.contentDescription = getString(if (editMode) R.string.content_description_edit_share_button else R.string.content_description_create_share_button) } it.selectedMember?.let { member -> @@ -234,7 +234,7 @@ class AddGraphShareFragment : Fragment(), SearchMembersAdapter.SearchMembersAdap } } - binding.inviteMemberButton.setOnClickListener { + binding.confirmActionButton.setOnClickListener { uiState.selectedMember?.let { selectedMember -> uiState.selectedRole?.let { selectedRole -> if (editMode) { diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/GraphShareViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/GraphShareViewModel.kt index 4b5374a58e6..eeaa423a861 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/GraphShareViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/GraphShareViewModel.kt @@ -226,6 +226,7 @@ class GraphShareViewModel( } fun clearSearch() { + searchJob?.cancel() viewModelScope.launch(coroutineDispatcherProvider.io) { _members.emit(MembersUIState(members = emptyList(), isLoading = false, error = null)) } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareFileFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareFileFragment.kt similarity index 94% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareFileFragment.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareFileFragment.kt index 00a24ea730f..bea6efffa00 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareFileFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareFileFragment.kt @@ -7,8 +7,9 @@ * @author David González Verdugo * @author Christian Schabesberger * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2024 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -46,8 +47,8 @@ import com.owncloud.android.domain.sharing.shares.model.ShareType import com.owncloud.android.extensions.showErrorInSnackbar import com.owncloud.android.presentation.capabilities.CapabilityViewModel import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.sharees.ShareUserListAdapter -import com.owncloud.android.presentation.sharing.shares.SharePublicLinkListAdapter +import com.owncloud.android.presentation.sharing.sharees.OcsShareUserListAdapter +import com.owncloud.android.presentation.sharing.shares.OcsSharePublicLinkListAdapter import com.owncloud.android.utils.DisplayUtils import com.owncloud.android.utils.MimetypeIconUtil import com.owncloud.android.utils.PreferenceUtils @@ -61,17 +62,17 @@ import java.util.Locale * a public link. * * Activities that contain this fragment must implement the - * [ShareFragmentListener] interface + * [OcsShareFragmentListener] interface * to handle interaction events. * - * Use the [ShareFileFragment.newInstance] factory method to + * Use the [OcsShareFileFragment.newInstance] factory method to * create an instance of this fragment. */ /** * Required empty public constructor */ -class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListener, - SharePublicLinkListAdapter.SharePublicLinkAdapterListener { +class OcsShareFileFragment : Fragment(), OcsShareUserListAdapter.OcsShareUserAdapterListener, + OcsSharePublicLinkListAdapter.OcsSharePublicLinkAdapterListener { /** * File to share, received as a parameter in construction time @@ -86,7 +87,7 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe /** * Reference to parent listener */ - private var listener: ShareFragmentListener? = null + private var listener: OcsShareFragmentListener? = null /** * List of private shares bound to the file @@ -96,7 +97,7 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe /** * Adapter to show private shares */ - private var userGroupsAdapter: ShareUserListAdapter? = null + private var userGroupsAdapter: OcsShareUserListAdapter? = null /** * List of public links bound to the file @@ -106,7 +107,7 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe /** * Adapter to show public shares */ - private var publicLinksAdapter: SharePublicLinkListAdapter? = null + private var publicLinksAdapter: OcsSharePublicLinkListAdapter? = null /** * Capabilities of the server @@ -185,7 +186,7 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe ) } - private val shareViewModel: ShareViewModel by viewModel { + private val shareViewModel: OcsShareViewModel by viewModel { parametersOf( file?.remotePath, account?.name @@ -282,7 +283,7 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe override fun onAttach(context: Context) { super.onAttach(context) try { - listener = context as ShareFragmentListener? + listener = context as OcsShareFragmentListener? } catch (e: ClassCastException) { Timber.e(e, "The activity attached doesn't implement OnShareFragmentInteractionListener") throw ClassCastException(activity.toString() + " must implement OnShareFragmentInteractionListener") @@ -422,8 +423,8 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe private fun updateListOfUserGroups() { // Update list of users/groups - // TODO Refactoring: create a new {@link ShareUserListAdapter} instance with every call should not be needed - userGroupsAdapter = ShareUserListAdapter( + // TODO Refactoring: create a new {@link OcsShareUserListAdapter} instance with every call should not be needed + userGroupsAdapter = OcsShareUserListAdapter( requireContext(), R.layout.share_user_item, privateShares, @@ -490,7 +491,7 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe * public share bound to file, if any */ private fun updateListOfPublicLinks() { - publicLinksAdapter = SharePublicLinkListAdapter( + publicLinksAdapter = OcsSharePublicLinkListAdapter( requireContext(), R.layout.share_public_link_item, publicLinks, @@ -579,21 +580,21 @@ class ShareFileFragment : Fragment(), ShareUserListAdapter.ShareUserAdapterListe private const val USED_NUMBER_SECOND = 2 /** - * Public factory method to create new ShareFileFragment instances. + * Public factory method to create new OcsShareFileFragment instances. * * @param fileToShare An [OCFile] to show in the fragment * @param account An ownCloud account - * @return A new instance of fragment ShareFileFragment. + * @return A new instance of fragment OcsShareFileFragment. */ fun newInstance( fileToShare: OCFile, account: Account - ): ShareFileFragment { + ): OcsShareFileFragment { val args = Bundle().apply { putParcelable(ARG_FILE, fileToShare) putParcelable(ARG_ACCOUNT, account) } - return ShareFileFragment().apply { arguments = args } + return OcsShareFileFragment().apply { arguments = args } } fun setListViewHeightBasedOnChildren(listView: ListView) { diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareFragmentListener.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareFragmentListener.kt similarity index 95% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareFragmentListener.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareFragmentListener.kt index ee921df5f10..548dccba253 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareFragmentListener.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareFragmentListener.kt @@ -4,7 +4,9 @@ * @author masensio * @author David A. Velasco * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * * This program is free software: you can redistribute it and/or modify @@ -36,7 +38,7 @@ import com.owncloud.android.domain.sharing.shares.model.OCShare * * See the Android docs [Communicating with fragments](https://developer.android.com/guide/fragments/communicate) for more information. */ -interface ShareFragmentListener { +interface OcsShareFragmentListener { fun copyOrSendPrivateLink(file: OCFile) fun deleteShare(remoteId: String) diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareViewModel.kt similarity index 83% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareViewModel.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareViewModel.kt index 74f0e851d6b..5ef9fb1fa1b 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/OcsShareViewModel.kt @@ -3,8 +3,9 @@ * * @author David González Verdugo * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2024 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -29,14 +30,14 @@ import com.owncloud.android.domain.capabilities.model.OCCapability import com.owncloud.android.domain.capabilities.usecases.GetStoredCapabilitiesUseCase import com.owncloud.android.domain.sharing.shares.model.OCShare import com.owncloud.android.domain.sharing.shares.model.ShareType -import com.owncloud.android.domain.sharing.shares.usecases.CreatePrivateShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.CreatePublicShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.DeleteShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.EditPrivateShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.EditPublicShareAsyncUseCase -import com.owncloud.android.domain.sharing.shares.usecases.GetShareAsLiveDataUseCase -import com.owncloud.android.domain.sharing.shares.usecases.GetSharesAsLiveDataUseCase -import com.owncloud.android.domain.sharing.shares.usecases.RefreshSharesFromServerAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.CreatePrivateOcsShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.CreatePublicOcsShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.DeleteOcsShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.EditPrivateOcsShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.EditPublicOcsShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.GetOcsShareAsLiveDataUseCase +import com.owncloud.android.domain.sharing.shares.usecases.GetOcsSharesAsLiveDataUseCase +import com.owncloud.android.domain.sharing.shares.usecases.RefreshOcsSharesFromServerAsyncUseCase import com.owncloud.android.domain.utils.Event import com.owncloud.android.extensions.ViewModelExt.runUseCaseWithResult import com.owncloud.android.extensions.ViewModelExt.runUseCaseWithResultAndUseCachedData @@ -47,17 +48,17 @@ import kotlinx.coroutines.launch /** * View Model to keep a reference to the share repository and an up-to-date list of a shares */ -class ShareViewModel( +class OcsShareViewModel( private val filePath: String, private val accountName: String, - getSharesAsLiveDataUseCase: GetSharesAsLiveDataUseCase, - private val getShareAsLiveDataUseCase: GetShareAsLiveDataUseCase, - private val refreshSharesFromServerAsyncUseCase: RefreshSharesFromServerAsyncUseCase, - private val createPrivateShareUseCase: CreatePrivateShareAsyncUseCase, - private val editPrivateShareUseCase: EditPrivateShareAsyncUseCase, - private val createPublicShareUseCase: CreatePublicShareAsyncUseCase, - private val editPublicShareUseCase: EditPublicShareAsyncUseCase, - private val deletePublicShareUseCase: DeleteShareAsyncUseCase, + getSharesAsLiveDataUseCase: GetOcsSharesAsLiveDataUseCase, + private val getShareAsLiveDataUseCase: GetOcsShareAsLiveDataUseCase, + private val refreshSharesFromServerAsyncUseCase: RefreshOcsSharesFromServerAsyncUseCase, + private val createPrivateShareUseCase: CreatePrivateOcsShareAsyncUseCase, + private val editPrivateShareUseCase: EditPrivateOcsShareAsyncUseCase, + private val createPublicShareUseCase: CreatePublicOcsShareAsyncUseCase, + private val editPublicShareUseCase: EditPublicOcsShareAsyncUseCase, + private val deletePublicShareUseCase: DeleteOcsShareAsyncUseCase, private val getStoredCapabilitiesUseCase: GetStoredCapabilitiesUseCase, private val coroutineDispatcherProvider: CoroutinesDispatcherProvider ) : ViewModel() { @@ -66,7 +67,7 @@ class ShareViewModel( val shares: LiveData>>> = _shares private var sharesLiveData: LiveData> = getSharesAsLiveDataUseCase( - GetSharesAsLiveDataUseCase.Params(filePath = filePath, accountName = accountName) + GetOcsSharesAsLiveDataUseCase.Params(filePath = filePath, accountName = accountName) ) private var capabilities: OCCapability? = null @@ -112,7 +113,7 @@ class ShareViewModel( cachedData = sharesLiveData.value, liveData = _shares, useCase = refreshSharesFromServerAsyncUseCase, - useCaseParams = RefreshSharesFromServerAsyncUseCase.Params( + useCaseParams = RefreshOcsSharesFromServerAsyncUseCase.Params( filePath = filePath, accountName = accountName ) @@ -125,7 +126,7 @@ class ShareViewModel( showLoading = true, liveData = _shareDeletionStatus, useCase = deletePublicShareUseCase, - useCaseParams = DeleteShareAsyncUseCase.Params( + useCaseParams = DeleteOcsShareAsyncUseCase.Params( remoteId = remoteId, accountName = accountName, ), @@ -149,7 +150,7 @@ class ShareViewModel( showLoading = true, liveData = _privateShareCreationStatus, useCase = createPrivateShareUseCase, - useCaseParams = CreatePrivateShareAsyncUseCase.Params( + useCaseParams = CreatePrivateOcsShareAsyncUseCase.Params( filePath, shareType, shareeName, @@ -164,7 +165,7 @@ class ShareViewModel( remoteId: String ) { val privateShareLiveData = getShareAsLiveDataUseCase( - GetShareAsLiveDataUseCase.Params(remoteId) + GetOcsShareAsLiveDataUseCase.Params(remoteId) ) _privateShare.addSource(privateShareLiveData) { privateShare -> @@ -181,7 +182,7 @@ class ShareViewModel( showLoading = true, liveData = _privateShareEditionStatus, useCase = editPrivateShareUseCase, - useCaseParams = EditPrivateShareAsyncUseCase.Params( + useCaseParams = EditPrivateOcsShareAsyncUseCase.Params( remoteId, permissions, accountName @@ -205,7 +206,7 @@ class ShareViewModel( showLoading = true, liveData = _publicShareCreationStatus, useCase = createPublicShareUseCase, - useCaseParams = CreatePublicShareAsyncUseCase.Params( + useCaseParams = CreatePublicOcsShareAsyncUseCase.Params( filePath, permissions, name, @@ -228,7 +229,7 @@ class ShareViewModel( showLoading = true, liveData = _publicShareEditionStatus, useCase = editPublicShareUseCase, - useCaseParams = EditPublicShareAsyncUseCase.Params( + useCaseParams = EditPublicOcsShareAsyncUseCase.Params( remoteId, name, password, diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/RemoveShareDialogFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/RemoveOcsShareDialogFragment.kt similarity index 92% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/RemoveShareDialogFragment.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/RemoveOcsShareDialogFragment.kt index 8d9eca34633..9885045cc9c 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/RemoveShareDialogFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/RemoveOcsShareDialogFragment.kt @@ -3,7 +3,9 @@ * * @author David A. Velasco * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * * This program is free software: you can redistribute it and/or modify @@ -40,14 +42,14 @@ import com.owncloud.android.ui.dialog.ConfirmationDialogFragment import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener import timber.log.Timber -class RemoveShareDialogFragment : ConfirmationDialogFragment(), ConfirmationDialogFragmentListener { +class RemoveOcsShareDialogFragment : ConfirmationDialogFragment(), ConfirmationDialogFragmentListener { private var targetShare: OCShare? = null private var account: Account? = null /** * Reference to parent listener */ - private var listener: ShareFragmentListener? = null + private var listener: OcsShareFragmentListener? = null override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { val dialog = super.onCreateDialog(savedInstanceState) @@ -66,7 +68,7 @@ class RemoveShareDialogFragment : ConfirmationDialogFragment(), ConfirmationDial override fun onAttach(context: Context) { super.onAttach(context) try { - listener = activity as ShareFragmentListener? + listener = activity as OcsShareFragmentListener? } catch (e: IllegalStateException) { Timber.e(e, "The activity attached doesn't implement OnShareFragmentInteractionListener") throw IllegalStateException(requireActivity().toString() + " must implement OnShareFragmentInteractionListener") @@ -101,8 +103,8 @@ class RemoveShareDialogFragment : ConfirmationDialogFragment(), ConfirmationDial * @param account [Account] which the share belongs to * @return Dialog ready to show. */ - fun newInstance(share: OCShare, account: Account): RemoveShareDialogFragment { - val frag = RemoveShareDialogFragment() + fun newInstance(share: OCShare, account: Account): RemoveOcsShareDialogFragment { + val frag = RemoveOcsShareDialogFragment() val args = Bundle() args.putInt( diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareActivity.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareActivity.kt index fefce88c6ef..8134535c716 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareActivity.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/ShareActivity.kt @@ -50,10 +50,10 @@ import com.owncloud.android.extensions.showErrorInSnackbar import com.owncloud.android.lib.resources.shares.RemoteShare import com.owncloud.android.presentation.capabilities.CapabilityViewModel import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.sharees.EditPrivateShareFragment -import com.owncloud.android.presentation.sharing.sharees.SearchShareesFragment +import com.owncloud.android.presentation.sharing.sharees.EditPrivateOcsShareFragment +import com.owncloud.android.presentation.sharing.sharees.SearchOcsShareesFragment import com.owncloud.android.presentation.sharing.sharees.UsersAndGroupsSearchProvider -import com.owncloud.android.presentation.sharing.shares.PublicShareDialogFragment +import com.owncloud.android.presentation.sharing.shares.PublicOcsShareDialogFragment import com.owncloud.android.ui.activity.FileActivity import com.owncloud.android.extensions.showDialogFragment import com.owncloud.android.utils.DisplayUtils @@ -65,8 +65,8 @@ import timber.log.Timber /** * Activity for sharing files */ -class ShareActivity : FileActivity(), ShareFragmentListener, GraphShareFragment.GraphShareFragmentListener { - private val shareViewModel: ShareViewModel by viewModel { +class ShareActivity : FileActivity(), OcsShareFragmentListener, GraphShareFragment.GraphShareFragmentListener { + private val shareViewModel: OcsShareViewModel by viewModel { parametersOf( file.remotePath, account?.name @@ -107,7 +107,7 @@ class ShareActivity : FileActivity(), ShareFragmentListener, GraphShareFragment. setupToolbar(findViewById(R.id.share_activity_layout)) if (savedInstanceState == null && file != null && account != null) { supportFragmentManager.transaction { - replace(R.id.share_fragment_container, ShareFileFragment.newInstance(file, account!!), TAG_SHARE_FRAGMENT) + replace(R.id.share_fragment_container, OcsShareFileFragment.newInstance(file, account!!), TAG_SHARE_FRAGMENT) } } } @@ -158,7 +158,7 @@ class ShareActivity : FileActivity(), ShareFragmentListener, GraphShareFragment. override fun showSearchUsersAndGroups() { supportFragmentManager.transaction { - val searchFragment = SearchShareesFragment.newInstance(file, account) + val searchFragment = SearchOcsShareesFragment.newInstance(file, account) replace( R.id.share_fragment_container, searchFragment, @@ -274,7 +274,7 @@ class ShareActivity : FileActivity(), ShareFragmentListener, GraphShareFragment. ft.addToBackStack(null) // Create and show the dialog. - val newFragment = EditPrivateShareFragment.newInstance(share, file, account) + val newFragment = EditPrivateOcsShareFragment.newInstance(share, file, account) newFragment.show( ft, TAG_EDIT_SHARE_FRAGMENT @@ -295,7 +295,7 @@ class ShareActivity : FileActivity(), ShareFragmentListener, GraphShareFragment. // dialog, so make our own transaction and take care of that here. // Create and show the dialog - val createPublicShareFragment = PublicShareDialogFragment.newInstanceToCreate( + val createPublicShareFragment = PublicOcsShareDialogFragment.newInstanceToCreate( file, account, defaultLinkName @@ -309,7 +309,7 @@ class ShareActivity : FileActivity(), ShareFragmentListener, GraphShareFragment. override fun showEditPublicShare(share: OCShare) { // Create and show the dialog. - val editPublicShareFragment = PublicShareDialogFragment.newInstanceToUpdate(file, account, share) + val editPublicShareFragment = PublicOcsShareDialogFragment.newInstanceToUpdate(file, account, share) showDialogFragment( editPublicShareFragment, TAG_PUBLIC_SHARE_DIALOG_FRAGMENT @@ -339,7 +339,7 @@ class ShareActivity : FileActivity(), ShareFragmentListener, GraphShareFragment. } override fun showRemoveShare(share: OCShare) { - val removePublicShareFragment = RemoveShareDialogFragment.newInstance(share, account) + val removePublicShareFragment = RemoveOcsShareDialogFragment.newInstance(share, account) showDialogFragment( removePublicShareFragment, TAG_REMOVE_SHARE_DIALOG_FRAGMENT diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/EditPrivateShareFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/EditPrivateOcsShareFragment.kt similarity index 96% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/EditPrivateShareFragment.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/EditPrivateOcsShareFragment.kt index 46b85b95afe..80bcca28fd2 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/EditPrivateShareFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/EditPrivateOcsShareFragment.kt @@ -6,8 +6,9 @@ * @author Christian Schabesberger * @author David González Verdugo * @author Juan Carlos Garrote Gascón + * @author Jorge Aguado Recio * - * Copyright (C) 2024 ownCloud GmbH. + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -45,8 +46,8 @@ import com.owncloud.android.extensions.parseError import com.owncloud.android.lib.resources.shares.RemoteShare import com.owncloud.android.lib.resources.shares.SharePermissionsBuilder import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.ShareFragmentListener -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.OcsShareFragmentListener +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.utils.PreferenceUtils import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.parameter.parametersOf @@ -55,7 +56,7 @@ import timber.log.Timber /** * Required empty public constructor */ -class EditPrivateShareFragment : DialogFragment() { +class EditPrivateOcsShareFragment : DialogFragment() { /** Share to show & edit, received as a parameter in construction time */ private var share: OCShare? = null @@ -69,12 +70,12 @@ class EditPrivateShareFragment : DialogFragment() { /** * Reference to parent listener */ - private var listener: ShareFragmentListener? = null + private var listener: OcsShareFragmentListener? = null /** Listener for changes on privilege checkboxes */ private var onPrivilegeChangeListener: CompoundButton.OnCheckedChangeListener? = null - private val shareViewModel: ShareViewModel by viewModel { + private val shareViewModel: OcsShareViewModel by viewModel { parametersOf( file?.remotePath, account?.name @@ -146,7 +147,7 @@ class EditPrivateShareFragment : DialogFragment() { super.onAttach(context) try { - listener = activity as ShareFragmentListener? + listener = activity as OcsShareFragmentListener? } catch (e: IllegalStateException) { Timber.e(e, "The activity attached doesn't implement OnShareFragmentInteractionListener") throw IllegalStateException(requireActivity().toString() + " must implement OnShareFragmentInteractionListener") @@ -456,21 +457,21 @@ class EditPrivateShareFragment : DialogFragment() { intArrayOf(R.id.canEditCreateCheckBox, R.id.canEditChangeCheckBox, R.id.canEditDeleteCheckBox) /** - * Public factory method to create new EditPrivateShareFragment instances. + * Public factory method to create new EditPrivateOcsShareFragment instances. * * @param shareToEdit An [OCShare] to show and edit in the fragment * @param sharedFile The [OCFile] bound to 'shareToEdit' * @param account The ownCloud account holding 'sharedFile' - * @return A new instance of fragment EditPrivateShareFragment. + * @return A new instance of fragment EditPrivateOcsShareFragment. */ - fun newInstance(shareToEdit: OCShare, sharedFile: OCFile, account: Account): EditPrivateShareFragment { + fun newInstance(shareToEdit: OCShare, sharedFile: OCFile, account: Account): EditPrivateOcsShareFragment { val args = Bundle().apply { putParcelable(ARG_SHARE, shareToEdit) putParcelable(ARG_FILE, sharedFile) putParcelable(ARG_ACCOUNT, account) } - return EditPrivateShareFragment().apply { arguments = args } + return EditPrivateOcsShareFragment().apply { arguments = args } } } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/ShareUserListAdapter.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/OcsShareUserListAdapter.kt similarity index 95% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/ShareUserListAdapter.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/OcsShareUserListAdapter.kt index b732c81bb2f..1b789893d16 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/ShareUserListAdapter.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/OcsShareUserListAdapter.kt @@ -4,7 +4,9 @@ * @author masensio * @author Christian Schabesberger * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -36,10 +38,10 @@ import com.owncloud.android.utils.PreferenceUtils /** * Adapter to show a user/group in Share With List */ -class ShareUserListAdapter( +class OcsShareUserListAdapter( private val mContext: Context, resource: Int, private var shares: List, - private val listener: ShareUserAdapterListener + private val listener: OcsShareUserAdapterListener ) : ArrayAdapter(mContext, resource) { init { @@ -98,7 +100,7 @@ class ShareUserListAdapter( return view } - interface ShareUserAdapterListener { + interface OcsShareUserAdapterListener { fun unshareButtonPressed(share: OCShare) fun editShare(share: OCShare) } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/SearchShareesFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/SearchOcsShareesFragment.kt similarity index 90% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/SearchShareesFragment.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/SearchOcsShareesFragment.kt index 925ff311ec8..59514e00804 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/SearchShareesFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/SearchOcsShareesFragment.kt @@ -6,7 +6,9 @@ * @author Christian Schabesberger * @author David González Verdugo * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * * This program is free software: you can redistribute it and/or modify @@ -46,8 +48,8 @@ import com.owncloud.android.domain.sharing.shares.model.OCShare import com.owncloud.android.domain.sharing.shares.model.ShareType import com.owncloud.android.domain.utils.Event import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.ShareFragmentListener -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.OcsShareFragmentListener +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.utils.PreferenceUtils import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.core.parameter.parametersOf @@ -59,24 +61,24 @@ import timber.log.Timber * A simple [Fragment] subclass. * * Activities that contain this fragment must implement the - * [ShareFragmentListener] interface + * [OcsShareFragmentListener] interface * to handle interaction events. * - * Use the [SearchShareesFragment.newInstance] factory method to + * Use the [SearchOcsShareesFragment.newInstance] factory method to * create an instance of this fragment. */ -class SearchShareesFragment : Fragment(), - ShareUserListAdapter.ShareUserAdapterListener { +class SearchOcsShareesFragment : Fragment(), + OcsShareUserListAdapter.OcsShareUserAdapterListener { // Parameters private var file: OCFile? = null private var account: Account? = null // other members - private var userGroupsAdapter: ShareUserListAdapter? = null - private var listener: ShareFragmentListener? = null + private var userGroupsAdapter: OcsShareUserListAdapter? = null + private var listener: OcsShareFragmentListener? = null - private val shareViewModel: ShareViewModel by viewModel { + private val shareViewModel: OcsShareViewModel by viewModel { parametersOf( file?.remotePath, account?.name @@ -171,7 +173,7 @@ class SearchShareesFragment : Fragment(), private fun updatePrivateShares(privateShares: List) { // Update list of users/groups - userGroupsAdapter = ShareUserListAdapter( + userGroupsAdapter = OcsShareUserListAdapter( requireActivity().applicationContext, R.layout.share_user_item, privateShares, this ) @@ -188,7 +190,7 @@ class SearchShareesFragment : Fragment(), override fun onAttach(context: Context) { super.onAttach(context) try { - listener = activity as ShareFragmentListener? + listener = activity as OcsShareFragmentListener? } catch (e: ClassCastException) { Timber.e(e, "The activity attached doesn't implement OnFragmentInteractionListener") throw ClassCastException(requireActivity().toString() + " must implement OnFragmentInteractionListener") @@ -241,13 +243,13 @@ class SearchShareesFragment : Fragment(), private const val ARG_ACCOUNT = "ACCOUNT" /** - * Public factory method to create new SearchShareesFragment instances. + * Public factory method to create new SearchOcsShareesFragment instances. * * @param fileToShare An [OCFile] to be shared * @param account The ownCloud account containing fileToShare - * @return A new instance of fragment SearchShareesFragment. + * @return A new instance of fragment SearchOcsShareesFragment. */ - fun newInstance(fileToShare: OCFile, account: Account) = SearchShareesFragment().apply { + fun newInstance(fileToShare: OCFile, account: Account) = SearchOcsShareesFragment().apply { arguments = bundleOf( ARG_FILE to fileToShare, ARG_ACCOUNT to account diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/UsersAndGroupsSearchProvider.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/UsersAndGroupsSearchProvider.kt index b14462a3dd1..bbcfb87bae4 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/UsersAndGroupsSearchProvider.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/sharees/UsersAndGroupsSearchProvider.kt @@ -42,7 +42,7 @@ import com.owncloud.android.MainApp import com.owncloud.android.R import com.owncloud.android.presentation.authentication.AccountUtils import com.owncloud.android.domain.capabilities.usecases.GetStoredCapabilitiesUseCase -import com.owncloud.android.domain.sharing.sharees.GetShareesAsyncUseCase +import com.owncloud.android.domain.sharing.sharees.GetOcsShareesAsyncUseCase import com.owncloud.android.domain.sharing.sharees.model.OCSharee import com.owncloud.android.domain.sharing.shares.model.ShareType import com.owncloud.android.extensions.parseError @@ -136,10 +136,10 @@ class UsersAndGroupsSearchProvider : ContentProvider() { val searchMinLength = capabilities?.filesSharingSearchMinLength ?: 3 if (userQuery.length < searchMinLength) { return MatrixCursor(COLUMNS) } - val getShareesAsyncUseCase: GetShareesAsyncUseCase by inject() + val getShareesAsyncUseCase: GetOcsShareesAsyncUseCase by inject() val getShareesResult = getShareesAsyncUseCase( - GetShareesAsyncUseCase.Params( + GetOcsShareesAsyncUseCase.Params( searchString = userQuery, page = REQUESTED_PAGE, perPage = RESULTS_PER_PAGE, diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/SharePublicLinkListAdapter.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/OcsSharePublicLinkListAdapter.kt similarity index 94% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/SharePublicLinkListAdapter.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/OcsSharePublicLinkListAdapter.kt index 904c0c2a8c2..4d6360daa51 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/SharePublicLinkListAdapter.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/OcsSharePublicLinkListAdapter.kt @@ -5,7 +5,9 @@ package com.owncloud.android.presentation.sharing.shares * * @author David González Verdugo * @author Christian Schabesberger - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * * This program is free software: you can redistribute it and/or modify @@ -36,11 +38,11 @@ import com.owncloud.android.utils.PreferenceUtils /** * Adapter to show a list of public links */ -class SharePublicLinkListAdapter( +class OcsSharePublicLinkListAdapter( private val mContext: Context, resource: Int, private var publicLinks: List, - private val listener: SharePublicLinkAdapterListener + private val listener: OcsSharePublicLinkAdapterListener ) : ArrayAdapter(mContext, resource) { private lateinit var binding: SharePublicLinkItemBinding @@ -90,7 +92,7 @@ class SharePublicLinkListAdapter( return binding.root } - interface SharePublicLinkAdapterListener { + interface OcsSharePublicLinkAdapterListener { fun copyOrSendPublicLink(share: OCShare) fun removeShare(share: OCShare) diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/PublicShareDialogFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/PublicOcsShareDialogFragment.kt similarity index 98% rename from owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/PublicShareDialogFragment.kt rename to owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/PublicOcsShareDialogFragment.kt index 3defd0e45ab..f8c6cf9736d 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/PublicShareDialogFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/sharing/shares/PublicOcsShareDialogFragment.kt @@ -64,8 +64,8 @@ import com.owncloud.android.lib.resources.shares.RemoteShare import com.owncloud.android.lib.resources.status.OwnCloudVersion import com.owncloud.android.presentation.capabilities.CapabilityViewModel import com.owncloud.android.presentation.common.UIResult -import com.owncloud.android.presentation.sharing.ShareFragmentListener -import com.owncloud.android.presentation.sharing.ShareViewModel +import com.owncloud.android.presentation.sharing.OcsShareFragmentListener +import com.owncloud.android.presentation.sharing.OcsShareViewModel import com.owncloud.android.presentation.sharing.generatePassword import com.owncloud.android.ui.dialog.ExpirationDatePickerDialogFragment import com.owncloud.android.utils.DateUtils @@ -77,7 +77,7 @@ import java.text.ParseException import java.text.SimpleDateFormat import java.util.Date -class PublicShareDialogFragment : DialogFragment() { +class PublicOcsShareDialogFragment : DialogFragment() { /** * File to share, received as a parameter in construction time @@ -97,7 +97,7 @@ class PublicShareDialogFragment : DialogFragment() { /** * Reference to parent listener */ - private var listener: ShareFragmentListener? = null + private var listener: OcsShareFragmentListener? = null /** * Capabilities of the server @@ -160,7 +160,7 @@ class PublicShareDialogFragment : DialogFragment() { ) } - private val shareViewModel: ShareViewModel by viewModel { + private val shareViewModel: OcsShareViewModel by viewModel { parametersOf( file?.remotePath, account?.name @@ -610,7 +610,7 @@ class PublicShareDialogFragment : DialogFragment() { override fun onAttach(context: Context) { super.onAttach(context) try { - listener = activity as ShareFragmentListener? + listener = activity as OcsShareFragmentListener? } catch (e: IllegalStateException) { Timber.e(e, "The activity attached doesn't implement OnShareFragmentInteractionListener") throw IllegalStateException(activity?.toString() + " must implement OnShareFragmentInteractionListener") @@ -1001,7 +1001,7 @@ class PublicShareDialogFragment : DialogFragment() { private const val SPECIALS_CHARACTERS = "!#$%&'()*+,-./:;<=>?@[\\]^_`{|}~" /** - * Create a new instance of PublicShareDialogFragment, providing fileToShare as an argument. + * Create a new instance of PublicOcsShareDialogFragment, providing fileToShare as an argument. * * Dialog shown this way is intended to CREATE a new public share. * @@ -1009,18 +1009,18 @@ class PublicShareDialogFragment : DialogFragment() { */ fun newInstanceToCreate( fileToShare: OCFile, account: Account, defaultLinkName: String - ): PublicShareDialogFragment { + ): PublicOcsShareDialogFragment { val args = Bundle().apply { putParcelable(ARG_FILE, fileToShare) putParcelable(ARG_ACCOUNT, account) putString(ARG_DEFAULT_LINK_NAME, defaultLinkName) } - return PublicShareDialogFragment().apply { arguments = args } + return PublicOcsShareDialogFragment().apply { arguments = args } } /** - * Update an instance of PublicShareDialogFragment, providing fileToShare, publicShare as arguments. + * Update an instance of PublicOcsShareDialogFragment, providing fileToShare, publicShare as arguments. * * Dialog shown this way is intended to UPDATE an existing public share. * @@ -1028,14 +1028,14 @@ class PublicShareDialogFragment : DialogFragment() { */ fun newInstanceToUpdate( fileToShare: OCFile, account: Account, publicShare: OCShare - ): PublicShareDialogFragment { + ): PublicOcsShareDialogFragment { val args = Bundle().apply { putParcelable(ARG_FILE, fileToShare) putParcelable(ARG_ACCOUNT, account) putParcelable(ARG_SHARE, publicShare) } - return PublicShareDialogFragment().apply { arguments = args } + return PublicOcsShareDialogFragment().apply { arguments = args } } } } diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/AddMemberFragment.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/AddMemberFragment.kt index c4d6e530c55..598a6943e9e 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/AddMemberFragment.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/AddMemberFragment.kt @@ -20,33 +20,33 @@ package com.owncloud.android.presentation.spaces.members -import android.app.DatePickerDialog -import android.icu.util.Calendar import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.owncloud.android.R import com.owncloud.android.databinding.AddMemberFragmentBinding import com.owncloud.android.domain.members.model.OCMember -import com.owncloud.android.domain.members.model.OCMemberType import com.owncloud.android.domain.roles.model.OCRole import com.owncloud.android.domain.spaces.model.OCSpace import com.owncloud.android.domain.sharing.shares.model.MemberPermission +import com.owncloud.android.extensions.bindDatePickerDialog +import com.owncloud.android.extensions.bindRoles +import com.owncloud.android.extensions.bindSelectedMember import com.owncloud.android.extensions.collectLatestLifecycleFlow +import com.owncloud.android.extensions.openDatePickerDialog import com.owncloud.android.extensions.showErrorInSnackbar +import com.owncloud.android.extensions.showOrHideEmptyView import com.owncloud.android.presentation.common.UIResult +import com.owncloud.android.presentation.members.SearchMembersAdapter +import com.owncloud.android.presentation.roles.RolesAdapter import com.owncloud.android.utils.DisplayUtils import org.koin.androidx.viewmodel.ext.android.activityViewModel import org.koin.core.parameter.parametersOf import timber.log.Timber -import java.text.SimpleDateFormat -import java.util.Locale -import java.util.TimeZone class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterListener { private var _binding: AddMemberFragmentBinding? = null @@ -60,7 +60,7 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi } private lateinit var searchMembersAdapter: SearchMembersAdapter - private lateinit var rolesAdapter: SpaceRolesAdapter + private lateinit var rolesAdapter: RolesAdapter private lateinit var recyclerView: RecyclerView private lateinit var roles: List @@ -80,6 +80,10 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) + + editMode = requireArguments().getBoolean(ARG_EDIT_MODE, false) + roles = requireArguments().getParcelableArrayList(ARG_ROLES) ?: arrayListOf() + searchMembersAdapter = SearchMembersAdapter(this) recyclerView = binding.membersRecyclerView recyclerView.apply { @@ -87,8 +91,15 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi adapter = searchMembersAdapter } - editMode = requireArguments().getBoolean(ARG_EDIT_MODE, false) - roles = requireArguments().getParcelableArrayList(ARG_ROLES) ?: arrayListOf() + rolesAdapter = RolesAdapter(onRoleSelected = { + binding.confirmActionButton.isEnabled = true + spaceMembersViewModel.onRoleSelected(it) + }) + binding.rolesRecyclerView.apply { + layoutManager = LinearLayoutManager(requireContext()) + adapter = rolesAdapter + } + rolesAdapter.setRoles(roles) if (editMode) { val selectedMember = requireArguments().getParcelable(ARG_SELECTED_MEMBER) @@ -118,19 +129,6 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi } } - private fun showOrHideEmptyView(hasMembers: Boolean) { - binding.membersRecyclerView.isVisible = hasMembers - binding.emptyDataParent.apply { - val shouldShow = !hasMembers && binding.searchBar.query.length >= searchMinLength - root.isVisible = shouldShow - if (shouldShow) { - listEmptyDatasetIcon.setImageResource(R.drawable.ic_share_generic_white) - listEmptyDatasetTitle.setText(R.string.members_search_failed) - listEmptyDatasetSubTitle.setText(R.string.members_search_empty) - } - } - } - override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) requireActivity().setTitle(if (editMode) R.string.members_edit else R.string.members_add) @@ -151,12 +149,12 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi binding.membersRecyclerView.visibility = View.GONE } else { binding.indeterminateProgressBar.visibility = View.GONE - val listOfMembersFiltered = uiState.members.filter { member -> - !spaceMembers.any { spaceMember -> - spaceMember.id == "u:${member.id}" || spaceMember.id == "g:${member.id}" } + val spaceMemberIds = spaceMembers.mapTo(HashSet()) { it.id } + val listOfMembersFiltered = uiState.members.filterNot { member -> + "u:${member.id}" in spaceMemberIds || "g:${member.id}" in spaceMemberIds } val hasMembers = listOfMembersFiltered.isNotEmpty() - showOrHideEmptyView(hasMembers) + binding.showOrHideEmptyView(hasMembers, searchMinLength) if (hasMembers) searchMembersAdapter.setMembers(listOfMembersFiltered) uiState.error?.let { Timber.e(uiState.error, "Failed to retrieve available users and groups") @@ -170,10 +168,10 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi binding.apply { searchMemberLayout.visibility = View.GONE addMemberLayout.visibility = View.VISIBLE - inviteMemberButton.visibility = View.VISIBLE + confirmActionButton.visibility = View.VISIBLE } it.selectedMember?.let { member -> - bindSelectedMember(member) + binding.bindSelectedMember(member) } it.selectedExpirationDate?.let { expirationDate -> binding.expirationDateLayout.expirationDateValue.apply { @@ -181,19 +179,19 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi text = DisplayUtils.displayDateToHumanReadable(expirationDate) } } - bindRoles(uiState.selectedRole?.id) - bindDatePickerDialog(uiState.selectedExpirationDate) + binding.bindRoles(rolesAdapter, uiState.selectedRole?.id) + bindDatePickerDialog(binding, uiState.selectedExpirationDate, spaceMembersViewModel::onExpirationDateSelected) binding.expirationDateLayout.apply { expirationDateLayout.setOnClickListener { if (uiState.selectedExpirationDate != null) { - openDatePickerDialog(uiState.selectedExpirationDate) + openDatePickerDialog(binding, uiState.selectedExpirationDate, spaceMembersViewModel::onExpirationDateSelected) } else { expirationDateSwitch.isChecked = true } } } - binding.inviteMemberButton.setOnClickListener { + binding.confirmActionButton.setOnClickListener { uiState.selectedMember?.let { selectedMember -> uiState.selectedRole?.let { selectedRole -> if (editMode) { @@ -228,77 +226,6 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi } } - private fun bindSelectedMember(member: OCMember) { - binding.selectedMemberLayout.apply { - memberIcon.setImageResource(if (member.type == OCMemberType.GROUP) R.drawable.ic_group else R.drawable.ic_user) - memberName.text = member.displayName - memberRole.text = member.surname - } - } - - private fun bindRoles(selectedRoleId: String?) { - rolesAdapter = SpaceRolesAdapter(onRoleSelected = { - binding.inviteMemberButton.isEnabled = true - spaceMembersViewModel.onRoleSelected(it) - }) - binding.rolesRecyclerView.apply { - layoutManager = LinearLayoutManager(requireContext()) - adapter = rolesAdapter - } - rolesAdapter.setRoles(roles) - selectedRoleId?.let { - binding.inviteMemberButton.isEnabled = true - rolesAdapter.setSelectedRole(it) - } - } - - private fun bindDatePickerDialog(expirationDate: String?) { - binding.expirationDateLayout.expirationDateSwitch.setOnCheckedChangeListener { _, isChecked -> - if (isChecked) { - openDatePickerDialog(expirationDate) - } else { - binding.expirationDateLayout.expirationDateValue.visibility = View.GONE - spaceMembersViewModel.onExpirationDateSelected(null) - } - } - } - - private fun openDatePickerDialog(expirationDate: String?) { - val calendar = Calendar.getInstance() - val formatter = SimpleDateFormat(DisplayUtils.DATE_FORMAT_ISO, Locale.ROOT).apply { - timeZone = TimeZone.getTimeZone("UTC") - } - - expirationDate?.let { - calendar.time = formatter.parse(it) - } - - DatePickerDialog( - requireContext(), - { _, selectedYear, selectedMonth, selectedDay -> - calendar.set(selectedYear, selectedMonth, selectedDay, 23, 59, 59) - calendar.set(Calendar.MILLISECOND, 999) - val isoExpirationDate = formatter.format(calendar.time) - spaceMembersViewModel.onExpirationDateSelected(isoExpirationDate) - binding.expirationDateLayout.expirationDateValue.apply { - visibility = View.VISIBLE - text = DisplayUtils.displayDateToHumanReadable(isoExpirationDate) - } - }, - calendar.get(Calendar.YEAR), - calendar.get(Calendar.MONTH), - calendar.get(Calendar.DAY_OF_MONTH) - ).apply { - datePicker.minDate = Calendar.getInstance().timeInMillis - show() - setOnCancelListener { - if (expirationDate == null) { - binding.expirationDateLayout.expirationDateSwitch.isChecked = false - } - } - } - } - private fun bindEditMode(member: MemberPermission, roles: List) { selectedMemberId = member.id spaceMembersViewModel.onMemberSelected(member) @@ -310,7 +237,7 @@ class AddMemberFragment: Fragment(), SearchMembersAdapter.SearchMembersAdapterLi spaceMembersViewModel.onExpirationDateSelected(expirationDate) binding.expirationDateLayout.expirationDateSwitch.isChecked = true } - binding.inviteMemberButton.text = getString(R.string.share_confirm_public_link_button) + binding.confirmActionButton.text = getString(R.string.share_confirm_public_link_button) } companion object { diff --git a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceMembersViewModel.kt b/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceMembersViewModel.kt index 978dcf0bb72..f4c42067c4f 100644 --- a/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceMembersViewModel.kt +++ b/owncloudApp/src/main/java/com/owncloud/android/presentation/spaces/members/SpaceMembersViewModel.kt @@ -43,6 +43,7 @@ import com.owncloud.android.extensions.toOCMember import com.owncloud.android.presentation.common.UIResult import com.owncloud.android.providers.CoroutinesDispatcherProvider import kotlinx.coroutines.Job +import kotlinx.coroutines.delay import kotlinx.coroutines.flow.MutableSharedFlow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.SharedFlow @@ -128,6 +129,7 @@ class SpaceMembersViewModel( fun searchMembers(query: String) { searchJob?.cancel() searchJob = viewModelScope.launch(coroutineDispatcherProvider.io) { + delay(SEARCH_DELAY_MS) _members.emit(MembersUIState(members = emptyList(), isLoading = true , error = null)) when (val result = searchMembersUseCase(SearchMembersUseCase.Params(accountName, query))) { is UseCaseResult.Success -> _members.emit(MembersUIState(members = result.data, isLoading = false, error = null)) @@ -137,6 +139,7 @@ class SpaceMembersViewModel( } fun clearSearch() { + searchJob?.cancel() viewModelScope.launch(coroutineDispatcherProvider.io) { _members.emit(MembersUIState(members = emptyList(), isLoading = false , error = null)) } @@ -218,4 +221,8 @@ class SpaceMembersViewModel( val selectedRole: OCRole? = null, val selectedExpirationDate: String? = null ) + + companion object { + private const val SEARCH_DELAY_MS = 500L + } } diff --git a/owncloudApp/src/main/res/layout/add_member_fragment.xml b/owncloudApp/src/main/res/layout/add_member_fragment.xml index cc0d4051291..199302aa598 100644 --- a/owncloudApp/src/main/res/layout/add_member_fragment.xml +++ b/owncloudApp/src/main/res/layout/add_member_fragment.xml @@ -27,7 +27,7 @@ android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintTop_toTopOf="parent" - app:layout_constraintBottom_toTopOf="@id/invite_member_button" + app:layout_constraintBottom_toTopOf="@id/confirm_action_button" app:layout_constraintStart_toStartOf="parent"> + tools:context=".presentation.sharing.sharees.EditPrivateOcsShareFragment"> () { +class RemoveRemoteOcsShareOperation(private val remoteShareId: String) : RemoteOperation() { private fun buildRequestUri(baseUri: Uri) = baseUri.buildUpon() diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteOcsShareOperation.kt similarity index 99% rename from owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt rename to owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteOcsShareOperation.kt index 8bfb082e8b2..f0ab4777675 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteShareOperation.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/UpdateRemoteOcsShareOperation.kt @@ -60,7 +60,7 @@ import java.util.Locale * @author David González Verdugo * @author Fernando Sanz Velasco */ -class UpdateRemoteShareOperation +class UpdateRemoteOcsShareOperation /** * Constructor. No update is initialized by default, need to be applied with setters below. */ diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareService.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareService.kt index 1df26b10af4..06d9259e9f6 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareService.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareService.kt @@ -29,15 +29,15 @@ package com.owncloud.android.lib.resources.shares.services.implementation import com.owncloud.android.lib.common.OwnCloudClient import com.owncloud.android.lib.common.operations.RemoteOperationResult import com.owncloud.android.lib.resources.shares.AddRemoteGraphShareOperation -import com.owncloud.android.lib.resources.shares.CreateRemoteShareOperation +import com.owncloud.android.lib.resources.shares.CreateRemoteOcsShareOperation import com.owncloud.android.lib.resources.shares.EditRemoteGraphShareOperation import com.owncloud.android.lib.resources.shares.GetRemoteGraphSharesForFileOperation -import com.owncloud.android.lib.resources.shares.GetRemoteSharesForFileOperation +import com.owncloud.android.lib.resources.shares.GetRemoteOcsSharesForFileOperation import com.owncloud.android.lib.resources.shares.RemoveRemoteGraphShareOperation -import com.owncloud.android.lib.resources.shares.RemoveRemoteShareOperation +import com.owncloud.android.lib.resources.shares.RemoveRemoteOcsShareOperation import com.owncloud.android.lib.resources.shares.ShareResponse import com.owncloud.android.lib.resources.shares.ShareType -import com.owncloud.android.lib.resources.shares.UpdateRemoteShareOperation +import com.owncloud.android.lib.resources.shares.UpdateRemoteOcsShareOperation import com.owncloud.android.lib.resources.shares.services.ShareService import com.owncloud.android.lib.resources.spaces.responses.PermissionsResponse @@ -46,7 +46,7 @@ class OCShareService(override val client: OwnCloudClient) : ShareService { remoteFilePath: String, reshares: Boolean, subfiles: Boolean - ): RemoteOperationResult = GetRemoteSharesForFileOperation( + ): RemoteOperationResult = GetRemoteOcsSharesForFileOperation( remoteFilePath, reshares, subfiles @@ -90,7 +90,7 @@ class OCShareService(override val client: OwnCloudClient) : ShareService { password: String, expirationDate: Long, ): RemoteOperationResult = - CreateRemoteShareOperation( + CreateRemoteOcsShareOperation( remoteFilePath, shareType, shareWith, @@ -108,7 +108,7 @@ class OCShareService(override val client: OwnCloudClient) : ShareService { expirationDate: Long, permissions: Int, ): RemoteOperationResult = - UpdateRemoteShareOperation( + UpdateRemoteOcsShareOperation( remoteId ).apply { this.name = name @@ -118,7 +118,7 @@ class OCShareService(override val client: OwnCloudClient) : ShareService { }.execute(client) override fun deleteShare(remoteId: String): RemoteOperationResult = - RemoveRemoteShareOperation( + RemoveRemoteOcsShareOperation( remoteId ).execute(client) } diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareeService.kt b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareeService.kt index 513de69395e..0fca49b8c1b 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareeService.kt +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/resources/shares/services/implementation/OCShareeService.kt @@ -27,7 +27,7 @@ package com.owncloud.android.lib.resources.shares.services.implementation import com.owncloud.android.lib.common.OwnCloudClient import com.owncloud.android.lib.common.operations.RemoteOperationResult -import com.owncloud.android.lib.resources.shares.GetRemoteShareesOperation +import com.owncloud.android.lib.resources.shares.GetRemoteOcsShareesOperation import com.owncloud.android.lib.resources.shares.responses.ShareeOcsResponse import com.owncloud.android.lib.resources.shares.services.ShareeService @@ -38,7 +38,7 @@ class OCShareeService(override val client: OwnCloudClient) : page: Int, perPage: Int ): RemoteOperationResult = - GetRemoteShareesOperation( + GetRemoteOcsShareesOperation( searchString, page, perPage diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/sharees/GetShareesAsyncUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/sharees/GetOcsShareesAsyncUseCase.kt similarity index 87% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/sharees/GetShareesAsyncUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/sharees/GetOcsShareesAsyncUseCase.kt index 75ee7da3e88..d51c4ef2590 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/sharees/GetShareesAsyncUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/sharees/GetOcsShareesAsyncUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -22,9 +24,9 @@ package com.owncloud.android.domain.sharing.sharees import com.owncloud.android.domain.BaseUseCaseWithResult import com.owncloud.android.domain.sharing.sharees.model.OCSharee -class GetShareesAsyncUseCase( +class GetOcsShareesAsyncUseCase( private val shareeRepository: ShareeRepository -) : BaseUseCaseWithResult, GetShareesAsyncUseCase.Params>() { +) : BaseUseCaseWithResult, GetOcsShareesAsyncUseCase.Params>() { override fun run(params: Params): List = shareeRepository.getSharees( searchString = params.searchString, diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePrivateShareAsyncUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePrivateOcsShareAsyncUseCase.kt similarity index 90% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePrivateShareAsyncUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePrivateOcsShareAsyncUseCase.kt index 4ef9d0edd7c..9f7544d4123 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePrivateShareAsyncUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePrivateOcsShareAsyncUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -23,9 +25,9 @@ import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.BaseUseCaseWithResult import com.owncloud.android.domain.sharing.shares.model.ShareType -class CreatePrivateShareAsyncUseCase( +class CreatePrivateOcsShareAsyncUseCase( private val shareRepository: ShareRepository -) : BaseUseCaseWithResult() { +) : BaseUseCaseWithResult() { override fun run(params: Params) { require( diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePublicShareAsyncUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePublicOcsShareAsyncUseCase.kt similarity index 88% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePublicShareAsyncUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePublicOcsShareAsyncUseCase.kt index 297c179c1f4..7e2b4c459cf 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePublicShareAsyncUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/CreatePublicOcsShareAsyncUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -22,9 +24,9 @@ package com.owncloud.android.domain.sharing.shares.usecases import com.owncloud.android.domain.BaseUseCaseWithResult import com.owncloud.android.domain.sharing.shares.ShareRepository -class CreatePublicShareAsyncUseCase( +class CreatePublicOcsShareAsyncUseCase( private val shareRepository: ShareRepository -) : BaseUseCaseWithResult() { +) : BaseUseCaseWithResult() { override fun run(params: Params) = shareRepository.insertPublicShare( diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/DeleteShareAsyncUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/DeleteOcsShareAsyncUseCase.kt similarity index 86% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/DeleteShareAsyncUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/DeleteOcsShareAsyncUseCase.kt index 495e2eb91ba..5ec76d20e6c 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/DeleteShareAsyncUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/DeleteOcsShareAsyncUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -22,9 +24,9 @@ package com.owncloud.android.domain.sharing.shares.usecases import com.owncloud.android.domain.BaseUseCaseWithResult import com.owncloud.android.domain.sharing.shares.ShareRepository -class DeleteShareAsyncUseCase( +class DeleteOcsShareAsyncUseCase( private val shareRepository: ShareRepository -) : BaseUseCaseWithResult() { +) : BaseUseCaseWithResult() { override fun run(params: Params) = shareRepository.deleteShare( remoteId = params.remoteId, diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPrivateShareAsyncUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPrivateOcsShareAsyncUseCase.kt similarity index 86% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPrivateShareAsyncUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPrivateOcsShareAsyncUseCase.kt index 18c9607bda8..8bd07a087ce 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPrivateShareAsyncUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPrivateOcsShareAsyncUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -22,9 +24,9 @@ package com.owncloud.android.domain.sharing.shares.usecases import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.BaseUseCaseWithResult -class EditPrivateShareAsyncUseCase( +class EditPrivateOcsShareAsyncUseCase( private val shareRepository: ShareRepository -) : BaseUseCaseWithResult() { +) : BaseUseCaseWithResult() { override fun run(params: Params) = shareRepository.updatePrivateShare( diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPublicShareAsyncUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPublicOcsShareAsyncUseCase.kt similarity index 89% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPublicShareAsyncUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPublicOcsShareAsyncUseCase.kt index 472a68550fc..261c8ebb8e4 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPublicShareAsyncUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/EditPublicOcsShareAsyncUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -22,9 +24,9 @@ package com.owncloud.android.domain.sharing.shares.usecases import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.BaseUseCaseWithResult -class EditPublicShareAsyncUseCase( +class EditPublicOcsShareAsyncUseCase( private val shareRepository: ShareRepository -) : BaseUseCaseWithResult() { +) : BaseUseCaseWithResult() { override fun run(params: Params) { shareRepository.updatePublicShare( diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetShareAsLiveDataUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetOcsShareAsLiveDataUseCase.kt similarity index 86% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetShareAsLiveDataUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetOcsShareAsLiveDataUseCase.kt index 4e00055c7f5..dd76d57c656 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetShareAsLiveDataUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetOcsShareAsLiveDataUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -24,9 +26,9 @@ import com.owncloud.android.domain.BaseUseCase import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.sharing.shares.model.OCShare -class GetShareAsLiveDataUseCase( +class GetOcsShareAsLiveDataUseCase( private val shareRepository: ShareRepository -) : BaseUseCase, GetShareAsLiveDataUseCase.Params>() { +) : BaseUseCase, GetOcsShareAsLiveDataUseCase.Params>() { override fun run(params: Params): LiveData = shareRepository.getShareAsLiveData( params.remoteId diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetSharesAsLiveDataUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetOcsSharesAsLiveDataUseCase.kt similarity index 86% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetSharesAsLiveDataUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetOcsSharesAsLiveDataUseCase.kt index 768935dcf60..e47eb152b46 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetSharesAsLiveDataUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/GetOcsSharesAsLiveDataUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -24,9 +26,9 @@ import com.owncloud.android.domain.BaseUseCase import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.sharing.shares.model.OCShare -class GetSharesAsLiveDataUseCase( +class GetOcsSharesAsLiveDataUseCase( private val shareRepository: ShareRepository -) : BaseUseCase>, GetSharesAsLiveDataUseCase.Params>() { +) : BaseUseCase>, GetOcsSharesAsLiveDataUseCase.Params>() { override fun run(params: Params): LiveData> = shareRepository.getSharesAsLiveData( params.filePath, diff --git a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/RefreshSharesFromServerAsyncUseCase.kt b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/RefreshOcsSharesFromServerAsyncUseCase.kt similarity index 85% rename from owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/RefreshSharesFromServerAsyncUseCase.kt rename to owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/RefreshOcsSharesFromServerAsyncUseCase.kt index a5ab006eb9d..635c58e61d0 100644 --- a/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/RefreshSharesFromServerAsyncUseCase.kt +++ b/owncloudDomain/src/main/java/com/owncloud/android/domain/sharing/shares/usecases/RefreshOcsSharesFromServerAsyncUseCase.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -22,9 +24,9 @@ package com.owncloud.android.domain.sharing.shares.usecases import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.BaseUseCaseWithResult -class RefreshSharesFromServerAsyncUseCase( +class RefreshOcsSharesFromServerAsyncUseCase( private val shareRepository: ShareRepository -) : BaseUseCaseWithResult() { +) : BaseUseCaseWithResult() { override fun run(params: Params) = shareRepository.refreshSharesFromNetwork( diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/sharees/usecases/GetShareesAsyncUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/sharees/usecases/GetOcsShareesAsyncUseCaseTest.kt similarity index 84% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/sharees/usecases/GetShareesAsyncUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/sharees/usecases/GetOcsShareesAsyncUseCaseTest.kt index 71987b5c334..4a74049812c 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/sharees/usecases/GetShareesAsyncUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/sharees/usecases/GetOcsShareesAsyncUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author David González Verdugo - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -20,7 +22,7 @@ package com.owncloud.android.domain.sharees.usecases import com.owncloud.android.domain.exceptions.NoConnectionWithServerException -import com.owncloud.android.domain.sharing.sharees.GetShareesAsyncUseCase +import com.owncloud.android.domain.sharing.sharees.GetOcsShareesAsyncUseCase import com.owncloud.android.domain.sharing.sharees.ShareeRepository import com.owncloud.android.testutil.OC_ACCOUNT_NAME import io.mockk.every @@ -29,11 +31,11 @@ import io.mockk.verify import org.junit.Assert.assertTrue import org.junit.Test -class GetShareesAsyncUseCaseTest { +class GetOcsShareesAsyncUseCaseTest { private val repository: ShareeRepository = spyk() - private val useCase = GetShareesAsyncUseCase(repository) - private val useCaseParams = GetShareesAsyncUseCase.Params("user", 1, 5, OC_ACCOUNT_NAME) + private val useCase = GetOcsShareesAsyncUseCase(repository) + private val useCaseParams = GetOcsShareesAsyncUseCase.Params("user", 1, 5, OC_ACCOUNT_NAME) @Test fun `get sharees from server - ok`() { diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePrivateShareAsyncUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePrivateOcsShareAsyncUseCaseTest.kt similarity index 89% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePrivateShareAsyncUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePrivateOcsShareAsyncUseCaseTest.kt index e916fcd1d4c..c82bfe9beb3 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePrivateShareAsyncUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePrivateOcsShareAsyncUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -21,7 +23,7 @@ package com.owncloud.android.domain.shares.usecases import com.owncloud.android.domain.exceptions.UnauthorizedException import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.sharing.shares.model.ShareType -import com.owncloud.android.domain.sharing.shares.usecases.CreatePrivateShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.CreatePrivateOcsShareAsyncUseCase import io.mockk.every import io.mockk.spyk import io.mockk.verify @@ -29,11 +31,11 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test -class CreatePrivateShareAsyncUseCaseTest { +class CreatePrivateOcsShareAsyncUseCaseTest { private val repository: ShareRepository = spyk() - private val useCase = CreatePrivateShareAsyncUseCase(repository) - private val useCaseParams = CreatePrivateShareAsyncUseCase.Params("", ShareType.USER, "", 1, "") + private val useCase = CreatePrivateOcsShareAsyncUseCase(repository) + private val useCaseParams = CreatePrivateOcsShareAsyncUseCase.Params("", ShareType.USER, "", 1, "") @Test fun `create private share - ok`() { diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePublicShareAsyncUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePublicOcsShareAsyncUseCaseTest.kt similarity index 88% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePublicShareAsyncUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePublicOcsShareAsyncUseCaseTest.kt index e507f9f1505..7c3ebd0e626 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePublicShareAsyncUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/CreatePublicOcsShareAsyncUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -21,7 +23,7 @@ package com.owncloud.android.domain.shares.usecases import com.owncloud.android.domain.exceptions.UnauthorizedException import com.owncloud.android.domain.sharing.shares.ShareRepository -import com.owncloud.android.domain.sharing.shares.usecases.CreatePublicShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.CreatePublicOcsShareAsyncUseCase import io.mockk.every import io.mockk.spyk import io.mockk.verify @@ -29,11 +31,11 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test -class CreatePublicShareAsyncUseCaseTest { +class CreatePublicOcsShareAsyncUseCaseTest { private val repository: ShareRepository = spyk() - private val useCase = CreatePublicShareAsyncUseCase(repository) - private val useCaseParams = CreatePublicShareAsyncUseCase.Params("", 1, "", "", 100, "") + private val useCase = CreatePublicOcsShareAsyncUseCase(repository) + private val useCaseParams = CreatePublicOcsShareAsyncUseCase.Params("", 1, "", "", 100, "") @Test fun `create public share - ok`() { diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/DeleteShareAsyncUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/DeleteOcsShareAsyncUseCaseTest.kt similarity index 86% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/DeleteShareAsyncUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/DeleteOcsShareAsyncUseCaseTest.kt index 7a4cfe00b34..484caa0b32a 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/DeleteShareAsyncUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/DeleteOcsShareAsyncUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -21,7 +23,7 @@ package com.owncloud.android.domain.shares.usecases import com.owncloud.android.domain.exceptions.UnauthorizedException import com.owncloud.android.domain.sharing.shares.ShareRepository -import com.owncloud.android.domain.sharing.shares.usecases.DeleteShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.DeleteOcsShareAsyncUseCase import com.owncloud.android.testutil.OC_SHARE import io.mockk.every import io.mockk.spyk @@ -30,11 +32,11 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test -class DeleteShareAsyncUseCaseTest { +class DeleteOcsShareAsyncUseCaseTest { private val repository: ShareRepository = spyk() - private val useCase = DeleteShareAsyncUseCase(repository) - private val useCaseParams = DeleteShareAsyncUseCase.Params(OC_SHARE.remoteId, OC_SHARE.accountOwner) + private val useCase = DeleteOcsShareAsyncUseCase(repository) + private val useCaseParams = DeleteOcsShareAsyncUseCase.Params(OC_SHARE.remoteId, OC_SHARE.accountOwner) @Test fun `delete share - ok`() { diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPrivateShareAsyncUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPrivateOcsShareAsyncUseCaseTest.kt similarity index 87% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPrivateShareAsyncUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPrivateOcsShareAsyncUseCaseTest.kt index 368c7a6dbeb..18912e2439b 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPrivateShareAsyncUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPrivateOcsShareAsyncUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -20,7 +22,7 @@ package com.owncloud.android.domain.shares.usecases import com.owncloud.android.domain.exceptions.UnauthorizedException import com.owncloud.android.domain.sharing.shares.ShareRepository -import com.owncloud.android.domain.sharing.shares.usecases.EditPrivateShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.EditPrivateOcsShareAsyncUseCase import com.owncloud.android.testutil.OC_SHARE import io.mockk.every import io.mockk.spyk @@ -29,12 +31,12 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test -class EditPrivateShareAsyncUseCaseTest { +class EditPrivateOcsShareAsyncUseCaseTest { private val repository: ShareRepository = spyk() - private val useCase = EditPrivateShareAsyncUseCase(repository) + private val useCase = EditPrivateOcsShareAsyncUseCase(repository) private val useCaseParams = - EditPrivateShareAsyncUseCase.Params(OC_SHARE.remoteId, OC_SHARE.permissions, OC_SHARE.accountOwner) + EditPrivateOcsShareAsyncUseCase.Params(OC_SHARE.remoteId, OC_SHARE.permissions, OC_SHARE.accountOwner) @Test fun `edit private share - ok`() { diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPublicShareAsyncUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPublicOcsShareAsyncUseCaseTest.kt similarity index 90% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPublicShareAsyncUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPublicOcsShareAsyncUseCaseTest.kt index 23438a4d4ec..476f7072eed 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPublicShareAsyncUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/EditPublicOcsShareAsyncUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -21,7 +23,7 @@ package com.owncloud.android.domain.shares.usecases import com.owncloud.android.domain.exceptions.UnauthorizedException import com.owncloud.android.domain.sharing.shares.ShareRepository -import com.owncloud.android.domain.sharing.shares.usecases.EditPublicShareAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.EditPublicOcsShareAsyncUseCase import com.owncloud.android.testutil.OC_SHARE import io.mockk.every import io.mockk.spyk @@ -30,10 +32,10 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test -class EditPublicShareAsyncUseCaseTest { +class EditPublicOcsShareAsyncUseCaseTest { private val repository: ShareRepository = spyk() - private val useCase = EditPublicShareAsyncUseCase(repository) - private val useCaseParams = EditPublicShareAsyncUseCase.Params( + private val useCase = EditPublicOcsShareAsyncUseCase(repository) + private val useCaseParams = EditPublicOcsShareAsyncUseCase.Params( OC_SHARE.remoteId, "", "", diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetShareAsLiveDataUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetOcsShareAsLiveDataUseCaseTest.kt similarity index 85% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetShareAsLiveDataUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetOcsShareAsLiveDataUseCaseTest.kt index b722561a07d..1b733649449 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetShareAsLiveDataUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetOcsShareAsLiveDataUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -23,7 +25,7 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import androidx.lifecycle.MutableLiveData import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.sharing.shares.model.OCShare -import com.owncloud.android.domain.sharing.shares.usecases.GetShareAsLiveDataUseCase +import com.owncloud.android.domain.sharing.shares.usecases.GetOcsShareAsLiveDataUseCase import com.owncloud.android.testutil.OC_SHARE import io.mockk.every import io.mockk.spyk @@ -32,15 +34,15 @@ import org.junit.Assert.assertEquals import org.junit.Rule import org.junit.Test -class GetShareAsLiveDataUseCaseTest { +class GetOcsShareAsLiveDataUseCaseTest { @Rule @JvmField var instantTaskExecutorRule = InstantTaskExecutorRule() private val repository: ShareRepository = spyk() - private val useCase = GetShareAsLiveDataUseCase(repository) - private val useCaseParams = GetShareAsLiveDataUseCase.Params(OC_SHARE.remoteId) + private val useCase = GetOcsShareAsLiveDataUseCase(repository) + private val useCaseParams = GetOcsShareAsLiveDataUseCase.Params(OC_SHARE.remoteId) @Test fun `get share as livedata - ok`() { diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetSharesAsLiveDataUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetOcsSharesAsLiveDataUseCaseTest.kt similarity index 86% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetSharesAsLiveDataUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetOcsSharesAsLiveDataUseCaseTest.kt index 3baba2edf94..e7089eda16c 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetSharesAsLiveDataUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/GetOcsSharesAsLiveDataUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -23,7 +25,7 @@ import androidx.arch.core.executor.testing.InstantTaskExecutorRule import androidx.lifecycle.MutableLiveData import com.owncloud.android.domain.sharing.shares.ShareRepository import com.owncloud.android.domain.sharing.shares.model.OCShare -import com.owncloud.android.domain.sharing.shares.usecases.GetSharesAsLiveDataUseCase +import com.owncloud.android.domain.sharing.shares.usecases.GetOcsSharesAsLiveDataUseCase import com.owncloud.android.testutil.OC_SHARE import io.mockk.every import io.mockk.spyk @@ -32,15 +34,15 @@ import org.junit.Assert.assertEquals import org.junit.Rule import org.junit.Test -class GetSharesAsLiveDataUseCaseTest { +class GetOcsSharesAsLiveDataUseCaseTest { @Rule @JvmField var instantTaskExecutorRule = InstantTaskExecutorRule() private val repository: ShareRepository = spyk() - private val useCase = GetSharesAsLiveDataUseCase(repository) - private val useCaseParams = GetSharesAsLiveDataUseCase.Params("", "") + private val useCase = GetOcsSharesAsLiveDataUseCase(repository) + private val useCaseParams = GetOcsSharesAsLiveDataUseCase.Params("", "") @Test fun `get shares as livedata - ok`() { diff --git a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/RefreshSharesFromServerAsyncUseCaseTest.kt b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/RefreshOcsSharesFromServerAsyncUseCaseTest.kt similarity index 85% rename from owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/RefreshSharesFromServerAsyncUseCaseTest.kt rename to owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/RefreshOcsSharesFromServerAsyncUseCaseTest.kt index f265aadc640..6e99d775017 100644 --- a/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/RefreshSharesFromServerAsyncUseCaseTest.kt +++ b/owncloudDomain/src/test/java/com/owncloud/android/domain/shares/usecases/RefreshOcsSharesFromServerAsyncUseCaseTest.kt @@ -2,7 +2,9 @@ * ownCloud Android client application * * @author Abel García de Prada - * Copyright (C) 2020 ownCloud GmbH. + * @author Jorge Aguado Recio + * + * Copyright (C) 2026 ownCloud GmbH. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2, @@ -21,7 +23,7 @@ package com.owncloud.android.domain.shares.usecases import com.owncloud.android.domain.exceptions.UnauthorizedException import com.owncloud.android.domain.sharing.shares.ShareRepository -import com.owncloud.android.domain.sharing.shares.usecases.RefreshSharesFromServerAsyncUseCase +import com.owncloud.android.domain.sharing.shares.usecases.RefreshOcsSharesFromServerAsyncUseCase import io.mockk.every import io.mockk.spyk import io.mockk.verify @@ -29,11 +31,11 @@ import org.junit.Assert.assertEquals import org.junit.Assert.assertTrue import org.junit.Test -class RefreshSharesFromServerAsyncUseCaseTest { +class RefreshOcsSharesFromServerAsyncUseCaseTest { private val shareRepository: ShareRepository = spyk() - private val useCase = RefreshSharesFromServerAsyncUseCase((shareRepository)) - private val useCaseParams = RefreshSharesFromServerAsyncUseCase.Params("", "") + private val useCase = RefreshOcsSharesFromServerAsyncUseCase((shareRepository)) + private val useCaseParams = RefreshOcsSharesFromServerAsyncUseCase.Params("", "") @Test fun `refresh shares from server - ok`() {