Browse Source

Review appereance of Uploads View

masensio 9 years ago
parent
commit
9c57aafab5

+ 40 - 44
res/layout/upload_list_item.xml

@@ -3,10 +3,10 @@
     android:id="@+id/ListItemLayout"
     android:layout_width="match_parent"
     android:orientation="horizontal"
-    android:layout_height="56dp">
+    android:layout_height="72dp">
 
     <FrameLayout
-        android:layout_width="56dp"
+        android:layout_width="72dp"
         android:layout_height="match_parent"
         android:focusable="false"
         android:focusableInTouchMode="false">
@@ -25,6 +25,7 @@
         android:layout_height="match_parent"
         android:layout_weight="1"
         android:gravity="center_vertical"
+        android:layout_gravity="center_vertical"
         android:orientation="vertical" >
 
         <TextView
@@ -34,37 +35,39 @@
             android:layout_gravity="center_vertical"
             android:ellipsize="middle"
             android:singleLine="true"
-            android:textColor="#303030"
-            android:text="TextView"
+            android:textColor="@color/textColor"
+            android:text="@string/placeholder_filename"
             android:textSize="16dip" />
 
-        
+
         <LinearLayout
             android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:weightSum="1">
-
+            android:layout_height="wrap_content">
             <TextView
-                android:id="@+id/upload_local_path"
+                android:id="@+id/upload_file_size"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:layout_weight=".5"
+                android:gravity="left"
                 android:textColor="@color/list_item_lastmod_and_filesize_text"
                 android:ellipsize="middle"
                 android:singleLine="true"
-                android:text="TextView"
+                android:text="@string/placeholder_filesize"
                 android:textSize="12dip"/>
-
             <TextView
-                android:id="@+id/upload_file_size"
+                android:id="@+id/upload_date"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:gravity="right"
                 android:textColor="@color/list_item_lastmod_and_filesize_text"
-                android:ellipsize="middle"
-                android:singleLine="true"
-                android:layout_weight=".5"
-                android:text="TextView"
+                android:layout_marginStart="4dp"
+                android:layout_marginEnd="4dp"
+                android:text="@string/placeholder_timestamp"
+                android:textSize="12dip"/>
+            <TextView
+                android:id="@+id/upload_status"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:textColor="@color/list_item_lastmod_and_filesize_text"
+                android:text="@string/uploads_view_upload_status_succeeded"
                 android:textSize="12dip"/>
 
         </LinearLayout>
@@ -74,34 +77,26 @@
             style="?android:attr/progressBarStyleHorizontal"
             android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:visibility="gone"
-             />
-        
-        <LinearLayout
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:weightSum="1">
-
-            <TextView
-                android:id="@+id/upload_status"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:layout_weight=".5"
-                android:textColor="@color/list_item_lastmod_and_filesize_text"
-                android:text="TextView"
-                android:textSize="12dip"/>
+            android:visibility="gone"/>
 
-            <TextView
-                android:id="@+id/upload_date"
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:gravity="right"
-                android:textColor="@color/list_item_lastmod_and_filesize_text"
-                android:layout_weight=".5"
-                android:text="TextView"
-                android:textSize="12dip"/>
+        <TextView
+            android:id="@+id/upload_account"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/list_item_lastmod_and_filesize_text"
+            android:singleLine="true"
+            android:text="@string/auth_username"
+            android:textSize="12dip"/>
 
-        </LinearLayout>
+        <TextView
+            android:id="@+id/upload_local_path"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:textColor="@color/list_item_lastmod_and_filesize_text"
+            android:ellipsize="middle"
+            android:singleLine="true"
+            android:text="@string/instant_upload_path"
+            android:textSize="12dip"/>
 
     </LinearLayout>
 
@@ -111,6 +106,7 @@
         android:layout_height="match_parent"
         android:focusable="false"
         android:focusableInTouchMode="false"
+        android:layout_gravity="center_vertical"
         android:paddingLeft="8dp"
      >
 

+ 11 - 2
res/values/strings.xml

@@ -118,6 +118,9 @@
     <string name="uploader_upload_failed_ticker">Upload failed</string>
     <string name="uploader_upload_failed_content_single">Upload of %1$s could not be completed</string>
     <string name="uploader_upload_failed_credentials_error">Upload failed, you need to relogin</string>
+    <string name="uploads_view_group_current_uploads">Current</string>
+    <string name="uploads_view_group_failed_uploads">Failed Uploads</string>
+    <string name="uploads_view_group_finished_uploads">Uploaded</string>
     <string name="uploads_view_upload_status_succeeded">Completed</string>
     <string name="uploads_view_upload_status_cancelled">Cancelled</string>
     <string name="uploads_view_upload_status_paused">Paused</string>
@@ -126,8 +129,14 @@
     <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="uploads_view_upload_status_failed_priviledges_error">Priviledges error</string>
