Merge branch 'develop' into accessibility
authormasensio <masensio@solidgear.es>
Tue, 10 Mar 2015 13:58:21 +0000 (14:58 +0100)
committermasensio <masensio@solidgear.es>
Tue, 10 Mar 2015 13:58:21 +0000 (14:58 +0100)
Conflicts:
src/com/owncloud/android/ui/adapter/FileListListAdapter.java

1  2 
res/layout-land/account_setup.xml
res/layout/account_setup.xml
res/menu/main_menu.xml
res/values/strings.xml
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/activity/Preferences.java
src/com/owncloud/android/ui/adapter/FileListListAdapter.java

Simple merge
Simple merge
Simple merge
        <string name="prefs_category_security">Security</string>
  
        <string name="prefs_instant_video_upload_path_title">Upload Video Path</string>
+     <string name="download_folder_failed_content">Download of %1$s folder could not be completed</string>
+       <string name="subject_token">%1$s shared \"%2$s\" with you</string>
  
 +    <string name="auth_refresh_button">Refresh connection</string>
 +    <string name="auth_host_address">Server address</string>
 +
  </resources>
@@@ -33,11 -35,11 +35,12 @@@ import android.text.format.DateUtils
  import android.view.LayoutInflater;\r
  import android.view.View;\r
  import android.view.ViewGroup;\r
+ import android.widget.AbsListView;\r
  import android.widget.BaseAdapter;\r
+ import android.widget.GridView;\r
  import android.widget.ImageView;\r
 +import android.widget.LinearLayout;\r
  import android.widget.ListAdapter;\r
- import android.widget.ListView;\r
  import android.widget.TextView;\r
  \r
  import com.owncloud.android.R;\r
@@@ -95,9 -92,9 +93,8 @@@ public class FileListListAdapter extend
                  .getDefaultSharedPreferences(mContext);\r
          \r
          // Read sorting order, default to sort by name ascending\r
