Browse Source

Merge branch 'develop' into send_file_pr311_with_develop

masensio 11 years ago
parent
commit
99686805e1
86 changed files with 691 additions and 60 deletions
  1. 1 1
      owncloud-android-library
  2. 2 1
      res/menu/file_actions_menu.xml
  3. 1 0
      res/values-ar/strings.xml
  4. 1 0
      res/values-bg-rBG/strings.xml
  5. 1 0
      res/values-bn-rBD/strings.xml
  6. 3 1
      res/values-bs/strings.xml
  7. 1 0
      res/values-ca/strings.xml
  8. 1 0
      res/values-cs-rCZ/strings.xml
  9. 1 0
      res/values-cy-rGB/strings.xml
  10. 1 0
      res/values-da/strings.xml
  11. 8 1
      res/values-de-rAT/strings.xml
  12. 1 1
      res/values-de-rCH/strings.xml
  13. 2 1
      res/values-de-rDE/strings.xml
  14. 2 1
      res/values-de/strings.xml
  15. 1 0
      res/values-el/strings.xml
  16. 1 0
      res/values-eo/strings.xml
  17. 1 0
      res/values-es-rAR/strings.xml
  18. 1 0
      res/values-es-rCL/strings.xml
  19. 1 0
      res/values-es-rMX/strings.xml
  20. 2 0
      res/values-es/strings.xml
  21. 1 0
      res/values-et-rEE/strings.xml
  22. 1 0
      res/values-eu/strings.xml
  23. 1 0
      res/values-fa/strings.xml
  24. 5 0
      res/values-fi-rFI/strings.xml
  25. 3 1
      res/values-fr/strings.xml
  26. 2 0
      res/values-gl/strings.xml
  27. 1 0
      res/values-he/strings.xml
  28. 1 0
      res/values-hi/strings.xml
  29. 1 0
      res/values-hr/strings.xml
  30. 1 0
      res/values-hu-rHU/strings.xml
  31. 1 0
      res/values-ia/strings.xml
  32. 1 0
      res/values-id/strings.xml
  33. 1 0
      res/values-is/strings.xml
  34. 1 0
      res/values-it/strings.xml
  35. 7 0
      res/values-ja-rJP/strings.xml
  36. 1 0
      res/values-ka-rGE/strings.xml
  37. 1 0
      res/values-ko/strings.xml
  38. 1 0
      res/values-ku-rIQ/strings.xml
  39. 1 0
      res/values-lb/strings.xml
  40. 1 0
      res/values-lt-rLT/strings.xml
  41. 1 0
      res/values-lv/strings.xml
  42. 1 0
      res/values-mk/strings.xml
  43. 1 0
      res/values-ms-rMY/strings.xml
  44. 1 0
      res/values-nb-rNO/strings.xml
  45. 1 0
      res/values-nl/strings.xml
  46. 1 0
      res/values-nn-rNO/strings.xml
  47. 1 0
      res/values-oc/strings.xml
  48. 1 0
      res/values-pa/strings.xml
  49. 2 0
      res/values-pl/strings.xml
  50. 1 0
      res/values-pt-rBR/strings.xml
  51. 1 0
      res/values-pt-rPT/strings.xml
  52. 1 0
      res/values-ro/strings.xml
  53. 1 0
      res/values-ru/strings.xml
  54. 1 0
      res/values-si-rLK/strings.xml
  55. 1 0
      res/values-sk-rSK/strings.xml
  56. 1 0
      res/values-sk/strings.xml
  57. 2 0
      res/values-sl/strings.xml
  58. 1 0
      res/values-sq/strings.xml
  59. 1 0
      res/values-sr-rSP/strings.xml
  60. 1 0
      res/values-sr/strings.xml
  61. 1 0
      res/values-sv/strings.xml
  62. 1 0
      res/values-ta-rLK/strings.xml
  63. 2 0
      res/values-th-rTH/strings.xml
  64. 1 0
      res/values-tr/strings.xml
  65. 1 0
      res/values-ug/strings.xml
  66. 1 0
      res/values-uk/strings.xml
  67. 8 0
      res/values-vi/strings.xml
  68. 1 0
      res/values-zh-rCN/strings.xml
  69. 1 0
      res/values-zh-rHK/strings.xml
  70. 1 0
      res/values-zh-rTW/strings.xml
  71. 1 0
      res/values/strings.xml
  72. 16 2
      src/com/owncloud/android/datamodel/FileDataStorageManager.java
  73. 28 8
      src/com/owncloud/android/files/FileOperationsHelper.java
  74. 1 1
      src/com/owncloud/android/files/services/FileDownloader.java
  75. 3 0
      src/com/owncloud/android/files/services/FileUploader.java
  76. 1 3
      src/com/owncloud/android/operations/CreateShareOperation.java
  77. 1 1
      src/com/owncloud/android/operations/GetSharesOperation.java
  78. 93 0
      src/com/owncloud/android/operations/UnshareLinkOperation.java
  79. 118 10
      src/com/owncloud/android/services/OperationsService.java
  80. 101 4
      src/com/owncloud/android/ui/activity/FileActivity.java
  81. 44 4
      src/com/owncloud/android/ui/activity/FileDisplayActivity.java
  82. 17 1
      src/com/owncloud/android/ui/fragment/FileDetailFragment.java
  83. 13 3
      src/com/owncloud/android/ui/fragment/OCFileListFragment.java
  84. 44 2
      src/com/owncloud/android/ui/preview/PreviewImageActivity.java
  85. 47 1
      src/com/owncloud/android/ui/preview/PreviewImageFragment.java
  86. 57 12
      src/com/owncloud/android/ui/preview/PreviewMediaFragment.java

+ 1 - 1
owncloud-android-library

@@ -1 +1 @@
-Subproject commit 985b005995429f52446dc5bb66abd236595e627e
+Subproject commit 6992df89b04c3c35bf906c3f810fa05daad7b43f

+ 2 - 1
res/menu/file_actions_menu.xml

@@ -20,7 +20,8 @@
 <menu 	xmlns:android="http://schemas.android.com/apk/res/android">
 <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_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_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_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" />
 	<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" />

+ 1 - 0
res/values-ar/strings.xml

@@ -8,6 +8,7 @@
   <string name="actionbar_mkdir">إنشاء دليل</string>
   <string name="actionbar_mkdir">إنشاء دليل</string>
   <string name="actionbar_settings">تعديلات</string>
   <string name="actionbar_settings">تعديلات</string>
   <string name="actionbar_see_details">تفاصيل</string>
   <string name="actionbar_see_details">تفاصيل</string>
+  <string name="actionbar_share_file">شارك</string>
   <string name="prefs_category_general">عام</string>
   <string name="prefs_category_general">عام</string>
   <string name="prefs_category_more">المزيد</string>
   <string name="prefs_category_more">المزيد</string>
   <string name="prefs_accounts">حسابات</string>
   <string name="prefs_accounts">حسابات</string>

+ 1 - 0
res/values-bg-rBG/strings.xml

@@ -5,6 +5,7 @@
   <string name="actionbar_upload_files">Файлове</string>
   <string name="actionbar_upload_files">Файлове</string>
   <string name="actionbar_mkdir">Нова директория</string>
   <string name="actionbar_mkdir">Нова директория</string>
   <string name="actionbar_settings">Настройки</string>
   <string name="actionbar_settings">Настройки</string>
+  <string name="actionbar_share_file">Споделяне</string>
   <string name="prefs_category_general">Общи</string>
   <string name="prefs_category_general">Общи</string>
   <string name="prefs_category_more">Още</string>
   <string name="prefs_category_more">Още</string>
   <string name="prefs_accounts">Профили</string>
   <string name="prefs_accounts">Профили</string>

+ 1 - 0
res/values-bn-rBD/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">ফাইল</string>
   <string name="actionbar_upload_files">ফাইল</string>
   <string name="actionbar_mkdir">ডিরেক্টরি তৈরী কর</string>
   <string name="actionbar_mkdir">ডিরেক্টরি তৈরী কর</string>
   <string name="actionbar_settings">নিয়ামকসমূহ</string>
   <string name="actionbar_settings">নিয়ামকসমূহ</string>
+  <string name="actionbar_share_file">ভাগাভাগি কর</string>
   <string name="prefs_category_general">সাধারণ</string>
   <string name="prefs_category_general">সাধারণ</string>
   <string name="prefs_category_more">বেশী</string>
   <string name="prefs_category_more">বেশী</string>
   <string name="prefs_accounts">একাউন্ট</string>
   <string name="prefs_accounts">একাউন্ট</string>

+ 3 - 1
res/values-bs/strings.xml

@@ -1,2 +1,4 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <?xml version='1.0' encoding='UTF-8'?>
-<resources/>
+<resources>
+  <string name="actionbar_share_file">Podijeli</string>
+</resources>

+ 1 - 0
res/values-ca/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Crea una carpeta</string>
   <string name="actionbar_mkdir">Crea una carpeta</string>
   <string name="actionbar_settings">Configuració</string>
   <string name="actionbar_settings">Configuració</string>
   <string name="actionbar_see_details">Detalls</string>
   <string name="actionbar_see_details">Detalls</string>
+  <string name="actionbar_share_file">Comparteix</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Més</string>
   <string name="prefs_category_more">Més</string>
   <string name="prefs_accounts">Comptes</string>
   <string name="prefs_accounts">Comptes</string>

+ 1 - 0
res/values-cs-rCZ/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Vytvořit adresář</string>
   <string name="actionbar_mkdir">Vytvořit adresář</string>
   <string name="actionbar_settings">Nastavení</string>
   <string name="actionbar_settings">Nastavení</string>
   <string name="actionbar_see_details">Podrobnosti</string>
   <string name="actionbar_see_details">Podrobnosti</string>
+  <string name="actionbar_share_file">Sdílet</string>
   <string name="prefs_category_general">Obecné</string>
   <string name="prefs_category_general">Obecné</string>
   <string name="prefs_category_more">Více</string>
   <string name="prefs_category_more">Více</string>
   <string name="prefs_accounts">Účty</string>
   <string name="prefs_accounts">Účty</string>

+ 1 - 0
res/values-cy-rGB/strings.xml

@@ -5,6 +5,7 @@
   <string name="actionbar_upload_files">Ffeiliau</string>
   <string name="actionbar_upload_files">Ffeiliau</string>
   <string name="actionbar_mkdir">Creu cyfeiriadur</string>
   <string name="actionbar_mkdir">Creu cyfeiriadur</string>
   <string name="actionbar_settings">Gosodiadau</string>
   <string name="actionbar_settings">Gosodiadau</string>
+  <string name="actionbar_share_file">Rhannu</string>
   <string name="prefs_category_general">Cyffredinol</string>
   <string name="prefs_category_general">Cyffredinol</string>
   <string name="prefs_accounts">Cyfrifon</string>
   <string name="prefs_accounts">Cyfrifon</string>
   <string name="prefs_manage_accounts">Rheoli Cyfrifon</string>
   <string name="prefs_manage_accounts">Rheoli Cyfrifon</string>

+ 1 - 0
res/values-da/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Opret mappe</string>
   <string name="actionbar_mkdir">Opret mappe</string>
   <string name="actionbar_settings">Indstillinger</string>
   <string name="actionbar_settings">Indstillinger</string>
   <string name="actionbar_see_details">Detaljer</string>
   <string name="actionbar_see_details">Detaljer</string>
+  <string name="actionbar_share_file">Del</string>
   <string name="prefs_category_general">Generel</string>
   <string name="prefs_category_general">Generel</string>
   <string name="prefs_category_more">Mere</string>
   <string name="prefs_category_more">Mere</string>
   <string name="prefs_accounts">Konti</string>
   <string name="prefs_accounts">Konti</string>

+ 8 - 1
res/values-de-rAT/strings.xml

@@ -1,2 +1,9 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <?xml version='1.0' encoding='UTF-8'?>
-<resources/>
+<resources>
+  <string name="actionbar_settings">Einstellungen</string>
+  <string name="actionbar_share_file">Freigeben</string>
+  <string name="prefs_category_general">Allgemein</string>
+  <string name="auth_password">Passwort</string>
+  <string name="filedetails_download">Herunterladen</string>
+  <string name="common_cancel">Abbrechen</string>
+</resources>

+ 1 - 1
res/values-de-rCH/strings.xml

@@ -10,7 +10,7 @@
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_see_details">Details</string>
   <string name="actionbar_see_details">Details</string>
-  <string name="actionbar_send_file">Datei Senden</string>
+  <string name="actionbar_send_file">Freigeben</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_accounts">Konten</string>
   <string name="prefs_accounts">Konten</string>

+ 2 - 1
res/values-de-rDE/strings.xml

@@ -10,7 +10,7 @@
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_see_details">Details</string>
   <string name="actionbar_see_details">Details</string>
-  <string name="actionbar_send_file">Datei senden</string>
+  <string name="actionbar_send_file">Teilen</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_accounts">Konten</string>
   <string name="prefs_accounts">Konten</string>
@@ -237,5 +237,6 @@
   <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_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_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="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>
   <string name="unshare_link_file_error">Es ist ein Fehler beim Entfernen der Freigabe für diese Datei oder den Ordner aufgetreten.</string>
 </resources>
 </resources>

+ 2 - 1
res/values-de/strings.xml

@@ -10,7 +10,7 @@
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_mkdir">Ordner anlegen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_settings">Einstellungen</string>
   <string name="actionbar_see_details">Details</string>
   <string name="actionbar_see_details">Details</string>
-  <string name="actionbar_send_file">Datei Senden</string>
+  <string name="actionbar_send_file">Teilen</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_general">Allgemein</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_category_more">Mehr</string>
   <string name="prefs_accounts">Konten</string>
   <string name="prefs_accounts">Konten</string>
@@ -237,5 +237,6 @@
   <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_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_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="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>
   <string name="unshare_link_file_error">Es ist ein Fehler beim Entfernen der Freigabe für diese Datei oder den Ordner aufgetreten.</string>
 </resources>
 </resources>

+ 1 - 0
res/values-el/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Δημιουργία καταλόγου</string>
   <string name="actionbar_mkdir">Δημιουργία καταλόγου</string>
   <string name="actionbar_settings">Ρυθμίσεις</string>
   <string name="actionbar_settings">Ρυθμίσεις</string>
   <string name="actionbar_see_details">Λεπτομέρειες</string>
   <string name="actionbar_see_details">Λεπτομέρειες</string>
+  <string name="actionbar_share_file">Διαμοιρασμός</string>
   <string name="prefs_category_general">Γενικά</string>
   <string name="prefs_category_general">Γενικά</string>
   <string name="prefs_category_more">Περισσότερα</string>
   <string name="prefs_category_more">Περισσότερα</string>
   <string name="prefs_accounts">Λογαριασμοί</string>
   <string name="prefs_accounts">Λογαριασμοί</string>

