Bläddra i källkod

open app internal preview on uploaded item click

Signed-off-by: Jonas Mayer <jonas.a.mayer@gmx.net>
Jonas Mayer 1 år sedan
förälder
incheckning
65f11e5d8c

+ 11 - 0
app/src/main/java/com/owncloud/android/ui/activity/UploadListActivity.java

@@ -347,6 +347,17 @@ public class UploadListActivity extends FileActivity {
         }
     }
 
+    /**
+     * Switches to FileDisplayActivity and shows file (eg. image preview).
+     */
+    public void openFile(String remotePath) {
+        Intent intent = new Intent(this, FileDisplayActivity.class);
+        intent.setAction(Intent.ACTION_VIEW);
+        intent.putExtra(FileDisplayActivity.KEY_FILE_PATH, remotePath);
+        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
+        startActivity(intent);
+    }
+
     /**
      * Once the file upload has changed its status -> update uploads list view
      */

+ 25 - 6
app/src/main/java/com/owncloud/android/ui/adapter/UploadListAdapter.java

@@ -62,6 +62,7 @@ import com.owncloud.android.lib.common.utils.Log_OC;
 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.UploadListActivity;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.MimeTypeUtil;
 import com.owncloud.android.utils.theme.ViewThemeUtils;
@@ -346,12 +347,15 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
                 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();
@@ -381,12 +385,15 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
                     );
                 }
             });
-        } 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
@@ -738,7 +745,10 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
         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);
@@ -747,6 +757,15 @@ public class UploadListAdapter extends SectionedRecyclerViewAdapter<SectionedVie
         }
     }
 
+    /**
+     * Open remote file.
+     */
+    private void onUploadedItemClick(OCUpload file) {
+        if (parentActivity instanceof UploadListActivity uploadListActivity) {
+            uploadListActivity.openFile(file.getRemotePath());
+        }
+    }
+
 
     /**
      * Open file with app associates with its MIME type. If MIME type unknown, show list with all apps.