Skip to content

Commit

Permalink
Merge pull request nextcloud#12142 from nextcloud/847-upload-view-cli…
Browse files Browse the repository at this point in the history
…cking-on-an-pendinguploaded-item-should-do-something

Open app internal preview for files in upload section
  • Loading branch information
tobiasKaminsky authored Nov 16, 2023
2 parents 07e6c6d + 05c269c commit 574cfae
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 13 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2507,8 +2507,7 @@ private void openFile(User user, String fileId) {
setUser(user);

if (fileId == null) {
dismissLoadingDialog();
DisplayUtils.showSnackMessage(this, getString(R.string.error_retrieving_file));
onFileRequestError(null);
return;
}

Expand All @@ -2529,8 +2528,7 @@ private void openFileByPath(User user, String filepath) {
setUser(user);

if (filepath == null) {
dismissLoadingDialog();
DisplayUtils.showSnackMessage(this, getString(R.string.error_retrieving_file));
onFileRequestError(null);
return;
}

Expand All @@ -2544,8 +2542,7 @@ private void openFileByPath(User user, String filepath) {
try {
client = clientFactory.create(user);
} catch (ClientFactory.CreationException e) {
dismissLoadingDialog();
DisplayUtils.showSnackMessage(this, getString(R.string.error_retrieving_file));
onFileRequestError(null);
return;
}

Expand All @@ -2554,9 +2551,17 @@ private void openFileByPath(User user, String filepath) {
client,
storageManager,
user);
asyncRunner.postQuickTask(getRemoteFileTask, this::onFileRequestResult, null);
asyncRunner.postQuickTask(getRemoteFileTask, this::onFileRequestResult, this::onFileRequestError);
}

private Unit onFileRequestError(Throwable throwable) {
dismissLoadingDialog();
DisplayUtils.showSnackMessage(this, getString(R.string.error_retrieving_file));
Log_OC.e(TAG, "Requesting file from remote failed!", throwable);
return null;
}


private Unit onFileRequestResult(GetRemoteFileTask.Result result) {
dismissLoadingDialog();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,8 @@
import com.owncloud.android.operations.RefreshFolderOperation;
import com.owncloud.android.ui.activity.ConflictsResolveActivity;
import com.owncloud.android.ui.activity.FileActivity;
import com.owncloud.android.ui.activity.FileDisplayActivity;
import com.owncloud.android.ui.preview.PreviewImageFragment;
import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.MimeTypeUtil;
import com.owncloud.android.utils.theme.ViewThemeUtils;
Expand Down Expand Up @@ -346,12 +348,15 @@ public void onBindViewHolder(SectionedViewHolder holder, int section, int relati
itemViewHolder.binding.uploadRightButton.setOnClickListener(v -> removeUpload(item));
}
itemViewHolder.binding.uploadRightButton.setVisibility(View.VISIBLE);
} else { // UploadStatus.UPLOAD_SUCCESS
} else { // UploadStatus.UPLOAD_SUCCEEDED
itemViewHolder.binding.uploadRightButton.setVisibility(View.INVISIBLE);
}

itemViewHolder.binding.uploadListItemLayout.setOnClickListener(null);

// Set icon or thumbnail
itemViewHolder.binding.thumbnail.setImageResource(R.drawable.file);

// click on item
if (item.getUploadStatus() == UploadStatus.UPLOAD_FAILED) {
final UploadResult uploadResult = item.getLastResult();
Expand Down Expand Up @@ -381,12 +386,15 @@ public void onBindViewHolder(SectionedViewHolder holder, int section, int relati
);
}
});
} else {
itemViewHolder.binding.uploadListItemLayout.setOnClickListener(v -> onUploadItemClick(item));
} else if (item.getUploadStatus() == UploadStatus.UPLOAD_SUCCEEDED){
itemViewHolder.binding.uploadListItemLayout.setOnClickListener(v -> onUploadedItemClick(item));
}

// Set icon or thumbnail
itemViewHolder.binding.thumbnail.setImageResource(R.drawable.file);

// click on thumbnail to open locally
if (item.getUploadStatus() != UploadStatus.UPLOAD_SUCCEEDED){
itemViewHolder.binding.thumbnail.setOnClickListener(v -> onUploadingItemClick(item));
}

/*
* Cancellation needs do be checked and done before changing the drawable in fileIcon, or
Expand Down Expand Up @@ -738,7 +746,10 @@ public final void loadUploadItemsFromDb() {
notifyDataSetChanged();
}

private void onUploadItemClick(OCUpload file) {
/**
* Open local file.
*/
private void onUploadingItemClick(OCUpload file) {
File f = new File(file.getLocalPath());
if (!f.exists()) {
DisplayUtils.showSnackMessage(parentActivity, R.string.local_file_not_found_message);
Expand All @@ -747,6 +758,30 @@ private void onUploadItemClick(OCUpload file) {
}
}

/**
* Open remote file.
*/
private void onUploadedItemClick(OCUpload upload) {
final OCFile file = parentActivity.getStorageManager().getFileByEncryptedRemotePath(upload.getRemotePath());
if (file == null){
DisplayUtils.showSnackMessage(parentActivity, R.string.error_retrieving_file);
Log_OC.i(TAG, "Could not find uploaded file on remote.");
return;
}

if (PreviewImageFragment.canBePreviewed(file)){
//show image preview and stay in uploads tab
Intent intent = FileDisplayActivity.openFileIntent(parentActivity, parentActivity.getUser().get(), file);
parentActivity.startActivity(intent);
}else{
Intent intent = new Intent(parentActivity, FileDisplayActivity.class);
intent.setAction(Intent.ACTION_VIEW);
intent.putExtra(FileDisplayActivity.KEY_FILE_PATH, upload.getRemotePath());
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
parentActivity.startActivity(intent);
}
}


/**
* Open file with app associates with its MIME type. If MIME type unknown, show list with all apps.
Expand Down

0 comments on commit 574cfae

Please sign in to comment.