+ 1 - 0
res/values-eo/strings.xml

@@ -6,6 +6,7 @@
   <string name="actionbar_mkdir">Krei dosierujon</string>
   <string name="actionbar_mkdir">Krei dosierujon</string>
   <string name="actionbar_settings">Agordo</string>
   <string name="actionbar_settings">Agordo</string>
   <string name="actionbar_see_details">Detaloj</string>
   <string name="actionbar_see_details">Detaloj</string>
+  <string name="actionbar_share_file">Kunhavigi</string>
   <string name="prefs_category_general">Ĝeneralo</string>
   <string name="prefs_category_general">Ĝeneralo</string>
   <string name="prefs_category_more">Pli</string>
   <string name="prefs_category_more">Pli</string>
   <string name="prefs_accounts">Kontoj</string>
   <string name="prefs_accounts">Kontoj</string>

+ 1 - 0
res/values-es-rAR/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Crear directorio</string>
   <string name="actionbar_mkdir">Crear directorio</string>
   <string name="actionbar_settings">Configuración</string>
   <string name="actionbar_settings">Configuración</string>
   <string name="actionbar_see_details">Detalles</string>
   <string name="actionbar_see_details">Detalles</string>
+  <string name="actionbar_share_file">Compartir</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_accounts">Cuentas</string>
   <string name="prefs_accounts">Cuentas</string>

+ 1 - 0
res/values-es-rCL/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">Archivos</string>
   <string name="actionbar_upload_files">Archivos</string>
   <string name="actionbar_mkdir">Crear directorio</string>
   <string name="actionbar_mkdir">Crear directorio</string>
   <string name="actionbar_settings">Configuración</string>
   <string name="actionbar_settings">Configuración</string>
+  <string name="actionbar_share_file">Compartir</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_accounts">Cuentas</string>
   <string name="prefs_accounts">Cuentas</string>
   <string name="auth_username">Usuario</string>
   <string name="auth_username">Usuario</string>

+ 1 - 0
res/values-es-rMX/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Crear directorio</string>
   <string name="actionbar_mkdir">Crear directorio</string>
   <string name="actionbar_settings">Ajustes</string>
   <string name="actionbar_settings">Ajustes</string>
   <string name="actionbar_see_details">Detalles</string>
   <string name="actionbar_see_details">Detalles</string>
+  <string name="actionbar_share_file">Compartir</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_accounts">Cuentas</string>
   <string name="prefs_accounts">Cuentas</string>

+ 2 - 0
res/values-es/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Crear directorio</string>
   <string name="actionbar_mkdir">Crear directorio</string>
   <string name="actionbar_settings">Configuración</string>
   <string name="actionbar_settings">Configuración</string>
   <string name="actionbar_see_details">Detalles</string>
   <string name="actionbar_see_details">Detalles</string>
+  <string name="actionbar_share_file">Compartir</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_category_more">Más</string>
   <string name="prefs_accounts">Cuentas</string>
   <string name="prefs_accounts">Cuentas</string>
@@ -236,5 +237,6 @@
   <string name="share_link_no_support_share_api">Compartir archivos no está activado en su servidor. Sírvase contactar a su administrador de sistema.</string>
   <string name="share_link_no_support_share_api">Compartir archivos no está activado en su servidor. Sírvase contactar a su administrador de sistema.</string>
   <string name="share_link_file_no_exist">No es posible compartir este archivo o carpeta. Asegúrese de que existe.</string>
   <string name="share_link_file_no_exist">No es posible compartir este archivo o carpeta. Asegúrese de que existe.</string>
   <string name="share_link_file_error">Ocurrió un error al tratar de compartir este archivo o carpeta</string>
   <string name="share_link_file_error">Ocurrió un error al tratar de compartir este archivo o carpeta</string>
+  <string name="unshare_link_file_no_exist">No se puede dejar de compartir este archivo o carpeta. No existe.</string>
   <string name="unshare_link_file_error">Ocurrió un error al tratar de ya no compartir este archivo o carpeta</string>
   <string name="unshare_link_file_error">Ocurrió un error al tratar de ya no compartir este archivo o carpeta</string>
 </resources>
 </resources>

+ 1 - 0
res/values-et-rEE/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Loo kaust</string>
   <string name="actionbar_mkdir">Loo kaust</string>
   <string name="actionbar_settings">Seaded</string>
   <string name="actionbar_settings">Seaded</string>
   <string name="actionbar_see_details">Üksikasjad</string>
   <string name="actionbar_see_details">Üksikasjad</string>
+  <string name="actionbar_share_file">Jaga</string>
   <string name="prefs_category_general">Üldine</string>
   <string name="prefs_category_general">Üldine</string>
   <string name="prefs_category_more">Rohkem</string>
   <string name="prefs_category_more">Rohkem</string>
   <string name="prefs_accounts">Kontod</string>
   <string name="prefs_accounts">Kontod</string>

+ 1 - 0
res/values-eu/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Sortu karpeta</string>
   <string name="actionbar_mkdir">Sortu karpeta</string>
   <string name="actionbar_settings">Ezarpenak</string>
   <string name="actionbar_settings">Ezarpenak</string>
   <string name="actionbar_see_details">Xehetasunak</string>
   <string name="actionbar_see_details">Xehetasunak</string>
+  <string name="actionbar_share_file">Partekatu</string>
   <string name="prefs_category_general">Orokorra</string>
   <string name="prefs_category_general">Orokorra</string>
   <string name="prefs_category_more">Gehiago</string>
   <string name="prefs_category_more">Gehiago</string>
   <string name="prefs_accounts">Kontuak</string>
   <string name="prefs_accounts">Kontuak</string>

+ 1 - 0
res/values-fa/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">ایجاد پوشه</string>
   <string name="actionbar_mkdir">ایجاد پوشه</string>
   <string name="actionbar_settings">تنظیمات</string>
   <string name="actionbar_settings">تنظیمات</string>
   <string name="actionbar_see_details">جزئیات</string>
   <string name="actionbar_see_details">جزئیات</string>
+  <string name="actionbar_share_file">اشتراک‌گذاری</string>
   <string name="prefs_category_general">عمومی</string>
   <string name="prefs_category_general">عمومی</string>
   <string name="prefs_category_more">بیش‌تر</string>
   <string name="prefs_category_more">بیش‌تر</string>
   <string name="prefs_accounts">حساب‌ها</string>
   <string name="prefs_accounts">حساب‌ها</string>

+ 5 - 0
res/values-fi-rFI/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Luo kansio</string>
   <string name="actionbar_mkdir">Luo kansio</string>
   <string name="actionbar_settings">Asetukset</string>
   <string name="actionbar_settings">Asetukset</string>
   <string name="actionbar_see_details">Tiedot</string>
   <string name="actionbar_see_details">Tiedot</string>
+  <string name="actionbar_share_file">Jaa</string>
   <string name="prefs_category_general">Yleiset</string>
   <string name="prefs_category_general">Yleiset</string>
   <string name="prefs_category_more">Enemmän</string>
   <string name="prefs_category_more">Enemmän</string>
   <string name="prefs_accounts">Tilit</string>
   <string name="prefs_accounts">Tilit</string>
@@ -159,6 +160,7 @@
   <string name="wait_a_moment">Odota hetki</string>
   <string name="wait_a_moment">Odota hetki</string>
   <string name="filedisplay_unexpected_bad_get_content">Odottamaton ongelma; kokeile valita tiedosto toisella sovelluksella</string>
   <string name="filedisplay_unexpected_bad_get_content">Odottamaton ongelma; kokeile valita tiedosto toisella sovelluksella</string>
   <string name="filedisplay_no_file_selected">Tiedostoa ei valittu</string>
   <string name="filedisplay_no_file_selected">Tiedostoa ei valittu</string>
+  <string name="activity_chooser_title">Lähetä linkki…</string>
   <string name="oauth_check_onoff">Kirjaudu oAuth2:lla</string>
   <string name="oauth_check_onoff">Kirjaudu oAuth2:lla</string>
   <string name="oauth_login_connection">Yhdistetään oAuth2-palvelimeen…</string>
   <string name="oauth_login_connection">Yhdistetään oAuth2-palvelimeen…</string>
   <string name="ssl_validator_header">Sivuston identiteetin vahvistaminen ei onnistunut</string>
   <string name="ssl_validator_header">Sivuston identiteetin vahvistaminen ei onnistunut</string>
@@ -197,4 +199,7 @@
   <string name="failed_upload_headline_retryall_btn">yritä uudelleen kaikkia valittuja</string>
   <string name="failed_upload_headline_retryall_btn">yritä uudelleen kaikkia valittuja</string>
   <string name="failed_upload_load_more_images">Lataa lisää kuvia</string>
   <string name="failed_upload_load_more_images">Lataa lisää kuvia</string>
   <string name="failed_upload_failure_text">Virheviesti:</string>
   <string name="failed_upload_failure_text">Virheviesti:</string>
+  <string name="share_link_no_support_share_api">Valitettavasti jakamista ei ole otettu käyttöön palvelinasetuksissa. Ota yhteys ylläpitäjään.</string>
+  <string name="share_link_file_no_exist">Valitettavasti tämän tiedoston tai kansion jakaminen ei onnistu. Varmista että se on olemassa</string>
+  <string name="share_link_file_error">Virhe tiedoston tai kansion jakamista yrittäessä</string>
 </resources>
 </resources>

+ 3 - 1
res/values-fr/strings.xml

@@ -3,13 +3,14 @@
   <string name="about_android">%1$s Android App</string>
   <string name="about_android">%1$s Android App</string>
   <string name="about_version">version %1$s</string>
   <string name="about_version">version %1$s</string>
   <string name="actionbar_sync">Actualiser le compte</string>
   <string name="actionbar_sync">Actualiser le compte</string>
-  <string name="actionbar_upload">Charger</string>
+  <string name="actionbar_upload">Téléverser</string>
   <string name="actionbar_upload_from_apps">Contenu d\'une autre application</string>
   <string name="actionbar_upload_from_apps">Contenu d\'une autre application</string>
   <string name="actionbar_upload_files">Fichiers</string>
   <string name="actionbar_upload_files">Fichiers</string>
   <string name="actionbar_open_with">Ouvrir avec</string>
   <string name="actionbar_open_with">Ouvrir avec</string>
   <string name="actionbar_mkdir">Créer un répertoire</string>
   <string name="actionbar_mkdir">Créer un répertoire</string>
   <string name="actionbar_settings">Paramètres</string>
   <string name="actionbar_settings">Paramètres</string>
   <string name="actionbar_see_details">Détails</string>
   <string name="actionbar_see_details">Détails</string>
+  <string name="actionbar_share_file">Partager</string>
   <string name="prefs_category_general">Général</string>
   <string name="prefs_category_general">Général</string>
   <string name="prefs_category_more">Plus</string>
   <string name="prefs_category_more">Plus</string>
   <string name="prefs_accounts">Comptes</string>
   <string name="prefs_accounts">Comptes</string>
@@ -236,5 +237,6 @@
   <string name="share_link_no_support_share_api">Désolé, la fonctionnalité de partage n’est pas activée sur ce serveur. Veuillez contacter votre administrateur.</string>
   <string name="share_link_no_support_share_api">Désolé, la fonctionnalité de partage n’est pas activée sur ce serveur. Veuillez contacter votre administrateur.</string>
   <string name="share_link_file_no_exist">Impossible de partager ce fichier ou répertoire. Vérifiez qu’il est bien présent</string>
   <string name="share_link_file_no_exist">Impossible de partager ce fichier ou répertoire. Vérifiez qu’il est bien présent</string>
   <string name="share_link_file_error">Une erreur est survenue lors de la tentative de partage de ce fichier ou répertoire</string>
   <string name="share_link_file_error">Une erreur est survenue lors de la tentative de partage de ce fichier ou répertoire</string>
+  <string name="unshare_link_file_no_exist">Impossible d’annuler le partage de ce fichier ou répertoire : il n’existe pas.</string>
   <string name="unshare_link_file_error">Une erreur est survenue lors de la tentative d’annulation du partage de ce fichier ou répertoire</string>
   <string name="unshare_link_file_error">Une erreur est survenue lors de la tentative d’annulation du partage de ce fichier ou répertoire</string>
 </resources>
 </resources>

+ 2 - 0
res/values-gl/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Crear un directorio</string>
   <string name="actionbar_mkdir">Crear un directorio</string>
   <string name="actionbar_settings">Preferencias</string>
   <string name="actionbar_settings">Preferencias</string>
   <string name="actionbar_see_details">Detalles</string>
   <string name="actionbar_see_details">Detalles</string>
+  <string name="actionbar_share_file">Compartir</string>
   <string name="prefs_category_general">Xeral</string>
   <string name="prefs_category_general">Xeral</string>
   <string name="prefs_category_more">Máis</string>
   <string name="prefs_category_more">Máis</string>
   <string name="prefs_accounts">Contas</string>
   <string name="prefs_accounts">Contas</string>
@@ -236,5 +237,6 @@
   <string name="share_link_no_support_share_api">O seu servidor non ten activada a opción de compartir. Póñase en contacto co administrador.</string>
   <string name="share_link_no_support_share_api">O seu servidor non ten activada a opción de compartir. Póñase en contacto co administrador.</string>
   <string name="share_link_file_no_exist">Non foi posíbel compartir este ficheiro ou cartafol. Asegurese de que existe.</string>
   <string name="share_link_file_no_exist">Non foi posíbel compartir este ficheiro ou cartafol. Asegurese de que existe.</string>
   <string name="share_link_file_error">Produciuse un erro ao tentar compartir este ficheiro ou cartafol.</string>
   <string name="share_link_file_error">Produciuse un erro ao tentar compartir este ficheiro ou cartafol.</string>
+  <string name="unshare_link_file_no_exist">Non foi posíbel compartir este ficheiro ou cartafol xa que non existe.</string>
   <string name="unshare_link_file_error">Produciuse un erro ao tentar deixar de compartir este ficheiro ou cartafol</string>
   <string name="unshare_link_file_error">Produciuse un erro ao tentar deixar de compartir este ficheiro ou cartafol</string>
 </resources>
 </resources>

+ 1 - 0
res/values-he/strings.xml

@@ -6,6 +6,7 @@
   <string name="actionbar_mkdir">יצירת תיקייה</string>
   <string name="actionbar_mkdir">יצירת תיקייה</string>
   <string name="actionbar_settings">הגדרות</string>
   <string name="actionbar_settings">הגדרות</string>
   <string name="actionbar_see_details">פרטים</string>
   <string name="actionbar_see_details">פרטים</string>