-         mSortOrder = mAppPreferences\r
-                 .getInt("sortOrder", 0);\r
-         mSortAscending = mAppPreferences.getBoolean("sortAscending", true);\r
+         FileStorageUtils.mSortOrder = mAppPreferences.getInt("sortOrder", 0);\r
+         FileStorageUtils.mSortAscending = mAppPreferences.getBoolean("sortAscending", true);\r
 -\r
          \r
          // initialise thumbnails cache on background thread\r
          new ThumbnailsCacheManager.InitDiskCacheTask().execute();\r
  \r
      @Override\r
      public View getView(int position, View convertView, ViewGroup parent) {\r
\r
          View view = convertView;\r
-         if (view == null) {\r
-             LayoutInflater inflator = (LayoutInflater) mContext\r
-                     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);\r
-             view = inflator.inflate(R.layout.list_item, null);\r
-         }\r
-          \r
+         OCFile file = null;\r
+         LayoutInflater inflator = (LayoutInflater) mContext\r
+                 .getSystemService(Context.LAYOUT_INFLATER_SERVICE);\r
\r
          if (mFiles != null && mFiles.size() > position) {\r
-             OCFile file = mFiles.get(position);\r
-             TextView fileName = (TextView) view.findViewById(R.id.Filename);           \r
+             file = mFiles.get(position);\r
+         }\r
\r
+         // Find out which layout should be displayed\r
+         ViewType viewType;\r
+         if (!mGridMode){\r
+             viewType = ViewType.LIST_ITEM;\r
+         } else if (file.isImage()){\r
+             viewType = ViewType.GRID_IMAGE;\r
+         } else {\r
+             viewType = ViewType.GRID_ITEM;\r
+         }\r
\r
+         // Create View\r
+         switch (viewType){\r
+             case GRID_IMAGE:\r
+                 view = inflator.inflate(R.layout.grid_image, null);\r
+                 break;\r
+             case GRID_ITEM:\r
+                 view = inflator.inflate(R.layout.grid_item, null);\r
+                 break;\r
+             case LIST_ITEM:\r
+                 view = inflator.inflate(R.layout.list_item, null);\r
+                 break;\r
+         }\r
\r
+         view.invalidate();\r
\r
+         if (file != null){\r
\r
+             ImageView fileIcon = (ImageView) view.findViewById(R.id.thumbnail);\r
++\r
+             fileIcon.setTag(file.getFileId());\r
+             TextView fileName;\r
 -            String name;\r
 +            String name = file.getFileName();\r
 +\r
 +            LinearLayout linearLayout = (LinearLayout) view.findViewById(R.id.ListItemLayout);\r
 +            linearLayout.setContentDescription("LinearLayout-" + name);\r
  \r
-             fileName.setText(name);\r
-             ImageView fileIcon = (ImageView) view.findViewById(R.id.imageView1);\r
-             fileIcon.setTag(file.getFileId());\r
-             ImageView sharedIconV = (ImageView) view.findViewById(R.id.sharedIcon);\r
-             ImageView sharedWithMeIconV = (ImageView) view.findViewById(R.id.sharedWithMeIcon);\r
-             sharedWithMeIconV.setVisibility(View.GONE);\r
\r
-             ImageView localStateView = (ImageView) view.findViewById(R.id.imageView2);\r
-             localStateView.bringToFront();\r
-             FileDownloaderBinder downloaderBinder = \r
-                     mTransferServiceGetter.getFileDownloaderBinder();\r
-             FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();\r
-             if (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, file)) {\r
-                 localStateView.setImageResource(R.drawable.downloading_file_indicator);\r
-                 localStateView.setVisibility(View.VISIBLE);\r
-             } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, file)) {\r
-                 localStateView.setImageResource(R.drawable.uploading_file_indicator);\r
-                 localStateView.setVisibility(View.VISIBLE);\r
-             } else if (file.isDown()) {\r
-                 localStateView.setImageResource(R.drawable.local_file_indicator);\r
-                 localStateView.setVisibility(View.VISIBLE);\r
-             } else {\r
-                 localStateView.setVisibility(View.INVISIBLE);\r
+             switch (viewType){\r
+                 case LIST_ITEM:\r
+                     TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);\r
+                     TextView lastModV = (TextView) view.findViewById(R.id.last_mod);\r
+                     ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
\r
+                     lastModV.setVisibility(View.VISIBLE);\r
+                     lastModV.setText(showRelativeTimestamp(file));\r
\r
+                     checkBoxV.setVisibility(View.GONE);\r
\r
+                     fileSizeV.setVisibility(View.VISIBLE);\r
+                     fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength()));\r
\r
+                     if (!file.isFolder()) {\r
+                         AbsListView parentList = (AbsListView)parent;\r
+                         if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {\r
+                             checkBoxV.setVisibility(View.GONE);\r
+                         } else {\r
+                             if (parentList.isItemChecked(position)) {\r
+                                 checkBoxV.setImageResource(android.R.drawable.checkbox_on_background);\r
+                             } else {\r
+                                 checkBoxV.setImageResource(android.R.drawable.checkbox_off_background);\r
+                             }\r
+                             checkBoxV.setVisibility(View.VISIBLE);\r
+                         }\r
\r
+                     } else { //Folder\r
+                         fileSizeV.setVisibility(View.INVISIBLE);\r
+                     }\r
\r
+                 case GRID_ITEM:\r
+                     // filename\r
+                     fileName = (TextView) view.findViewById(R.id.Filename);\r
+                     name = file.getFileName();\r
+                     fileName.setText(name);\r
\r
+                 case GRID_IMAGE:\r
+                     // sharedIcon\r
+                     ImageView sharedIconV = (ImageView) view.findViewById(R.id.sharedIcon);\r
+                     if (file.isShareByLink()) {\r
+                         sharedIconV.setVisibility(View.VISIBLE);\r
+                         sharedIconV.bringToFront();\r
+                     } else {\r
+                         sharedIconV.setVisibility(View.GONE);\r
+                     }\r
\r
+                     // local state\r
+                     ImageView localStateView = (ImageView) view.findViewById(R.id.localFileIndicator);\r
+                     localStateView.bringToFront();\r
+                     FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();\r
+                     FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();\r
+                     boolean downloading = (downloaderBinder != null && downloaderBinder.isDownloading(mAccount, file));\r
+                     OperationsServiceBinder opsBinder = mTransferServiceGetter.getOperationsServiceBinder();\r
+                     downloading |= (opsBinder != null && opsBinder.isSynchronizing(mAccount, file.getRemotePath()));\r
+                     if (downloading) {\r
+                         localStateView.setImageResource(R.drawable.downloading_file_indicator);\r
+                         localStateView.setVisibility(View.VISIBLE);\r
+                     } else if (uploaderBinder != null && uploaderBinder.isUploading(mAccount, file)) {\r
+                         localStateView.setImageResource(R.drawable.uploading_file_indicator);\r
+                         localStateView.setVisibility(View.VISIBLE);\r
+                     } else if (file.isDown()) {\r
+                         localStateView.setImageResource(R.drawable.local_file_indicator);\r
+                         localStateView.setVisibility(View.VISIBLE);\r
+                     } else {\r
+                         localStateView.setVisibility(View.INVISIBLE);\r
+                     }\r
\r
+                     // share with me icon\r
+                     if (!file.isFolder()) {\r
+                         ImageView sharedWithMeIconV = (ImageView) view.findViewById(R.id.sharedWithMeIcon);\r
+                         sharedWithMeIconV.bringToFront();\r
+                         if (checkIfFileIsSharedWithMe(file)) {\r
+                             sharedWithMeIconV.setVisibility(View.VISIBLE);\r
+                         } else {\r
+                             sharedWithMeIconV.setVisibility(View.GONE);\r
+                         }\r
+                     }\r
\r
+                     break;\r
              }\r
              \r
-             TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);\r
-             TextView lastModV = (TextView) view.findViewById(R.id.last_mod);\r
-             ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
+             // For all Views\r
              \r
