Merge branch 'develop' into send_file_pr311_with_develop
authormasensio <masensio@solidgear.es>
Mon, 17 Feb 2014 07:45:52 +0000 (08:45 +0100)
committermasensio <masensio@solidgear.es>
Mon, 17 Feb 2014 07:45:52 +0000 (08:45 +0100)
1  2 
res/menu/file_actions_menu.xml
res/values-de-rCH/strings.xml
res/values-de-rDE/strings.xml
res/values-de/strings.xml
res/values/strings.xml
src/com/owncloud/android/ui/fragment/OCFileListFragment.java
src/com/owncloud/android/ui/preview/PreviewImageFragment.java

@@@ -20,7 -20,8 +20,8 @@@
  <menu         xmlns:android="http://schemas.android.com/apk/res/android">
      
        <item   android:id="@+id/action_share_file"                             android:title="@string/action_share_file"                       android:icon="@android:drawable/ic_menu_share"                                  android:orderInCategory="1" />
-     <item     android:id="@+id/action_open_file_with"                 android:title="@string/actionbar_open_with"                     android:icon="@android:drawable/ic_menu_edit"                                   android:orderInCategory="1" />
+       <item   android:id="@+id/action_unshare_file"               android:title="@string/action_unshare_file"                 android:icon="@android:drawable/ic_menu_share"                                  android:orderInCategory="1" />
+     <item     android:id="@+id/action_open_file_with"                 android:title="@string/actionbar_open_with"                     android:icon="@android:drawable/ic_menu_edit"                                   android:orderInCategory="1" /> 
        <item   android:id="@+id/action_download_file"                  android:title="@string/filedetails_download"            android:icon="@drawable/ic_action_download"                                             android:orderInCategory="1" />
      <item     android:id="@+id/action_sync_file"                              android:title="@string/filedetails_sync_file"           android:icon="@drawable/ic_action_refresh"                                              android:orderInCategory="1" />
        <item   android:id="@+id/action_cancel_download"                android:title="@string/common_cancel_download"          android:icon="@android:drawable/ic_menu_close_clear_cancel"             android:orderInCategory="1" />
@@@ -28,6 -29,6 +29,6 @@@
        <item   android:id="@+id/action_rename_file"                    android:title="@string/common_rename"                           android:icon="@android:drawable/ic_menu_set_as"                                 android:orderInCategory="1" />
      <item     android:id="@+id/action_remove_file"                    android:title="@string/common_remove"                           android:icon="@android:drawable/ic_menu_delete"                                 android:orderInCategory="1" />
      <item     android:id="@+id/action_see_details"                    android:title="@string/actionbar_see_details"           android:icon="@android:drawable/ic_menu_info_details"                   android:orderInCategory="1" />
 -    <item     android:id="@+id/action_share_file"                             android:title="@string/actionbar_share_file"            android:icon="@android:drawable/ic_menu_info_details"                   android:orderInCategory="1" />
 +    <item     android:id="@+id/action_send_file"                              android:title="@string/actionbar_send_file"                     android:icon="@android:drawable/ic_menu_info_details"                   android:orderInCategory="1" />
      
  </menu>
@@@ -10,7 -10,7 +10,7 @@@
    <string name="actionbar_mkdir">Ordner anlegen</string>
    <string name="actionbar_settings">Einstellungen</string>
    <string name="actionbar_see_details">Details</string>
-   <string name="actionbar_send_file">Datei Senden</string>
 -  <string name="actionbar_share_file">Freigeben</string>
++  <string name="actionbar_send_file">Freigeben</string>
    <string name="prefs_category_general">Allgemein</string>
    <string name="prefs_category_more">Mehr</string>
    <string name="prefs_accounts">Konten</string>
@@@ -10,7 -10,7 +10,7 @@@
    <string name="actionbar_mkdir">Ordner anlegen</string>
    <string name="actionbar_settings">Einstellungen</string>
    <string name="actionbar_see_details">Details</string>
-   <string name="actionbar_send_file">Datei senden</string>
 -  <string name="actionbar_share_file">Teilen</string>
++  <string name="actionbar_send_file">Teilen</string>
    <string name="prefs_category_general">Allgemein</string>
    <string name="prefs_category_more">Mehr</string>
    <string name="prefs_accounts">Konten</string>
    <string name="share_link_no_support_share_api">Entschuldigung, Freigaben sind auf Ihrem Server nicht aktiviert. Bitte kontaktieren Sie Ihren Administrator.</string>
    <string name="share_link_file_no_exist">Die Freigabe der Datei oder des Ordners ist nicht möglich. Bitte stellen Sie sicher, dass diese existiert.</string>
    <string name="share_link_file_error">Es ist ein Fehler beim Freigeben der Datei oder des Ordners aufgetreten.</string>