+  <string name="actionbar_share_file">שיתוף</string>
   <string name="prefs_category_general">כללי</string>
   <string name="prefs_category_general">כללי</string>
   <string name="prefs_category_more">יותר</string>
   <string name="prefs_category_more">יותר</string>
   <string name="prefs_accounts">חשבונות</string>
   <string name="prefs_accounts">חשבונות</string>

+ 1 - 0
res/values-hi/strings.xml

@@ -2,6 +2,7 @@
 <resources>
 <resources>
   <string name="actionbar_upload">अपलोड </string>
   <string name="actionbar_upload">अपलोड </string>
   <string name="actionbar_settings">सेटिंग्स</string>
   <string name="actionbar_settings">सेटिंग्स</string>
+  <string name="actionbar_share_file">साझा करें</string>
   <string name="prefs_category_general">सामान्य </string>
   <string name="prefs_category_general">सामान्य </string>
   <string name="prefs_help">सहयोग</string>
   <string name="prefs_help">सहयोग</string>
   <string name="auth_username">प्रयोक्ता का नाम</string>
   <string name="auth_username">प्रयोक्ता का नाम</string>

+ 1 - 0
res/values-hr/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">Datoteke</string>
   <string name="actionbar_upload_files">Datoteke</string>
   <string name="actionbar_mkdir">Kreiraj direktorij</string>
   <string name="actionbar_mkdir">Kreiraj direktorij</string>
   <string name="actionbar_settings">Postavke</string>
   <string name="actionbar_settings">Postavke</string>
+  <string name="actionbar_share_file">Podijeli</string>
   <string name="prefs_category_general">Općenito</string>
   <string name="prefs_category_general">Općenito</string>
   <string name="prefs_category_more">više</string>
   <string name="prefs_category_more">više</string>
   <string name="prefs_accounts">Korisnićki računi</string>
   <string name="prefs_accounts">Korisnićki računi</string>

+ 1 - 0
res/values-hu-rHU/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Mappa létrehozása</string>
   <string name="actionbar_mkdir">Mappa létrehozása</string>
   <string name="actionbar_settings">Beállítások</string>
   <string name="actionbar_settings">Beállítások</string>
   <string name="actionbar_see_details">Részletek</string>
   <string name="actionbar_see_details">Részletek</string>
+  <string name="actionbar_share_file">Megosztás</string>
   <string name="prefs_category_general">Általános</string>
   <string name="prefs_category_general">Általános</string>
   <string name="prefs_category_more">Több</string>
   <string name="prefs_category_more">Több</string>
   <string name="prefs_accounts">Fiókok</string>
   <string name="prefs_accounts">Fiókok</string>

+ 1 - 0
res/values-ia/strings.xml

@@ -3,6 +3,7 @@
   <string name="actionbar_upload">Incargar</string>
   <string name="actionbar_upload">Incargar</string>
   <string name="actionbar_upload_files">Files</string>
   <string name="actionbar_upload_files">Files</string>
   <string name="actionbar_settings">Configurationes</string>
   <string name="actionbar_settings">Configurationes</string>
+  <string name="actionbar_share_file">Compartir</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Plus</string>
   <string name="prefs_category_more">Plus</string>
   <string name="prefs_help">Adjuta</string>
   <string name="prefs_help">Adjuta</string>

+ 1 - 0
res/values-id/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Buat folder</string>
   <string name="actionbar_mkdir">Buat folder</string>
   <string name="actionbar_settings">pengaturan</string>
   <string name="actionbar_settings">pengaturan</string>
   <string name="actionbar_see_details">Rincian</string>
   <string name="actionbar_see_details">Rincian</string>
+  <string name="actionbar_share_file">Bagikan</string>
   <string name="prefs_category_general">umum</string>
   <string name="prefs_category_general">umum</string>
   <string name="prefs_category_more">Lainnya</string>
   <string name="prefs_category_more">Lainnya</string>
   <string name="prefs_accounts">Akun</string>
   <string name="prefs_accounts">Akun</string>

+ 1 - 0
res/values-is/strings.xml

@@ -3,6 +3,7 @@
   <string name="actionbar_upload">Senda inn</string>
   <string name="actionbar_upload">Senda inn</string>
   <string name="actionbar_upload_files">Skrár</string>
   <string name="actionbar_upload_files">Skrár</string>
   <string name="actionbar_settings">Stillingar</string>
   <string name="actionbar_settings">Stillingar</string>
+  <string name="actionbar_share_file">Deila</string>
   <string name="prefs_category_more">Meira</string>
   <string name="prefs_category_more">Meira</string>
   <string name="prefs_help">Hjálp</string>
   <string name="prefs_help">Hjálp</string>
   <string name="auth_username">Notendanafn</string>
   <string name="auth_username">Notendanafn</string>

+ 1 - 0
res/values-it/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Crea cartella</string>
   <string name="actionbar_mkdir">Crea cartella</string>
   <string name="actionbar_settings">Impostazioni</string>
   <string name="actionbar_settings">Impostazioni</string>
   <string name="actionbar_see_details">Dettagli</string>
   <string name="actionbar_see_details">Dettagli</string>
+  <string name="actionbar_share_file">Condividi</string>
   <string name="prefs_category_general">Generale</string>
   <string name="prefs_category_general">Generale</string>
   <string name="prefs_category_more">Altro</string>
   <string name="prefs_category_more">Altro</string>
   <string name="prefs_accounts">Account</string>
   <string name="prefs_accounts">Account</string>

+ 7 - 0
res/values-ja-rJP/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">ディレクトリを作成</string>
   <string name="actionbar_mkdir">ディレクトリを作成</string>
   <string name="actionbar_settings">設定</string>
   <string name="actionbar_settings">設定</string>
   <string name="actionbar_see_details">詳細</string>
   <string name="actionbar_see_details">詳細</string>
+  <string name="actionbar_share_file">共有</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_category_more">もっと見る</string>
   <string name="prefs_category_more">もっと見る</string>
   <string name="prefs_accounts">アカウント</string>
   <string name="prefs_accounts">アカウント</string>
@@ -56,6 +57,7 @@
   <string name="filedetails_sync_file">ファイルを同期</string>
   <string name="filedetails_sync_file">ファイルを同期</string>
   <string name="filedetails_renamed_in_upload_msg">アップロード中にファイル名を %1$s に変更しました</string>
   <string name="filedetails_renamed_in_upload_msg">アップロード中にファイル名を %1$s に変更しました</string>
   <string name="action_share_file">URLで共有</string>
   <string name="action_share_file">URLで共有</string>
+  <string name="action_unshare_file">未共有のリンク</string>
   <string name="common_yes">はい</string>
   <string name="common_yes">はい</string>
   <string name="common_no">いいえ</string>
   <string name="common_no">いいえ</string>
   <string name="common_ok">OK</string>
   <string name="common_ok">OK</string>
@@ -180,6 +182,7 @@
   <string name="wait_a_moment">しばらくお待ちください</string>
   <string name="wait_a_moment">しばらくお待ちください</string>
   <string name="filedisplay_unexpected_bad_get_content">予期せぬ問題;他のアプリでファイルを選択してみてください。</string>
   <string name="filedisplay_unexpected_bad_get_content">予期せぬ問題;他のアプリでファイルを選択してみてください。</string>
   <string name="filedisplay_no_file_selected">ファイルは選択されていません</string>
   <string name="filedisplay_no_file_selected">ファイルは選択されていません</string>
+  <string name="activity_chooser_title">リンクを送信…</string>
   <string name="oauth_check_onoff">oAuth2でログイン</string>
   <string name="oauth_check_onoff">oAuth2でログイン</string>
   <string name="oauth_login_connection">oAuth2サーバーに接続中...</string>
   <string name="oauth_login_connection">oAuth2サーバーに接続中...</string>
   <string name="ssl_validator_header">サイトの識別子を確認できませんでした</string>
   <string name="ssl_validator_header">サイトの識別子を確認できませんでした</string>
@@ -231,4 +234,8 @@
   <string name="failed_upload_retry_do_nothing_text">オンラインでなく、インスタントアップロードのために何もしません</string>
   <string name="failed_upload_retry_do_nothing_text">オンラインでなく、インスタントアップロードのために何もしません</string>
   <string name="failed_upload_failure_text">失敗メッセージ:</string>
   <string name="failed_upload_failure_text">失敗メッセージ:</string>
   <string name="failed_upload_quota_exceeded_text">サーバー設定を確認してください。クォータサイズを超えている可能性があります。</string>
   <string name="failed_upload_quota_exceeded_text">サーバー設定を確認してください。クォータサイズを超えている可能性があります。</string>
+  <string name="share_link_no_support_share_api">すみませんが、サーバーで共有が有効になっていません。管理者に連絡してください。</string>
+  <string name="share_link_file_no_exist">このファイルまたはフォルダーは共有できません。存在しているか確認してください。</string>
+  <string name="share_link_file_error">このファイルまたはフォルダーを共有する際にエラーが発生しました</string>
+  <string name="unshare_link_file_error">このファイルまたはフォルダーの共有を解除する際にエラーが発生しました</string>
 </resources>
 </resources>

+ 1 - 0
res/values-ka-rGE/strings.xml

@@ -5,6 +5,7 @@
   <string name="actionbar_upload_files">ფაილები</string>
   <string name="actionbar_upload_files">ფაილები</string>
   <string name="actionbar_mkdir">დირექტორიის შექმნა</string>
   <string name="actionbar_mkdir">დირექტორიის შექმნა</string>
   <string name="actionbar_settings">პარამეტრები</string>
   <string name="actionbar_settings">პარამეტრები</string>
+  <string name="actionbar_share_file">გაზიარება</string>
   <string name="prefs_category_general">ზოგადი</string>
   <string name="prefs_category_general">ზოგადი</string>
   <string name="prefs_category_more">უფრო მეტი</string>
   <string name="prefs_category_more">უფრო მეტი</string>
   <string name="prefs_accounts">ანგარიში</string>
   <string name="prefs_accounts">ანგარიში</string>

+ 1 - 0
res/values-ko/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">디렉터리 만들기</string>
   <string name="actionbar_mkdir">디렉터리 만들기</string>
   <string name="actionbar_settings">설정</string>
   <string name="actionbar_settings">설정</string>
   <string name="actionbar_see_details">세부내용</string>
   <string name="actionbar_see_details">세부내용</string>
+  <string name="actionbar_share_file">공유</string>
   <string name="prefs_category_general">일반</string>
   <string name="prefs_category_general">일반</string>
   <string name="prefs_category_more">더 중요함</string>
   <string name="prefs_category_more">더 중요함</string>
   <string name="prefs_accounts">계정</string>
   <string name="prefs_accounts">계정</string>

+ 1 - 0
res/values-ku-rIQ/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">په‌ڕگەکان</string>
   <string name="actionbar_upload_files">په‌ڕگەکان</string>
   <string name="actionbar_mkdir">درووستکردنى بوخچە</string>
   <string name="actionbar_mkdir">درووستکردنى بوخچە</string>
   <string name="actionbar_settings">ده‌ستكاری</string>
   <string name="actionbar_settings">ده‌ستكاری</string>
+  <string name="actionbar_share_file">هاوبەشی کردن</string>
   <string name="prefs_category_general">گشتی</string>
   <string name="prefs_category_general">گشتی</string>
   <string name="prefs_accounts">هەژمارەکان</string>
   <string name="prefs_accounts">هەژمارەکان</string>
   <string name="prefs_help">یارمەتی</string>
   <string name="prefs_help">یارمەتی</string>

+ 1 - 0
res/values-lb/strings.xml

@@ -7,6 +7,7 @@
   <string name="actionbar_mkdir">Dossier erstellen</string>
   <string name="actionbar_mkdir">Dossier erstellen</string>
   <string name="actionbar_settings">Astellungen</string>
   <string name="actionbar_settings">Astellungen</string>
   <string name="actionbar_see_details">Detailer</string>
   <string name="actionbar_see_details">Detailer</string>
+  <string name="actionbar_share_file">Deelen</string>
   <string name="prefs_category_general">Allgemeng</string>
   <string name="prefs_category_general">Allgemeng</string>
   <string name="prefs_category_more">Méi</string>
   <string name="prefs_category_more">Méi</string>
   <string name="prefs_accounts">Accounten</string>
   <string name="prefs_accounts">Accounten</string>

+ 1 - 0
res/values-lt-rLT/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Kurti aplanką</string>
   <string name="actionbar_mkdir">Kurti aplanką</string>
   <string name="actionbar_settings">Nustatymai</string>
   <string name="actionbar_settings">Nustatymai</string>
   <string name="actionbar_see_details">Informacija</string>
   <string name="actionbar_see_details">Informacija</string>
+  <string name="actionbar_share_file">Dalintis</string>
   <string name="prefs_category_general">Bendras</string>
   <string name="prefs_category_general">Bendras</string>
   <string name="prefs_category_more">Daugiau</string>
   <string name="prefs_category_more">Daugiau</string>
   <string name="prefs_accounts">Paskyros</string>
   <string name="prefs_accounts">Paskyros</string>

+ 1 - 0
res/values-lv/strings.xml

@@ -5,6 +5,7 @@
   <string name="actionbar_upload_files">Datnes</string>
   <string name="actionbar_upload_files">Datnes</string>
   <string name="actionbar_mkdir">Izveidot direktoriju</string>
   <string name="actionbar_mkdir">Izveidot direktoriju</string>
   <string name="actionbar_settings">Iestatījumi</string>
   <string name="actionbar_settings">Iestatījumi</string>
+  <string name="actionbar_share_file">Dalīties</string>
   <string name="prefs_category_general">Vispārīgi</string>
   <string name="prefs_category_general">Vispārīgi</string>
   <string name="prefs_category_more">Vairāk</string>
   <string name="prefs_category_more">Vairāk</string>
   <string name="prefs_accounts">Konti</string>
   <string name="prefs_accounts">Konti</string>

+ 1 - 0
res/values-mk/strings.xml

@@ -6,6 +6,7 @@
   <string name="actionbar_mkdir">Создади папка</string>
   <string name="actionbar_mkdir">Создади папка</string>
   <string name="actionbar_settings">Параметри</string>
   <string name="actionbar_settings">Параметри</string>
   <string name="actionbar_see_details">Детали:</string>
   <string name="actionbar_see_details">Детали:</string>
+  <string name="actionbar_share_file">Сподели</string>
   <string name="prefs_category_general">Општо</string>
   <string name="prefs_category_general">Општо</string>
   <string name="prefs_category_more">Повеќе</string>
   <string name="prefs_category_more">Повеќе</string>
   <string name="prefs_accounts">Сметки</string>
   <string name="prefs_accounts">Сметки</string>