+             // this if-else is needed even though favorite icon is visible by default\r
+             // because android reuses views in listview\r
+             if (!file.keepInSync()) {\r
+                 view.findViewById(R.id.favoriteIcon).setVisibility(View.GONE);\r
+             } else {\r
+                 view.findViewById(R.id.favoriteIcon).setVisibility(View.VISIBLE);\r
+             }\r
+             \r
+             // No Folder\r
              if (!file.isFolder()) {\r
-                 fileSizeV.setVisibility(View.VISIBLE);\r
-                 fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength()));\r
-                 lastModV.setVisibility(View.VISIBLE);\r
-                 lastModV.setText(showRelativeTimestamp(file));\r
-                 // this if-else is needed even thoe fav icon is visible by default\r
-                 // because android reuses views in listview\r
-                 if (!file.keepInSync()) {\r
-                     view.findViewById(R.id.imageView3).setVisibility(View.GONE);\r
-                 } else {\r
-                     view.findViewById(R.id.imageView3).setVisibility(View.VISIBLE);\r
-                 }\r
-                 \r
-                 ListView parentList = (ListView)parent;\r
-                 if (parentList.getChoiceMode() == ListView.CHOICE_MODE_NONE) { \r
-                     checkBoxV.setVisibility(View.GONE);\r
-                 } else {\r
-                     if (parentList.isItemChecked(position)) {\r
-                         checkBoxV.setImageResource(android.R.drawable.checkbox_on_background);\r
-                     } else {\r
-                         checkBoxV.setImageResource(android.R.drawable.checkbox_off_background);\r
-                     }\r
-                     checkBoxV.setVisibility(View.VISIBLE);\r
-                 }               \r
-                 \r
-                 // get Thumbnail if file is image\r
                  if (file.isImage() && file.getRemoteId() != null){\r
-                      // Thumbnail in Cache?\r
+                     // Thumbnail in Cache?\r
                      Bitmap thumbnail = ThumbnailsCacheManager.getBitmapFromDiskCache(\r
                              String.valueOf(file.getRemoteId())\r
-                     );\r
+                             );\r
                      if (thumbnail != null && !file.needsUpdateThumbnail()){\r
                          fileIcon.setImageBitmap(thumbnail);\r
                      } else {\r
                          }\r
                      }\r
                  } else {\r
-                     fileIcon.setImageResource(\r
-                             DisplayUtils.getResourceId(file.getMimetype(), file.getFileName())\r
-                     );\r
-                 }\r
\r
-                 if (checkIfFileIsSharedWithMe(file)) {\r
-                     sharedWithMeIconV.setVisibility(View.VISIBLE);\r
+                     fileIcon.setImageResource(DisplayUtils.getFileTypeIconId(file.getMimetype(), file.getFileName()));\r
                  }\r
-             } \r
-             else {\r
-                   // TODO Re-enable when server supports folder-size calculation\r
- //                if (FileStorageUtils.getDefaultSavePathFor(mAccount.name, file) != null){\r
- //                    fileSizeV.setVisibility(View.VISIBLE);\r
- //                    fileSizeV.setText(getFolderSizeHuman(FileStorageUtils.getDefaultSavePathFor(mAccount.name, file)));\r
- //                } else {\r
-                     fileSizeV.setVisibility(View.INVISIBLE);\r
- //                }\r
\r
-                 lastModV.setVisibility(View.VISIBLE);\r
-                 lastModV.setText(showRelativeTimestamp(file));\r
-                 checkBoxV.setVisibility(View.GONE);\r
-                 view.findViewById(R.id.imageView3).setVisibility(View.GONE);\r
 +\r
+             } else {\r
+                 // Folder\r
                  if (checkIfFileIsSharedWithMe(file)) {\r
                      fileIcon.setImageResource(R.drawable.shared_with_me_folder);\r
-                     sharedWithMeIconV.setVisibility(View.VISIBLE);\r
+                 } else if (file.isShareByLink()) {\r
+                     // If folder is sharedByLink, icon folder must be changed to\r
+                     // folder-public one\r
+                     fileIcon.setImageResource(R.drawable.folder_public);\r
                  } else {\r
                      fileIcon.setImageResource(\r
-                             DisplayUtils.getResourceId(file.getMimetype(), file.getFileName())\r
+                             DisplayUtils.getFileTypeIconId(file.getMimetype(), file.getFileName())\r
                      );\r
                  }\r
\r
-                 // If folder is sharedByLink, icon folder must be changed to\r
-                 // folder-public one\r
-                 if (file.isShareByLink()) {\r
-                     fileIcon.setImageResource(R.drawable.folder_public);\r
-                 }\r
-             }\r
\r
-             if (file.isShareByLink()) {\r
-                 sharedIconV.setVisibility(View.VISIBLE);\r
-             } else {\r
-                 sharedIconV.setVisibility(View.GONE);\r
              }\r
          }\r
  \r