-    <string name="uploads_view_upload_status_failed"> Upload failed</string>
+    <string name="uploads_view_upload_status_failed_permission_error">Permission error</string>
+    <string name="uploads_view_upload_status_failed">Upload failed</string>
+    <string name="uploads_view_later_reason_waiting_for">Waiting for </string>
+    <string name="uploads_view_later_reason_add_wifi_reason"> and wifi connectivity</string>
+    <string name="uploads_view_later_reason_waiting_for_wifi">Waiting for wifi connectivity</string>
+    <string name="uploads_view_later_reason_add_charging_reason"> and charging</string>
+    <string name="uploads_view_later_reason_waiting_for_charging">Waiting for charging</string>
+    <string name="uploads_view_later_waiting_to_upload">Waiting to upload</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>

+ 7 - 6
src/com/owncloud/android/files/services/FileUploadService.java

@@ -1897,20 +1897,21 @@ public class FileUploadService extends Service implements OnDatatransferProgress
         StringBuilder reason = new StringBuilder();
         Date now = new Date();
         if (now.getTime() < OCUpload.getUploadTimestamp()) {
-            reason.append("Waiting for " + DisplayUtils.unixTimeToHumanReadable(OCUpload.getUploadTimestamp()));
+            reason.append(context.getString(R.string.uploads_view_later_reason_waiting_for) +
+                    DisplayUtils.unixTimeToHumanReadable(OCUpload.getUploadTimestamp()));
         }
         if (OCUpload.isUseWifiOnly() && !UploadUtils.isConnectedViaWiFi(context)) {
             if (reason.length() > 0) {
-                reason.append(" and wifi connectivity");
+                reason.append(context.getString(R.string.uploads_view_later_reason_add_wifi_reason));
             } else {
-                reason.append("Waiting for wifi connectivity");
+                reason.append(context.getString(R.string.uploads_view_later_reason_waiting_for_wifi));
             }
         }
         if (OCUpload.isWhileChargingOnly() && !UploadUtils.isCharging(context)) {
             if (reason.length() > 0) {
-                reason.append(" and charging");
+                reason.append(context.getString(R.string.uploads_view_later_reason_add_charging_reason));
             } else {
-                reason.append("Waiting for charging");
+                reason.append(context.getString(R.string.uploads_view_later_reason_waiting_for_charging));
             }
         }
         reason.append(".");
@@ -1918,7 +1919,7 @@ public class FileUploadService extends Service implements OnDatatransferProgress
             return reason.toString();
         }
         if (OCUpload.getUploadStatus() == UploadStatus.UPLOAD_LATER) {
-            return "Upload is pending and will start shortly.";
+            return context.getString(R.string.uploads_view_later_waiting_to_upload);
         }
         return null;
     }

+ 44 - 23
src/com/owncloud/android/ui/adapter/ExpandableUploadListAdapter.java

@@ -105,7 +105,7 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
         mParentActivity = parentActivity;
         mUploadsStorageManager = new UploadsStorageManager(mParentActivity.getContentResolver());
         mUploadGroups = new UploadGroup[3];