+ 1 - 0
res/values-ms-rMY/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">Fail-fail</string>
   <string name="actionbar_upload_files">Fail-fail</string>
   <string name="actionbar_mkdir">Bina direktori</string>
   <string name="actionbar_mkdir">Bina direktori</string>
   <string name="actionbar_settings">Set</string>
   <string name="actionbar_settings">Set</string>
+  <string name="actionbar_share_file">Kongsi</string>
   <string name="prefs_category_general">Umum</string>
   <string name="prefs_category_general">Umum</string>
   <string name="prefs_category_more">Lanjutan</string>
   <string name="prefs_category_more">Lanjutan</string>
   <string name="prefs_accounts">Akaun</string>
   <string name="prefs_accounts">Akaun</string>

+ 1 - 0
res/values-nb-rNO/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Opprett katalog</string>
   <string name="actionbar_mkdir">Opprett katalog</string>
   <string name="actionbar_settings">Innstillinger</string>
   <string name="actionbar_settings">Innstillinger</string>
   <string name="actionbar_see_details">Detaljer</string>
   <string name="actionbar_see_details">Detaljer</string>
+  <string name="actionbar_share_file">Del</string>
   <string name="prefs_category_general">Generelt</string>
   <string name="prefs_category_general">Generelt</string>
   <string name="prefs_category_more">Mer</string>
   <string name="prefs_category_more">Mer</string>
   <string name="prefs_accounts">Kontoer</string>
   <string name="prefs_accounts">Kontoer</string>

+ 1 - 0
res/values-nl/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Creëer map</string>
   <string name="actionbar_mkdir">Creëer map</string>
   <string name="actionbar_settings">Instellingen</string>
   <string name="actionbar_settings">Instellingen</string>
   <string name="actionbar_see_details">Details</string>
   <string name="actionbar_see_details">Details</string>
+  <string name="actionbar_share_file">Delen</string>
   <string name="prefs_category_general">Algemeen</string>
   <string name="prefs_category_general">Algemeen</string>
   <string name="prefs_category_more">Meer</string>
   <string name="prefs_category_more">Meer</string>
   <string name="prefs_accounts">Accounts</string>
   <string name="prefs_accounts">Accounts</string>

+ 1 - 0
res/values-nn-rNO/strings.xml

@@ -5,6 +5,7 @@
   <string name="actionbar_upload_files">Filer</string>
   <string name="actionbar_upload_files">Filer</string>
   <string name="actionbar_mkdir">Opprett mappe</string>
   <string name="actionbar_mkdir">Opprett mappe</string>
   <string name="actionbar_settings">Innstillingar</string>
   <string name="actionbar_settings">Innstillingar</string>
+  <string name="actionbar_share_file">Del</string>
   <string name="prefs_category_general">Generelt</string>
   <string name="prefs_category_general">Generelt</string>
   <string name="prefs_category_more">Meir</string>
   <string name="prefs_category_more">Meir</string>
   <string name="prefs_accounts">Kontoar</string>
   <string name="prefs_accounts">Kontoar</string>

+ 1 - 0
res/values-oc/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">Fichièrs</string>
   <string name="actionbar_upload_files">Fichièrs</string>
   <string name="actionbar_mkdir">Crea un repertòri</string>
   <string name="actionbar_mkdir">Crea un repertòri</string>
   <string name="actionbar_settings">Configuracion</string>
   <string name="actionbar_settings">Configuracion</string>
+  <string name="actionbar_share_file">Parteja</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Mai d\'aquò</string>
   <string name="prefs_category_more">Mai d\'aquò</string>
   <string name="prefs_accounts">Comptes</string>
   <string name="prefs_accounts">Comptes</string>

+ 1 - 0
res/values-pa/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">ਡਾਇਰੈਕਟਰੀ ਬਣਾਓ</string>
   <string name="actionbar_mkdir">ਡਾਇਰੈਕਟਰੀ ਬਣਾਓ</string>
   <string name="actionbar_settings">ਸੈਟਿੰਗ</string>
   <string name="actionbar_settings">ਸੈਟਿੰਗ</string>
   <string name="actionbar_see_details">ਵੇਰਵ</string>
   <string name="actionbar_see_details">ਵੇਰਵ</string>
+  <string name="actionbar_share_file">ਸਾਂਝਾ ਕਰੋ</string>
   <string name="prefs_category_general">ਆਮ</string>
   <string name="prefs_category_general">ਆਮ</string>
   <string name="prefs_accounts">ਅਕਾਊਂਟ</string>
   <string name="prefs_accounts">ਅਕਾਊਂਟ</string>
   <string name="prefs_log_title">ਲਾਗ ਰੱਖਣਾ ਚਾਲੂ</string>
   <string name="prefs_log_title">ਲਾਗ ਰੱਖਣਾ ਚਾਲੂ</string>

+ 2 - 0
res/values-pl/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Nowy katalog</string>
   <string name="actionbar_mkdir">Nowy katalog</string>
   <string name="actionbar_settings">Ustawienia</string>
   <string name="actionbar_settings">Ustawienia</string>
   <string name="actionbar_see_details">Szczegóły</string>
   <string name="actionbar_see_details">Szczegóły</string>
+  <string name="actionbar_share_file">Udostępnij</string>
   <string name="prefs_category_general">Ogólne</string>
   <string name="prefs_category_general">Ogólne</string>
   <string name="prefs_category_more">Więcej</string>
   <string name="prefs_category_more">Więcej</string>
   <string name="prefs_accounts">Konta</string>
   <string name="prefs_accounts">Konta</string>
@@ -236,5 +237,6 @@
   <string name="share_link_no_support_share_api">Przepraszamy, udostępnianie jest wyłączone na twoim serwerze. Skontaktuj się z twoim administratorem.</string>
   <string name="share_link_no_support_share_api">Przepraszamy, udostępnianie jest wyłączone na twoim serwerze. Skontaktuj się z twoim administratorem.</string>
   <string name="share_link_file_no_exist">Brak możliwości udostępnienia tego pliku lub folderu. Upewnij się, że istnieje.</string>
   <string name="share_link_file_no_exist">Brak możliwości udostępnienia tego pliku lub folderu. Upewnij się, że istnieje.</string>
   <string name="share_link_file_error">Wystąpił błąd podczas udostępniania tego pliku lub folderu.</string>
   <string name="share_link_file_error">Wystąpił błąd podczas udostępniania tego pliku lub folderu.</string>
+  <string name="unshare_link_file_no_exist">Nie można anulować udostępniania tego pliku lub folderu. Jeśli nie istnieje.</string>
   <string name="unshare_link_file_error">Wystąpił błąd podczas anulowania udostępniania tego pliku lub folderu.</string>
   <string name="unshare_link_file_error">Wystąpił błąd podczas anulowania udostępniania tego pliku lub folderu.</string>
 </resources>
 </resources>

+ 1 - 0
res/values-pt-rBR/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Criar pasta</string>
   <string name="actionbar_mkdir">Criar pasta</string>
   <string name="actionbar_settings">Ajustes</string>
   <string name="actionbar_settings">Ajustes</string>
   <string name="actionbar_see_details">Detalhes</string>
   <string name="actionbar_see_details">Detalhes</string>
+  <string name="actionbar_share_file">Compartilhar</string>
   <string name="prefs_category_general">Geral</string>
   <string name="prefs_category_general">Geral</string>
   <string name="prefs_category_more">Mais</string>
   <string name="prefs_category_more">Mais</string>
   <string name="prefs_accounts">Contas</string>
   <string name="prefs_accounts">Contas</string>

+ 1 - 0
res/values-pt-rPT/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Criar pasta</string>
   <string name="actionbar_mkdir">Criar pasta</string>
   <string name="actionbar_settings">Definições</string>
   <string name="actionbar_settings">Definições</string>
   <string name="actionbar_see_details">Detalhes</string>
   <string name="actionbar_see_details">Detalhes</string>
+  <string name="actionbar_share_file">Partilhar</string>
   <string name="prefs_category_general">Geral</string>
   <string name="prefs_category_general">Geral</string>
   <string name="prefs_category_more">Mais</string>
   <string name="prefs_category_more">Mais</string>
   <string name="prefs_accounts">Contas</string>
   <string name="prefs_accounts">Contas</string>

+ 1 - 0
res/values-ro/strings.xml

@@ -5,6 +5,7 @@
   <string name="actionbar_upload_files">Fișiere</string>
   <string name="actionbar_upload_files">Fișiere</string>
   <string name="actionbar_mkdir">Creare director</string>
   <string name="actionbar_mkdir">Creare director</string>
   <string name="actionbar_settings">Setări</string>
   <string name="actionbar_settings">Setări</string>
+  <string name="actionbar_share_file">a imparti</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_general">General</string>
   <string name="prefs_category_more">Mai mult</string>
   <string name="prefs_category_more">Mai mult</string>
   <string name="prefs_accounts">Conturi</string>
   <string name="prefs_accounts">Conturi</string>

+ 1 - 0
res/values-ru/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Создать каталог</string>
   <string name="actionbar_mkdir">Создать каталог</string>
   <string name="actionbar_settings">Настройки</string>
   <string name="actionbar_settings">Настройки</string>
   <string name="actionbar_see_details">Подробно</string>
   <string name="actionbar_see_details">Подробно</string>
+  <string name="actionbar_share_file">Открыть доступ</string>
   <string name="prefs_category_general">Основные</string>
   <string name="prefs_category_general">Основные</string>
   <string name="prefs_category_more">Больше</string>
   <string name="prefs_category_more">Больше</string>
   <string name="prefs_accounts">Учётные записи</string>
   <string name="prefs_accounts">Учётные записи</string>

+ 1 - 0
res/values-si-rLK/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">ගොනු</string>
   <string name="actionbar_upload_files">ගොනු</string>
   <string name="actionbar_mkdir">ඩිරෙක්ටරිය සාදන්න</string>
   <string name="actionbar_mkdir">ඩිරෙක්ටරිය සාදන්න</string>
   <string name="actionbar_settings">සිටුවම්</string>
   <string name="actionbar_settings">සිටුවම්</string>
+  <string name="actionbar_share_file">බෙදා හදා ගන්න</string>
   <string name="prefs_category_general">සාමාන්‍යයෙන්</string>
   <string name="prefs_category_general">සාමාන්‍යයෙන්</string>
   <string name="prefs_category_more">වැඩි</string>
   <string name="prefs_category_more">වැඩි</string>
   <string name="prefs_accounts">ගිණුම්</string>
   <string name="prefs_accounts">ගිණුම්</string>

+ 1 - 0
res/values-sk-rSK/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Vytvor priečinok</string>
   <string name="actionbar_mkdir">Vytvor priečinok</string>
   <string name="actionbar_settings">Nastavenia</string>
   <string name="actionbar_settings">Nastavenia</string>
   <string name="actionbar_see_details">Podrobnosti</string>
   <string name="actionbar_see_details">Podrobnosti</string>
+  <string name="actionbar_share_file">Zdieľať</string>
   <string name="prefs_category_general">Všeobecné</string>
   <string name="prefs_category_general">Všeobecné</string>
   <string name="prefs_category_more">Viac</string>
   <string name="prefs_category_more">Viac</string>
   <string name="prefs_accounts">Účty</string>
   <string name="prefs_accounts">Účty</string>

+ 1 - 0
res/values-sk/strings.xml

@@ -1,6 +1,7 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
 <resources>
   <string name="actionbar_settings">Nastavenia</string>
   <string name="actionbar_settings">Nastavenia</string>
+  <string name="actionbar_share_file">Zdieľať</string>
   <string name="prefs_category_general">Všeobecné</string>
   <string name="prefs_category_general">Všeobecné</string>
   <string name="filedetails_download">Stiahnuť</string>
   <string name="filedetails_download">Stiahnuť</string>
   <string name="common_cancel">Zrušiť</string>
   <string name="common_cancel">Zrušiť</string>

+ 2 - 0
res/values-sl/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Ustvari mapo</string>
   <string name="actionbar_mkdir">Ustvari mapo</string>
   <string name="actionbar_settings">Nastavitve</string>
   <string name="actionbar_settings">Nastavitve</string>
   <string name="actionbar_see_details">Podrobnosti</string>
   <string name="actionbar_see_details">Podrobnosti</string>
+  <string name="actionbar_share_file">Souporaba</string>
   <string name="prefs_category_general">Splošno</string>
   <string name="prefs_category_general">Splošno</string>
   <string name="prefs_category_more">Več</string>
   <string name="prefs_category_more">Več</string>
   <string name="prefs_accounts">Računi</string>
   <string name="prefs_accounts">Računi</string>
@@ -233,6 +234,7 @@
   <string name="failed_upload_retry_do_nothing_text">ne pošlji takoj, saj je povezava v omrežje ni dejavna</string>
   <string name="failed_upload_retry_do_nothing_text">ne pošlji takoj, saj je povezava v omrežje ni dejavna</string>
   <string name="failed_upload_failure_text">Sporočilo o napaki:</string>
   <string name="failed_upload_failure_text">Sporočilo o napaki:</string>
   <string name="failed_upload_quota_exceeded_text">Preverite nastavitve strežnika. Morda je presežena vrednost količinske omejitve.</string>
   <string name="failed_upload_quota_exceeded_text">Preverite nastavitve strežnika. Morda je presežena vrednost količinske omejitve.</string>
+  <string name="share_link_no_support_share_api">Souporaba je na strežniku onemogočena. Možnost lahko spreminjajo le uporabniki s skrbniškimi dovoljenji.</string>
   <string name="share_link_file_no_exist">Ni mogoče omogočiti souporabe te datoteke ali mape. Prepričajte se, da obstaja ...</string>
   <string name="share_link_file_no_exist">Ni mogoče omogočiti souporabe te datoteke ali mape. Prepričajte se, da obstaja ...</string>
   <string name="share_link_file_error">Prišlo je do napake med poskusom omogočanja souporabe te datoteke ali mape</string>
   <string name="share_link_file_error">Prišlo je do napake med poskusom omogočanja souporabe te datoteke ali mape</string>
   <string name="unshare_link_file_error">Prišlo je do napake med poskusom odstranjevanja souporabe te datoteke ali mape</string>
   <string name="unshare_link_file_error">Prišlo je do napake med poskusom odstranjevanja souporabe te datoteke ali mape</string>

+ 1 - 0
res/values-sq/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">Skedarët</string>
   <string name="actionbar_upload_files">Skedarët</string>
   <string name="actionbar_mkdir">Krijo kartelë</string>
   <string name="actionbar_mkdir">Krijo kartelë</string>
   <string name="actionbar_settings">Parametrat</string>
   <string name="actionbar_settings">Parametrat</string>
+  <string name="actionbar_share_file">Ndaj</string>
   <string name="prefs_category_general">Përgjithshme</string>
   <string name="prefs_category_general">Përgjithshme</string>
   <string name="prefs_category_more">Më tepër</string>
   <string name="prefs_category_more">Më tepër</string>
   <string name="prefs_accounts">Llogarit</string>
   <string name="prefs_accounts">Llogarit</string>