+   <string name="unshare_link_file_no_exist">Das Entfernen der Freigabe für die Datei oder den Ordner ist nicht möglich. Diese existieren nicht.</string>
    <string name="unshare_link_file_error">Es ist ein Fehler beim Entfernen der Freigabe für diese Datei oder den Ordner aufgetreten.</string>
  </resources>
@@@ -10,7 -10,7 +10,7 @@@
    <string name="actionbar_mkdir">Ordner anlegen</string>
    <string name="actionbar_settings">Einstellungen</string>
    <string name="actionbar_see_details">Details</string>
-   <string name="actionbar_send_file">Datei Senden</string>
 -  <string name="actionbar_share_file">Teilen</string>
++  <string name="actionbar_send_file">Teilen</string>
    <string name="prefs_category_general">Allgemein</string>
    <string name="prefs_category_more">Mehr</string>
    <string name="prefs_accounts">Konten</string>
    <string name="share_link_no_support_share_api">Entschuldigung, Freigaben sind auf Deinem Server nicht aktiviert. Bitte kontaktiere Deinen Administrator.</string>
    <string name="share_link_file_no_exist">Die Freigabe der Datei oder des Ordners ist nicht möglich. Bitte stelle sicher, dass diese existiert.</string>
    <string name="share_link_file_error">Es ist ein Fehler beim Freigeben der Datei oder des Ordners aufgetreten.</string>
+   <string name="unshare_link_file_no_exist">Das Entfernen der Freigabe für die Datei oder den Ordner ist nicht möglich. Diese existieren nicht.</string>
    <string name="unshare_link_file_error">Es ist ein Fehler beim Entfernen der Freigabe für diese Datei oder den Ordner aufgetreten.</string>
  </resources>
diff --combined res/values/strings.xml
@@@ -11,7 -11,7 +11,7 @@@
      <string name="actionbar_mkdir">Create directory</string>
      <string name="actionbar_settings">Settings</string>
      <string name="actionbar_see_details">Details</string>
 -    <string name="actionbar_share_file">Share</string>
 +    <string name="actionbar_send_file">Send</string>
      <string name="prefs_category_general">General</string>
      <string name="prefs_category_more">More</string>
      <string name="prefs_accounts">Accounts</string>
        <string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your administrator.</string>
        <string name="share_link_file_no_exist">Unable to share this file or folder. Please, make sure it exists</string>
        <string name="share_link_file_error">An error occurred while trying to share this file or folder</string>
+       <string name="unshare_link_file_no_exist">Unable to unshare this file or folder. It does not exist.</string>
        <string name="unshare_link_file_error">An error occurred while trying to unshare this file or folder</string>
 +      
 +      <string name="send_file_title_intent">Send</string>
  </resources>
@@@ -222,7 -222,7 +222,7 @@@ public class OCFileListFragment extend
              toHide.add(R.id.action_cancel_upload);
              toHide.add(R.id.action_sync_file);
              toHide.add(R.id.action_see_details);
 -            toHide.add(R.id.action_share_file);
 +            toHide.add(R.id.action_send_file);
              if (    mContainerActivity.getFileDownloaderBinder().isDownloading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile) ||
                      mContainerActivity.getFileUploaderBinder().isUploading(AccountUtils.getCurrentOwnCloudAccount(getActivity()), targetFile)           ) {
                  toDisable.add(R.id.action_rename_file);
                  toHide.add(R.id.action_cancel_upload);
              }
          }
