merge develop
authorpurigarcia <pgarcia@solidgear.es>
Tue, 28 Jul 2015 08:46:13 +0000 (10:46 +0200)
committerpurigarcia <pgarcia@solidgear.es>
Tue, 28 Jul 2015 08:46:13 +0000 (10:46 +0200)
1  2 
src/com/owncloud/android/files/FileOperationsHelper.java
src/com/owncloud/android/ui/adapter/FileListListAdapter.java

@@@ -40,6 -40,7 +40,7 @@@ import com.owncloud.android.lib.common.
  import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.lib.resources.status.OwnCloudVersion;
  import com.owncloud.android.services.OperationsService;
+ import com.owncloud.android.services.observer.FileObserverService;
  import com.owncloud.android.ui.activity.FileActivity;
  import com.owncloud.android.ui.dialog.ShareLinkToDialog;
  
@@@ -187,14 -188,12 +188,14 @@@ public class FileOperationsHelper 
      
      public void sendDownloadedFile(OCFile file) {
          if (file != null) {
 +            String storagePath = file.getStoragePath();
 +            String encodedStoragePath = WebdavUtils.encodePath(storagePath);
              Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);
              // set MimeType
              sendIntent.setType(file.getMimetype());
 -            sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getStoragePath()));
 +            sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + encodedStoragePath));
              sendIntent.putExtra(Intent.ACTION_SEND, true);      // Send Action
 -            
 +
              // Show dialog, without the own app
              String[] packagesToExclude = new String[] { mFileActivity.getPackageName() };
              DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude, file);
              mFileActivity.startService(intent);
          }
      }
+     public void toggleFavorite(OCFile file, boolean isFavorite) {
+         file.setFavorite(isFavorite);
+         mFileActivity.getStorageManager().saveFile(file);
+         /// register the OCFile instance in the observer service to monitor local updates
+         Intent observedFileIntent = FileObserverService.makeObservedFileIntent(
+                 mFileActivity,
+                 file,
+                 mFileActivity.getAccount(),
+                 isFavorite);
+         mFileActivity.startService(observedFileIntent);
+         /// immediate content synchronization
+         if (file.isFavorite()) {
+             syncFile(file);
+         }
+     }
      
      public void renameFile(OCFile file, String newFilename) {
          // RenameFile
              downloaderBinder.cancel(account, file);
  
              // TODO - review why is this here, and solve in a better way
-             // Remove etag for parent, if file is a keep_in_sync
-             if (file.keepInSync()) {
+             // Remove etag for parent, if file is a favorite
+             if (file.isFavorite()) {
                  OCFile parent = mFileActivity.getStorageManager().getFileById(file.getParentId());
                  parent.setEtag("");
                  mFileActivity.getStorageManager().saveFile(parent);
@@@ -268,15 -268,14 +268,15 @@@ public class FileListListAdapter extend
                      }\r
  \r
                      // share with me icon\r
-                     if (!file.isFolder()) {\r
-                         ImageView sharedWithMeIconV = (ImageView)\r
-                                 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
+                     ImageView sharedWithMeIconV = (ImageView)\r
+                             view.findViewById(R.id.sharedWithMeIcon);\r
+                     sharedWithMeIconV.bringToFront();\r
+                     if (checkIfFileIsSharedWithMe(file) &&\r
+                             (!file.isFolder() || !mGridMode)) {\r
+                         sharedWithMeIconV.setVisibility(View.VISIBLE);\r
+                     } else {\r
+                         sharedWithMeIconV.setVisibility(View.GONE);\r
++\r
                      }\r
  \r
                      break;\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
+             if (!file.isFavorite()) {\r
                  view.findViewById(R.id.favoriteIcon).setVisibility(View.GONE);\r
              } else {\r
                  view.findViewById(R.id.favoriteIcon).setVisibility(View.VISIBLE);\r