+ 1 - 0
res/values-sr-rSP/strings.xml

@@ -5,6 +5,7 @@
   <string name="actionbar_mkdir">Novi folder</string>
   <string name="actionbar_mkdir">Novi folder</string>
   <string name="actionbar_settings">Podešavanja</string>
   <string name="actionbar_settings">Podešavanja</string>
   <string name="actionbar_see_details">Detaljnije</string>
   <string name="actionbar_see_details">Detaljnije</string>
+  <string name="actionbar_share_file">Podeli</string>
   <string name="prefs_category_general">Opšte</string>
   <string name="prefs_category_general">Opšte</string>
   <string name="prefs_accounts">Nalozi</string>
   <string name="prefs_accounts">Nalozi</string>
   <string name="prefs_manage_accounts">Upravljaj nalozima</string>
   <string name="prefs_manage_accounts">Upravljaj nalozima</string>

+ 1 - 0
res/values-sr/strings.xml

@@ -5,6 +5,7 @@
   <string name="actionbar_upload_files">Датотеке</string>
   <string name="actionbar_upload_files">Датотеке</string>
   <string name="actionbar_mkdir">Направи фасциклу</string>
   <string name="actionbar_mkdir">Направи фасциклу</string>
   <string name="actionbar_settings">Поставке</string>
   <string name="actionbar_settings">Поставке</string>
+  <string name="actionbar_share_file">Дели</string>
   <string name="prefs_category_general">Опште</string>
   <string name="prefs_category_general">Опште</string>
   <string name="prefs_category_more">Више</string>
   <string name="prefs_category_more">Више</string>
   <string name="prefs_accounts">Налози</string>
   <string name="prefs_accounts">Налози</string>

+ 1 - 0
res/values-sv/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Skapa mapp</string>
   <string name="actionbar_mkdir">Skapa mapp</string>
   <string name="actionbar_settings">Inställningar</string>
   <string name="actionbar_settings">Inställningar</string>
   <string name="actionbar_see_details">Detaljer</string>
   <string name="actionbar_see_details">Detaljer</string>
+  <string name="actionbar_share_file">Dela</string>
   <string name="prefs_category_general">Allmänt</string>
   <string name="prefs_category_general">Allmänt</string>
   <string name="prefs_category_more">Mer</string>
   <string name="prefs_category_more">Mer</string>
   <string name="prefs_accounts">Konton</string>
   <string name="prefs_accounts">Konton</string>

+ 1 - 0
res/values-ta-rLK/strings.xml

@@ -6,6 +6,7 @@
   <string name="actionbar_mkdir">அடைவை உருவாக்குக</string>
   <string name="actionbar_mkdir">அடைவை உருவாக்குக</string>
   <string name="actionbar_settings">அமைப்புகள்</string>
   <string name="actionbar_settings">அமைப்புகள்</string>
   <string name="actionbar_see_details">விவரங்கள்</string>
   <string name="actionbar_see_details">விவரங்கள்</string>
+  <string name="actionbar_share_file">பகிர்வு</string>
   <string name="prefs_category_general">பொதுவான</string>
   <string name="prefs_category_general">பொதுவான</string>
   <string name="prefs_category_more">மேலதிக</string>
   <string name="prefs_category_more">மேலதிக</string>
   <string name="prefs_accounts">கணக்குகள்</string>
   <string name="prefs_accounts">கணக்குகள்</string>

+ 2 - 0
res/values-th-rTH/strings.xml

@@ -6,6 +6,7 @@
   <string name="actionbar_mkdir">สร้างไดเร็กทอรี่</string>
   <string name="actionbar_mkdir">สร้างไดเร็กทอรี่</string>
   <string name="actionbar_settings">ตั้งค่า</string>
   <string name="actionbar_settings">ตั้งค่า</string>
   <string name="actionbar_see_details">รายละเอียด</string>
   <string name="actionbar_see_details">รายละเอียด</string>
+  <string name="actionbar_share_file">แชร์</string>
   <string name="prefs_category_general">ทั่วไป</string>
   <string name="prefs_category_general">ทั่วไป</string>
   <string name="prefs_category_more">มาก</string>
   <string name="prefs_category_more">มาก</string>
   <string name="prefs_accounts">บัญชี</string>
   <string name="prefs_accounts">บัญชี</string>
@@ -44,6 +45,7 @@
   <string name="common_cancel">ยกเลิก</string>
   <string name="common_cancel">ยกเลิก</string>
   <string name="common_save_exit">บันทึก &amp; ออก</string>
   <string name="common_save_exit">บันทึก &amp; ออก</string>
   <string name="common_error">ข้อผิดพลาด</string>
   <string name="common_error">ข้อผิดพลาด</string>
+  <string name="common_error_unknown">ข้อผิดพลาดที่ไม่ทราบสาเหตุ</string>
   <string name="about_title">เกี่ยวกับเรา</string>
   <string name="about_title">เกี่ยวกับเรา</string>
   <string name="change_password">เปลี่ยนรหัสผ่าน</string>
   <string name="change_password">เปลี่ยนรหัสผ่าน</string>
   <string name="delete_account">ลบบัญชี</string>
   <string name="delete_account">ลบบัญชี</string>

+ 1 - 0
res/values-tr/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Dizin oluştur</string>
   <string name="actionbar_mkdir">Dizin oluştur</string>
   <string name="actionbar_settings">Ayarlar</string>
   <string name="actionbar_settings">Ayarlar</string>
   <string name="actionbar_see_details">Detaylar</string>
   <string name="actionbar_see_details">Detaylar</string>
+  <string name="actionbar_share_file">Paylaş</string>
   <string name="prefs_category_general">Genel</string>
   <string name="prefs_category_general">Genel</string>
   <string name="prefs_category_more">Daha fazla</string>
   <string name="prefs_category_more">Daha fazla</string>
   <string name="prefs_accounts">Hesaplar</string>
   <string name="prefs_accounts">Hesaplar</string>

+ 1 - 0
res/values-ug/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">ھۆججەتلەر</string>
   <string name="actionbar_upload_files">ھۆججەتلەر</string>
   <string name="actionbar_mkdir">مۇندەرىجە قۇر</string>
   <string name="actionbar_mkdir">مۇندەرىجە قۇر</string>
   <string name="actionbar_settings">تەڭشەكلەر</string>
   <string name="actionbar_settings">تەڭشەكلەر</string>
+  <string name="actionbar_share_file">ھەمبەھىر</string>
   <string name="prefs_category_general">ئادەتتىكى</string>
   <string name="prefs_category_general">ئادەتتىكى</string>
   <string name="prefs_category_more">تېخىمۇ كۆپ</string>
   <string name="prefs_category_more">تېخىمۇ كۆپ</string>
   <string name="prefs_accounts">ھېساباتلار</string>
   <string name="prefs_accounts">ھېساباتلار</string>

+ 1 - 0
res/values-uk/strings.xml

@@ -6,6 +6,7 @@
   <string name="actionbar_mkdir">Створити теку</string>
   <string name="actionbar_mkdir">Створити теку</string>
   <string name="actionbar_settings">Налаштування</string>
   <string name="actionbar_settings">Налаштування</string>
   <string name="actionbar_see_details">Деталі</string>
   <string name="actionbar_see_details">Деталі</string>
+  <string name="actionbar_share_file">Поділитися</string>
   <string name="prefs_category_general">Основне</string>
   <string name="prefs_category_general">Основне</string>
   <string name="prefs_category_more">Більше</string>
   <string name="prefs_category_more">Більше</string>
   <string name="prefs_accounts">Облікові записи</string>
   <string name="prefs_accounts">Облікові записи</string>

+ 8 - 0
res/values-vi/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">Tạo thư mục</string>
   <string name="actionbar_mkdir">Tạo thư mục</string>
   <string name="actionbar_settings">Cài đặt</string>
   <string name="actionbar_settings">Cài đặt</string>
   <string name="actionbar_see_details">Chi tiết</string>
   <string name="actionbar_see_details">Chi tiết</string>
+  <string name="actionbar_share_file">Chia sẻ</string>
   <string name="prefs_category_general">Tổng hợp</string>
   <string name="prefs_category_general">Tổng hợp</string>
   <string name="prefs_category_more">hơn</string>
   <string name="prefs_category_more">hơn</string>
   <string name="prefs_accounts">Tài khoản</string>
   <string name="prefs_accounts">Tài khoản</string>
@@ -56,6 +57,7 @@
   <string name="filedetails_sync_file">Cập nhật lại tập tin</string>
   <string name="filedetails_sync_file">Cập nhật lại tập tin</string>
   <string name="filedetails_renamed_in_upload_msg">Tập tin đã bị đổi tên thành %1$s trong quá trình tải lên</string>
   <string name="filedetails_renamed_in_upload_msg">Tập tin đã bị đổi tên thành %1$s trong quá trình tải lên</string>
   <string name="action_share_file">Chia sẻ liên kết</string>
   <string name="action_share_file">Chia sẻ liên kết</string>
+  <string name="action_unshare_file">Liên kết không chia sẻ</string>
   <string name="common_yes">Yes</string>
   <string name="common_yes">Yes</string>
   <string name="common_no">Không</string>
   <string name="common_no">Không</string>
   <string name="common_ok">Chấp nhận</string>
   <string name="common_ok">Chấp nhận</string>
@@ -180,6 +182,7 @@
   <string name="wait_a_moment">Chờ một lúc</string>
   <string name="wait_a_moment">Chờ một lúc</string>
   <string name="filedisplay_unexpected_bad_get_content">Vấn đề bất ngờ ; hãy thử ứng dụng khác để chọn tập tin</string>
   <string name="filedisplay_unexpected_bad_get_content">Vấn đề bất ngờ ; hãy thử ứng dụng khác để chọn tập tin</string>
   <string name="filedisplay_no_file_selected">Không có tập tin nào được chọn</string>
   <string name="filedisplay_no_file_selected">Không có tập tin nào được chọn</string>
+  <string name="activity_chooser_title">Gửi liên kết đến...</string>
   <string name="oauth_check_onoff">Đăng nhập bằng oAuth2.</string>
   <string name="oauth_check_onoff">Đăng nhập bằng oAuth2.</string>
   <string name="oauth_login_connection">Đang kết nối đến máy chủ oAuth2...</string>
   <string name="oauth_login_connection">Đang kết nối đến máy chủ oAuth2...</string>
   <string name="ssl_validator_header">Không thể xác minh danh tính của site</string>
   <string name="ssl_validator_header">Không thể xác minh danh tính của site</string>
@@ -231,4 +234,9 @@
   <string name="failed_upload_retry_do_nothing_text">không thực hiện thao tác gì nêu bạn không có kết nối mạng dành cho tải lên nhanh</string>
   <string name="failed_upload_retry_do_nothing_text">không thực hiện thao tác gì nêu bạn không có kết nối mạng dành cho tải lên nhanh</string>
   <string name="failed_upload_failure_text">Thông điệp lỗi:</string>
   <string name="failed_upload_failure_text">Thông điệp lỗi:</string>
   <string name="failed_upload_quota_exceeded_text">Vui lòng kiểm tra cấu hình máy chủ của bạn, có thể hạn ngạch dữ liệu đã quá hạn.</string>
   <string name="failed_upload_quota_exceeded_text">Vui lòng kiểm tra cấu hình máy chủ của bạn, có thể hạn ngạch dữ liệu đã quá hạn.</string>
+  <string name="share_link_no_support_share_api">Thật tiếc, chia sẻ đã bị vô hiệu trên server của bạn. Vui lòng liên hệ người quản trị.</string>
+  <string name="share_link_file_no_exist">Không thể chia sẻ file hoặc thư mục này. Hãy chắc chắn rằng nó tồn tại</string>
+  <string name="share_link_file_error">Một lỗi đã xảy ra khi thử chia sẻ file hoặc thư mục này</string>
+  <string name="unshare_link_file_no_exist">Không thể gỡ chia sẻ file hoặc thư mục. Nó không tồn tại.</string>
+  <string name="unshare_link_file_error">Một lỗi đã xảy ra khi thử gỡ chia sẻ file hoặc thư mục này</string>
 </resources>
 </resources>

+ 1 - 0
res/values-zh-rCN/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">创建目录</string>
   <string name="actionbar_mkdir">创建目录</string>
   <string name="actionbar_settings">设置</string>
   <string name="actionbar_settings">设置</string>
   <string name="actionbar_see_details">详细信息</string>
   <string name="actionbar_see_details">详细信息</string>
+  <string name="actionbar_share_file">共享</string>
   <string name="prefs_category_general">常规</string>
   <string name="prefs_category_general">常规</string>
   <string name="prefs_category_more">更多</string>
   <string name="prefs_category_more">更多</string>
   <string name="prefs_accounts">账号</string>
   <string name="prefs_accounts">账号</string>

+ 1 - 0
res/values-zh-rHK/strings.xml

@@ -4,6 +4,7 @@
   <string name="actionbar_upload_files">文件</string>
   <string name="actionbar_upload_files">文件</string>
   <string name="actionbar_mkdir">建立目錄</string>
   <string name="actionbar_mkdir">建立目錄</string>
   <string name="actionbar_settings">設定</string>
   <string name="actionbar_settings">設定</string>
+  <string name="actionbar_share_file">分享</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_accounts">帳號</string>
   <string name="prefs_accounts">帳號</string>
   <string name="prefs_help">幫助</string>
   <string name="prefs_help">幫助</string>

+ 1 - 0
res/values-zh-rTW/strings.xml

@@ -10,6 +10,7 @@
   <string name="actionbar_mkdir">建立目錄</string>
   <string name="actionbar_mkdir">建立目錄</string>
   <string name="actionbar_settings">設定</string>
   <string name="actionbar_settings">設定</string>
   <string name="actionbar_see_details">詳細資料</string>
   <string name="actionbar_see_details">詳細資料</string>
+  <string name="actionbar_share_file">分享</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_category_general">一般</string>
   <string name="prefs_category_more">更多</string>
   <string name="prefs_category_more">更多</string>
   <string name="prefs_accounts">帳號</string>
   <string name="prefs_accounts">帳號</string>

+ 1 - 0
res/values/strings.xml

@@ -250,6 +250,7 @@
 	<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_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_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="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="unshare_link_file_error">An error occurred while trying to unshare this file or folder</string>
 	
 	
 	<string name="send_file_title_intent">Send</string>
 	<string name="send_file_title_intent">Send</string>

+ 16 - 2
src/com/owncloud/android/datamodel/FileDataStorageManager.java

