Merge pull request #7992 from nextcloud/fixSharing

Fix wrong sharing behavior.
This commit is contained in:
Tobias Kaminsky 2021-02-24 14:18:36 +01:00 committed by GitHub
commit ecbf815f23
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 29 additions and 31 deletions

View File

@ -294,6 +294,10 @@ public abstract class FileActivity extends DrawerActivity
* @return Main {@link OCFile} handled by the activity.
*/
public OCFile getFile() {
FileDetailSharingFragment fragment = getShareFileFragment();
if (fragment != null) {
return fragment.getFile();
}
return mFile;
}
@ -763,18 +767,10 @@ public abstract class FileActivity extends DrawerActivity
sharingFragment.onUpdateShareInformation(result, getFile());
}
} else if (sharingFragment != null && sharingFragment.getView() != null) {
String errorResponse;
if (result.getData() != null && result.getData().size() > 0) {
errorResponse = result.getData().get(0).toString();
} else {
errorResponse = "";
}
if (!TextUtils.isEmpty(errorResponse)) {
snackbar = Snackbar.make(sharingFragment.getView(), errorResponse, Snackbar.LENGTH_LONG);
} else {
if (TextUtils.isEmpty(result.getMessage())) {
snackbar = Snackbar.make(sharingFragment.getView(), defaultError, Snackbar.LENGTH_LONG);
} else {
snackbar = Snackbar.make(sharingFragment.getView(), result.getMessage(), Snackbar.LENGTH_LONG);
}
ThemeSnackbarUtils.colorSnackbar(this, snackbar);

View File

@ -1149,6 +1149,17 @@ public class FileDisplayActivity extends FileActivity
// Instead of onPostCreate, starting the loading in onResume for children fragments
Fragment leftFragment = getLeftFragment();
// Listen for sync messages
if (!(leftFragment instanceof OCFileListFragment) || !((OCFileListFragment) leftFragment).isSearchFragment()) {
IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_END);
syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED);
syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED);
syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED);
mSyncBroadcastReceiver = new SyncBroadcastReceiver();
localBroadcastManager.registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
}
if (!(leftFragment instanceof OCFileListFragment)) {
return;
}
@ -1175,17 +1186,6 @@ public class FileDisplayActivity extends FileActivity
updateActionBarTitleAndHomeButton(startFile);
}
// Listen for sync messages
if (!ocFileListFragment.isSearchFragment()) {
IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_END);
syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED);
syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED);
syncIntentFilter.addAction(RefreshFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED);
mSyncBroadcastReceiver = new SyncBroadcastReceiver();
localBroadcastManager.registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
}
// Listen for upload messages
IntentFilter uploadIntentFilter = new IntentFilter(FileUploader.getUploadFinishMessage());
mUploadFinishReceiver = new UploadFinishReceiver();

View File

@ -716,4 +716,8 @@ public class FileDetailSharingFragment extends Fragment implements ShareeListAda
SearchView searchView = getView().findViewById(R.id.searchView);
searchView.setQuery(query, true);
}
public OCFile getFile() {
return file;
}
}

View File

@ -244,24 +244,22 @@ public final class ErrorMessageAdapter {
} else if (result.getCode() == ResultCode.FORBIDDEN) {
return String.format(res.getString(R.string.forbidden_permissions),
res.getString(R.string.forbidden_permissions_copy));
res.getString(R.string.forbidden_permissions_copy));
}
return null;
}
private static String getMessageForCreateShareOperations(RemoteOperationResult result, Resources res) {
if (result.getData() != null && result.getData().size() > 0) {
return (String) result.getData().get(0); // share API sends its own error messages
} else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
private static @Nullable
String getMessageForCreateShareOperations(RemoteOperationResult result, Resources res) {
if (!TextUtils.isEmpty(result.getMessage())) {
return result.getMessage(); // share API sends its own error messages
} else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
return res.getString(R.string.share_link_file_no_exist);
} else if (result.getCode() == ResultCode.SHARE_FORBIDDEN) {
// Error --> No permissions
return String.format(res.getString(R.string.forbidden_permissions),
res.getString(R.string.share_link_forbidden_permissions));
res.getString(R.string.share_link_forbidden_permissions));
}
return null;
}