+         
+         // Options shareLink
+         if (!targetFile.isShareByLink()) {
+             toHide.add(R.id.action_unshare_file);
+         }
  
          for (int i : toHide) {
              item = menu.findItem(i);
      public boolean onContextItemSelected (MenuItem item) {
          AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();        
          mTargetFile = (OCFile) mAdapter.getItem(info.position);
-         switch (item.getItemId()) {
+         switch (item.getItemId()) {                
              case R.id.action_share_file: {
                  FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
                  activity.getFileOperationsHelper().shareFileWithLink(mTargetFile, activity);
                  return true;
              }
+             case R.id.action_unshare_file: {
+                 FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
+                 activity.getFileOperationsHelper().unshareFileWithLink(mTargetFile, activity);
+                 return true;
+             }
              case R.id.action_rename_file: {
                  String fileName = mTargetFile.getFileName();
                  int extensionStart = mTargetFile.isFolder() ? -1 : fileName.lastIndexOf(".");
                  ((FileFragment.ContainerActivity)getActivity()).showDetails(mTargetFile);
                  return true;
              }
 -            case R.id.action_share_file: {
 +            case R.id.action_send_file: {
                  Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
                  // set MimeType
                  sharingIntent.setType(mTargetFile.getMimetype());
 -                sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+mTargetFile.getStoragePath()));
 -                startActivity(Intent.createChooser(sharingIntent, "Share via")); 
 +                sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + mTargetFile.getStoragePath()));
 +                startActivity(Intent.createChooser(sharingIntent, getResources().getString(R.string.send_file_title_intent))); 
                  return true;
              }
              default:
                  return super.onContextItemSelected(item); 
          }
      }
-     
  
      /**
       * Use this to query the {@link OCFile} that is currently
           * @param file
           */
          public void onBrowsedDownTo(OCFile folder);
-         
          public void startDownloadForPreview(OCFile file);
  
          public void startMediaPreview(OCFile file, int i, boolean b);
@@@ -176,8 -176,22 +176,22 @@@ public class PreviewImageFragment exten
          mStorageManager = new FileDataStorageManager(mAccount, getActivity().getApplicationContext().getContentResolver());
          if (savedInstanceState != null) {
              if (!mIgnoreFirstSavedState) {
-                 setFile((OCFile)savedInstanceState.getParcelable(PreviewImageFragment.EXTRA_FILE));
+                 OCFile file = (OCFile)savedInstanceState.getParcelable(PreviewImageFragment.EXTRA_FILE);
                  mAccount = savedInstanceState.getParcelable(PreviewImageFragment.EXTRA_ACCOUNT);
+                 
+                 // Update the file
+                 if (mAccount!= null) {
+                     mStorageManager = new FileDataStorageManager(mAccount, getActivity().getApplicationContext().getContentResolver());
+                     OCFile updatedFile = mStorageManager.getFileByPath(file.getRemotePath());
+                     if (updatedFile != null) {
+                         setFile(updatedFile);
+                     } else {
+                         setFile(file);
+                     }
+                 } else {
+                     setFile(file);
+                 }
              } else {
                  mIgnoreFirstSavedState = false;
              }
          toHide.add(R.id.action_cancel_upload);
          toHide.add(R.id.action_download_file);
          toHide.add(R.id.action_rename_file);    // by now
+         
+         // Options shareLink
+         if (!getFile().isShareByLink()) {
+             toHide.add(R.id.action_unshare_file);
+         }
  
          for (int i : toHide) {
              item = menu.findItem(i);
          
      }
  
+     /**
+      * {@inheritDoc}
+      */
+     @Override
+     public void onPrepareOptionsMenu(Menu menu) {
+         super.onPrepareOptionsMenu(menu);
+         
+         MenuItem item = menu.findItem(R.id.action_unshare_file);
+         // Options shareLink
+         OCFile file = ((FileActivity) getSherlockActivity()).getFile();
+         if (!file.isShareByLink()) {
+             item.setVisible(false);
+             item.setEnabled(false);
+         } else {
+             item.setVisible(true);
+             item.setEnabled(true);
+         }
+             
+     }
+     
      
      /**
       * {@inheritDoc}
                  act.getFileOperationsHelper().shareFileWithLink(getFile(), act);
                  return true;
              }
+             case R.id.action_unshare_file: {
+                 FileActivity act = (FileActivity)getSherlockActivity();
+                 act.getFileOperationsHelper().unshareFileWithLink(getFile(), act);
+                 return true;
+             }
              case R.id.action_open_file_with: {
                  openFile();
                  return true;
                  seeDetails();
                  return true;
              }
 -            case R.id.action_share_file: {
 -                shareFile();
 +            case R.id.action_send_file: {
 +                sendFile();
                  return true;
              }
              
          }
      }
      
 -    private void shareFile(){
 +    private void sendFile(){
          Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
          // set MimeType
          sharingIntent.setType(getFile().getMimetype());
          sharingIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+getFile().getStoragePath()));
 -        startActivity(Intent.createChooser(sharingIntent, "Share via"));
 +        startActivity(Intent.createChooser(sharingIntent, getResources().getString(R.string.send_file_title_intent)));
      }
  
      
      private void seeDetails() {
          ((FileFragment.ContainerActivity)getActivity()).showDetails(getFile());        
      }