@@ -1115,8 +1115,22 @@ public class FileDataStorageManager {
         }
         }
         
         
     } 
     } 
-
-
+    
+    public void removeShare(OCShare share){
+        Uri share_uri = ProviderTableMeta.CONTENT_URI_SHARE;
+        String where = ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + "=?" + " AND " + ProviderTableMeta.FILE_PATH + "=?";
+        String [] whereArgs = new String[]{mAccount.name, share.getPath()};
+        if (getContentProviderClient() != null) {
+            try {
+                getContentProviderClient().delete(share_uri, where, whereArgs);
+            } catch (RemoteException e) {
+                e.printStackTrace();
+            }
+        } else {
+            getContentResolver().delete(share_uri, where, whereArgs); 
+        }
+    }
+    
     public void saveSharesDB(ArrayList<OCShare> shares) {
     public void saveSharesDB(ArrayList<OCShare> shares) {
         saveShares(shares);
         saveShares(shares);
 
 

+ 28 - 8
src/com/owncloud/android/files/FileOperationsHelper.java

@@ -30,8 +30,7 @@ import com.owncloud.android.R;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.lib.accounts.OwnCloudAccount;
 import com.owncloud.android.lib.accounts.OwnCloudAccount;
 import com.owncloud.android.lib.network.webdav.WebdavUtils;
 import com.owncloud.android.lib.network.webdav.WebdavUtils;
-import com.owncloud.android.lib.operations.common.ShareType;
-import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.services.OperationsService;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.dialog.ActivityChooserDialog;
 import com.owncloud.android.ui.dialog.ActivityChooserDialog;
 import com.owncloud.android.utils.Log_OC;
 import com.owncloud.android.utils.Log_OC;
@@ -108,12 +107,13 @@ public class FileOperationsHelper {
         
         
         if (file != null) {
         if (file != null) {
             callerActivity.showLoadingDialog();
             callerActivity.showLoadingDialog();
-            CreateShareOperation createShare = new CreateShareOperation(file.getRemotePath(), ShareType.PUBLIC_LINK, "", false, "", 1, sendIntent);
-            createShare.execute(callerActivity.getStorageManager(), 
-                                callerActivity, 
-                                callerActivity.getRemoteOperationListener(), 
-                                callerActivity.getHandler(), 
-                                callerActivity);
+            
+            Intent service = new Intent(callerActivity, OperationsService.class);
+            service.setAction(OperationsService.ACTION_CREATE_SHARE);
+            service.putExtra(OperationsService.EXTRA_ACCOUNT, callerActivity.getAccount());
+            service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+            service.putExtra(OperationsService.EXTRA_SEND_INTENT, sendIntent);
+            callerActivity.startService(service);
             
             
         } else {
         } else {
             Log_OC.wtf(TAG, "Trying to open a NULL OCFile");
             Log_OC.wtf(TAG, "Trying to open a NULL OCFile");
@@ -140,4 +140,24 @@ public class FileOperationsHelper {
         return false;
         return false;
     }
     }
 
 
+    
+    public void unshareFileWithLink(OCFile file, FileActivity callerActivity) {
+        
+        if (isSharedSupported(callerActivity)) {
+            // Unshare the file
+            Intent service = new Intent(callerActivity, OperationsService.class);
+            service.setAction(OperationsService.ACTION_UNSHARE);
+            service.putExtra(OperationsService.EXTRA_ACCOUNT, callerActivity.getAccount());
+            service.putExtra(OperationsService.EXTRA_REMOTE_PATH, file.getRemotePath());
+            callerActivity.startService(service);
+            
+            callerActivity.showLoadingDialog();
+            
+        } else {
+            // Show a Message
+            Toast t = Toast.makeText(callerActivity, callerActivity.getString(R.string.share_link_no_support_share_api), Toast.LENGTH_LONG);
+            t.show();
+            
+        }
+    }
 }
 }

+ 1 - 1
src/com/owncloud/android/files/services/FileDownloader.java

@@ -382,7 +382,7 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
      * Updates the OC File after a successful download.
      * Updates the OC File after a successful download.
      */
      */
     private void saveDownloadedFile() {
     private void saveDownloadedFile() {
-        OCFile file = mCurrentDownload.getFile();
+        OCFile file = mStorageManager.getFileById(mCurrentDownload.getFile().getFileId());
         long syncDate = System.currentTimeMillis();
         long syncDate = System.currentTimeMillis();
         file.setLastSyncDateForProperties(syncDate);
         file.setLastSyncDateForProperties(syncDate);
         file.setLastSyncDateForData(syncDate);
         file.setLastSyncDateForData(syncDate);

+ 3 - 0
src/com/owncloud/android/files/services/FileUploader.java

@@ -597,6 +597,9 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
      */
      */
     private void saveUploadedFile() {
     private void saveUploadedFile() {
         OCFile file = mCurrentUpload.getFile();
         OCFile file = mCurrentUpload.getFile();
+        if (file.fileExists()) {
+            file = mStorageManager.getFileById(file.getFileId());
+        }
         long syncDate = System.currentTimeMillis();
         long syncDate = System.currentTimeMillis();
         file.setLastSyncDateForData(syncDate);
         file.setLastSyncDateForData(syncDate);
 
 

+ 1 - 3
src/com/owncloud/android/operations/CreateShareOperation.java

@@ -92,12 +92,10 @@ public class CreateShareOperation extends SyncOperation {
                 OCShare share = (OCShare) result.getData().get(0);
                 OCShare share = (OCShare) result.getData().get(0);
 
 
                 // Update DB with the response
                 // Update DB with the response
+                share.setPath(mPath);
                 if (mPath.endsWith(FileUtils.PATH_SEPARATOR)) {
                 if (mPath.endsWith(FileUtils.PATH_SEPARATOR)) {
-                    share.setPath(mPath.substring(0, mPath.length()-1));
                     share.setIsFolder(true);
                     share.setIsFolder(true);
-                    
                 } else {
                 } else {
-                    share.setPath(mPath);
                     share.setIsFolder(false);
                     share.setIsFolder(false);
                 }
                 }
                 share.setPermissions(mPermissions);
                 share.setPermissions(mPermissions);

+ 1 - 1
src/com/owncloud/android/operations/GetSharesOperation.java

@@ -1,5 +1,5 @@
 /* ownCloud Android client application
 /* ownCloud Android client application
- *   Copyright (C) 2012-2013 ownCloud Inc.
+ *   Copyright (C) 2012-2014 ownCloud Inc.
  *
  *
  *   This program is free software: you can redistribute it and/or modify
  *   This program is free software: you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License version 2,
  *   it under the terms of the GNU General Public License version 2,

+ 93 - 0
src/com/owncloud/android/operations/UnshareLinkOperation.java

@@ -0,0 +1,93 @@
+/* ownCloud Android client application
+ *   Copyright (C) 2014 ownCloud Inc.
+ *
+ *   This program is free software: you can redistribute it and/or modify
+ *   it under the terms of the GNU General Public License version 2,
+ *   as published by the Free Software Foundation.
+ *
+ *   This program is distributed in the hope that it will be useful,
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *   GNU General Public License for more details.
+ *
+ *   You should have received a copy of the GNU General Public License
+ *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.operations;
+
+import android.content.Context;
+
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.network.OwnCloudClient;
+import com.owncloud.android.lib.operations.common.OCShare;
+import com.owncloud.android.lib.operations.common.RemoteOperationResult;
+import com.owncloud.android.lib.operations.common.RemoteOperationResult.ResultCode;
+import com.owncloud.android.lib.operations.remote.ExistenceCheckRemoteOperation;
+import com.owncloud.android.lib.operations.remote.RemoveRemoteShareOperation;
+import com.owncloud.android.operations.common.SyncOperation;
+import com.owncloud.android.utils.Log_OC;
+
+/**
+ * Unshare file/folder
+ * Save the data in Database
+ * 
+ * @author masensio
+ */
+public class UnshareLinkOperation extends SyncOperation {
+
+    private static final String TAG = UnshareLinkOperation.class.getSimpleName();
+    
+    private String mRemotePath;
+    private Context mContext;
+    
+    
+    public UnshareLinkOperation(String remotePath, Context context) {
+        mRemotePath = remotePath;
+        mContext = context;
+    }
+
+    @Override
+    protected RemoteOperationResult run(OwnCloudClient client) {
+        RemoteOperationResult result  = null;
+        
+        // Get Share for a file
+        OCShare share = getStorageManager().getShareByPath(mRemotePath);
+        
+        if (share != null) {
+            RemoveRemoteShareOperation operation = new RemoveRemoteShareOperation((int) share.getIdRemoteShared());
+            result = operation.execute(client);
+
+            if (result.isSuccess() || result.getCode() == ResultCode.SHARE_NOT_FOUND) {
+                Log_OC.d(TAG, "Share id = " + share.getIdRemoteShared() + " deleted");
+
+                OCFile file = getStorageManager().getFileByPath(mRemotePath);
+                file.setShareByLink(false);
+                file.setPublicLink("");
+                getStorageManager().saveFile(file);
+                getStorageManager().removeShare(share);
+                
+                if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
+                    if (existsFile(client, file.getRemotePath())) {
+                        result = new RemoteOperationResult(ResultCode.OK);
+                    } else {
+                        getStorageManager().removeFile(file, true, true);
+                    }
+                }
+            } 
+                
+        } else {
+            result = new RemoteOperationResult(ResultCode.SHARE_NOT_FOUND);
+        }
+
+        return result;
+    }
+    
+    private boolean existsFile(OwnCloudClient client, String remotePath){
+        ExistenceCheckRemoteOperation existsOperation = new ExistenceCheckRemoteOperation(remotePath, mContext, false);
+        RemoteOperationResult result = existsOperation.execute(client);
+        return result.isSuccess();
+    }
+
+}

+ 118 - 10
src/com/owncloud/android/services/OperationsService.java

@@ -18,16 +18,22 @@
 package com.owncloud.android.services;
 package com.owncloud.android.services;
 
 
 import java.io.IOException;
 import java.io.IOException;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
 
 import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.FileDataStorageManager;
 
 
 import com.owncloud.android.lib.network.OwnCloudClientFactory;
 import com.owncloud.android.lib.network.OwnCloudClientFactory;
 import com.owncloud.android.lib.network.OwnCloudClient;
 import com.owncloud.android.lib.network.OwnCloudClient;
-import com.owncloud.android.operations.GetSharesOperation;
+import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.UnshareLinkOperation;
 import com.owncloud.android.operations.common.SyncOperation;
 import com.owncloud.android.operations.common.SyncOperation;
+import com.owncloud.android.lib.operations.common.OnRemoteOperationListener;
 import com.owncloud.android.lib.operations.common.RemoteOperation;
 import com.owncloud.android.lib.operations.common.RemoteOperation;
 import com.owncloud.android.lib.operations.common.RemoteOperationResult;
 import com.owncloud.android.lib.operations.common.RemoteOperationResult;
+import com.owncloud.android.lib.operations.common.ShareType;
 import com.owncloud.android.utils.Log_OC;
 import com.owncloud.android.utils.Log_OC;
 
 
 import android.accounts.Account;
 import android.accounts.Account;
@@ -51,7 +57,12 @@ public class OperationsService extends Service {
     
     
     public static final String EXTRA_ACCOUNT = "ACCOUNT";
     public static final String EXTRA_ACCOUNT = "ACCOUNT";
     public static final String EXTRA_SERVER_URL = "SERVER_URL";
     public static final String EXTRA_SERVER_URL = "SERVER_URL";
-    public static final String EXTRA_RESULT = "RESULT";    
+    public static final String EXTRA_REMOTE_PATH = "REMOTE_PATH";
+    public static final String EXTRA_SEND_INTENT = "SEND_INTENT";
+    public static final String EXTRA_RESULT = "RESULT";
+    
+    public static final String ACTION_CREATE_SHARE = "CREATE_SHARE";
+    public static final String ACTION_UNSHARE = "UNSHARE";
     
     
     public static final String ACTION_OPERATION_ADDED = OperationsService.class.getName() + ".OPERATION_ADDED";
     public static final String ACTION_OPERATION_ADDED = OperationsService.class.getName() + ".OPERATION_ADDED";
     public static final String ACTION_OPERATION_FINISHED = OperationsService.class.getName() + ".OPERATION_FINISHED";
     public static final String ACTION_OPERATION_FINISHED = OperationsService.class.getName() + ".OPERATION_FINISHED";
@@ -69,7 +80,7 @@ public class OperationsService extends Service {
 
 
     private Looper mServiceLooper;
     private Looper mServiceLooper;
     private ServiceHandler mServiceHandler;
     private ServiceHandler mServiceHandler;
-    private IBinder mBinder;
+    private OperationsServiceBinder mBinder;
     private OwnCloudClient mOwnCloudClient = null;
     private OwnCloudClient mOwnCloudClient = null;
     private Target mLastTarget = null;
     private Target mLastTarget = null;
     private FileDataStorageManager mStorageManager;
     private FileDataStorageManager mStorageManager;
@@ -107,10 +118,30 @@ public class OperationsService extends Service {
         try {
         try {
             Account account = intent.getParcelableExtra(EXTRA_ACCOUNT);
             Account account = intent.getParcelableExtra(EXTRA_ACCOUNT);
             String serverUrl = intent.getStringExtra(EXTRA_SERVER_URL);
             String serverUrl = intent.getStringExtra(EXTRA_SERVER_URL);
+            
             Target target = new Target(account, (serverUrl == null) ? null : Uri.parse(serverUrl));
             Target target = new Target(account, (serverUrl == null) ? null : Uri.parse(serverUrl));
-            GetSharesOperation operation = new GetSharesOperation();
+            RemoteOperation operation = null;
+            
+            String action = intent.getAction();
+            if (action.equals(ACTION_CREATE_SHARE)) {  // Create Share
+                String remotePath = intent.getStringExtra(EXTRA_REMOTE_PATH);
+                Intent sendIntent = intent.getParcelableExtra(EXTRA_SEND_INTENT);
+                if (remotePath.length() > 0) {
+                    operation = new CreateShareOperation(remotePath, ShareType.PUBLIC_LINK, 
+                            "", false, "", 1, sendIntent);
+                }
+            } else if (action.equals(ACTION_UNSHARE)) {  // Unshare file
+                String remotePath = intent.getStringExtra(EXTRA_REMOTE_PATH);
+                if (remotePath.length() > 0) {
+                    operation = new UnshareLinkOperation(remotePath, this.getApplicationContext());
+                }
+            } else {
+                // nothing we are going to handle
+                return START_NOT_STICKY;
+            }
+            
             mPendingOperations.add(new Pair<Target , RemoteOperation>(target, operation));
             mPendingOperations.add(new Pair<Target , RemoteOperation>(target, operation));
-            sendBroadcastNewOperation(target, operation);
+            //sendBroadcastNewOperation(target, operation);
             
             
             Message msg = mServiceHandler.obtainMessage();
             Message msg = mServiceHandler.obtainMessage();
             msg.arg1 = startId;
             msg.arg1 = startId;
@@ -150,8 +181,59 @@ public class OperationsService extends Service {
      * 
      * 
      *  It provides by itself the available operations.
      *  It provides by itself the available operations.
      */
      */
-    public class OperationsServiceBinder extends Binder {
-        // TODO
+    public class OperationsServiceBinder extends Binder /* implements OnRemoteOperationListener */ {
+        
+        /** 
+         * Map of listeners that will be reported about the end of operations from a {@link OperationsServiceBinder} instance 
+         */
+        private Map<OnRemoteOperationListener, Handler> mBoundListeners = new HashMap<OnRemoteOperationListener, Handler>();
+        
+        /**
+         * Cancels an operation
+         *
+         * TODO
+         */
+        public void cancel() {
+            // TODO
+        }
+        
+        
+        public void clearListeners() {
+            
+            mBoundListeners.clear();
+        }
+
+        
+        /**
+         * Adds a listener interested in being reported about the end of operations.
+         * 
+         * @param listener          Object to notify about the end of operations.    
+         * @param callbackHandler   {@link Handler} to access the listener without breaking Android threading protection.
+         */
+        public void addOperationListener (OnRemoteOperationListener listener, Handler callbackHandler) {
+            mBoundListeners.put(listener, callbackHandler);
+        }
+        
+        
+        /**
+         * Removes a listener from the list of objects interested in the being reported about the end of operations.
+         * 
+         * @param listener      Object to notify about progress of transfer.    
+         */
+        public void removeOperationListener (OnRemoteOperationListener listener) {
+            mBoundListeners.remove(listener);
+        }
+
+
+        /**
+         * TODO - IMPORTANT: update implementation when more operations are moved into the service 
+         * 
+         * @return  'True' when an operation that enforces the user to wait for completion is in process.
+         */
+        public boolean isPerformingBlockingOperation() {
+            return (!mPendingOperations.isEmpty());
+        }
+
     }
     }
     
     
     
     
@@ -242,15 +324,16 @@ public class OperationsService extends Service {
                 }
                 }
             }
             }
             
             
-            sendBroadcastOperationFinished(mLastTarget, mCurrentOperation, result);
+            //sendBroadcastOperationFinished(mLastTarget, mCurrentOperation, result);
+            callbackOperationListeners(mLastTarget, mCurrentOperation, result);
         }
         }
     }
     }
 
 
 
 
     /**
     /**
-     * Sends a LOCAL broadcast when a new operation is added to the queue.
+     * Sends a broadcast when a new operation is added to the queue.
      * 
      * 
-     * Local broadcasts are only delivered to activities in the same process.
+     * Local broadcasts are only delivered to activities in the same process, but can't be done sticky :\
      * 
      * 
      * @param target            Account or URL pointing to an OC server.
      * @param target            Account or URL pointing to an OC server.
      * @param operation         Added operation.
      * @param operation         Added operation.
@@ -291,6 +374,31 @@ public class OperationsService extends Service {
         //lbm.sendBroadcast(intent);
         //lbm.sendBroadcast(intent);
         sendStickyBroadcast(intent);
         sendStickyBroadcast(intent);
     }
     }
+
     
     
+    /**
+     * Notifies the currently subscribed listeners about the end of an operation.
+     * 
+     * @param target            Account or URL pointing to an OC server.
+     * @param operation         Finished operation.
+     * @param result            Result of the operation.
+     */
+    private void callbackOperationListeners(Target target, final RemoteOperation operation, final RemoteOperationResult result) {
+        Iterator<OnRemoteOperationListener> listeners = mBinder.mBoundListeners.keySet().iterator();
+        while (listeners.hasNext()) {
+            final OnRemoteOperationListener listener = listeners.next();
+            final Handler handler = mBinder.mBoundListeners.get(listener);
+            if (handler != null) { 
+                handler.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        listener.onRemoteOperationFinish(operation, result);
+                    }
+                });
+            }
+        }
+            
+    }
     
     
+
 }
 }

