diff --git a/src/main/java/com/owncloud/android/operations/UpdateShareViaLinkOperation.java b/src/main/java/com/owncloud/android/operations/UpdateShareViaLinkOperation.java index 2edf68d103b8..0656d5e295a7 100644 --- a/src/main/java/com/owncloud/android/operations/UpdateShareViaLinkOperation.java +++ b/src/main/java/com/owncloud/android/operations/UpdateShareViaLinkOperation.java @@ -43,7 +43,8 @@ public class UpdateShareViaLinkOperation extends SyncOperation { @Getter private String path; @Getter @Setter private String password; /** Enable upload permissions to update in Share resource. */ - @Setter private Boolean publicUpload; + @Setter private Boolean publicUploadOnFolder; + @Setter private Boolean publicUploadOnFile; @Setter private Boolean hideFileDownload; @Setter private long expirationDateInMillis; @@ -69,7 +70,8 @@ protected RemoteOperationResult run(OwnCloudClient client) { UpdateRemoteShareOperation updateOp = new UpdateRemoteShareOperation(publicShare.getRemoteId()); updateOp.setPassword(password); updateOp.setExpirationDate(expirationDateInMillis); - updateOp.setPublicUpload(publicUpload); + updateOp.setPublicUploadOnFolder(publicUploadOnFolder); + updateOp.setPublicUploadOnFile(publicUploadOnFile); updateOp.setHideFileDownload(hideFileDownload); RemoteOperationResult result = updateOp.execute(client); diff --git a/src/main/java/com/owncloud/android/services/OperationsService.java b/src/main/java/com/owncloud/android/services/OperationsService.java index dcaf56af8345..fbfdd3d863e7 100644 --- a/src/main/java/com/owncloud/android/services/OperationsService.java +++ b/src/main/java/com/owncloud/android/services/OperationsService.java @@ -581,8 +581,13 @@ private Pair newOperation(Intent operationIntent) { updateLinkOperation.setHideFileDownload(hideFileDownload); if (operationIntent.hasExtra(EXTRA_SHARE_PUBLIC_UPLOAD)) { - updateLinkOperation.setPublicUpload( + if (remotePath.endsWith("/")) { + updateLinkOperation.setPublicUploadOnFolder( operationIntent.getBooleanExtra(EXTRA_SHARE_PUBLIC_UPLOAD, false)); + } else { + updateLinkOperation.setPublicUploadOnFile( + operationIntent.getBooleanExtra(EXTRA_SHARE_PUBLIC_UPLOAD, false)); + } } operation = updateLinkOperation; } else if (shareId > 0) { diff --git a/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java b/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java index 38a0dba2e386..e5e25fe30cb4 100644 --- a/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java +++ b/src/main/java/com/owncloud/android/ui/fragment/FileDetailSharingFragment.java @@ -37,17 +37,7 @@ import android.widget.LinearLayout; import android.widget.PopupMenu; import android.widget.TextView; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; -import androidx.appcompat.widget.AppCompatCheckBox; -import androidx.appcompat.widget.SearchView; -import androidx.fragment.app.Fragment; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; -import butterknife.BindView; -import butterknife.ButterKnife; -import butterknife.OnClick; -import butterknife.Unbinder; + import com.google.android.material.snackbar.Snackbar; import com.owncloud.android.R; import com.owncloud.android.authentication.AccountUtils; @@ -74,6 +64,18 @@ import java.util.List; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; +import androidx.appcompat.widget.AppCompatCheckBox; +import androidx.appcompat.widget.SearchView; +import androidx.fragment.app.Fragment; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; +import butterknife.BindView; +import butterknife.ButterKnife; +import butterknife.OnClick; +import butterknife.Unbinder; + public class FileDetailSharingFragment extends Fragment implements UserListAdapter.ShareeListAdapterListener, DisplayUtils.AvatarGenerationListener { @@ -246,11 +248,7 @@ public void setShareByLinkInfo(boolean isShareByLink) { private void setLinkDetailVisible(boolean visible) { if (visible) { - if (file.isFolder()) { shareByLinkAllowEditing.setVisibility(View.VISIBLE); - } else { - shareByLinkAllowEditing.setVisibility(View.INVISIBLE); - } overflowMenuShareLink.setVisibility(View.VISIBLE); } else { shareByLinkAllowEditing.setVisibility(View.INVISIBLE); diff --git a/src/main/res/layout/file_details_sharing_fragment.xml b/src/main/res/layout/file_details_sharing_fragment.xml index bc633c6f68a9..a69ef1e0d62a 100644 --- a/src/main/res/layout/file_details_sharing_fragment.xml +++ b/src/main/res/layout/file_details_sharing_fragment.xml @@ -109,7 +109,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_vertical" - android:text="@string/share_via_link_section_title"/> + android:text="@string/share_via_link_section_title" /> + android:src="@drawable/ic_content_copy" /> + android:textSize="16sp" />