Эх сурвалжийг харах

Checking File Error failed uploads

masensio 9 жил өмнө
parent
commit
29cb1277c3

+ 1 - 0
res/values/strings.xml

@@ -125,6 +125,7 @@
     <string name="uploads_view_upload_status_failed_retry">Upload will be retried shortly</string>
     <string name="uploads_view_upload_status_failed_credentials_error">Credentials error</string>
     <string name="uploads_view_upload_status_failed_folder_error">Folder error</string>
+    <string name="uploads_view_upload_status_failed_file_error">File error</string>
     <string name="downloader_download_in_progress_ticker">Downloading &#8230;</string>
     <string name="downloader_download_in_progress_content">%1$d%% Downloading %2$s</string>
     <string name="downloader_download_succeeded_ticker">Download succeeded</string>

+ 8 - 4
src/com/owncloud/android/db/UploadResult.java

@@ -22,6 +22,8 @@ package com.owncloud.android.db;
 
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 
+import java.io.FileNotFoundException;
+
 public enum UploadResult {
     UPLOADED(0),
     NETWORK_CONNECTION(1),
@@ -68,8 +70,6 @@ public enum UploadResult {
 
     public static UploadResult fromOperationResult(RemoteOperationResult result){
         switch (result.getCode()){
-            case UNKNOWN_ERROR:
-                return UNKNOWN;
             case OK:
                 return UPLOADED;
             case NO_NETWORK_CONNECTION:
@@ -84,12 +84,16 @@ public enum UploadResult {
                 return FOLDER_ERROR;
             case CONFLICT:
                 return CONFLICT_ERROR;
-//            case FILE_NOT_FOUND:
-//                return FILE_ERROR;
+            case LOCAL_STORAGE_NOT_COPIED:
+                return FILE_ERROR;
 //            case UNAUTHORIZED:
 //                return PRIVILEDGES_ERROR;
             case CANCELLED:
                 return CANCELLED;
+            case UNKNOWN_ERROR:
+                if (result.getException() instanceof java.io.FileNotFoundException)
+                    return FILE_ERROR;
+                return UNKNOWN;
         }
         return null;
     }

+ 33 - 25
src/com/owncloud/android/ui/adapter/ExpandableUploadListAdapter.java

@@ -209,31 +209,39 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
                     break;
                 case UPLOAD_FAILED_GIVE_UP:
                     if (upload.getLastResult() != null) {
-                        if (upload.getLastResult() == UploadResult.CREDENTIAL_ERROR) {
-                            status = mParentActivity.getString(
-                                    R.string.uploads_view_upload_status_failed_credentials_error);
-
-                            view.setOnClickListener(new OnClickListener() {
-                                @Override
-                                public void onClick(View v) {
-                                    // let the user update credentials with one click
-                                    Intent updateAccountCredentials = new Intent(mParentActivity,
-                                            AuthenticatorActivity.class);
-                                    updateAccountCredentials.putExtra(
-                                            AuthenticatorActivity.EXTRA_ACCOUNT, upload.getAccount(mParentActivity));
-                                    updateAccountCredentials.putExtra(
-                                            AuthenticatorActivity.EXTRA_ACTION,
-                                            AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN);
-                                    updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
-                                    updateAccountCredentials.addFlags(Intent.FLAG_FROM_BACKGROUND);
-                                    mParentActivity.startActivity(updateAccountCredentials);
-                                }
-                            });
-                        } else  if (upload.getLastResult() == UploadResult.FOLDER_ERROR) {
-                            status = mParentActivity.getString(
-                                    R.string.uploads_view_upload_status_failed_folder_error);
-                        } else {
-                            status = "Upload failed: " + upload.getLastResult().toString();
+                        switch (upload.getLastResult()) {
+                            case CREDENTIAL_ERROR:
+                                status = mParentActivity.getString(
+                                        R.string.uploads_view_upload_status_failed_credentials_error);
+
+                                view.setOnClickListener(new OnClickListener() {
+                                    @Override
+                                    public void onClick(View v) {
+                                        // let the user update credentials with one click
+                                        Intent updateAccountCredentials = new Intent(mParentActivity,
+                                                AuthenticatorActivity.class);
+                                        updateAccountCredentials.putExtra(
+                                                AuthenticatorActivity.EXTRA_ACCOUNT, upload.getAccount(mParentActivity));
+                                        updateAccountCredentials.putExtra(
+                                                AuthenticatorActivity.EXTRA_ACTION,
+                                                AuthenticatorActivity.ACTION_UPDATE_EXPIRED_TOKEN);
+                                        updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
+                                        updateAccountCredentials.addFlags(Intent.FLAG_FROM_BACKGROUND);
+                                        mParentActivity.startActivity(updateAccountCredentials);
+                                    }
+                                });
+                                break;
+                            case FOLDER_ERROR:
+                                status = mParentActivity.getString(
+                                        R.string.uploads_view_upload_status_failed_folder_error);
+                                break;
+                            case FILE_ERROR:
+                                status = mParentActivity.getString(
+                                        R.string.uploads_view_upload_status_failed_file_error);
+                                break;
+                            default:
+                                status = "Upload failed: " + upload.getLastResult().toString();
+                                break;
                         }
                     } else {
                         status = "Upload failed.";