+ 101 - 4
src/com/owncloud/android/ui/activity/FileActivity.java

@@ -23,9 +23,13 @@ import android.accounts.AccountManager;
 import android.accounts.AccountManagerCallback;
 import android.accounts.AccountManagerCallback;
 import android.accounts.AccountManagerFuture;
 import android.accounts.AccountManagerFuture;
 import android.accounts.OperationCanceledException;
 import android.accounts.OperationCanceledException;
+import android.content.ComponentName;
+import android.content.Context;
 import android.content.Intent;
 import android.content.Intent;
+import android.content.ServiceConnection;
 import android.os.Bundle;
 import android.os.Bundle;
 import android.os.Handler;
 import android.os.Handler;
+import android.os.IBinder;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.Fragment;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentManager;
 import android.support.v4.app.FragmentTransaction;
 import android.support.v4.app.FragmentTransaction;
@@ -43,7 +47,10 @@ import com.owncloud.android.lib.operations.common.RemoteOperation;
 import com.owncloud.android.lib.operations.common.RemoteOperationResult;
 import com.owncloud.android.lib.operations.common.RemoteOperationResult;
 import com.owncloud.android.lib.operations.common.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.operations.common.RemoteOperationResult.ResultCode;
 import com.owncloud.android.operations.CreateShareOperation;
 import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.UnshareLinkOperation;
 
 
+import com.owncloud.android.services.OperationsService;
+import com.owncloud.android.services.OperationsService.OperationsServiceBinder;
 import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.ui.dialog.LoadingDialog;
 import com.owncloud.android.utils.Log_OC;
 import com.owncloud.android.utils.Log_OC;
 
 
@@ -90,6 +97,10 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
     private FileDataStorageManager mStorageManager = null;
     private FileDataStorageManager mStorageManager = null;
     
     
     private FileOperationsHelper mFileOperationsHelper;
     private FileOperationsHelper mFileOperationsHelper;
+    
+    private ServiceConnection mOperationsServiceConnection = null;
+    
+    private OperationsServiceBinder mOperationsServiceBinder = null;
 
 
     
     
     /**
     /**
@@ -116,7 +127,9 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
         }
         }
 
 
         setAccount(account, savedInstanceState != null);
         setAccount(account, savedInstanceState != null);
-       
+        
+        mOperationsServiceConnection = new OperationsServiceConnection();
+        bindService(new Intent(this, OperationsService.class), mOperationsServiceConnection, Context.BIND_AUTO_CREATE);
     }
     }
 
 
     
     
@@ -132,7 +145,6 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
         if (!validAccount) {
         if (!validAccount) {
             swapToDefaultAccount();
             swapToDefaultAccount();
         }
         }
-        
     }
     }
 
 
     
     
@@ -142,6 +154,28 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
         if (mAccountWasSet) {
         if (mAccountWasSet) {
             onAccountSet(mAccountWasRestored);
             onAccountSet(mAccountWasRestored);
         }
         }
+        if (mOperationsServiceBinder != null) {
+            mOperationsServiceBinder.addOperationListener(FileActivity.this, mHandler);
+        }
+    }
+    
+    
+    @Override 
+    protected void onStop() {
+        super.onStop();
+        if (mOperationsServiceBinder != null) {
+            mOperationsServiceBinder.removeOperationListener(this);
+        }
+    }
+    
+    
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        if (mOperationsServiceConnection != null) {
+            unbindService(mOperationsServiceConnection);
+            mOperationsServiceBinder = null;
+        }
     }
     }
     
     
     
     
@@ -353,16 +387,22 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
         Log_OC.d(TAG, "Received result of operation in FileActivity - common behaviour for all the FileActivities ");
         Log_OC.d(TAG, "Received result of operation in FileActivity - common behaviour for all the FileActivities ");
         if (operation instanceof CreateShareOperation) {
         if (operation instanceof CreateShareOperation) {
             onCreateShareOperationFinish((CreateShareOperation) operation, result);
             onCreateShareOperationFinish((CreateShareOperation) operation, result);
-        }
+            
+        } else if (operation instanceof UnshareLinkOperation) {
+            onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
+        
+        } 
     }
     }
 
 
     private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
     private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
         dismissLoadingDialog();
         dismissLoadingDialog();
         if (result.isSuccess()) {
         if (result.isSuccess()) {
+            updateFileFromDB();
+            
             Intent sendIntent = operation.getSendIntent();
             Intent sendIntent = operation.getSendIntent();
             startActivity(sendIntent);
             startActivity(sendIntent);
             
             
-        } else if (result.getCode() == ResultCode.FILE_NOT_FOUND)  {        // Error --> SHARE_NOT_FOUND
+        } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND)  {        // Error --> SHARE_NOT_FOUND
                 Toast t = Toast.makeText(this, getString(R.string.share_link_file_no_exist), Toast.LENGTH_LONG);
                 Toast t = Toast.makeText(this, getString(R.string.share_link_file_no_exist), Toast.LENGTH_LONG);
                 t.show();
                 t.show();
         } else {    // Generic error
         } else {    // Generic error
@@ -373,6 +413,31 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
     }
     }
     
     
     
     
+    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) {
+        dismissLoadingDialog();
+        
+        if (result.isSuccess()){
+            updateFileFromDB();
+            
+        } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND)  {        // Error --> SHARE_NOT_FOUND
+            Toast t = Toast.makeText(this, getString(R.string.unshare_link_file_no_exist), Toast.LENGTH_LONG);
+            t.show();
+        } else {    // Generic error
+            // Show a Message, operation finished without success
+            Toast t = Toast.makeText(this, getString(R.string.unshare_link_file_error), Toast.LENGTH_LONG);
+            t.show();
+        }
+        
+    }
+    
+    
+    private void updateFileFromDB(){
+      OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath());
+      if (file != null) {
+          setFile(file);
+      }
+    }
+    
     /**
     /**
      * Show loading dialog 
      * Show loading dialog 
      */
      */
@@ -396,5 +461,37 @@ public class FileActivity extends SherlockFragmentActivity implements OnRemoteOp
             loading.dismiss();
             loading.dismiss();
         }
         }
     }
     }
+
+    
+    /** 
+     * Implements callback methods for service binding. Passed as a parameter to { 
+     */
+    private class OperationsServiceConnection implements ServiceConnection {
+
+        @Override
+        public void onServiceConnected(ComponentName component, IBinder service) {
+            if (component.equals(new ComponentName(FileActivity.this, OperationsService.class))) {
+                Log_OC.d(TAG, "Operations service connected");
+                mOperationsServiceBinder = (OperationsServiceBinder) service;
+                mOperationsServiceBinder.addOperationListener(FileActivity.this, mHandler);
+                if (!mOperationsServiceBinder.isPerformingBlockingOperation()) {
+                    dismissLoadingDialog();
+                }
+
+            } else {
+                return;
+            }
+        }
+        
+
+        @Override
+        public void onServiceDisconnected(ComponentName component) {
+            if (component.equals(new ComponentName(FileActivity.this, OperationsService.class))) {
+                Log_OC.d(TAG, "Operations service disconnected");
+                mOperationsServiceBinder = null;
+                // TODO whatever could be waiting for the service is unbound
+            }
+        }
+    };    
     
     
 }
 }

+ 44 - 4
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -75,6 +75,7 @@ import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.SynchronizeFileOperation;
 import com.owncloud.android.operations.SynchronizeFolderOperation;
 import com.owncloud.android.operations.SynchronizeFolderOperation;
+import com.owncloud.android.operations.UnshareLinkOperation;
 import com.owncloud.android.services.OperationsService;
 import com.owncloud.android.services.OperationsService;
 import com.owncloud.android.syncadapter.FileSyncAdapter;
 import com.owncloud.android.syncadapter.FileSyncAdapter;
 import com.owncloud.android.ui.dialog.EditNameDialog;
 import com.owncloud.android.ui.dialog.EditNameDialog;
@@ -85,6 +86,7 @@ import com.owncloud.android.ui.fragment.FileDetailFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.ui.fragment.FileFragment;
 import com.owncloud.android.ui.fragment.OCFileListFragment;
 import com.owncloud.android.ui.fragment.OCFileListFragment;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
+import com.owncloud.android.ui.preview.PreviewImageFragment;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
 import com.owncloud.android.ui.preview.PreviewMediaFragment;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
 import com.owncloud.android.ui.preview.PreviewVideoActivity;
 import com.owncloud.android.utils.DisplayUtils;
 import com.owncloud.android.utils.DisplayUtils;
@@ -186,6 +188,11 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         mRightFragmentContainer = findViewById(R.id.right_fragment_container);
         mRightFragmentContainer = findViewById(R.id.right_fragment_container);
         if (savedInstanceState == null) {
         if (savedInstanceState == null) {
             createMinFragments();
             createMinFragments();
+        } else {
+            Log_OC.d(TAG, "Init the secondFragment again");
+            if (mDualPane) {
+                initFragmentsWithFile();                
+            }
         }
         }
 
 
         // Action bar setup
         // Action bar setup
@@ -200,6 +207,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
     protected void onStart() {
     protected void onStart() {
         super.onStart();
         super.onStart();
         getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
         getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
+        refeshListOfFilesFragment();
     }
     }
 
 
     @Override
     @Override
@@ -278,7 +286,7 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
         transaction.add(R.id.left_fragment_container, listOfFiles, TAG_LIST_OF_FILES);
         transaction.add(R.id.left_fragment_container, listOfFiles, TAG_LIST_OF_FILES);
         transaction.commit();
         transaction.commit();
     }
     }
-
+    
     private void initFragmentsWithFile() {
     private void initFragmentsWithFile() {
         if (getAccount() != null && getFile() != null) {
         if (getAccount() != null && getFile() != null) {
             /// First fragment
             /// First fragment
@@ -1327,21 +1335,53 @@ OCFileListFragment.ContainerActivity, FileDetailFragment.ContainerActivity, OnNa
 
 
         } else if (operation instanceof CreateFolderOperation) {
         } else if (operation instanceof CreateFolderOperation) {
             onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
             onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
-        
+            
         } else if (operation instanceof CreateShareOperation) {
         } else if (operation instanceof CreateShareOperation) {
             onCreateShareOperationFinish((CreateShareOperation) operation, result);
             onCreateShareOperationFinish((CreateShareOperation) operation, result);
-        }
+            
+        } else if (operation instanceof UnshareLinkOperation) {
+            onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
+        
+        } 
         
         
     }
     }
 
 
-
+    
     private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
     private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
         if (result.isSuccess()) {
         if (result.isSuccess()) {
+            refreshShowDetails();
             refeshListOfFilesFragment();
             refeshListOfFilesFragment();
         }
         }
     }
     }
 
 
     
     