-        mUploadGroups[0] = new UploadGroup("Current Uploads") {
+        mUploadGroups[0] = new UploadGroup(mParentActivity.getString(R.string.uploads_view_group_current_uploads)) {
             @Override
             public void refresh() {
                 items = mUploadsStorageManager.getCurrentAndPendingUploads();
@@ -116,7 +116,7 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
                 return R.drawable.upload_in_progress;
             }
         };
-        mUploadGroups[1] = new UploadGroup("Failed Uploads"){
+        mUploadGroups[1] = new UploadGroup(mParentActivity.getString(R.string.uploads_view_group_failed_uploads)){
             @Override
             public void refresh() {
                 items = mUploadsStorageManager.getFailedUploads();
@@ -128,7 +128,7 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
             }
 
         };
-        mUploadGroups[2] = new UploadGroup("Finished Uploads"){
+        mUploadGroups[2] = new UploadGroup(mParentActivity.getString(R.string.uploads_view_group_finished_uploads)){
             @Override
             public void refresh() {
                 items = mUploadsStorageManager.getFinishedUploads();
@@ -181,17 +181,37 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
             String fileName = uploadOCFile.getFileName();
             fileTextView.setText(fileName);
             
-            TextView localPath = (TextView) view.findViewById(R.id.upload_local_path);
-            String path = uploadOCFile.getStoragePath();
-            Log_OC.d(TAG, "PATH: "  + path);
+            TextView pathTextView = (TextView) view.findViewById(R.id.upload_local_path);
+            String path = uploadOCFile.getRemotePath();
             path = (path == null || path.isEmpty()) ? "" : path.substring(0, path.length() - fileName.length() - 1);
-            localPath.setText("Path: " + path);
+            pathTextView.setText(mParentActivity.getString(R.string.app_name) + path);
 
-            TextView fileSize = (TextView) view.findViewById(R.id.upload_file_size);
-            fileSize.setText(DisplayUtils.bytesToHumanReadable(uploadOCFile.getFileLength()));
+            TextView fileSizeTextView = (TextView) view.findViewById(R.id.upload_file_size);
+            fileSizeTextView.setText(DisplayUtils.bytesToHumanReadable(uploadOCFile.getFileLength()) + ", ");
 
-            TextView statusView = (TextView) view.findViewById(R.id.upload_status);
+            TextView uploadDateTextView = (TextView) view.findViewById(R.id.upload_date);
+            CharSequence dateString = DisplayUtils.getRelativeDateTimeString(
+                    mParentActivity,
+                    uploadOCFile.getModificationTimestamp(),
+                    DateUtils.SECOND_IN_MILLIS,
+                    DateUtils.WEEK_IN_MILLIS,
+                    0
+            );
+            uploadDateTextView.setText(dateString);
+
+            TextView accountNameTextView = (TextView) view.findViewById(R.id.upload_account);
+            accountNameTextView.setText(upload.getAccountName());
+
+            TextView statusTextView = (TextView) view.findViewById(R.id.upload_status);
             String status;
+
+            // Reset fields visibility
+            uploadDateTextView.setVisibility(View.VISIBLE);
+            pathTextView.setVisibility(View.VISIBLE);
+            fileSizeTextView.setVisibility(View.VISIBLE);
+            accountNameTextView.setVisibility(View.VISIBLE);
+            statusTextView.setVisibility(View.VISIBLE);
+
             switch (upload.getUploadStatus()) {
                 case UPLOAD_IN_PROGRESS:
                     status = mParentActivity.getString(R.string.uploader_upload_in_progress_ticker);
@@ -207,8 +227,13 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
                                 + " which inherits from FileActivity. Fix that!");
                         Log_OC.e(TAG, "PENDING BINDING for upload = " + upload.getLocalPath());
                     }
+                    uploadDateTextView.setVisibility(View.GONE);
+                    pathTextView.setVisibility(View.GONE);
+                    fileSizeTextView.setVisibility(View.GONE);
+                    accountNameTextView.setVisibility(View.INVISIBLE);
                     break;
                 case UPLOAD_FAILED_GIVE_UP:
+                    uploadDateTextView.setVisibility(View.GONE);
                     if (upload.getLastResult() != null) {
                         switch (upload.getLastResult()) {
                             case CREDENTIAL_ERROR:
@@ -242,7 +267,7 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
                                 break;
                             case PRIVILEDGES_ERROR:
                                 status = mParentActivity.getString(
-                                        R.string.uploads_view_upload_status_failed_priviledges_error);
+                                        R.string.uploads_view_upload_status_failed_permission_error);
                                 break;
                             default:
                                 status = mParentActivity.getString(
@@ -259,19 +284,24 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
                     if (upload.getLastResult() == UploadResult.NETWORK_CONNECTION) {
                         status = mParentActivity.getString(R.string.uploads_view_upload_status_failed_connection_error);
                     } else {
-                        status =  mParentActivity.getString(R.string.uploads_view_upload_status_failed_retry);
+                        status = mParentActivity.getString(R.string.uploads_view_upload_status_failed_retry);
                     }
                     String laterReason = FileUploadService.getUploadLaterReason(mParentActivity, upload);
                     if(laterReason != null) {
                         //Upload failed once but is delayed now, show reason.
-                        status += "\n" + laterReason;
+                        status = laterReason;
                     }
+                    pathTextView.setVisibility(View.GONE);
+                    fileSizeTextView.setVisibility(View.GONE);
+                    accountNameTextView.setVisibility(View.INVISIBLE);
+                    uploadDateTextView.setVisibility(View.GONE);
                     break;
                 case UPLOAD_LATER:
                     status = FileUploadService.getUploadLaterReason(mParentActivity, upload);
                     break;
                 case UPLOAD_SUCCEEDED:
                     status =  mParentActivity.getString(R.string.uploads_view_upload_status_succeeded);
+                    statusTextView.setVisibility(View.GONE);
                     break;
                 case UPLOAD_CANCELLED:
                     status =  mParentActivity.getString(R.string.uploads_view_upload_status_cancelled);
@@ -298,7 +328,7 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
                     mCurrentUpload = null;
                 }            
             }
-            statusView.setText(status);
+            statusTextView.setText(status);
 
             ImageButton rightButton = (ImageButton) view.findViewById(R.id.upload_right_button);
             if (upload.userCanRetryUpload()
@@ -376,15 +406,6 @@ public class ExpandableUploadListAdapter extends BaseExpandableListAdapter imple
                 fileIcon.setImageResource(MimetypeIconUtil.getFileTypeIconId(upload.getMimeType(),
                         uploadOCFile.getFileName()));
             }
-            TextView uploadDate = (TextView) view.findViewById(R.id.upload_date);
-            CharSequence dateString = DisplayUtils.getRelativeDateTimeString(
-                    mParentActivity,
-                    upload.getUploadTime().getTimeInMillis(),
-                    DateUtils.SECOND_IN_MILLIS,
-                    DateUtils.WEEK_IN_MILLIS,
-                    0
-            );
-            uploadDate.setText(dateString);
         }
 
         return view;