+    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) {
+        if (result.isSuccess()) {
+            refreshShowDetails();
+            refeshListOfFilesFragment();
+        } else if (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
+            cleanSecondFragment();
+            refeshListOfFilesFragment();
+        }
+    }
+    
+    private void refreshShowDetails() {
+        FileFragment details = getSecondFragment();
+        if (details != null) {
+            OCFile file = details.getFile();
+            if (file != null) {
+                file = getStorageManager().getFileByPath(file.getRemotePath()); 
+                if (details instanceof PreviewMediaFragment) {
+                    // Refresh  OCFile of the fragment
+                    ((PreviewMediaFragment) details).updateFile(file);
+                } else {
+                    showDetails(file);
+                } 
+            }
+            invalidateOptionsMenu();
+        } 
+    }
+    
     /**
     /**
      * Updates the view associated to the activity after the finish of an operation trying to remove a 
      * Updates the view associated to the activity after the finish of an operation trying to remove a 
      * file. 
      * file. 

+ 17 - 1
src/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -186,6 +186,10 @@ public class FileDetailFragment extends FileFragment implements
         super.onActivityCreated(savedInstanceState);
         super.onActivityCreated(savedInstanceState);
         if (mAccount != null) {
         if (mAccount != null) {
             mStorageManager = new FileDataStorageManager(mAccount, getActivity().getApplicationContext().getContentResolver());
             mStorageManager = new FileDataStorageManager(mAccount, getActivity().getApplicationContext().getContentResolver());
+            OCFile file = mStorageManager.getFileByPath(getFile().getRemotePath());
+            if (file != null) {
+                setFile(file);
+            }
         }
         }
     }
     }
         
         
@@ -310,7 +314,14 @@ public class FileDetailFragment extends FileFragment implements
             toHide.add(R.id.action_remove_file);
             toHide.add(R.id.action_remove_file);
             
             
         }
         }
-
+        
+        // Options shareLink
+        if (!file.isShareByLink()) {
+            toHide.add(R.id.action_unshare_file);
+        } else {
+            toShow.add(R.id.action_unshare_file);
+        }
+        
         MenuItem item = null;
         MenuItem item = null;
         for (int i : toHide) {
         for (int i : toHide) {
             item = menu.findItem(i);
             item = menu.findItem(i);
@@ -340,6 +351,11 @@ public class FileDetailFragment extends FileFragment implements
                 activity.getFileOperationsHelper().shareFileWithLink(getFile(), activity);
                 activity.getFileOperationsHelper().shareFileWithLink(getFile(), activity);
                 return true;
                 return true;
             }
             }
+            case R.id.action_unshare_file: {
+                FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
+                activity.getFileOperationsHelper().unshareFileWithLink(getFile(), activity);
+                return true;
+            }
             case R.id.action_open_file_with: {
             case R.id.action_open_file_with: {
                 FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
                 FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
                 activity.getFileOperationsHelper().openFile(getFile(), activity);
                 activity.getFileOperationsHelper().openFile(getFile(), activity);

+ 13 - 3
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -259,6 +259,11 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
                 toHide.add(R.id.action_cancel_upload);
                 toHide.add(R.id.action_cancel_upload);
             }
             }
         }
         }
+        
+        // Options shareLink
+        if (!targetFile.isShareByLink()) {
+            toHide.add(R.id.action_unshare_file);
+        }
 
 
         for (int i : toHide) {
         for (int i : toHide) {
             item = menu.findItem(i);
             item = menu.findItem(i);
@@ -284,12 +289,17 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
     public boolean onContextItemSelected (MenuItem item) {
     public boolean onContextItemSelected (MenuItem item) {
         AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();        
         AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();        
         mTargetFile = (OCFile) mAdapter.getItem(info.position);
         mTargetFile = (OCFile) mAdapter.getItem(info.position);
-        switch (item.getItemId()) {
+        switch (item.getItemId()) {                
             case R.id.action_share_file: {
             case R.id.action_share_file: {
                 FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
                 FileDisplayActivity activity = (FileDisplayActivity) getSherlockActivity();
                 activity.getFileOperationsHelper().shareFileWithLink(mTargetFile, activity);
                 activity.getFileOperationsHelper().shareFileWithLink(mTargetFile, activity);
                 return true;
                 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: {
             case R.id.action_rename_file: {
                 String fileName = mTargetFile.getFileName();
                 String fileName = mTargetFile.getFileName();
                 int extensionStart = mTargetFile.isFolder() ? -1 : fileName.lastIndexOf(".");
                 int extensionStart = mTargetFile.isFolder() ? -1 : fileName.lastIndexOf(".");
@@ -363,7 +373,7 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
                 return super.onContextItemSelected(item); 
                 return super.onContextItemSelected(item); 
         }
         }
     }
     }
-    
+
 
 
     /**
     /**
      * Use this to query the {@link OCFile} that is currently
      * Use this to query the {@link OCFile} that is currently
@@ -432,7 +442,7 @@ public class OCFileListFragment extends ExtendedListFragment implements EditName
          * @param file
          * @param file
          */
          */
         public void onBrowsedDownTo(OCFile folder);
         public void onBrowsedDownTo(OCFile folder);
-        
+
         public void startDownloadForPreview(OCFile file);
         public void startDownloadForPreview(OCFile file);
 
 
         public void startMediaPreview(OCFile file, int i, boolean b);
         public void startMediaPreview(OCFile file, int i, boolean b);

+ 44 - 2
src/com/owncloud/android/ui/preview/PreviewImageActivity.java

@@ -45,6 +45,12 @@ import com.owncloud.android.files.services.FileDownloader;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.files.services.FileUploader;
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
+import com.owncloud.android.lib.operations.common.OnRemoteOperationListener;
+import com.owncloud.android.lib.operations.common.RemoteOperation;
+import com.owncloud.android.lib.operations.common.RemoteOperationResult;
+import com.owncloud.android.lib.operations.common.RemoteOperationResult.ResultCode;
+import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.UnshareLinkOperation;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.PinCodeActivity;
 import com.owncloud.android.ui.activity.PinCodeActivity;
@@ -59,7 +65,7 @@ import com.owncloud.android.utils.Log_OC;
  *  
  *  
  *  @author David A. Velasco
  *  @author David A. Velasco
  */
  */
-public class PreviewImageActivity extends FileActivity implements FileFragment.ContainerActivity, ViewPager.OnPageChangeListener, OnTouchListener {
+public class PreviewImageActivity extends FileActivity implements FileFragment.ContainerActivity, ViewPager.OnPageChangeListener, OnTouchListener , OnRemoteOperationListener{
     
     
     public static final int DIALOG_SHORT_WAIT = 0;
     public static final int DIALOG_SHORT_WAIT = 0;
 
 
@@ -147,7 +153,43 @@ public class PreviewImageActivity extends FileActivity implements FileFragment.C
         outState.putBoolean(KEY_WAITING_FOR_BINDER, mRequestWaitingForBinder);    
         outState.putBoolean(KEY_WAITING_FOR_BINDER, mRequestWaitingForBinder);    
     }
     }
 
 
-
+    @Override
+    public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) {
+        super.onRemoteOperationFinish(operation, result);
+        
+        if (operation instanceof CreateShareOperation) {
+            onCreateShareOperationFinish((CreateShareOperation) operation, result);
+            
+        } else if (operation instanceof UnshareLinkOperation) {
+            onUnshareLinkOperationFinish((UnshareLinkOperation) operation, result);
+            
+        }
+    }
+    
+    
+    private void onUnshareLinkOperationFinish(UnshareLinkOperation operation, RemoteOperationResult result) {
+        if (result.isSuccess()) {
+            OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath());
+            if (file != null) {
+                setFile(file);
+            }
+            invalidateOptionsMenu();
+        } else if  (result.getCode() == ResultCode.SHARE_NOT_FOUND) {
+            backToDisplayActivity();
+        }
+            
+    }
+    
+    private void onCreateShareOperationFinish(CreateShareOperation operation, RemoteOperationResult result) {
+        if (result.isSuccess()) {
+            OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath());
+            if (file != null) {
+                setFile(file);
+            }
+            invalidateOptionsMenu();
+        }
+    }
+    
     /** Defines callbacks for service binding, passed to bindService() */
     /** Defines callbacks for service binding, passed to bindService() */
     private class PreviewImageServiceConnection implements ServiceConnection {
     private class PreviewImageServiceConnection implements ServiceConnection {
 
 

+ 47 - 1
src/com/owncloud/android/ui/preview/PreviewImageFragment.java

@@ -176,8 +176,22 @@ public class PreviewImageFragment extends FileFragment implements   OnRemoteOper
         mStorageManager = new FileDataStorageManager(mAccount, getActivity().getApplicationContext().getContentResolver());
         mStorageManager = new FileDataStorageManager(mAccount, getActivity().getApplicationContext().getContentResolver());
         if (savedInstanceState != null) {
         if (savedInstanceState != null) {
             if (!mIgnoreFirstSavedState) {
             if (!mIgnoreFirstSavedState) {
-                setFile((OCFile)savedInstanceState.getParcelable(PreviewImageFragment.EXTRA_FILE));
+                OCFile file = (OCFile)savedInstanceState.getParcelable(PreviewImageFragment.EXTRA_FILE);
                 mAccount = savedInstanceState.getParcelable(PreviewImageFragment.EXTRA_ACCOUNT);
                 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 {
             } else {
                 mIgnoreFirstSavedState = false;
                 mIgnoreFirstSavedState = false;
             }
             }
@@ -230,6 +244,11 @@ public class PreviewImageFragment extends FileFragment implements   OnRemoteOper
         toHide.add(R.id.action_cancel_upload);
         toHide.add(R.id.action_cancel_upload);
         toHide.add(R.id.action_download_file);
         toHide.add(R.id.action_download_file);
         toHide.add(R.id.action_rename_file);    // by now
         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) {
         for (int i : toHide) {
             item = menu.findItem(i);
             item = menu.findItem(i);
@@ -241,6 +260,27 @@ public class PreviewImageFragment extends FileFragment implements   OnRemoteOper
         
         
     }
     }
 
 
+    /**
+     * {@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}
      * {@inheritDoc}
@@ -253,6 +293,11 @@ public class PreviewImageFragment extends FileFragment implements   OnRemoteOper
                 act.getFileOperationsHelper().shareFileWithLink(getFile(), act);
                 act.getFileOperationsHelper().shareFileWithLink(getFile(), act);
                 return true;
                 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: {
             case R.id.action_open_file_with: {
                 openFile();
                 openFile();
                 return true;
                 return true;
@@ -284,6 +329,7 @@ public class PreviewImageFragment extends FileFragment implements   OnRemoteOper
     }
     }
 
 
     
     
+
     private void seeDetails() {
     private void seeDetails() {
         ((FileFragment.ContainerActivity)getActivity()).showDetails(getFile());        
         ((FileFragment.ContainerActivity)getActivity()).showDetails(getFile());        
     }
     }

+ 57 - 12
src/com/owncloud/android/ui/preview/PreviewMediaFragment.java

@@ -289,7 +289,12 @@ public class PreviewMediaFragment extends FileFragment implements
         toHide.add(R.id.action_download_file);
         toHide.add(R.id.action_download_file);
         toHide.add(R.id.action_sync_file);
         toHide.add(R.id.action_sync_file);
         toHide.add(R.id.action_rename_file);    // by now
         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) {
         for (int i : toHide) {
             item = menu.findItem(i);
             item = menu.findItem(i);
             if (item != null) {
             if (item != null) {
@@ -300,6 +305,25 @@ public class PreviewMediaFragment extends FileFragment implements
         
         
     }
     }
 
 
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onPrepareOptionsMenu(Menu menu) {
+        super.onPrepareOptionsMenu(menu);
+        
+        MenuItem item = menu.findItem(R.id.action_unshare_file);
+        // Options shareLink
+        if (!getFile().isShareByLink()) {            
+            item.setVisible(false);
+            item.setEnabled(false);
+        } else {
+            item.setVisible(true);
+            item.setEnabled(true);
+        }
+    }
+    
     
     
     /**
     /**
      * {@inheritDoc}
      * {@inheritDoc}
@@ -311,6 +335,10 @@ public class PreviewMediaFragment extends FileFragment implements
                 shareFileWithLink();
                 shareFileWithLink();
                 return true;
                 return true;
             }
             }
+            case R.id.action_unshare_file: {
+                unshareFileWithLink();
+                return true;
+            }
             case R.id.action_open_file_with: {
             case R.id.action_open_file_with: {
                 openFile();
                 openFile();
                 return true;
                 return true;
@@ -328,7 +356,22 @@ public class PreviewMediaFragment extends FileFragment implements
                 return false;
                 return false;
         }
         }
     }
     }
+    
 
 
+
+    /**
+     * Update the file of the fragment with file value
+     * @param file
+     */
+    public void updateFile(OCFile file){
+        setFile(file);
+    }
+    
+    private void unshareFileWithLink() {
+        stopPreview(false);
+        FileActivity activity = (FileActivity)((FileFragment.ContainerActivity)getActivity());
+        activity.getFileOperationsHelper().unshareFileWithLink(getFile(), activity);
+    }
     
     
     private void shareFileWithLink() {
     private void shareFileWithLink() {
         stopPreview(false);
         stopPreview(false);
@@ -545,17 +588,19 @@ public class PreviewMediaFragment extends FileFragment implements
 
 
         @Override
         @Override
         public void onServiceConnected(ComponentName component, IBinder service) {
         public void onServiceConnected(ComponentName component, IBinder service) {
-            if (component.equals(new ComponentName(getActivity(), MediaService.class))) {
-                Log_OC.d(TAG, "Media service connected");
-                mMediaServiceBinder = (MediaServiceBinder) service;
-                if (mMediaServiceBinder != null) {
-                    prepareMediaController();
-                    playAudio();    // do not wait for the touch of nobody to play audio
-                    
-                    Log_OC.d(TAG, "Successfully bound to MediaService, MediaController ready");
-                    
-                } else {
-                    Log_OC.e(TAG, "Unexpected response from MediaService while binding");
+            if (getActivity() != null) {
+                if (component.equals(new ComponentName(getActivity(), MediaService.class))) {
+                    Log_OC.d(TAG, "Media service connected");
+                    mMediaServiceBinder = (MediaServiceBinder) service;
+                    if (mMediaServiceBinder != null) {
+                        prepareMediaController();
+                        playAudio();    // do not wait for the touch of nobody to play audio
+
+                        Log_OC.d(TAG, "Successfully bound to MediaService, MediaController ready");
+
+                    } else {
+                        Log_OC.e(TAG, "Unexpected response from MediaService while binding");
+                    }
                 }
                 }
             }
             }
         }
         }