Browse Source

Merge branch 'develop' into ADFS_auth_support

Conflicts:
	res/values/strings.xml
jabarros 10 years ago
parent
commit
ba6c6375cf
92 changed files with 1756 additions and 349 deletions
  1. 7 3
      AndroidManifest.xml
  2. 1 1
      owncloud-android-library
  3. 36 0
      res/layout/files_move.xml
  4. 2 1
      res/menu/file_actions_menu.xml
  5. 1 0
      res/values-af-rZA/strings.xml
  6. 1 2
      res/values-ar/strings.xml
  7. 92 0
      res/values-az/strings.xml
  8. 1 0
      res/values-be/strings.xml
  9. 97 87
      res/values-bg-rBG/strings.xml
  10. 1 2
      res/values-bn-rBD/strings.xml
  11. 14 2
      res/values-ca/strings.xml
  12. 12 2
      res/values-cs-rCZ/strings.xml
  13. 1 0
      res/values-cy-rGB/strings.xml
  14. 13 2
      res/values-da/strings.xml
  15. 1 0
      res/values-de-rCH/strings.xml
  16. 34 24
      res/values-de-rDE/strings.xml
  17. 13 3
      res/values-de/strings.xml
  18. 1 2
      res/values-el/strings.xml
  19. 13 2
      res/values-en-rGB/strings.xml
  20. 1 0
      res/values-eo/strings.xml
  21. 1 0
      res/values-es-rAR/strings.xml
  22. 1 0
      res/values-es-rCL/strings.xml
  23. 1 0
      res/values-es-rMX/strings.xml
  24. 11 2
      res/values-es/strings.xml
  25. 20 2
      res/values-et-rEE/strings.xml
  26. 1 2
      res/values-eu/strings.xml
  27. 1 2
      res/values-fa/strings.xml
  28. 8 1
      res/values-fi-rFI/strings.xml
  29. 2 2
      res/values-fr/strings.xml
  30. 2 2
      res/values-gl/strings.xml
  31. 4 0
      res/values-gu/strings.xml
  32. 52 0
      res/values-he/strings.xml
  33. 1 0
      res/values-hr/strings.xml
  34. 9 2
      res/values-hu-rHU/strings.xml
  35. 1 0
      res/values-ia/strings.xml
  36. 1 0
      res/values-id/strings.xml
  37. 1 0
      res/values-is/strings.xml
  38. 13 2
      res/values-it/strings.xml
  39. 2 2
      res/values-ja-rJP/strings.xml
  40. 1 0
      res/values-ka-rGE/strings.xml
  41. 1 0
      res/values-km/strings.xml
  42. 1 0
      res/values-ko/strings.xml
  43. 1 0
      res/values-lb/strings.xml
  44. 1 2
      res/values-lt-rLT/strings.xml
  45. 1 0
      res/values-lv/strings.xml
  46. 4 0
      res/values-mg/strings.xml
  47. 1 0
      res/values-mk/strings.xml
  48. 1 0
      res/values-my/strings.xml
  49. 1 2
      res/values-nb-rNO/strings.xml
  50. 16 2
      res/values-nl/strings.xml
  51. 1 0
      res/values-nn-rNO/strings.xml
  52. 1 0
      res/values-oc/strings.xml
  53. 1 0
      res/values-pa/strings.xml
  54. 1 2
      res/values-pl/strings.xml
  55. 12 2
      res/values-pt-rBR/strings.xml
  56. 7 2
      res/values-pt-rPT/strings.xml
  57. 1 2
      res/values-ro/strings.xml
  58. 5 2
      res/values-ru/strings.xml
  59. 1 0
      res/values-si-rLK/strings.xml
  60. 2 2
      res/values-sk-rSK/strings.xml
  61. 4 2
      res/values-sl/strings.xml
  62. 1 0
      res/values-sq/strings.xml
  63. 1 0
      res/values-sr-rSP/strings.xml
  64. 1 0
      res/values-sr/strings.xml
  65. 1 2
      res/values-sv/strings.xml
  66. 1 0
      res/values-ta-rLK/strings.xml
  67. 1 0
      res/values-th-rTH/strings.xml
  68. 13 2
      res/values-tr/strings.xml
  69. 1 0
      res/values-uk/strings.xml
  70. 1 0
      res/values-ur-rPK/strings.xml
  71. 1 0
      res/values-ur/strings.xml
  72. 1 2
      res/values-vi/strings.xml
  73. 1 2
      res/values-zh-rCN/strings.xml
  74. 1 2
      res/values-zh-rTW/strings.xml
  75. 11 2
      res/values/strings.xml
  76. 121 0
      src/com/owncloud/android/datamodel/FileDataStorageManager.java
  77. 8 0
      src/com/owncloud/android/files/FileMenuFilter.java
  78. 18 1
      src/com/owncloud/android/files/FileOperationsHelper.java
  79. 103 0
      src/com/owncloud/android/operations/MoveFileOperation.java
  80. 8 0
      src/com/owncloud/android/services/OperationsService.java
  81. 8 5
      src/com/owncloud/android/ui/activity/FileActivity.java
  82. 79 7
      src/com/owncloud/android/ui/activity/FileDisplayActivity.java
  83. 568 0
      src/com/owncloud/android/ui/activity/MoveActivity.java
  84. 29 1
      src/com/owncloud/android/ui/adapter/FileListListAdapter.java
  85. 2 0
      src/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java
  86. 109 2
      src/com/owncloud/android/ui/fragment/ExtendedListFragment.java
  87. 7 0
      src/com/owncloud/android/ui/fragment/FileDetailFragment.java
  88. 6 1
      src/com/owncloud/android/ui/fragment/LocalFileListFragment.java
  89. 81 148
      src/com/owncloud/android/ui/fragment/OCFileListFragment.java
  90. 7 0
      src/com/owncloud/android/ui/preview/PreviewImageFragment.java
  91. 7 0
      src/com/owncloud/android/ui/preview/PreviewMediaFragment.java
  92. 20 0
      src/com/owncloud/android/utils/ErrorMessageAdapter.java

+ 7 - 3
AndroidManifest.xml

@@ -185,10 +185,14 @@
         </receiver>
         </receiver>
         <service android:name=".services.observer.FileObserverService"/>
         <service android:name=".services.observer.FileObserverService"/>
         
         
+		<activity
+			android:name=".ui.activity.CopyToClipboardActivity"
+			android:label="@string/copy_link"
+			android:icon="@drawable/copy_link"/>
+
         <activity 
         <activity 
-            android:name=".ui.activity.CopyToClipboardActivity" 
-           	android:label="@string/copy_link"
-           	android:icon="@drawable/copy_link" />
+			android:name=".ui.activity.MoveActivity"
+			android:label="@string/app_name"/>
         
         
     </application>
     </application>
 
 

+ 1 - 1
owncloud-android-library

@@ -1 +1 @@
-Subproject commit e43e43f51a895c591b72aaef8f36ef5595d18dba
+Subproject commit 5d146c923620523a871a0fe50bdcbc3b7559df8c

+ 36 - 0
res/layout/files_move.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+    android:layout_width="match_parent"
+    android:layout_height="match_parent"
+    android:background="@color/background_color"
+    android:orientation="vertical" >
+
+	<FrameLayout 
+		android:layout_width="match_parent"
+		android:layout_height="0dip"
+        android:layout_weight="1"
+		android:id="@+id/fragment_container" />
+	
+	<LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center"
+        android:orientation="horizontal" >
+
+        <Button
+            android:id="@+id/move_files_btn_cancel"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_weight="1"
+            android:text="@string/common_cancel" />
+
+		<Button
+		    android:id="@+id/move_files_btn_choose"
+		    android:layout_width="wrap_content"
+		    android:layout_height="wrap_content"
+		    android:layout_weight="1"
+		    android:text="@string/move_choose_button_text" />
+
+	</LinearLayout>
+
+ </LinearLayout>

+ 2 - 1
res/menu/file_actions_menu.xml

@@ -27,8 +27,9 @@
 	<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" />
 	<item 	android:id="@+id/action_cancel_upload" 			android:title="@string/common_cancel_upload"		android:icon="@android:drawable/ic_menu_close_clear_cancel"		android:orderInCategory="1" />
 	<item 	android:id="@+id/action_cancel_upload" 			android:title="@string/common_cancel_upload"		android:icon="@android:drawable/ic_menu_close_clear_cancel"		android:orderInCategory="1" />
 	<item 	android:id="@+id/action_rename_file"			android:title="@string/common_rename"				android:icon="@android:drawable/ic_menu_edit"					android:orderInCategory="1" />
 	<item 	android:id="@+id/action_rename_file"			android:title="@string/common_rename"				android:icon="@android:drawable/ic_menu_edit"					android:orderInCategory="1" />
+    <item 	android:id="@+id/action_move"					android:title="@string/actionbar_move"				android:icon="@android:drawable/ic_menu_set_as"					android:orderInCategory="1" />
     <item 	android:id="@+id/action_remove_file"			android:title="@string/common_remove"				android:icon="@android:drawable/ic_menu_delete"					android:orderInCategory="1" />
     <item 	android:id="@+id/action_remove_file"			android:title="@string/common_remove"				android:icon="@android:drawable/ic_menu_delete"					android:orderInCategory="1" />
     <item 	android:id="@+id/action_send_file"				android:title="@string/actionbar_send_file"			android:icon="@android:drawable/ic_menu_set_as"					android:orderInCategory="1" />
     <item 	android:id="@+id/action_send_file"				android:title="@string/actionbar_send_file"			android:icon="@android:drawable/ic_menu_set_as"					android:orderInCategory="1" />
     <item 	android:id="@+id/action_see_details"			android:title="@string/actionbar_see_details"		android:icon="@android:drawable/ic_menu_info_details"			android:orderInCategory="1" />
     <item 	android:id="@+id/action_see_details"			android:title="@string/actionbar_see_details"		android:icon="@android:drawable/ic_menu_info_details"			android:orderInCategory="1" />
-    
+
 </menu>
 </menu>

+ 1 - 0
res/values-af-rZA/strings.xml

@@ -7,4 +7,5 @@
   <string name="common_ok">OK</string>
   <string name="common_ok">OK</string>
   <string name="common_cancel">Kanseleer</string>
   <string name="common_cancel">Kanseleer</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="move_choose_button_text">Kies</string>
 </resources>
 </resources>

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

@@ -236,9 +236,7 @@
   <string name="error__upload__local_file_not_copied">%1$s تعذر نسخه %2$s للمجلد المحلي</string>
   <string name="error__upload__local_file_not_copied">%1$s تعذر نسخه %2$s للمجلد المحلي</string>
   <string name="share_link_no_support_share_api">عذراً, المشاركة غير متاحة في الخادم الخاص بك. الرجاء الإتصال
   <string name="share_link_no_support_share_api">عذراً, المشاركة غير متاحة في الخادم الخاص بك. الرجاء الإتصال
   بالمسؤول.</string>
   بالمسؤول.</string>
-  <string name="share_link_file_no_exist">لم يتمكن من مشاركة الملف او المجلد. يرجى التاكد من وجوده </string>
   <string name="share_link_file_error">حدث خطأ ما أثناء محاولة مشاركة هذا الملف أو المجلد</string>
   <string name="share_link_file_error">حدث خطأ ما أثناء محاولة مشاركة هذا الملف أو المجلد</string>
-  <string name="unshare_link_file_no_exist">غير قادر على إلغاء مشاركة هذا الملف أو المجلد.لا وجود له</string>
   <string name="unshare_link_file_error">حدث خطأ ما أثناء محاولة إلغاء مشاركة هذا الملف أو المجلد</string>
   <string name="unshare_link_file_error">حدث خطأ ما أثناء محاولة إلغاء مشاركة هذا الملف أو المجلد</string>
   <string name="activity_chooser_send_file_title">أرسل</string>
   <string name="activity_chooser_send_file_title">أرسل</string>
   <string name="copy_link">نسخ الرابط</string>
   <string name="copy_link">نسخ الرابط</string>
@@ -250,4 +248,5 @@
   <string name="network_host_not_available">تعذر إكمال العملية، الخادم غير متوفر</string>
   <string name="network_host_not_available">تعذر إكمال العملية، الخادم غير متوفر</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">حسابات</string>
   <string name="prefs_category_accounts">حسابات</string>
+  <string name="move_choose_button_text">اختيار</string>
 </resources>
 </resources>

+ 92 - 0
res/values-az/strings.xml

@@ -28,19 +28,111 @@
   <string name="prefs_log_delete_history_button">Tarixçəni sil</string>
   <string name="prefs_log_delete_history_button">Tarixçəni sil</string>
   <string name="prefs_help">Kömək</string>
   <string name="prefs_help">Kömək</string>
   <string name="prefs_recommend">Dostuna məsləhət gör</string>
   <string name="prefs_recommend">Dostuna məsləhət gör</string>
+  <string name="prefs_feedback">Geriyə cavab</string>
+  <string name="prefs_imprint">İşarələmək</string>
+  <string name="recommend_subject">%1$s-i ağıllı telefonunuzda yoxlayın!</string>
+  <string name="recommend_text">\"Mən sizi öz ağıllı telefonunuda %1$s istifadə etməyə dəvət etmək isəyirəm!\n Burdan endirin: %2$s\"</string>
+  <string name="auth_check_server">Serveri yoxla</string>
+  <string name="auth_host_url">Server ünvanı https://…</string>
   <string name="auth_username">İstifadəçi adı</string>
   <string name="auth_username">İstifadəçi adı</string>
   <string name="auth_password">Şifrə</string>
   <string name="auth_password">Şifrə</string>
+  <string name="auth_register">Yeni edək %1$s?</string>
   <string name="sync_string_files">Fayllar</string>
   <string name="sync_string_files">Fayllar</string>
   <string name="setup_btn_connect">Qoşul</string>
   <string name="setup_btn_connect">Qoşul</string>
   <string name="uploader_btn_upload_text">Serverə yüklə</string>
   <string name="uploader_btn_upload_text">Serverə yüklə</string>
+  <string name="uploader_top_message">Yüklənmə qovluöunu seçin:</string>
+  <string name="uploader_wrn_no_account_title">Hesab tapılmadı</string>
+  <string name="uploader_wrn_no_account_text">Sizin alətinizda %1$s hesabi tapılmadı. Xahiş olunur öncə hesabi quraşdırasınız.</string>
+  <string name="uploader_wrn_no_account_setup_btn_text">Qurulum</string>
+  <string name="uploader_wrn_no_account_quit_btn_text">Çıx</string>
+  <string name="uploader_wrn_no_content_title">Yükləmək üçün kontent yoxdur</string>
+  <string name="uploader_wrn_no_content_text">Heç bir kontent gəlmədi. Yukləmək üçün heçnə yoxdur.</string>
+  <string name="uploader_error_forbidden_content">%1$s yayımlanmış kontent üçün yetkili deyil</string>
+  <string name="uploader_info_uploading">Yüklənmə gedir</string>
+  <string name="file_list_empty">Burda heçnə yoxdur. Nese yükləyin!</string>
+  <string name="file_list_loading">Yüklənir...</string>
+  <string name="local_file_list_empty">Bu qovluqda heç bir fayl movcud deyil.</string>
+  <string name="filedetails_select_file">Faylın üstünə sıxın ki, əlavə məlumat ekrana çıxsın.</string>
+  <string name="filedetails_size">Həcm:</string>
+  <string name="filedetails_type">Tip:</string>
+  <string name="filedetails_created">Yaradıldı:</string>
+  <string name="filedetails_modified">Dəyişdirildi:</string>
   <string name="filedetails_download">Yüklə</string>
   <string name="filedetails_download">Yüklə</string>
+  <string name="filedetails_sync_file">Faylı yenilə</string>
+  <string name="filedetails_renamed_in_upload_msg">Yüklənmə müddətində fayl buna %1$s yeniləndi</string>
+  <string name="action_share_file">Linki yayımla</string>
+  <string name="action_unshare_file">Link yayımlanmasını dayandır</string>
+  <string name="common_yes">Bəli</string>
+  <string name="common_no">Xeyir</string>
+  <string name="common_ok">Oldu</string>
+  <string name="common_cancel_download">Endirimi dayandır</string>
+  <string name="common_cancel_upload">Yüklənməni dayandır</string>
   <string name="common_cancel">Dayandır</string>
   <string name="common_cancel">Dayandır</string>
+  <string name="common_save_exit">Saxla &amp; Çıx</string>
   <string name="common_error">Səhv</string>
   <string name="common_error">Səhv</string>
+  <string name="common_loading">Yüklənir...</string>
   <string name="common_error_unknown">Bəlli olmayan səhv baş verdi</string>
   <string name="common_error_unknown">Bəlli olmayan səhv baş verdi</string>
+  <string name="about_title">Haqqında</string>
+  <string name="change_password">Şifrəni dəyiş</string>
+  <string name="delete_account">Hesabı sil</string>
+  <string name="create_account">Hesab yarat</string>
+  <string name="upload_chooser_title">Burdan yüklə ...</string>
   <string name="uploader_info_dirname">Qovluq adı</string>
   <string name="uploader_info_dirname">Qovluq adı</string>
+  <string name="uploader_upload_in_progress_ticker">Yüklənmə gedir ...</string>
+  <string name="uploader_upload_in_progress_content">%1$d%% Yüklənmə gedir %2$s</string>
+  <string name="uploader_upload_succeeded_ticker">Uğurla yükləndi</string>
+  <string name="uploader_upload_succeeded_content_single">%1$s uğurla yüklənmişdir</string>
+  <string name="uploader_upload_failed_ticker">Yüklənmədə səhv baş verdi</string>
+  <string name="uploader_upload_failed_content_single">%1$s yüklənməsi bitə bilməz</string>
+  <string name="uploader_upload_failed_credentials_error">Yüklənmədə səhv baş verdi, siz yenidən daxil olmalısınız</string>
+  <string name="downloader_download_in_progress_ticker">Endirilir ...</string>
+  <string name="downloader_download_in_progress_content">%1$d%% Endirilir %2$s</string>
+  <string name="downloader_download_succeeded_ticker">Endirim uğurla bitdi</string>
+  <string name="downloader_download_succeeded_content">%1$s uğurla endirildi</string>
+  <string name="downloader_download_failed_ticker">Endirim olmadı</string>
+  <string name="downloader_download_failed_content">%1$s endirimi bitə bilməz</string>
+  <string name="downloader_not_downloaded_yet">Hələ endirilməyib</string>
+  <string name="downloader_download_failed_credentials_error">Endirmədə səhv, siz yenidən daxil olmalısınız</string>
+  <string name="common_choose_account">Hesabı seç</string>
+  <string name="sync_fail_ticker">Sinxronizasiyada səhv oldu</string>
+  <string name="sync_fail_ticker_unauthorized">Sinxronizasiyada səhv oldu, siz yenidən daxil olmalısınız</string>
+  <string name="sync_fail_content">%1$s sinxronizasiyası bitə bilməyəcək</string>
+  <string name="sync_fail_content_unauthorized">%1$s üçün yalnış şifrə</string>
+  <string name="sync_conflicts_in_favourites_ticker">Konflikt tapıldı</string>
+  <string name="sync_conflicts_in_favourites_content">%1$d sinxronizasiyada olan fayllar sinxronizasiya edilə bilməz</string>
+  <string name="sync_fail_in_favourites_ticker">Sinxronizasiyada saxlanılan fayllarda səhv baş verdi</string>
+  <string name="sync_fail_in_favourites_content">%1$d fayllarin kontentləri sinxronizasiya edilə bilməz (%2$d konfliktdədir)</string>
+  <string name="sync_foreign_files_forgotten_ticker">Bəzi lokal fayllar unudulmuşdur</string>
+  <string name="sync_foreign_files_forgotten_content">%1$d faylları %2$s qovluğundan kənardadır və qovluğun daxilinə nüsxələnə bilməz </string>
+  <string name="sync_foreign_files_forgotten_explanation">1.3.16 versiyasından başlayaraq, bu alətdən nüsxələnən fayllar daxili %1$s qovluğuna nüsxələnmişdir ki, bir fayl bir neçə hesabla sinxronizasiya edildikdə, data itkisinin qarşısı alınsın.
+
+Bu dəyişikliklə bağlı, bu proqramın öncəki versiyasında yüklənmiş olan fayllar %2$s qovluğuna nüsxələnmişdir. Ancaq bu hesabın sinxronizasiyası zamanı səhv baş vermişdir.\n\nSiz ya fayl(ları) saxlaya və %3$s üçün linki silə bilər, yada fayl(ları)  %1$s qovluğuna köçürə və linki %4$s -ə saxlaya bilərsiniz.
+
+Aşağıda göstərilən %5$s-də olan daxili və xarici fayl(lar) link edilmişdir.</string>
+  <string name="sync_current_folder_was_removed">%1$s qovluğu heç bir yerdə mövcud deyil</string>
+  <string name="foreign_files_move">Hamısını köçür</string>
+  <string name="foreign_files_success">Bütün fayllar köçürüldü</string>
+  <string name="foreign_files_fail">Bəzi fayllar köçürülə bilməz</string>
+  <string name="foreign_files_local_text">Daxili: %1$s</string>
+  <string name="foreign_files_remote_text">Uzaq: %1$s</string>
+  <string name="upload_query_move_foreign_files">Seçdiyiniz faylların %1$s qovluğuna köçüçrülməsi üçün kifayət qədər yer yoxdur. Əvəzinə onları köçürmək istəyirsinizmi?</string>
+  <string name="pincode_enter_pin_code">Xahiş olunur öz proqramınızın PİN-ni daxil edəsiniz</string>
+  <string name="pincode_configure_your_pin">Proqramınızın PİN-ni daxil edin</string>
+  <string name="pincode_configure_your_pin_explanation">Proqram hər dəfə işə düşdükdə PİN yenidən istəniləcək</string>
+  <string name="pincode_reenter_your_pincode">Öz proqramınızn PİN-ni yenidən daxil etməyi xahiş edirik</string>
+  <string name="pincode_remove_your_pincode">Öz proqramınızın PİN-ni silin</string>
   <string name="common_remove">Sil</string>
   <string name="common_remove">Sil</string>
   <string name="ssl_validator_btn_details_see">Detallar</string>
   <string name="ssl_validator_btn_details_see">Detallar</string>
+  <string name="unshare_link_file_error">Bu fayl və ya qovluğun yayımlanmasının dayandırılmasında səhv baş verdi</string>
   <string name="activity_chooser_send_file_title">Göndər</string>
   <string name="activity_chooser_send_file_title">Göndər</string>
+  <string name="copy_link">linki nüsxələ</string>
+  <string name="clipboard_text_copied">Mübadilə buferinə nüsxələndi</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="forbidden_permissions">Sizin yetkiniz yoxdur %s</string>
+  <string name="forbidden_permissions_delete">bu faylı silmək üçün</string>
+  <string name="share_link_forbidden_permissions">bu faylı yayımlamaq üçün</string>
+  <string name="forbidden_permissions_create">fayl yaratmaq üçün</string>
+  <string name="uploader_upload_forbidden_permissions">bu qovluğa yükləmək üçün</string>
   <string name="prefs_category_accounts">Hesablar</string>
   <string name="prefs_category_accounts">Hesablar</string>
+  <string name="prefs_add_account">Hesab əlavə et</string>
 </resources>
 </resources>

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

@@ -6,4 +6,5 @@
   <string name="common_ok">Добра</string>
   <string name="common_ok">Добра</string>
   <string name="common_error">Памылка</string>
   <string name="common_error">Памылка</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="move_choose_button_text">Выбар</string>
 </resources>
 </resources>

+ 97 - 87
res/values-bg-rBG/strings.xml

@@ -1,49 +1,50 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
 <resources>
-  <string name="about_android">%1$s Android Приложение</string>
+  <string name="about_android">%1$s Android приложение</string>
   <string name="about_version">версия %1$s</string>
   <string name="about_version">версия %1$s</string>
-  <string name="actionbar_sync">Обнови профила</string>
-  <string name="actionbar_upload">Качи</string>
+  <string name="actionbar_sync">Обновяване на профила</string>
+  <string name="actionbar_upload">Качване</string>
   <string name="actionbar_upload_from_apps">Съдържание от други приложения</string>
   <string name="actionbar_upload_from_apps">Съдържание от други приложения</string>
   <string name="actionbar_upload_files">Файлове</string>
   <string name="actionbar_upload_files">Файлове</string>
-  <string name="actionbar_open_with">Отвори с</string>
+  <string name="actionbar_open_with">Отваряне с</string>
   <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_send_file">Изпрати</string>
+  <string name="actionbar_send_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>
-  <string name="prefs_manage_accounts">Управление на Профилите</string>
+  <string name="prefs_manage_accounts">Управление на профилите</string>
   <string name="prefs_pincode">App PIN</string>
   <string name="prefs_pincode">App PIN</string>
   <string name="prefs_pincode_summary">Подсигури програмата</string>
   <string name="prefs_pincode_summary">Подсигури програмата</string>
   <string name="prefs_instant_upload">Незабавно качване на снимки</string>
   <string name="prefs_instant_upload">Незабавно качване на снимки</string>
   <string name="prefs_instant_upload_summary">Незабвано качване на снимки направени с камерата</string>
   <string name="prefs_instant_upload_summary">Незабвано качване на снимки направени с камерата</string>
   <string name="prefs_instant_video_upload">Незабавно качване на видео</string>
   <string name="prefs_instant_video_upload">Незабавно качване на видео</string>
   <string name="prefs_instant_video_upload_summary">Незабавно качване на видеота записани от камерата.</string>
   <string name="prefs_instant_video_upload_summary">Незабавно качване на видеота записани от камерата.</string>
-  <string name="prefs_log_title">Разреши Доклади</string>
+  <string name="prefs_log_title">Включване на доклади</string>
   <string name="prefs_log_summary">Използва се за докладване на проблеми</string>
   <string name="prefs_log_summary">Използва се за докладване на проблеми</string>
-  <string name="prefs_log_title_history">История на Докалите</string>
+  <string name="prefs_log_title_history">История на докладите</string>
   <string name="prefs_log_summary_history">Показва запазените доклади</string>
   <string name="prefs_log_summary_history">Показва запазените доклади</string>
-  <string name="prefs_log_delete_history_button">Изтрий Историята</string>
+  <string name="prefs_log_delete_history_button">Изтриване на историята</string>
   <string name="prefs_help">Помощ</string>
   <string name="prefs_help">Помощ</string>
   <string name="prefs_recommend">Препоръчай на приятел</string>
   <string name="prefs_recommend">Препоръчай на приятел</string>
   <string name="prefs_feedback">Обратна Връзка</string>
   <string name="prefs_feedback">Обратна Връзка</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="recommend_subject">Опитай %1$s на смартфона си!</string>
   <string name="recommend_subject">Опитай %1$s на смартфона си!</string>
-  <string name="auth_check_server">Провери Сървъра</string>
+  <string name="recommend_text">\"Искам да те поканя да опиташ %1$s на своя смартфон!\nИзтегли от %2$s\"</string>
+  <string name="auth_check_server">Проверка на сървъра</string>
   <string name="auth_host_url">Адрес на сървъра https://…</string>
   <string name="auth_host_url">Адрес на сървъра https://…</string>
   <string name="auth_username">Потребител</string>
   <string name="auth_username">Потребител</string>
   <string name="auth_password">Парола</string>
   <string name="auth_password">Парола</string>
   <string name="auth_register">Нов в %1$s?</string>
   <string name="auth_register">Нов в %1$s?</string>
   <string name="sync_string_files">Файлове</string>
   <string name="sync_string_files">Файлове</string>
-  <string name="setup_btn_connect">Свържи</string>
-  <string name="uploader_btn_upload_text">Качи</string>
+  <string name="setup_btn_connect">Свързване</string>
+  <string name="uploader_btn_upload_text">Качване</string>
   <string name="uploader_top_message">Избери папка за качване:</string>
   <string name="uploader_top_message">Избери папка за качване:</string>
   <string name="uploader_wrn_no_account_title">Няма открит профил</string>
   <string name="uploader_wrn_no_account_title">Няма открит профил</string>
   <string name="uploader_wrn_no_account_text">Няма %1$s профили на устройстото ти. Моля, първо настрой профил.</string>
   <string name="uploader_wrn_no_account_text">Няма %1$s профили на устройстото ти. Моля, първо настрой профил.</string>
-  <string name="uploader_wrn_no_account_setup_btn_text">Настрой</string>
-  <string name="uploader_wrn_no_account_quit_btn_text">Излез</string>
+  <string name="uploader_wrn_no_account_setup_btn_text">Настройка</string>
+  <string name="uploader_wrn_no_account_quit_btn_text">Изход</string>
   <string name="uploader_wrn_no_content_title">Няма съдържание за качване</string>
   <string name="uploader_wrn_no_content_title">Няма съдържание за качване</string>
   <string name="uploader_wrn_no_content_text">Не беше получено съдържание. Няма какво да се качи.</string>
   <string name="uploader_wrn_no_content_text">Не беше получено съдържание. Няма какво да се качи.</string>
   <string name="uploader_error_forbidden_content">%1$s няма разрешен достъп до споделеното съдържание.</string>
   <string name="uploader_error_forbidden_content">%1$s няма разрешен достъп до споделеното съдържание.</string>
@@ -56,65 +57,66 @@
   <string name="filedetails_type">Тип:</string>
   <string name="filedetails_type">Тип:</string>
   <string name="filedetails_created">Създаден на:</string>
   <string name="filedetails_created">Създаден на:</string>
   <string name="filedetails_modified">Променен на:</string>
   <string name="filedetails_modified">Променен на:</string>
-  <string name="filedetails_download">Изтегли</string>
-  <string name="filedetails_sync_file">Обнови файла</string>
+  <string name="filedetails_download">Изтегляне</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">Връзка за споделяне</string>
   <string name="action_share_file">Връзка за споделяне</string>
-  <string name="action_unshare_file">Премахни връзка за споделяне</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">ОК</string>
   <string name="common_ok">ОК</string>
-  <string name="common_cancel_download">Откажи тегленето</string>
-  <string name="common_cancel_upload">Откажи качването</string>
-  <string name="common_cancel">Откажи</string>
-  <string name="common_save_exit">Запази и Излез</string>
+  <string name="common_cancel_download">Отказване на тегленето</string>
+  <string name="common_cancel_upload">Отказване на качването</string>
+  <string name="common_cancel">Отказ</string>
+  <string name="common_save_exit">Запазване и изход</string>
   <string name="common_error">Грешка</string>
   <string name="common_error">Грешка</string>
-  <string name="common_loading">Зареждане ...</string>
+  <string name="common_loading">Зареждане...</string>
   <string name="common_error_unknown">Непозната грешка</string>
   <string name="common_error_unknown">Непозната грешка</string>
   <string name="about_title">Относно</string>
   <string name="about_title">Относно</string>
-  <string name="change_password">Промени паролата</string>
-  <string name="delete_account">Изтрий профил</string>
-  <string name="create_account">Създай профил</string>
-  <string name="upload_chooser_title">Качи от ...</string>
+  <string name="change_password">Промяна на парола</string>
+  <string name="delete_account">Изтриване на профила</string>
+  <string name="create_account">Създаване на профил</string>
+  <string name="upload_chooser_title">Качване от...</string>
   <string name="uploader_info_dirname">Име на папката</string>
   <string name="uploader_info_dirname">Име на папката</string>
-  <string name="uploader_upload_in_progress_ticker">Качване ...</string>
+  <string name="uploader_upload_in_progress_ticker">Качване...</string>
   <string name="uploader_upload_in_progress_content">%1$d%% Качване %2$s</string>
   <string name="uploader_upload_in_progress_content">%1$d%% Качване %2$s</string>
   <string name="uploader_upload_succeeded_ticker">Качването е успешно.</string>
   <string name="uploader_upload_succeeded_ticker">Качването е успешно.</string>
   <string name="uploader_upload_succeeded_content_single">%1$s е успешно качен.</string>
   <string name="uploader_upload_succeeded_content_single">%1$s е успешно качен.</string>
   <string name="uploader_upload_failed_ticker">Качването е неуспешно.</string>
   <string name="uploader_upload_failed_ticker">Качването е неуспешно.</string>
   <string name="uploader_upload_failed_content_single">Качването на %1$s не може да бъде завършено.</string>
   <string name="uploader_upload_failed_content_single">Качването на %1$s не може да бъде завършено.</string>
   <string name="uploader_upload_failed_credentials_error">Неуспешно качване, трябва да се впишеш отново.</string>
   <string name="uploader_upload_failed_credentials_error">Неуспешно качване, трябва да се впишеш отново.</string>
-  <string name="downloader_download_in_progress_ticker">Сваляне ...</string>
+  <string name="downloader_download_in_progress_ticker">Изтегляне...</string>
   <string name="downloader_download_in_progress_content">%1$d%% Сваляне %2$s</string>
   <string name="downloader_download_in_progress_content">%1$d%% Сваляне %2$s</string>
   <string name="downloader_download_succeeded_ticker">Изтеглянето е успешно.</string>
   <string name="downloader_download_succeeded_ticker">Изтеглянето е успешно.</string>
   <string name="downloader_download_succeeded_content">%1$s е успешно изтеглен.</string>
   <string name="downloader_download_succeeded_content">%1$s е успешно изтеглен.</string>
-  <string name="downloader_download_failed_ticker">Свалянето е неуспешно.</string>
-  <string name="downloader_download_failed_content">Свалянето на %1$s не може да бъде завършено.</string>
+  <string name="downloader_download_failed_ticker">Изтеглянето е неуспешно.</string>
+  <string name="downloader_download_failed_content">Изтеглянето на %1$s не може да бъде завършено.</string>
   <string name="downloader_not_downloaded_yet">Все още не е изтеглено</string>
   <string name="downloader_not_downloaded_yet">Все още не е изтеглено</string>
-  <string name="downloader_download_failed_credentials_error">Неуспешно изтегляне, трябва да се впишеш отново.</string>
+  <string name="downloader_download_failed_credentials_error">Неуспешно изтегляне, трябва да влезете отново.</string>
   <string name="common_choose_account">Изберете профил</string>
   <string name="common_choose_account">Изберете профил</string>
   <string name="sync_fail_ticker">Неуспешна синхронизация.</string>
   <string name="sync_fail_ticker">Неуспешна синхронизация.</string>
-  <string name="sync_fail_ticker_unauthorized">Неуспешно синхронизиране, трябва да се впишеш отново.</string>
+  <string name="sync_fail_ticker_unauthorized">Неуспешно синхронизиране, трябва да влезете отново.</string>
   <string name="sync_fail_content">Синхронизацията на %1$s не може да бъде завършена.</string>
   <string name="sync_fail_content">Синхронизацията на %1$s не може да бъде завършена.</string>
   <string name="sync_fail_content_unauthorized">Неправилна парола за %1$s.</string>
   <string name="sync_fail_content_unauthorized">Неправилна парола за %1$s.</string>
   <string name="sync_conflicts_in_favourites_ticker">Открити са конфликти</string>
   <string name="sync_conflicts_in_favourites_ticker">Открити са конфликти</string>
-  <string name="sync_conflicts_in_favourites_content">%1$d kept-in-sync файла немогат да бъдат сихронизирани</string>
+  <string name="sync_conflicts_in_favourites_content">%1$d kept-in-sync файла не могат да бъдат сихронизирани</string>
   <string name="sync_fail_in_favourites_ticker">Неуспешни Kept-in-sync файлове</string>
   <string name="sync_fail_in_favourites_ticker">Неуспешни Kept-in-sync файлове</string>
   <string name="sync_fail_in_favourites_content">Неуспешно синхронизиране на съдържанието на %1$d файла (%2$d конфликта).</string>
   <string name="sync_fail_in_favourites_content">Неуспешно синхронизиране на съдържанието на %1$d файла (%2$d конфликта).</string>
   <string name="sync_foreign_files_forgotten_ticker">Някои локални файлове бяха забравени.</string>
   <string name="sync_foreign_files_forgotten_ticker">Някои локални файлове бяха забравени.</string>
   <string name="sync_foreign_files_forgotten_content">Неуспешно копиране на %1$d файла в папка %2$s.</string>
   <string name="sync_foreign_files_forgotten_content">Неуспешно копиране на %1$d файла в папка %2$s.</string>
+  <string name="sync_foreign_files_forgotten_explanation">От версия 1.3.16 нататък, файлове качени от това устройство ще бъдат копирани в локалната %1$s папка, за да се предотврати загуба на данни, когато един файл е синхронизиран с много профили.\n\nПоради тази промяна, всички файлове качени с предишни версии на тази програма бяха копирани в папка %2$s. За жалост, грешка по време на синхрноизцаията попречи на тази операция да бъде завършена. Можеш или да оставиш файла(овете), както са и да премахнеш връзката до %3$s, или да преместиш файла(овете) в папка %1$s и да запазиш връзката до %4$s.\n\nИзброени по-долу са локалните файл(ове), и отделечените файл(ове), до които са били свързани в %5$s.</string>
   <string name="sync_current_folder_was_removed">Папка %1$s вече не същестува</string>
   <string name="sync_current_folder_was_removed">Папка %1$s вече не същестува</string>
-  <string name="foreign_files_move">Премести всички</string>
+  <string name="foreign_files_move">Преместване на всички</string>
   <string name="foreign_files_success">Всички файлове са преместени.</string>
   <string name="foreign_files_success">Всички файлове са преместени.</string>
   <string name="foreign_files_fail">Неуспешно преместване на някои файлове.</string>
   <string name="foreign_files_fail">Неуспешно преместване на някои файлове.</string>
-  <string name="foreign_files_local_text">Лоакелн: %1$s</string>
+  <string name="foreign_files_local_text">Локален: %1$s</string>
   <string name="foreign_files_remote_text">Отдалечен: %1$s</string>
   <string name="foreign_files_remote_text">Отдалечен: %1$s</string>
-  <string name="upload_query_move_foreign_files">Няма достатъчно място за копирването на избраните файлове до папка %1$s. Желаеш ли да ги преместиш вместо това?</string>
-  <string name="pincode_enter_pin_code">Моля, въведи своя App ПИН</string>
-  <string name="pincode_configure_your_pin">Въведи своя App ПИН</string>
+  <string name="upload_query_move_foreign_files">Няма достатъчно място за копирането на избраните файлове до папка %1$s. Да се преместят ли вместо това?</string>
+  <string name="pincode_enter_pin_code">Въведете своя App ПИН</string>
+  <string name="pincode_configure_your_pin">Въведете своя App ПИН</string>
   <string name="pincode_configure_your_pin_explanation">ПИН-ът ще бъде поискан всеки път, когато програмата стартира.</string>
   <string name="pincode_configure_your_pin_explanation">ПИН-ът ще бъде поискан всеки път, когато програмата стартира.</string>
-  <string name="pincode_reenter_your_pincode">Моля, въведи своя App ПИН отново.</string>
-  <string name="pincode_remove_your_pincode">Премахни своя App ПИН</string>
+  <string name="pincode_reenter_your_pincode">Въведете своя App ПИН отново.</string>
+  <string name="pincode_remove_your_pincode">Премахнете своя App ПИН</string>
   <string name="pincode_mismatch">App ПИН-овете не съвпадат</string>
   <string name="pincode_mismatch">App ПИН-овете не съвпадат</string>
   <string name="pincode_wrong">Неправилен App ПИН</string>
   <string name="pincode_wrong">Неправилен App ПИН</string>
   <string name="pincode_removed">App ПИН премахнат</string>
   <string name="pincode_removed">App ПИН премахнат</string>
@@ -130,14 +132,14 @@
   <string name="media_err_io">Неуспешно прочитане на медиен файл.</string>
   <string name="media_err_io">Неуспешно прочитане на медиен файл.</string>
   <string name="media_err_malformed">Неправилно кодиран медиен файл.</string>
   <string name="media_err_malformed">Неправилно кодиран медиен файл.</string>
   <string name="media_err_timeout">Отне твърде много време, за да започне пускането.</string>
   <string name="media_err_timeout">Отне твърде много време, за да започне пускането.</string>
-  <string name="media_err_invalid_progressive_playback">Медийният файл неможе да бъде stream-нат.</string>
-  <string name="media_err_unknown">Медийният файл неможе да бъде пуснат със стандартния плеър.</string>
+  <string name="media_err_invalid_progressive_playback">Медийният файл не може да бъде излъчен</string>
+  <string name="media_err_unknown">Медийният файл не може да бъде пуснат със стандартния плеър.</string>
   <string name="media_err_security_ex">Грешка по сигурноста, докато се опитва да пусне %1$s.</string>
   <string name="media_err_security_ex">Грешка по сигурноста, докато се опитва да пусне %1$s.</string>
   <string name="media_err_io_ex">Входно/изходна грешка, докато се опитваше да пусне %1$s.</string>
   <string name="media_err_io_ex">Входно/изходна грешка, докато се опитваше да пусне %1$s.</string>
   <string name="media_err_unexpected">Неочаквана грешка, докато се опитваше да пусне %1$s.</string>
   <string name="media_err_unexpected">Неочаквана грешка, докато се опитваше да пусне %1$s.</string>
   <string name="media_rewind_description">Бутон за превъртане</string>
   <string name="media_rewind_description">Бутон за превъртане</string>
   <string name="media_play_pause_description">Бутон пусни / пауза </string>
   <string name="media_play_pause_description">Бутон пусни / пауза </string>
-  <string name="media_forward_description">Бутон за Превъртане Напред</string>
+  <string name="media_forward_description">Бутон за превъртане напред</string>
   <string name="auth_getting_authorization">Получване на оторизация...</string>
   <string name="auth_getting_authorization">Получване на оторизация...</string>
   <string name="auth_trying_to_login">Опит за влизане...</string>
   <string name="auth_trying_to_login">Опит за влизане...</string>
   <string name="auth_no_net_conn_title">Няма интернет връзка</string>
   <string name="auth_no_net_conn_title">Няма интернет връзка</string>
@@ -151,8 +153,8 @@
   <string name="auth_unknown_host_title">Неуспешно намиране на сървъра.</string>
   <string name="auth_unknown_host_title">Неуспешно намиране на сървъра.</string>
   <string name="auth_incorrect_path_title">Сървърът не е открит.</string>
   <string name="auth_incorrect_path_title">Сървърът не е открит.</string>
   <string name="auth_timeout_title">Сървърът се забави прекалено много с отговора.</string>
   <string name="auth_timeout_title">Сървърът се забави прекалено много с отговора.</string>
-  <string name="auth_incorrect_address_title">Грешен Интернет Адрес</string>
-  <string name="auth_ssl_general_error_title">Неуспешна инициализацията на SSL.</string>
+  <string name="auth_incorrect_address_title">Грешен URL адрес</string>
+  <string name="auth_ssl_general_error_title">Неуспешна инициализация на SSL.</string>
   <string name="auth_ssl_unverified_server_title">Неуспешна проверка на SSL самоличността на сървъра.</string>
   <string name="auth_ssl_unverified_server_title">Неуспешна проверка на SSL самоличността на сървъра.</string>
   <string name="auth_bad_oc_version_title">Неизвестна версия на сървъра.</string>
   <string name="auth_bad_oc_version_title">Неизвестна версия на сървъра.</string>
   <string name="auth_wrong_connection_title">Неуспешно осъществяване на връзка</string>
   <string name="auth_wrong_connection_title">Неуспешно осъществяване на връзка</string>
@@ -160,50 +162,50 @@
   <string name="auth_unauthorized">Грешно потребителско име или парола</string>
   <string name="auth_unauthorized">Грешно потребителско име или парола</string>
   <string name="auth_oauth_error">Неуспешна оторизация</string>
   <string name="auth_oauth_error">Неуспешна оторизация</string>
   <string name="auth_oauth_error_access_denied">Достъпът отказан от оторизиращия сървър</string>
   <string name="auth_oauth_error_access_denied">Достъпът отказан от оторизиращия сървър</string>
-  <string name="auth_wtf_reenter_URL">Неочаквано състояние; моля,въведи интернет адреса на сървъра отново.</string>
-  <string name="auth_expired_oauth_token_toast">Оторизацията ти изтече. Моля, оторизирай се отново.</string>
-  <string name="auth_expired_basic_auth_toast">Моля, въведи текущата парола</string>
-  <string name="auth_expired_saml_sso_token_toast">Сесията ти изтече. Моля, свържи се повторно.</string>
-  <string name="auth_connecting_auth_server">Свързване с оторизиращи сървър...</string>
+  <string name="auth_wtf_reenter_URL">Неочаквано състояние; въведете URL адреса на сървъра отново.</string>
+  <string name="auth_expired_oauth_token_toast">Оторизацията изтече. Моля, оторизирайте се отново.</string>
+  <string name="auth_expired_basic_auth_toast">Въведете текущата парола</string>
+  <string name="auth_expired_saml_sso_token_toast">Сесията изтече. Моля, свържете се повторно.</string>
+  <string name="auth_connecting_auth_server">Свързване с оторизиращия сървър...</string>
   <string name="auth_unsupported_auth_method">Сървърът не поддържа този метод за оторизиране</string>
   <string name="auth_unsupported_auth_method">Сървърът не поддържа този метод за оторизиране</string>
   <string name="auth_unsupported_multiaccount">%1$s не поддържа множество профили</string>
   <string name="auth_unsupported_multiaccount">%1$s не поддържа множество профили</string>
-  <string name="auth_fail_get_user_name">Твоят сървър не връща правилен потрибителски индентификатор.
-Моля, свържи се с администратора.</string>
+  <string name="auth_fail_get_user_name">Вашият сървър не връща правилен потребителски индентификатор.
+Моля, свържете се с администратора.</string>
   <string name="auth_can_not_auth_against_server">Неуспешен опит за оторизиране с този сървър.</string>
   <string name="auth_can_not_auth_against_server">Неуспешен опит за оторизиране с този сървър.</string>
-  <string name="fd_keep_in_sync">Поддържай файлът обновен.</string>
-  <string name="common_rename">Преименувай</string>
-  <string name="common_remove">Премахни</string>
-  <string name="confirmation_remove_alert">Наистина ли искаш да изтриеш %1$s?</string>
-  <string name="confirmation_remove_folder_alert">Наистина ли искаш да премахнеш %1$s и съдържанието му?</string>
+  <string name="fd_keep_in_sync">Поддържане на файла обновен.</string>
+  <string name="common_rename">Преименуване</string>
+  <string name="common_remove">Премахване</string>
+  <string name="confirmation_remove_alert">Наистина ли искате да изтриете %1$s ?</string>
+  <string name="confirmation_remove_folder_alert">Наистина ли искате да премахнете %1$s и съдържанието му?</string>
   <string name="confirmation_remove_local">Само локално</string>
   <string name="confirmation_remove_local">Само локално</string>
   <string name="confirmation_remove_folder_local">Само локалното съдържание</string>
   <string name="confirmation_remove_folder_local">Само локалното съдържание</string>
-  <string name="confirmation_remove_remote">Премахни от сървъра</string>
+  <string name="confirmation_remove_remote">Премахване от сървъра</string>
   <string name="confirmation_remove_remote_and_local">Отдалечено и локално</string>
   <string name="confirmation_remove_remote_and_local">Отдалечено и локално</string>
   <string name="remove_success_msg">Премахването успешно.</string>
   <string name="remove_success_msg">Премахването успешно.</string>
   <string name="remove_fail_msg">Неуспешно прехамхване.</string>
   <string name="remove_fail_msg">Неуспешно прехамхване.</string>
-  <string name="rename_dialog_title">Въведи ново име</string>
+  <string name="rename_dialog_title">Въведете ново име</string>
   <string name="rename_local_fail_msg">Локално копие не може да бъде преименувано; опитайте с друго име</string>
   <string name="rename_local_fail_msg">Локално копие не може да бъде преименувано; опитайте с друго име</string>
   <string name="rename_server_fail_msg">Неуспешно преименуване</string>
   <string name="rename_server_fail_msg">Неуспешно преименуване</string>
-  <string name="sync_file_fail_msg">Неуспешна проверка на отдалеченият файл.</string>
-  <string name="sync_file_nothing_to_do_msg">Съдържанието на файле е вече синхронизирано</string>
+  <string name="sync_file_fail_msg">Неуспешна проверка на отдалечения файл.</string>
+  <string name="sync_file_nothing_to_do_msg">Съдържанието на файла е вече синхронизирано</string>
   <string name="create_dir_fail_msg">Папката не може да бъде създадена</string>
   <string name="create_dir_fail_msg">Папката не може да бъде създадена</string>
   <string name="filename_forbidden_characters">Забранени символи: / \\ &lt; &gt; : \" | ? *</string>
   <string name="filename_forbidden_characters">Забранени символи: / \\ &lt; &gt; : \" | ? *</string>
   <string name="filename_empty">Името на файла не може да бъде празно</string>
   <string name="filename_empty">Името на файла не може да бъде празно</string>
-  <string name="wait_a_moment">Изчакай малко</string>
-  <string name="filedisplay_unexpected_bad_get_content">Неочакван проблем; моля, избери файла от друга програма.</string>
+  <string name="wait_a_moment">Изчакайте малко</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="activity_chooser_title">Изпращане на връзката до...</string>
   <string name="oauth_check_onoff">Вписване с oAuth2</string>
   <string name="oauth_check_onoff">Вписване с oAuth2</string>
   <string name="oauth_login_connection">Свързване с оАутх2 сървър...</string>
   <string name="oauth_login_connection">Свързване с оАутх2 сървър...</string>
   <string name="ssl_validator_header">Самоличността на сайта не може да бъде проверена.</string>
   <string name="ssl_validator_header">Самоличността на сайта не може да бъде проверена.</string>
   <string name="ssl_validator_reason_cert_not_trusted">- Сертификатът на сървъра не е надежден.</string>
   <string name="ssl_validator_reason_cert_not_trusted">- Сертификатът на сървъра не е надежден.</string>
   <string name="ssl_validator_reason_cert_expired">- Сертификатът на сървъра е изтекъл</string>
   <string name="ssl_validator_reason_cert_expired">- Сертификатът на сървъра е изтекъл</string>
   <string name="ssl_validator_reason_cert_not_yet_valid">- Датите на валидност на сървърния сертификат са в бъдещето.</string>
   <string name="ssl_validator_reason_cert_not_yet_valid">- Датите на валидност на сървърния сертификат са в бъдещето.</string>
-  <string name="ssl_validator_reason_hostname_not_verified">- Интернет Адреса не съвпада с този сертификата.</string>
-  <string name="ssl_validator_question">Въпреки всичко, искаш ли да се довериш на сертификата?</string>
+  <string name="ssl_validator_reason_hostname_not_verified">- URL адресът не съвпада с този сертификата.</string>
+  <string name="ssl_validator_question">Въпреки всичко, искате ли да се доверите на сертификата?</string>
   <string name="ssl_validator_not_saved">Неуспешно запазване на сертификата.</string>
   <string name="ssl_validator_not_saved">Неуспешно запазване на сертификата.</string>
-  <string name="ssl_validator_btn_details_see">Детайли</string>
-  <string name="ssl_validator_btn_details_hide">Скрий</string>
+  <string name="ssl_validator_btn_details_see">Подробности</string>
+  <string name="ssl_validator_btn_details_hide">Скриване</string>
   <string name="ssl_validator_label_subject">Издаден на:</string>
   <string name="ssl_validator_label_subject">Издаден на:</string>
   <string name="ssl_validator_label_issuer">Издаден от:</string>
   <string name="ssl_validator_label_issuer">Издаден от:</string>
   <string name="ssl_validator_label_CN">Познато име:</string>
   <string name="ssl_validator_label_CN">Познато име:</string>
@@ -215,43 +217,43 @@
   <string name="ssl_validator_label_validity">Валидност:</string>
   <string name="ssl_validator_label_validity">Валидност:</string>
   <string name="ssl_validator_label_validity_from">От:</string>
   <string name="ssl_validator_label_validity_from">От:</string>
   <string name="ssl_validator_label_validity_to">До:</string>
   <string name="ssl_validator_label_validity_to">До:</string>
-  <string name="ssl_validator_label_signature">Електронен Подпис:</string>
+  <string name="ssl_validator_label_signature">Електронен подпис:</string>
   <string name="ssl_validator_label_signature_algorithm">Алгоритъм:</string>
   <string name="ssl_validator_label_signature_algorithm">Алгоритъм:</string>
   <string name="ssl_validator_null_cert">Сертификатът не може да бъде показан.</string>
   <string name="ssl_validator_null_cert">Сертификатът не може да бъде показан.</string>
   <string name="ssl_validator_no_info_about_error">- Няма информация за грешката.</string>
   <string name="ssl_validator_no_info_about_error">- Няма информация за грешката.</string>
-  <string name="placeholder_sentence">Това е пазач на място</string>
+  <string name="placeholder_sentence">Това е за запазване на място</string>
   <string name="placeholder_filename">placeholder.txt</string>
   <string name="placeholder_filename">placeholder.txt</string>
   <string name="placeholder_filetype">PNG Image</string>
   <string name="placeholder_filetype">PNG Image</string>
   <string name="placeholder_filesize">389 KB</string>
   <string name="placeholder_filesize">389 KB</string>
   <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
   <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
   <string name="placeholder_media_time">12:23:45</string>
   <string name="placeholder_media_time">12:23:45</string>
-  <string name="instant_upload_on_wifi">Качвай снимки само през WiFi.</string>
-  <string name="instant_video_upload_on_wifi">Качвай видеота само през WiFi</string>
+  <string name="instant_upload_on_wifi">Качване на снимки само през WiFi</string>
+  <string name="instant_video_upload_on_wifi">Качване на видео само през WiFi</string>
   <string name="instant_upload_path">/InstantUpload</string>
   <string name="instant_upload_path">/InstantUpload</string>
-  <string name="conflict_title">Обнови конфликтите</string>
-  <string name="conflict_message">Външния файл %s не е синхроизниран с локалния. Ако продължиш ще замениш съдържанието на файла на сървъра.</string>
-  <string name="conflict_keep_both">Запази и двата</string>
-  <string name="conflict_overwrite">Замени</string>
-  <string name="conflict_dont_upload">Не качвай</string>
-  <string name="preview_image_description">Преглед на изборажението</string>
+  <string name="conflict_title">Обновяване на конфликтите</string>
+  <string name="conflict_message">Външния файл %s не е синхронизиран с локалния. Ако продължите, ще замените съдържанието на файла на сървъра.</string>
+  <string name="conflict_keep_both">Запазване и на двата</string>
+  <string name="conflict_overwrite">Презаписване</string>
+  <string name="conflict_dont_upload">Да не се качва</string>
+  <string name="preview_image_description">Преглед на изображението</string>
   <string name="preview_image_error_unknown_format">Изображението не може да бъде показано</string>
   <string name="preview_image_error_unknown_format">Изображението не може да бъде показано</string>
   <string name="error__upload__local_file_not_copied">%1$s не може да бъде копиран в локалната папка %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s не може да бъде копиран в локалната папка %2$s</string>
-  <string name="share_link_no_support_share_api">Съжалявам, споделянето не е включено на сървъра ти. 
-Моля, свържи се с администратора.</string>
-  <string name="share_link_file_no_exist">Неуспешен опит за споделяне на този файл или папка. Моля, провери дали съществува.</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="share_link_file_error">Настъпи грешка при опита за споделяне на този файл или папка.</string>
-  <string name="unshare_link_file_no_exist">Неуспешен опит за премахване на споделянето на този файл или папка. Той не съществува.</string>
+  <string name="unshare_link_file_no_exist">Неуспешен опит за прекратяване на споделянето. Моля, провери дали файла съществува.</string>
   <string name="unshare_link_file_error">Настъпи грешка при опита за премахване на споделянето на този файл или папка.</string>
   <string name="unshare_link_file_error">Настъпи грешка при опита за премахване на споделянето на този файл или папка.</string>
-  <string name="activity_chooser_send_file_title">Изпрати</string>
-  <string name="copy_link">Копирай връзката</string>
+  <string name="activity_chooser_send_file_title">Изпращане</string>
+  <string name="copy_link">Копиране на връзката</string>
   <string name="clipboard_text_copied">Копирана</string>
   <string name="clipboard_text_copied">Копирана</string>
-  <string name="error_cant_bind_to_operations_service">Критична грешка: неможе да изпълни операциите</string>
+  <string name="error_cant_bind_to_operations_service">Критична грешка: не може да изпълни операциите</string>
   <string name="network_error_socket_exception">Настъпи грешка при свързването със сървъра.</string>
   <string name="network_error_socket_exception">Настъпи грешка при свързването със сървъра.</string>
   <string name="network_error_socket_timeout_exception">Настъпи грешка при свързването със сървъра, операцията не е изпълнена.</string>
   <string name="network_error_socket_timeout_exception">Настъпи грешка при свързването със сървъра, операцията не е изпълнена.</string>
   <string name="network_error_connect_timeout_exception">Настъпи грешка при свързването със сървъра, операцията не е изпълнена.</string>
   <string name="network_error_connect_timeout_exception">Настъпи грешка при свързването със сървъра, операцията не е изпълнена.</string>
   <string name="network_host_not_available">Неуспешно завършена операция, сървърът не е достъпен.</string>
   <string name="network_host_not_available">Неуспешно завършена операция, сървърът не е достъпен.</string>
   <string name="empty"></string>
   <string name="empty"></string>
-  <string name="forbidden_permissions">Нямаш разрешен достъп до %s</string>
+  <string name="forbidden_permissions">Нямате разрешен достъп до %s</string>
   <string name="forbidden_permissions_rename">за преименуване на този файл</string>
   <string name="forbidden_permissions_rename">за преименуване на този файл</string>
   <string name="forbidden_permissions_delete">за изтриване на този файл</string>
   <string name="forbidden_permissions_delete">за изтриване на този файл</string>
   <string name="share_link_forbidden_permissions">за споделяне на този файл</string>
   <string name="share_link_forbidden_permissions">за споделяне на този файл</string>
@@ -260,6 +262,14 @@
   <string name="uploader_upload_forbidden_permissions">за качване в тази папка</string>
   <string name="uploader_upload_forbidden_permissions">за качване в тази папка</string>
   <string name="downloader_download_file_not_found">Файлът вече не се намира на този сървър</string>
   <string name="downloader_download_file_not_found">Файлът вече не се намира на този сървър</string>
   <string name="prefs_category_accounts">Профили</string>
   <string name="prefs_category_accounts">Профили</string>
-  <string name="prefs_add_account">Добави профил</string>
+  <string name="prefs_add_account">Добавяне на профил</string>
   <string name="auth_redirect_non_secure_connection_title">Сигурна връзка е пренасочена по несигурен път.</string>
   <string name="auth_redirect_non_secure_connection_title">Сигурна връзка е пренасочена по несигурен път.</string>
+  <string name="actionbar_move">Премести</string>
+  <string name="file_list_empty_moving">Тук няма нищо. Можеш да добавиш папка!</string>
+  <string name="move_choose_button_text">Избери</string>
+  <string name="move_file_not_found">Неуспешно преместване. Моля, провери дали файла съществува.</string>
+  <string name="move_file_invalid_into_descendent">Не е възможно да преместиш папка в нейна под папка.</string>
+  <string name="move_file_invalid_overwrite">Файлът вече съществува в отдалечената папка.</string>
+  <string name="move_file_error">Настъпи грешка при опита за преместване на този файл или папка.</string>
+  <string name="forbidden_permissions_move">за да преместиш този файл</string>
 </resources>
 </resources>

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

@@ -238,9 +238,7 @@
   <string name="error__upload__local_file_not_copied">%1$s কে %2$s স্থানীয় ফোল্ডারে কপি করা গেলনা </string>
   <string name="error__upload__local_file_not_copied">%1$s কে %2$s স্থানীয় ফোল্ডারে কপি করা গেলনা </string>
   <string name="share_link_no_support_share_api">দুঃখিত, আপনার সার্ভার ভাগাভাগি উপযোগী নয়। দয়া করে আপনার
   <string name="share_link_no_support_share_api">দুঃখিত, আপনার সার্ভার ভাগাভাগি উপযোগী নয়। দয়া করে আপনার
 ⇥⇥প্রশাসকের সঙ্গে যোগাযোগ করুন।</string>
 ⇥⇥প্রশাসকের সঙ্গে যোগাযোগ করুন।</string>
-  <string name="share_link_file_no_exist">এই ফাইল বা ফোল্ডার ভাগাভাগি করা সম্ভব নয়। এর অস্তিত্ব নিশ্চিত করুন</string>
   <string name="share_link_file_error">এই ফাইল অথবা ফোল্ডার ভাগাভাগির চেষ্টা করতে যেয়ে একটি জটিলতা হয়েছে</string>
   <string name="share_link_file_error">এই ফাইল অথবা ফোল্ডার ভাগাভাগির চেষ্টা করতে যেয়ে একটি জটিলতা হয়েছে</string>
-  <string name="unshare_link_file_no_exist">এই ফাইল বা ফোল্ডার এর ভাগাভাগি রদ করা সম্ভব নয়। এর অস্তিত্ব নেই।</string>
   <string name="unshare_link_file_error">এই ফাইল অথবা ফোল্ডার ভাগাভাগি রদ করার চেষ্টা করতে যেয়ে একটি জটিলতা হয়েছে</string>
   <string name="unshare_link_file_error">এই ফাইল অথবা ফোল্ডার ভাগাভাগি রদ করার চেষ্টা করতে যেয়ে একটি জটিলতা হয়েছে</string>
   <string name="activity_chooser_send_file_title">পাঠাও</string>
   <string name="activity_chooser_send_file_title">পাঠাও</string>
   <string name="copy_link">লিঙ্ক কপি করো</string>
   <string name="copy_link">লিঙ্ক কপি করো</string>
@@ -262,4 +260,5 @@
   <string name="prefs_category_accounts">একাউন্ট</string>
   <string name="prefs_category_accounts">একাউন্ট</string>
   <string name="prefs_add_account">একাউন্ট যোগ কর</string>
   <string name="prefs_add_account">একাউন্ট যোগ কর</string>
   <string name="auth_redirect_non_secure_connection_title">নিরাপদ সংযোগকে একটি অনিরাপদ পথে দিকবদল করা হয়েছে</string>
   <string name="auth_redirect_non_secure_connection_title">নিরাপদ সংযোগকে একটি অনিরাপদ পথে দিকবদল করা হয়েছে</string>
+  <string name="move_choose_button_text">বেছে নিন</string>
 </resources>
 </resources>

+ 14 - 2
res/values-ca/strings.xml

@@ -31,6 +31,7 @@
   <string name="prefs_feedback">Comentaris</string>
   <string name="prefs_feedback">Comentaris</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="recommend_subject">Proveu %1$s a un telèfon avançat!</string>
   <string name="recommend_subject">Proveu %1$s a un telèfon avançat!</string>
+  <string name="recommend_text">\"Vull convidar-te a utilitzar l\'aplicació %1$s al teu smartphone! Baixa\'l aquí: %2$s\"</string>
   <string name="auth_check_server">Comprova el servidor</string>
   <string name="auth_check_server">Comprova el servidor</string>
   <string name="auth_host_url">Adreça del servidor https://…</string>
   <string name="auth_host_url">Adreça del servidor https://…</string>
   <string name="auth_username">Nom d\'usuari</string>
   <string name="auth_username">Nom d\'usuari</string>
@@ -49,6 +50,8 @@
   <string name="uploader_error_forbidden_content">%1$s no pot accedir al contingut compartit</string>
   <string name="uploader_error_forbidden_content">%1$s no pot accedir al contingut compartit</string>
   <string name="uploader_info_uploading">S\'està pujant</string>
   <string name="uploader_info_uploading">S\'està pujant</string>
   <string name="file_list_empty">Res per aquí. Pugeu alguna cosa!</string>
   <string name="file_list_empty">Res per aquí. Pugeu alguna cosa!</string>
+  <string name="file_list_loading">Carregant...</string>
+  <string name="local_file_list_empty">No hi ha arxius a aquesta carpeta</string>
   <string name="filedetails_select_file">Feu clic en un fitxer per mostrar informació addicional.</string>
   <string name="filedetails_select_file">Feu clic en un fitxer per mostrar informació addicional.</string>
   <string name="filedetails_size">Mida:</string>
   <string name="filedetails_size">Mida:</string>
   <string name="filedetails_type">Tipus:</string>
   <string name="filedetails_type">Tipus:</string>
@@ -234,9 +237,7 @@
   <string name="preview_image_error_unknown_format">Aquesta imatge no es pot mostrar</string>
   <string name="preview_image_error_unknown_format">Aquesta imatge no es pot mostrar</string>
   <string name="error__upload__local_file_not_copied">%1$s no s\'ha pogut copiar a la carpeta local %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s no s\'ha pogut copiar a la carpeta local %2$s</string>
   <string name="share_link_no_support_share_api">La compartició no es troba disponible al vostre servidor. Contacteu amb l\'administrador.</string>
   <string name="share_link_no_support_share_api">La compartició no es troba disponible al vostre servidor. Contacteu amb l\'administrador.</string>
-  <string name="share_link_file_no_exist">No es pot compartir aquest fitxer o carpeta. Assegureu-vos que existeix</string>
   <string name="share_link_file_error">S\'ha produït un error en intentar compartir aquest fitxer o carpeta</string>
   <string name="share_link_file_error">S\'ha produït un error en intentar compartir aquest fitxer o carpeta</string>
-  <string name="unshare_link_file_no_exist">No es pot deixar de compartir aquest fitxer o carpeta. No existeix.</string>
   <string name="unshare_link_file_error">S\'ha produït un error en intentar deixar de compartir aquest fitxer o carpeta</string>
   <string name="unshare_link_file_error">S\'ha produït un error en intentar deixar de compartir aquest fitxer o carpeta</string>
   <string name="activity_chooser_send_file_title">Envia</string>
   <string name="activity_chooser_send_file_title">Envia</string>
   <string name="copy_link">Copia l\'enllaç</string>
   <string name="copy_link">Copia l\'enllaç</string>
@@ -247,5 +248,16 @@
   <string name="network_error_connect_timeout_exception">Hi ha hagut un error esperant el servidor, l\'operació no s\'ha pogut realitzar</string>
   <string name="network_error_connect_timeout_exception">Hi ha hagut un error esperant el servidor, l\'operació no s\'ha pogut realitzar</string>
   <string name="network_host_not_available">La operació no s\'ha pogut completar, no es pot accedir al servidor</string>
   <string name="network_host_not_available">La operació no s\'ha pogut completar, no es pot accedir al servidor</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="forbidden_permissions">No teniu permisos %s</string>
+  <string name="forbidden_permissions_rename">per canviar el nom d\'aquest fitxer</string>
+  <string name="forbidden_permissions_delete">per eliminar aquest fitxer</string>
+  <string name="share_link_forbidden_permissions">per compartir aquest fitxer</string>
+  <string name="unshare_link_forbidden_permissions">per deixar de compartir aquest fitxer</string>
+  <string name="forbidden_permissions_create">per crear el fitxer</string>
+  <string name="uploader_upload_forbidden_permissions">per pujar fitxers en aquesta carpeta</string>
+  <string name="downloader_download_file_not_found">El fitxer ja no està disponible en el servidor</string>
   <string name="prefs_category_accounts">Comptes</string>
   <string name="prefs_category_accounts">Comptes</string>
+  <string name="prefs_add_account">Afegeix compte</string>
+  <string name="auth_redirect_non_secure_connection_title">La connexió segura està essent redirigida a través d\'una ruta insegura</string>
+  <string name="move_choose_button_text">Escull</string>
 </resources>
 </resources>

+ 12 - 2
res/values-cs-rCZ/strings.xml

@@ -31,6 +31,7 @@
   <string name="prefs_feedback">Odezva</string>
   <string name="prefs_feedback">Odezva</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="recommend_subject">Zkuste %1$s na vašem smartphonu!</string>
   <string name="recommend_subject">Zkuste %1$s na vašem smartphonu!</string>
+  <string name="recommend_text">\"Chtěl bych vás pozvat k používání %1$s na vašem smartphonu!\nKe stažení zde: %2$s\"</string>
   <string name="auth_check_server">Zkontrolovat server</string>
   <string name="auth_check_server">Zkontrolovat server</string>
   <string name="auth_host_url">Adresa serveru https://...</string>
   <string name="auth_host_url">Adresa serveru https://...</string>
   <string name="auth_username">Uživatelské jméno</string>
   <string name="auth_username">Uživatelské jméno</string>
@@ -103,6 +104,7 @@
   <string name="sync_fail_in_favourites_content">Obsah %1$d souborů nemohl být synchronizován (počet konfliktů: %2$d)</string>
   <string name="sync_fail_in_favourites_content">Obsah %1$d souborů nemohl být synchronizován (počet konfliktů: %2$d)</string>
   <string name="sync_foreign_files_forgotten_ticker">Některé místní soubory byly zapomenuty</string>
   <string name="sync_foreign_files_forgotten_ticker">Některé místní soubory byly zapomenuty</string>
   <string name="sync_foreign_files_forgotten_content">%1$d souborů z %2$s složek se nepodařilo zkopírovat do</string>
   <string name="sync_foreign_files_forgotten_content">%1$d souborů z %2$s složek se nepodařilo zkopírovat do</string>
+  <string name="sync_foreign_files_forgotten_explanation">Od verze 1.3.16 jsou soubory nahrané z tohoto zařízení kopírovány do místní složky %1$s, aby se zabránilo ztrátě dat při synchronizaci jednoho souboru s více účty.\n\nVšechny soubory nahrané předchozími verzemi aplikace byly z tohoto důvodu překopírovány do složky %2$s. Bohužel se objevila chyba zabraňující dokončení této operace v průběhu synchronizace účtu. Buď můžete soubor(y) ponechat jak jsou a odebrat odkaz do složky %3$s, nebo přesunout soubor(y) do složky %1$s a zachovat odkaz na %4$s.\n\nNíže je seznam místních i vzdálených souborů ve složce %5$s, do které byly odkázány.</string>
   <string name="sync_current_folder_was_removed">Složka %1$s již neexistuje</string>
   <string name="sync_current_folder_was_removed">Složka %1$s již neexistuje</string>
   <string name="foreign_files_move">Přesunout vše</string>
   <string name="foreign_files_move">Přesunout vše</string>
   <string name="foreign_files_success">Všechny soubory byly přesunuty</string>
   <string name="foreign_files_success">Všechny soubory byly přesunuty</string>
@@ -237,9 +239,9 @@
   <string name="error__upload__local_file_not_copied">%1$s nelze zkopírovat do místního adresáře %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s nelze zkopírovat do místního adresáře %2$s</string>
   <string name="share_link_no_support_share_api">Je nám líto, ale sdílení není na vašem serveru povoleno. Kontaktujte svého
   <string name="share_link_no_support_share_api">Je nám líto, ale sdílení není na vašem serveru povoleno. Kontaktujte svého
 administrátora.</string>
 administrátora.</string>
-  <string name="share_link_file_no_exist">Nepodařilo se sdílet tento soubor či složku. Ujistěte se, že existuje.</string>
+  <string name="share_link_file_no_exist">Nelze sdílet. Zkontrolujte prosím že soubor existuje</string>
   <string name="share_link_file_error">Při pokusu o sdílení tohoto souboru či složky nastala chyba</string>
   <string name="share_link_file_error">Při pokusu o sdílení tohoto souboru či složky nastala chyba</string>
-  <string name="unshare_link_file_no_exist">Nepodařilo se zrušit sdílení tohoto souboru nebo složky, protože neexistuje.</string>
+  <string name="unshare_link_file_no_exist">Nelze ukončit sdílení. Zkontrolujte prosím že soubor existuje</string>
   <string name="unshare_link_file_error">Při pokusu o zrušení sdílení tohoto souboru či složky nastala chyba</string>
   <string name="unshare_link_file_error">Při pokusu o zrušení sdílení tohoto souboru či složky nastala chyba</string>
   <string name="activity_chooser_send_file_title">Odeslat</string>
   <string name="activity_chooser_send_file_title">Odeslat</string>
   <string name="copy_link">Zkopírovat odkaz</string>
   <string name="copy_link">Zkopírovat odkaz</string>
@@ -261,4 +263,12 @@ administrátora.</string>
   <string name="prefs_category_accounts">Účty</string>
   <string name="prefs_category_accounts">Účty</string>
   <string name="prefs_add_account">Přidat účet</string>
   <string name="prefs_add_account">Přidat účet</string>
   <string name="auth_redirect_non_secure_connection_title">Zabezpečené spojení je přesměrováváno nezabezpečenou trasou.</string>
   <string name="auth_redirect_non_secure_connection_title">Zabezpečené spojení je přesměrováváno nezabezpečenou trasou.</string>
+  <string name="actionbar_move">Přesunout</string>
+  <string name="file_list_empty_moving">Zde nic není. Můžete přidat adresář!</string>
+  <string name="move_choose_button_text">Vybrat</string>
+  <string name="move_file_not_found">Nelze přesunout. Zkontrolujte prosím že soubor existuje</string>
+  <string name="move_file_invalid_into_descendent">Není možné adresář přesunout do vlastního podadresáře</string>
+  <string name="move_file_invalid_overwrite">Soubor již v cílovém adresáři existuje</string>
+  <string name="move_file_error">Při pokusu o přesun tohoto souboru či složky nastala chyba</string>
+  <string name="forbidden_permissions_move">pro přesun tohoto souboru</string>
 </resources>
 </resources>

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

@@ -141,4 +141,5 @@
   <string name="activity_chooser_send_file_title">Anfon</string>
   <string name="activity_chooser_send_file_title">Anfon</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Cyfrifon</string>
   <string name="prefs_category_accounts">Cyfrifon</string>
+  <string name="move_choose_button_text">Dewisiwch</string>
 </resources>
 </resources>

+ 13 - 2
res/values-da/strings.xml

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Feedback</string>
   <string name="prefs_feedback">Feedback</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="recommend_subject">Prøv %1$s på din smartphone!</string>
   <string name="recommend_subject">Prøv %1$s på din smartphone!</string>
+  <string name="recommend_text">\"Jeg ønsker at invitere dig til at bruge %1$s på din smartphone!\nHent den her: %2$s\"
+	</string>
   <string name="auth_check_server">Check Server</string>
   <string name="auth_check_server">Check Server</string>
   <string name="auth_host_url">Server addresse https://…</string>
   <string name="auth_host_url">Server addresse https://…</string>
   <string name="auth_username">Brugernavn</string>
   <string name="auth_username">Brugernavn</string>
@@ -103,6 +105,7 @@
   <string name="sync_fail_in_favourites_content">Indholdet af %1$d filer ikke kunne synkroniseres (%2$d konflikter)</string>
   <string name="sync_fail_in_favourites_content">Indholdet af %1$d filer ikke kunne synkroniseres (%2$d konflikter)</string>
   <string name="sync_foreign_files_forgotten_ticker">Visse lokale filer blev glemt</string>
   <string name="sync_foreign_files_forgotten_ticker">Visse lokale filer blev glemt</string>
   <string name="sync_foreign_files_forgotten_content">%1$d filer ud af %2$s mappe kunne ikke kopieres ind i</string>
   <string name="sync_foreign_files_forgotten_content">%1$d filer ud af %2$s mappe kunne ikke kopieres ind i</string>
+  <string name="sync_foreign_files_forgotten_explanation">Fra version 1.3.16 bliver filer uploadet fra denne enhed kopieret til mappen %1$s for at forhindre datatab når en enkelt fil synkroniseres med flere konti.\n\nPå grund af denne ændring er alle filer som var uploadet i tidligere versioner af denne app kopieret til mappen %2$s. Imidlertid forhindrede en fejl færdiggørelsen af denne operation under konto-synkronisering. Du kan enten lade filen (el. filerne) være som de er og fjerne linket til %3$s eller flytte filen (el. filerne) til mappen %1$s og beholde linket til %4$s.\n\nHerunder er en liste med den lokale fil(er), og den fjerne mappe(r) i %5$s, som de var knyttet til.</string>
   <string name="sync_current_folder_was_removed">Mappen %1$s eksistere ikke længere</string>
   <string name="sync_current_folder_was_removed">Mappen %1$s eksistere ikke længere</string>
   <string name="foreign_files_move">Flyt alle</string>
   <string name="foreign_files_move">Flyt alle</string>
   <string name="foreign_files_success">Alle filer blev flyttet</string>
   <string name="foreign_files_success">Alle filer blev flyttet</string>
@@ -236,9 +239,9 @@
   <string name="preview_image_error_unknown_format">Dette billede kan ikke vises</string>
   <string name="preview_image_error_unknown_format">Dette billede kan ikke vises</string>
   <string name="error__upload__local_file_not_copied">%1$s kunne ikke kopieres til %2$s lokale mappe</string>
   <string name="error__upload__local_file_not_copied">%1$s kunne ikke kopieres til %2$s lokale mappe</string>
   <string name="share_link_no_support_share_api">Beklager, deling er ikke slået til på din server. Kontakt venligst din administrator.</string>
   <string name="share_link_no_support_share_api">Beklager, deling er ikke slået til på din server. Kontakt venligst din administrator.</string>
-  <string name="share_link_file_no_exist">Kan ikke dele denne fil eller mappe. Find venligst ud af om den eksisterer</string>
+  <string name="share_link_file_no_exist">Kan ikke dele. Tjek venligst om filen findes.</string>
   <string name="share_link_file_error">Der opstod en fejl ved deling af denne fil eller mappe</string>
   <string name="share_link_file_error">Der opstod en fejl ved deling af denne fil eller mappe</string>
-  <string name="unshare_link_file_no_exist">Kan ikke fjerne delingen af denne fil eller mappe. Den findes ikke.</string>
+  <string name="unshare_link_file_no_exist">Kan ikke fjerne deling. Tjek venligst om filen findes.</string>
   <string name="unshare_link_file_error">Der opstod en fejl ved stopning af deling af denne mappe.</string>
   <string name="unshare_link_file_error">Der opstod en fejl ved stopning af deling af denne mappe.</string>
   <string name="activity_chooser_send_file_title">Send</string>
   <string name="activity_chooser_send_file_title">Send</string>
   <string name="copy_link">Kopier link</string>
   <string name="copy_link">Kopier link</string>
@@ -260,4 +263,12 @@
   <string name="prefs_category_accounts">Konti</string>
   <string name="prefs_category_accounts">Konti</string>
   <string name="prefs_add_account">Tilføj konto</string>
   <string name="prefs_add_account">Tilføj konto</string>
   <string name="auth_redirect_non_secure_connection_title">Sikker forbindelse videredirigeres gennem en usikker rute.</string>
   <string name="auth_redirect_non_secure_connection_title">Sikker forbindelse videredirigeres gennem en usikker rute.</string>
+  <string name="actionbar_move">Flyt</string>
+  <string name="file_list_empty_moving">Der er intet her. Du kan tilføje en mappe!</string>
+  <string name="move_choose_button_text">Vælg</string>
+  <string name="move_file_not_found">Kan ikke flytte. Tjek venligst om filen findes</string>
+  <string name="move_file_invalid_into_descendent">Det er ikke muligt at flytte en mappe til en undermappe</string>
+  <string name="move_file_invalid_overwrite">Filen findes allerede i destinationsmappen</string>
+  <string name="move_file_error">Der opstod en fejl under forsøg på at flytte denne mappe eller fil</string>
+  <string name="forbidden_permissions_move">til at flytte denne fil</string>
 </resources>
 </resources>

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

@@ -197,4 +197,5 @@
   <string name="clipboard_text_copied">In die Zwischenablage kopiert</string>
   <string name="clipboard_text_copied">In die Zwischenablage kopiert</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Konten</string>
   <string name="prefs_category_accounts">Konten</string>
+  <string name="move_choose_button_text">Auswählen</string>
 </resources>
 </resources>

+ 34 - 24
res/values-de-rDE/strings.xml

@@ -17,20 +17,21 @@
   <string name="prefs_manage_accounts">Konten verwalten</string>
   <string name="prefs_manage_accounts">Konten verwalten</string>
   <string name="prefs_pincode">App-PIN</string>
   <string name="prefs_pincode">App-PIN</string>
   <string name="prefs_pincode_summary">Schützen Sie Ihren Client</string>
   <string name="prefs_pincode_summary">Schützen Sie Ihren Client</string>
-  <string name="prefs_instant_upload">Sofortiger Bilder-Upload</string>
-  <string name="prefs_instant_upload_summary">Lade Fotos von der Kamera sofort hoch</string>
-  <string name="prefs_instant_video_upload">Sofortiger Video-Upload</string>
-  <string name="prefs_instant_video_upload_summary">Lade Videos von der Kamera sofort hoch</string>
+  <string name="prefs_instant_upload">Sofortiges Bilderhochladen</string>
+  <string name="prefs_instant_upload_summary">Fotos von der Kamera sofort hochladen</string>
+  <string name="prefs_instant_video_upload">Sofortiges Videohochladen</string>
+  <string name="prefs_instant_video_upload_summary">Videos von der Kamera sofort hochladen</string>
   <string name="prefs_log_title">Protokollierung aktivieren</string>
   <string name="prefs_log_title">Protokollierung aktivieren</string>
   <string name="prefs_log_summary">Dies wird zur Protokollierung von Problemen genutzt</string>
   <string name="prefs_log_summary">Dies wird zur Protokollierung von Problemen genutzt</string>
   <string name="prefs_log_title_history">Protokollierungsverlauf</string>
   <string name="prefs_log_title_history">Protokollierungsverlauf</string>
   <string name="prefs_log_summary_history">Dies zeigt die gespeicherten Protokollierungen</string>
   <string name="prefs_log_summary_history">Dies zeigt die gespeicherten Protokollierungen</string>
   <string name="prefs_log_delete_history_button">Verlauf löschen</string>
   <string name="prefs_log_delete_history_button">Verlauf löschen</string>
   <string name="prefs_help">Hilfe</string>
   <string name="prefs_help">Hilfe</string>
-  <string name="prefs_recommend">Empfehlen Sie dies einem Freund</string>
+  <string name="prefs_recommend">Dieses einem Freund empfehlen</string>
   <string name="prefs_feedback">Rückmeldungen</string>
   <string name="prefs_feedback">Rückmeldungen</string>
   <string name="prefs_imprint">Impressum</string>
   <string name="prefs_imprint">Impressum</string>
   <string name="recommend_subject">Probieren Sie %1$s auf Ihrem Smartphone!</string>
   <string name="recommend_subject">Probieren Sie %1$s auf Ihrem Smartphone!</string>
+  <string name="recommend_text">»Ich möchte Sie zum Benutzen von %1$s auf Ihrem Smartphone einladen!\nHier herunterladen: %2$s«</string>
   <string name="auth_check_server">Server überprüfen</string>
   <string name="auth_check_server">Server überprüfen</string>
   <string name="auth_host_url">Server-Adresse https://…</string>
   <string name="auth_host_url">Server-Adresse https://…</string>
   <string name="auth_username">Benutzername</string>
   <string name="auth_username">Benutzername</string>
@@ -39,7 +40,7 @@
   <string name="sync_string_files">Dateien</string>
   <string name="sync_string_files">Dateien</string>
   <string name="setup_btn_connect">Verbinden</string>
   <string name="setup_btn_connect">Verbinden</string>
   <string name="uploader_btn_upload_text">Hochladen</string>
   <string name="uploader_btn_upload_text">Hochladen</string>
-  <string name="uploader_top_message">Wähle Zielordner:</string>
+  <string name="uploader_top_message">Zielordner auswählen:</string>
   <string name="uploader_wrn_no_account_title">Kein Konto gefunden</string>
   <string name="uploader_wrn_no_account_title">Kein Konto gefunden</string>
   <string name="uploader_wrn_no_account_text">Es sind keine %1$s-Konten auf Ihrem Gerät eingerichtet. Bitte richten Sie zuerst ein Konto ein.</string>
   <string name="uploader_wrn_no_account_text">Es sind keine %1$s-Konten auf Ihrem Gerät eingerichtet. Bitte richten Sie zuerst ein Konto ein.</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Einrichten</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Einrichten</string>
@@ -49,7 +50,7 @@
   <string name="uploader_error_forbidden_content">%1$s darf den freigegebenen Inhalt nicht nutzen.</string>
   <string name="uploader_error_forbidden_content">%1$s darf den freigegebenen Inhalt nicht nutzen.</string>
   <string name="uploader_info_uploading">Lade hoch</string>
   <string name="uploader_info_uploading">Lade hoch</string>
   <string name="file_list_empty">Alles leer. Laden Sie etwas hoch!</string>
   <string name="file_list_empty">Alles leer. Laden Sie etwas hoch!</string>
-  <string name="file_list_loading">Lade…</string>
+  <string name="file_list_loading">Ladevorgang …</string>
   <string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
   <string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
   <string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
   <string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
   <string name="filedetails_size">Größe:</string>
   <string name="filedetails_size">Größe:</string>
@@ -103,6 +104,7 @@
   <string name="sync_fail_in_favourites_content">Inhalte von %1$d konnte nicht synchronisiert werden (%2$d Konflikte)</string>
   <string name="sync_fail_in_favourites_content">Inhalte von %1$d konnte nicht synchronisiert werden (%2$d Konflikte)</string>
   <string name="sync_foreign_files_forgotten_ticker">Einige lokale Dateien wurden vergessen</string>
   <string name="sync_foreign_files_forgotten_ticker">Einige lokale Dateien wurden vergessen</string>
   <string name="sync_foreign_files_forgotten_content">%1$d Dateien aus dem %2$s Verzeichnis konnten nicht kopiert werden nach</string>
   <string name="sync_foreign_files_forgotten_content">%1$d Dateien aus dem %2$s Verzeichnis konnten nicht kopiert werden nach</string>
+  <string name="sync_foreign_files_forgotten_explanation">Mit Version 1.3.16 werden Dateien die von diesem Gerät aus hochgeladen werden in den lokalen Ordner %1$s kopiert um Datenverlust zu vermeiden, wenn eine einzelne Datei mit mehreren Accounts synchronisiert wird.\n\nInfolge dieser Änderung wurden alle Dateien, die mit vorherigen Versionen dieser App hochgeladen wurden, in den Ordner %2$s verschoben. Jedoch ist während der Account-Synchronisation ein Fehler aufgetreten, der das Abschließen dieses Vorgangs verhindert. Sie können die Datei(en) entweder wie sie sind belassen und den Link zu %3$s entfernen oder die Datei(en) in den %1$s Ordner verschieben und  den Link zu %4$s beibehalten.\n\nUnten befindet sich eine Liste der lokalen Datei(en) und der mit ihnen verbundenen Remote-Datei(en) in %5$s.</string>
   <string name="sync_current_folder_was_removed">Das Verzeichnis %1$s existiert nicht mehr</string>
   <string name="sync_current_folder_was_removed">Das Verzeichnis %1$s existiert nicht mehr</string>
   <string name="foreign_files_move">Verschiebe alle</string>
   <string name="foreign_files_move">Verschiebe alle</string>
   <string name="foreign_files_success">Alle Dateien wurden verschoben</string>
   <string name="foreign_files_success">Alle Dateien wurden verschoben</string>
@@ -138,12 +140,12 @@
   <string name="media_rewind_description">Zurückspulen Button</string>
   <string name="media_rewind_description">Zurückspulen Button</string>
   <string name="media_play_pause_description">Abspielen oder Pausieren Button</string>
   <string name="media_play_pause_description">Abspielen oder Pausieren Button</string>
   <string name="media_forward_description">Vorspulen Button</string>
   <string name="media_forward_description">Vorspulen Button</string>
-  <string name="auth_getting_authorization">Autorisierung empfangen...</string>
-  <string name="auth_trying_to_login">Anmeldungsversuch...</string>
+  <string name="auth_getting_authorization">Legitimierung empfangen …</string>
+  <string name="auth_trying_to_login">Anmeldeversuch …</string>
   <string name="auth_no_net_conn_title">Keine Netzwerkverbindung</string>
   <string name="auth_no_net_conn_title">Keine Netzwerkverbindung</string>
   <string name="auth_nossl_plain_ok_title">Sichere Verbindung nicht verfügbar.</string>
   <string name="auth_nossl_plain_ok_title">Sichere Verbindung nicht verfügbar.</string>
   <string name="auth_connection_established">Verbindung hergestellt</string>
   <string name="auth_connection_established">Verbindung hergestellt</string>
-  <string name="auth_testing_connection">Verbindung testen...</string>
+  <string name="auth_testing_connection">Verbindungstest …</string>
   <string name="auth_not_configured_title">Fehlerhafte Server Konfiguration</string>
   <string name="auth_not_configured_title">Fehlerhafte Server Konfiguration</string>
   <string name="auth_account_not_new">Ein Benutzerkonto für den gleichen Benutzer und Server existiert auf diesem Gerät bereits</string>
   <string name="auth_account_not_new">Ein Benutzerkonto für den gleichen Benutzer und Server existiert auf diesem Gerät bereits</string>
   <string name="auth_account_not_the_same">Der eingegebene Benutzer passt nicht zu dem Benutzer dieses Benutzerkontos</string>
   <string name="auth_account_not_the_same">Der eingegebene Benutzer passt nicht zu dem Benutzer dieses Benutzerkontos</string>
@@ -158,18 +160,18 @@
   <string name="auth_wrong_connection_title">Konnte keine Verbindung aufbauen.</string>
   <string name="auth_wrong_connection_title">Konnte keine Verbindung aufbauen.</string>
   <string name="auth_secure_connection">Sichere Verbindung hergestellt</string>
   <string name="auth_secure_connection">Sichere Verbindung hergestellt</string>
   <string name="auth_unauthorized">Falscher Benutzername oder Passwort</string>
   <string name="auth_unauthorized">Falscher Benutzername oder Passwort</string>
-  <string name="auth_oauth_error">Autorisierung nicht erfolgreich</string>
-  <string name="auth_oauth_error_access_denied">Zugriff durch den Autorisierungsserver abgelehnt</string>
-  <string name="auth_wtf_reenter_URL">Unerwarteter Zustand; bitte geben Sie die URL des Servers nochmals ein</string>
-  <string name="auth_expired_oauth_token_toast">Ihre Autorisierung ist abgelaufen. Bitte Autorisierung nochmals durchführen</string>
+  <string name="auth_oauth_error">Legitimierung nicht erfolgreich</string>
+  <string name="auth_oauth_error_access_denied">Zugriff durch den Legitimierungsserver abgelehnt</string>
+  <string name="auth_wtf_reenter_URL">Unerwarteter Zustand; bitte geben Sie die Adresse des Servers nochmals ein</string>
+  <string name="auth_expired_oauth_token_toast">Ihre Legitimierung ist abgelaufen. Bitte Legitimierung nochmals durchführen</string>
   <string name="auth_expired_basic_auth_toast">Bitte geben Sie Ihr aktuelles Passwort ein</string>
   <string name="auth_expired_basic_auth_toast">Bitte geben Sie Ihr aktuelles Passwort ein</string>
   <string name="auth_expired_saml_sso_token_toast">Ihre Sitzung ist abgelaufen. Bitte Anmeldung nochmals durchführen</string>
   <string name="auth_expired_saml_sso_token_toast">Ihre Sitzung ist abgelaufen. Bitte Anmeldung nochmals durchführen</string>
-  <string name="auth_connecting_auth_server">Verbinde mit dem Authentifizierung-Server…</string>
-  <string name="auth_unsupported_auth_method">Der Server unterstützt diese Authentifizierung-Methode nicht</string>
+  <string name="auth_connecting_auth_server">Zum Legitimierungsserver wird verbunden …</string>
+  <string name="auth_unsupported_auth_method">Der Server unterstützt diese Legitimierungsmethode nicht</string>
   <string name="auth_unsupported_multiaccount">%1$s unterstützt nicht mehrere Benutzerkonten</string>
   <string name="auth_unsupported_multiaccount">%1$s unterstützt nicht mehrere Benutzerkonten</string>
-  <string name="auth_fail_get_user_name">Ihr Server gibt keine korrekte Benutzer-ID zurück, bitte kontaktieren Sie einen Administrator
+  <string name="auth_fail_get_user_name">Ihr Server gibt keine richtige Benutzerkennung zurück, bitte kontaktieren Sie einen Administrator
 ⇥</string>
 ⇥</string>
-  <string name="auth_can_not_auth_against_server">Die Authentifizierung gegenüber dem Server konnte nicht durchgeführt werden</string>
+  <string name="auth_can_not_auth_against_server">Die Legitimierung gegenüber dem Server konnte nicht durchgeführt werden</string>
   <string name="fd_keep_in_sync">Datei aktuell halten</string>
   <string name="fd_keep_in_sync">Datei aktuell halten</string>
   <string name="common_rename">Umbenennen</string>
   <string name="common_rename">Umbenennen</string>
   <string name="common_remove">Löschen</string>
   <string name="common_remove">Löschen</string>
@@ -186,15 +188,15 @@
   <string name="rename_server_fail_msg">Die Umbenennung konnte nicht abgeschlossen werden.</string>
   <string name="rename_server_fail_msg">Die Umbenennung konnte nicht abgeschlossen werden.</string>
   <string name="sync_file_fail_msg">Die entfernte Datei konnte nicht überprüft werden</string>
   <string name="sync_file_fail_msg">Die entfernte Datei konnte nicht überprüft werden</string>
   <string name="sync_file_nothing_to_do_msg">Dateiinhalte bereits synchronisiert</string>
   <string name="sync_file_nothing_to_do_msg">Dateiinhalte bereits synchronisiert</string>
-  <string name="create_dir_fail_msg">Verzeichnis konnte nicht erstellt werden</string>
+  <string name="create_dir_fail_msg">Ordner konnte nicht erstellt werden</string>
   <string name="filename_forbidden_characters">Verbotene Zeichen: / \\ &lt; &gt; : \" | ? *</string>
   <string name="filename_forbidden_characters">Verbotene Zeichen: / \\ &lt; &gt; : \" | ? *</string>
   <string name="filename_empty">Dateiname darf nicht leer sein</string>
   <string name="filename_empty">Dateiname darf nicht leer sein</string>
   <string name="wait_a_moment">Bitte warten Sie einen Moment.</string>
   <string name="wait_a_moment">Bitte warten Sie einen Moment.</string>
   <string name="filedisplay_unexpected_bad_get_content">Ein unerwartetes Problem ist aufgetreten. Bitte versuchen Sie, die Datei in einer anderen App zu öffnen.</string>
   <string name="filedisplay_unexpected_bad_get_content">Ein unerwartetes Problem ist aufgetreten. Bitte versuchen Sie, die Datei in einer anderen App zu öffnen.</string>
   <string name="filedisplay_no_file_selected">Es wurde keine Datei ausgewählt.</string>
   <string name="filedisplay_no_file_selected">Es wurde keine Datei ausgewählt.</string>
-  <string name="activity_chooser_title">Link senden an ...</string>
+  <string name="activity_chooser_title">Link senden an </string>
   <string name="oauth_check_onoff">Anmelden mit oAuth2</string>
   <string name="oauth_check_onoff">Anmelden mit oAuth2</string>
-  <string name="oauth_login_connection">Verbinde mit dem oAuth2-Server…</string>
+  <string name="oauth_login_connection">Mit dem oAuth2-Server wird verbunden …</string>
   <string name="ssl_validator_header">Die Identität der Website konnte nicht überprüft werden</string>
   <string name="ssl_validator_header">Die Identität der Website konnte nicht überprüft werden</string>
   <string name="ssl_validator_reason_cert_not_trusted">- Das Zertifikat des Servers ist nicht vertrauenswürdig</string>
   <string name="ssl_validator_reason_cert_not_trusted">- Das Zertifikat des Servers ist nicht vertrauenswürdig</string>
   <string name="ssl_validator_reason_cert_expired">- Das Zertifikat des Servers ist abgelaufen</string>
   <string name="ssl_validator_reason_cert_expired">- Das Zertifikat des Servers ist abgelaufen</string>
@@ -217,7 +219,7 @@
   <string name="ssl_validator_label_validity_to">An:</string>
   <string name="ssl_validator_label_validity_to">An:</string>
   <string name="ssl_validator_label_signature">Signatur:</string>
   <string name="ssl_validator_label_signature">Signatur:</string>
   <string name="ssl_validator_label_signature_algorithm">Algorithmus:</string>
   <string name="ssl_validator_label_signature_algorithm">Algorithmus:</string>
-  <string name="ssl_validator_null_cert">Das Zertifikat konnte nicht gezeigt werden.</string>
+  <string name="ssl_validator_null_cert">Das Zertifikat konnte nicht angezeigt werden.</string>
   <string name="ssl_validator_no_info_about_error">- Keine Informationen über den Fehler</string>
   <string name="ssl_validator_no_info_about_error">- Keine Informationen über den Fehler</string>
   <string name="placeholder_sentence">Dies ist ein Platzhalter</string>
   <string name="placeholder_sentence">Dies ist ein Platzhalter</string>
   <string name="placeholder_filename">platzhalter.txt</string>
   <string name="placeholder_filename">platzhalter.txt</string>
@@ -238,9 +240,9 @@
   <string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
   <string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
   <string name="share_link_no_support_share_api">Entschuldigung, Freigaben sind auf Ihrem Server nicht aktiviert. Bitte kontaktieren Sie Ihren
   <string name="share_link_no_support_share_api">Entschuldigung, Freigaben sind auf Ihrem Server nicht aktiviert. Bitte kontaktieren Sie Ihren
 ⇥⇥Administrator.</string>
 ⇥⇥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">Teilen nicht möglich. Prüfen Sie, dass die Datei 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_no_exist">Entfernen der Freigabe nicht möglich. Prüfen Sie, dass die Datei existiert</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>
   <string name="activity_chooser_send_file_title">Senden</string>
   <string name="activity_chooser_send_file_title">Senden</string>
   <string name="copy_link">Link kopieren</string>
   <string name="copy_link">Link kopieren</string>
@@ -262,4 +264,12 @@
   <string name="prefs_category_accounts">Konten</string>
   <string name="prefs_category_accounts">Konten</string>
   <string name="prefs_add_account">Konto hinzufügen</string>
   <string name="prefs_add_account">Konto hinzufügen</string>
   <string name="auth_redirect_non_secure_connection_title">Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.</string>
   <string name="auth_redirect_non_secure_connection_title">Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.</string>
+  <string name="actionbar_move">Verschieben</string>
+  <string name="file_list_empty_moving">Nichts vorhanden. Sie können einen Ordner hinzufügen!</string>
+  <string name="move_choose_button_text">Auswählen</string>
+  <string name="move_file_not_found">Verschieben nicht möglich. Prüfen Sie, ob die Datei existiert</string>
+  <string name="move_file_invalid_into_descendent">Es ist nicht möglich einen Ordner eine Ebene tiefer zu verschieben</string>
+  <string name="move_file_invalid_overwrite">Die Datei existiert bereits im Zielordner</string>
+  <string name="move_file_error">Es ist ein Fehler beim Verschieben dieser Datei oder Ordners aufgetreten.</string>
+  <string name="forbidden_permissions_move">um diese Datei zu verschieben</string>
 </resources>
 </resources>

+ 13 - 3
res/values-de/strings.xml

@@ -31,6 +31,7 @@
   <string name="prefs_feedback">Rückmeldungen</string>
   <string name="prefs_feedback">Rückmeldungen</string>
   <string name="prefs_imprint">Impressum</string>
   <string name="prefs_imprint">Impressum</string>
   <string name="recommend_subject">Probiere %1$s auf Deinem Smartphone!</string>
   <string name="recommend_subject">Probiere %1$s auf Deinem Smartphone!</string>
+  <string name="recommend_text">\"Ich möchte Dich zum Benutzen von %1$s auf Deinem Smartphone einladen!\nLade es hier herunter: %2$s\"</string>
   <string name="auth_check_server">Überprüfe den Server</string>
   <string name="auth_check_server">Überprüfe den Server</string>
   <string name="auth_host_url">Server-Adresse https://…</string>
   <string name="auth_host_url">Server-Adresse https://…</string>
   <string name="auth_username">Benutzername</string>
   <string name="auth_username">Benutzername</string>
@@ -49,7 +50,7 @@
   <string name="uploader_error_forbidden_content">%1$s darf den freigegebenen Inhalt nicht nutzen.</string>
   <string name="uploader_error_forbidden_content">%1$s darf den freigegebenen Inhalt nicht nutzen.</string>
   <string name="uploader_info_uploading">Lade hoch</string>
   <string name="uploader_info_uploading">Lade hoch</string>
   <string name="file_list_empty">Alles leer. Lade etwas hoch!</string>
   <string name="file_list_empty">Alles leer. Lade etwas hoch!</string>
-  <string name="file_list_loading">Lade...</string>
+  <string name="file_list_loading">Ladevorgang …</string>
   <string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
   <string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
   <string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
   <string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
   <string name="filedetails_size">Größe:</string>
   <string name="filedetails_size">Größe:</string>
@@ -103,6 +104,7 @@
   <string name="sync_fail_in_favourites_content">Inhalte von %1$d konnte nicht synchronisiert werden (%2$d Konflikte)</string>
   <string name="sync_fail_in_favourites_content">Inhalte von %1$d konnte nicht synchronisiert werden (%2$d Konflikte)</string>
   <string name="sync_foreign_files_forgotten_ticker">Einige lokale Dateien wurden vergessen</string>
   <string name="sync_foreign_files_forgotten_ticker">Einige lokale Dateien wurden vergessen</string>
   <string name="sync_foreign_files_forgotten_content">%1$d Dateien aus dem %2$s Verzeichnis konnten nicht kopiert werden nach</string>
   <string name="sync_foreign_files_forgotten_content">%1$d Dateien aus dem %2$s Verzeichnis konnten nicht kopiert werden nach</string>
+  <string name="sync_foreign_files_forgotten_explanation">Mit Version 1.3.16 werden Dateien die von diesem Gerät aus hochgeladen werden in den lokalen Ordner %1$s kopiert um Datenverlust zu vermeiden, wenn eine einzelne Datei mit mehreren Accounts synchronisiert wird.\n\nInfolge dieser Änderung wurden alle Dateien, die mit vorherigen Versionen dieser App hochgeladen wurden, in den Ordner %2$s verschoben. Jedoch ist während der Account-Synchronisation ein Fehler aufgetreten, der das Abschließen dieses Vorgangs verhindert. Du kannst die Datei(en) entweder wie sie sind belassen und den Link zu %3$s entfernen oder die Datei(en) in den %1$s Ordner verschieben und  den Link zu %4$s beibehalten.\n\nUnten befindet sich eine Liste der lokalen Datei(en) und der mit ihnen verbundenen Remote-Datei(en) in %5$s.</string>
   <string name="sync_current_folder_was_removed">Das Verzeichnis %1$s existiert nicht mehr</string>
   <string name="sync_current_folder_was_removed">Das Verzeichnis %1$s existiert nicht mehr</string>
   <string name="foreign_files_move">Verschiebe alle</string>
   <string name="foreign_files_move">Verschiebe alle</string>
   <string name="foreign_files_success">Alle Dateien wurden verschoben</string>
   <string name="foreign_files_success">Alle Dateien wurden verschoben</string>
@@ -238,9 +240,9 @@
   <string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
   <string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
   <string name="share_link_no_support_share_api">Entschuldigung, Freigaben sind auf Deinem Server nicht aktiviert. Bitte kontaktiere Deinen
   <string name="share_link_no_support_share_api">Entschuldigung, Freigaben sind auf Deinem Server nicht aktiviert. Bitte kontaktiere Deinen
 ⇥⇥Administrator.</string>
 ⇥⇥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">Teilen nicht möglich. Prüfe, dass die Datei 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_no_exist">Entfernen der Freigabe nicht möglich. Prüfe, dass die Datei existiert</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>
   <string name="activity_chooser_send_file_title">Senden</string>
   <string name="activity_chooser_send_file_title">Senden</string>
   <string name="copy_link">Link kopieren</string>
   <string name="copy_link">Link kopieren</string>
@@ -262,4 +264,12 @@
   <string name="prefs_category_accounts">Konten</string>
   <string name="prefs_category_accounts">Konten</string>
   <string name="prefs_add_account">Konto hinzufügen</string>
   <string name="prefs_add_account">Konto hinzufügen</string>
   <string name="auth_redirect_non_secure_connection_title">Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.</string>
   <string name="auth_redirect_non_secure_connection_title">Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.</string>
+  <string name="actionbar_move">Verschieben</string>
+  <string name="file_list_empty_moving">Nichts vorhanden. Du kannst einen Ordner hinzufügen!</string>
+  <string name="move_choose_button_text">Auswählen</string>
+  <string name="move_file_not_found">Verschieben nicht möglich. Prüfe, dass die Datei existiert</string>
+  <string name="move_file_invalid_into_descendent">Es ist nicht möglich einen Ordner eine Ebene tiefer zu verschieben</string>
+  <string name="move_file_invalid_overwrite">Die Datei existiert bereits im Zielordner</string>
+  <string name="move_file_error">Es ist ein Fehler beim Verschieben dieser Datei oder Ordners aufgetreten.</string>
+  <string name="forbidden_permissions_move">zum Datei verschieben</string>
 </resources>
 </resources>

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

@@ -238,9 +238,7 @@
   <string name="error__upload__local_file_not_copied">Το %1$s δεν μπόρεσε να αντιγραφεί στον τοπικό φάκελο %2$s</string>
   <string name="error__upload__local_file_not_copied">Το %1$s δεν μπόρεσε να αντιγραφεί στον τοπικό φάκελο %2$s</string>
   <string name="share_link_no_support_share_api">Λυπούμαστε, ο διαμοιρασμός δεν επιτρέπεται στο διακομιστή σας. Παρακαλούμε επικοινωνείστε με το
   <string name="share_link_no_support_share_api">Λυπούμαστε, ο διαμοιρασμός δεν επιτρέπεται στο διακομιστή σας. Παρακαλούμε επικοινωνείστε με το
 		διαχειριστή σας.</string>
 		διαχειριστή σας.</string>
-  <string name="share_link_file_no_exist">Αδυναμία διαμοιρασμού αυτού του αρχείου ή φακέλου. Παρακαλώ βεβαιωθείτε ότι υπάρχει</string>
   <string name="share_link_file_error">Ένα σφάλμα προέκυψε κατά την προσπάθεια διαμοιρασμού αυτού του αρχείου ή φακέλου</string>
   <string name="share_link_file_error">Ένα σφάλμα προέκυψε κατά την προσπάθεια διαμοιρασμού αυτού του αρχείου ή φακέλου</string>
-  <string name="unshare_link_file_no_exist">Ήταν αδύνατη η ακύρωση διαμοιρασμού αυτού του αρχείου ή φακέλου. Δεν υπάρχει.</string>
   <string name="unshare_link_file_error">Ένα σφάλμα προέκυψε κατά τη διάρκεια ακύρωσης διαμοιρασμού αυτού του αρχείου ή φακέλου</string>
   <string name="unshare_link_file_error">Ένα σφάλμα προέκυψε κατά τη διάρκεια ακύρωσης διαμοιρασμού αυτού του αρχείου ή φακέλου</string>
   <string name="activity_chooser_send_file_title">Αποστολή</string>
   <string name="activity_chooser_send_file_title">Αποστολή</string>
   <string name="copy_link">Αντιγραφή συνδέσμου</string>
   <string name="copy_link">Αντιγραφή συνδέσμου</string>
@@ -262,4 +260,5 @@
   <string name="prefs_category_accounts">Λογαριασμοί</string>
   <string name="prefs_category_accounts">Λογαριασμοί</string>
   <string name="prefs_add_account">Προσθήκη λογαριασμού</string>
   <string name="prefs_add_account">Προσθήκη λογαριασμού</string>
   <string name="auth_redirect_non_secure_connection_title">Ασφαλής σύνδεση ανακατευθύνεται μέσω μιας μη ασφαλούς διαδρομής.</string>
   <string name="auth_redirect_non_secure_connection_title">Ασφαλής σύνδεση ανακατευθύνεται μέσω μιας μη ασφαλούς διαδρομής.</string>
+  <string name="move_choose_button_text">Επιλέξτε</string>
 </resources>
 </resources>

+ 13 - 2
res/values-en-rGB/strings.xml

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Feedback</string>
   <string name="prefs_feedback">Feedback</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="recommend_subject">Try %1$s on your smartphone!</string>
   <string name="recommend_subject">Try %1$s on your smartphone!</string>
+  <string name="recommend_text">\"I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s\"
+	</string>
   <string name="auth_check_server">Check Server</string>
   <string name="auth_check_server">Check Server</string>
   <string name="auth_host_url">Server address https://…</string>
   <string name="auth_host_url">Server address https://…</string>
   <string name="auth_username">Username</string>
   <string name="auth_username">Username</string>
@@ -103,6 +105,7 @@
   <string name="sync_fail_in_favourites_content">Contents of %1$d files could not be synced (%2$d conflicts)</string>
   <string name="sync_fail_in_favourites_content">Contents of %1$d files could not be synced (%2$d conflicts)</string>
   <string name="sync_foreign_files_forgotten_ticker">Some local files were forgotten</string>
   <string name="sync_foreign_files_forgotten_ticker">Some local files were forgotten</string>
   <string name="sync_foreign_files_forgotten_content">%1$d files out of the %2$s folder could not be copied into</string>
   <string name="sync_foreign_files_forgotten_content">%1$d files out of the %2$s folder could not be copied into</string>
+  <string name="sync_foreign_files_forgotten_explanation">As of version 1.3.16, files uploaded from this device are copied into the local %1$s folder to prevent data loss when a single file is synced with multiple accounts.\n\nDue to this change, all files uploaded in previous versions of this app were copied into the %2$s folder. However, an error prevented the completion of this operation during account synchronisation. You may either leave the file(s) as is and remove the link to %3$s, or move the file(s) into the %1$s folder and retain the link to %4$s.\n\nListed below are the local file(s), and the remote file(s) in %5$s they were linked to.</string>
   <string name="sync_current_folder_was_removed">Folder %1$s does not exist anymore</string>
   <string name="sync_current_folder_was_removed">Folder %1$s does not exist anymore</string>
   <string name="foreign_files_move">Move all</string>
   <string name="foreign_files_move">Move all</string>
   <string name="foreign_files_success">All files were moved</string>
   <string name="foreign_files_success">All files were moved</string>
@@ -238,9 +241,9 @@
   <string name="error__upload__local_file_not_copied">%1$s could not be copied to %2$s local folder</string>
   <string name="error__upload__local_file_not_copied">%1$s could not be copied to %2$s local folder</string>
   <string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
   <string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
 		administrator.</string>
 		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. Please check whether the file 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_no_exist">Unable to unshare. Please check whether the file exists</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="activity_chooser_send_file_title">Send</string>
   <string name="activity_chooser_send_file_title">Send</string>
   <string name="copy_link">Copy link</string>
   <string name="copy_link">Copy link</string>
@@ -262,4 +265,12 @@
   <string name="prefs_category_accounts">Accounts</string>
   <string name="prefs_category_accounts">Accounts</string>
   <string name="prefs_add_account">Add account</string>
   <string name="prefs_add_account">Add account</string>
   <string name="auth_redirect_non_secure_connection_title">Secure connection is redirected through an unsecured route.</string>
   <string name="auth_redirect_non_secure_connection_title">Secure connection is redirected through an unsecured route.</string>
+  <string name="actionbar_move">Move</string>
+  <string name="file_list_empty_moving">Nothing in here. You can add a folder!</string>
+  <string name="move_choose_button_text">Choose</string>
+  <string name="move_file_not_found">Unable to move. Please check whether the file exists</string>
+  <string name="move_file_invalid_into_descendent">It is not possible to move a folder into a descendant</string>
+  <string name="move_file_invalid_overwrite">The file exists already in the destination folder</string>
+  <string name="move_file_error">An error occurred whilst trying to move this file or folder</string>
+  <string name="forbidden_permissions_move">to move this file</string>
 </resources>
 </resources>

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

@@ -183,4 +183,5 @@
   <string name="network_error_socket_exception">Eraro okazis dum konekto al la servilo.</string>
   <string name="network_error_socket_exception">Eraro okazis dum konekto al la servilo.</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Kontoj</string>
   <string name="prefs_category_accounts">Kontoj</string>
+  <string name="move_choose_button_text">Elekti</string>
 </resources>
 </resources>

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

@@ -238,4 +238,5 @@
   <string name="clipboard_text_copied">Copiado al portapapeles</string>
   <string name="clipboard_text_copied">Copiado al portapapeles</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Cuentas</string>
   <string name="prefs_category_accounts">Cuentas</string>
+  <string name="move_choose_button_text">Elegir</string>
 </resources>
 </resources>

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

@@ -166,4 +166,5 @@
   <string name="error__upload__local_file_not_copied">%1$s no pudo ser copiado a la carpeta local %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s no pudo ser copiado a la carpeta local %2$s</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Cuentas</string>
   <string name="prefs_category_accounts">Cuentas</string>
+  <string name="move_choose_button_text">Choose</string>
 </resources>
 </resources>

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

@@ -213,4 +213,5 @@
   <string name="clipboard_text_copied">Copiado al portapapeles</string>
   <string name="clipboard_text_copied">Copiado al portapapeles</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Cuentas</string>
   <string name="prefs_category_accounts">Cuentas</string>
+  <string name="move_choose_button_text">Seleccionar</string>
 </resources>
 </resources>

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

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Mensajes de retroalimentación</string>
   <string name="prefs_feedback">Mensajes de retroalimentación</string>
   <string name="prefs_imprint">pie de imprenta</string>
   <string name="prefs_imprint">pie de imprenta</string>
   <string name="recommend_subject">Prueba  %1$s en tu smarthphone!</string>
   <string name="recommend_subject">Prueba  %1$s en tu smarthphone!</string>
+  <string name="recommend_text">\"Quiero invitarle a usar %1$s en su smartphone!\nDescárguelo aquí: %2$s\"
+	</string>
   <string name="auth_check_server">Compruebe el servidor.</string>
   <string name="auth_check_server">Compruebe el servidor.</string>
   <string name="auth_host_url">Dirección del servidor https://…</string>
   <string name="auth_host_url">Dirección del servidor https://…</string>
   <string name="auth_username">Nombre de usuario</string>
   <string name="auth_username">Nombre de usuario</string>
@@ -238,9 +240,9 @@
   <string name="error__upload__local_file_not_copied">%1$s no pudo ser copiado a la carpeta local %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s no pudo ser copiado a la carpeta local %2$s</string>
   <string name="share_link_no_support_share_api">La función Compartir no está activada en su servidor. Contacte a su
   <string name="share_link_no_support_share_api">La función Compartir no está activada en su servidor. Contacte a su
 		administrador.</string>
 		administrador.</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 se puede compartir. Revise si el archivo 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_no_exist">No se puede dejar de compartir. Revise si el archivo 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>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="copy_link">Copiar enlace</string>
   <string name="copy_link">Copiar enlace</string>
@@ -262,4 +264,11 @@
   <string name="prefs_category_accounts">Cuentas</string>
   <string name="prefs_category_accounts">Cuentas</string>
   <string name="prefs_add_account">Agregar cuenta</string>
   <string name="prefs_add_account">Agregar cuenta</string>
   <string name="auth_redirect_non_secure_connection_title">La conexión segura está siendo redirigida por una ruta insegura.</string>
   <string name="auth_redirect_non_secure_connection_title">La conexión segura está siendo redirigida por una ruta insegura.</string>
+  <string name="actionbar_move">Mover</string>
+  <string name="file_list_empty_moving">Aquí no hay nada. ¡Puede agregar una carpeta!</string>
+  <string name="move_choose_button_text">Seleccionar</string>
+  <string name="move_file_not_found">No se puede mover. Revise si el archivo existe</string>
+  <string name="move_file_invalid_overwrite">El archivo ya existe en la carpeta de destino</string>
+  <string name="move_file_error">Hubo un error al tratar de mover este archivo o carpeta</string>
+  <string name="forbidden_permissions_move">para mover este archivo</string>
 </resources>
 </resources>

+ 20 - 2
res/values-et-rEE/strings.xml

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Tagasiside</string>
   <string name="prefs_feedback">Tagasiside</string>
   <string name="prefs_imprint">Impressum</string>
   <string name="prefs_imprint">Impressum</string>
   <string name="recommend_subject">Proovi oma nutitelefonil rakendust %1$s!</string>
   <string name="recommend_subject">Proovi oma nutitelefonil rakendust %1$s!</string>
+  <string name="recommend_text">\"Ma kutsun sind kasutama oma telefonis rakendust %1$s!\nLaadi see alla siit: %2$s\"
+	</string>
   <string name="auth_check_server">Kontrolli serverit</string>
   <string name="auth_check_server">Kontrolli serverit</string>
   <string name="auth_host_url">Serveri aadress https://...</string>
   <string name="auth_host_url">Serveri aadress https://...</string>
   <string name="auth_username">Kasutajanimi</string>
   <string name="auth_username">Kasutajanimi</string>
@@ -50,6 +52,7 @@
   <string name="uploader_info_uploading">Üleslaadimine</string>
   <string name="uploader_info_uploading">Üleslaadimine</string>
   <string name="file_list_empty">Siin pole midagi. Lae midagi üles!</string>
   <string name="file_list_empty">Siin pole midagi. Lae midagi üles!</string>
   <string name="file_list_loading">Laen ...</string>
   <string name="file_list_loading">Laen ...</string>
+  <string name="local_file_list_empty">Kaustas pole faile.</string>
   <string name="filedetails_select_file">Lisainfo vaatamiseks vajuta failile.</string>
   <string name="filedetails_select_file">Lisainfo vaatamiseks vajuta failile.</string>
   <string name="filedetails_size">Suurus:</string>
   <string name="filedetails_size">Suurus:</string>
   <string name="filedetails_type">Tüüp:</string>
   <string name="filedetails_type">Tüüp:</string>
@@ -102,6 +105,11 @@
   <string name="sync_fail_in_favourites_content">Faili %1$d sisu ei suudeta sünkroniseerida (konflikt %2$d)</string>
   <string name="sync_fail_in_favourites_content">Faili %1$d sisu ei suudeta sünkroniseerida (konflikt %2$d)</string>
   <string name="sync_foreign_files_forgotten_ticker">Osad kohalikud faili ununesid</string>
   <string name="sync_foreign_files_forgotten_ticker">Osad kohalikud faili ununesid</string>
   <string name="sync_foreign_files_forgotten_content">%1$d faili %2$s kataloogis ei saa kopeerida</string>
   <string name="sync_foreign_files_forgotten_content">%1$d faili %2$s kataloogis ei saa kopeerida</string>
+  <string name="sync_foreign_files_forgotten_explanation">Alates versioonist 1.3.16 failid, mis on üles laaditud kopeeritakse kohalikku kataloogi %1$s vältimaks andmete kadu vältimaks andmete kadu juhul, kui ühte faili sünkroniseeritakse mitmelt kontolt.
+
+Selle muudatusega seoses kõik failid, mis on üles laetud rakenduse vanemate versioonidega, kopeeriti kataloogi %2$s.  Selle tegevuse peatas viga, mis tekkis konto sünkroniseerimise käigus. Sa saad jätta faili(d) nagu nad on ning eemaldata viite %3$s või tõsta faili(d) %1$s kataloogi ja säilitada viite %4$s. 
+
+Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, millele nad viitavad.</string>
   <string name="sync_current_folder_was_removed">Kausta %1$s pole enam olemas</string>
   <string name="sync_current_folder_was_removed">Kausta %1$s pole enam olemas</string>
   <string name="foreign_files_move">Tõsta kõik ümber</string>
   <string name="foreign_files_move">Tõsta kõik ümber</string>
   <string name="foreign_files_success">Kõik failid tõsteti ümber</string>
   <string name="foreign_files_success">Kõik failid tõsteti ümber</string>
@@ -237,9 +245,9 @@
   <string name="error__upload__local_file_not_copied">%1$s ei suudetud kopeerida kohalikku kataloogi %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s ei suudetud kopeerida kohalikku kataloogi %2$s</string>
   <string name="share_link_no_support_share_api">Vabandust, server ei toeta jagamist. Palun kontakteeru 
   <string name="share_link_no_support_share_api">Vabandust, server ei toeta jagamist. Palun kontakteeru 
 ⇥⇥administraatoriga.</string>
 ⇥⇥administraatoriga.</string>
-  <string name="share_link_file_no_exist">Antud faili või kausta ei saa jagada. Tee kindlaks, et see on olemas</string>
+  <string name="share_link_file_no_exist">Jagamine ebaõnnestus. Palun kontrolli, kas fail on olemas</string>
   <string name="share_link_file_error">Faili või kausta jagamisel esines viga</string>
   <string name="share_link_file_error">Faili või kausta jagamisel esines viga</string>
-  <string name="unshare_link_file_no_exist">Antud faili või kausta jagamist pole võimalik tühistada</string>
+  <string name="unshare_link_file_no_exist">Liigutamise lõpetamine ebaõnnestus. Palun kontrolli, kas fail on olemas</string>
   <string name="unshare_link_file_error">Faili või kausta jagamise tühistamisel esines viga</string>
   <string name="unshare_link_file_error">Faili või kausta jagamise tühistamisel esines viga</string>
   <string name="activity_chooser_send_file_title">Saada</string>
   <string name="activity_chooser_send_file_title">Saada</string>
   <string name="copy_link">Kopeeri link</string>
   <string name="copy_link">Kopeeri link</string>
@@ -259,4 +267,14 @@
   <string name="uploader_upload_forbidden_permissions">sellesse kausta laadimiseks</string>
   <string name="uploader_upload_forbidden_permissions">sellesse kausta laadimiseks</string>
   <string name="downloader_download_file_not_found">Fail ei ole serveris enam kättesaadav</string>
   <string name="downloader_download_file_not_found">Fail ei ole serveris enam kättesaadav</string>
   <string name="prefs_category_accounts">Kontod</string>
   <string name="prefs_category_accounts">Kontod</string>
+  <string name="prefs_add_account">Lisa konto</string>
+  <string name="auth_redirect_non_secure_connection_title">Turvalist ühendust suunatakse läbi turvamata ühenduse.</string>
+  <string name="actionbar_move">Tõsta ümber</string>
+  <string name="file_list_empty_moving">Siin pole midagi. Sa võid lisada kausta!</string>
+  <string name="move_choose_button_text">Vali</string>
+  <string name="move_file_not_found">Liigutamine ebaõnnestus. Palun kontrolli, kas fail on olemas</string>
+  <string name="move_file_invalid_into_descendent">Kausta ei saa liigutada selle alamkausta</string>
+  <string name="move_file_invalid_overwrite">See fail on juba sihtkaustas olemas</string>
+  <string name="move_file_error">Selle faili või kausta liigutamisel tekkis tõrge</string>
+  <string name="forbidden_permissions_move">selle faili liigutamiseks</string>
 </resources>
 </resources>

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

@@ -237,9 +237,7 @@ Mesedez, baimendu berriz</string>
   <string name="preview_image_error_unknown_format">Ezin da irudi hau erakutsi</string>
   <string name="preview_image_error_unknown_format">Ezin da irudi hau erakutsi</string>
   <string name="error__upload__local_file_not_copied">%1$s ezin da %2$s karpeta lokalera kopiatu</string>
   <string name="error__upload__local_file_not_copied">%1$s ezin da %2$s karpeta lokalera kopiatu</string>
   <string name="share_link_no_support_share_api">Sentitzen dut, partekatzea ez dago zure zerbitzarian gaituta. Mesedez jarri harremanetan zure administratzailearekin.</string>
   <string name="share_link_no_support_share_api">Sentitzen dut, partekatzea ez dago zure zerbitzarian gaituta. Mesedez jarri harremanetan zure administratzailearekin.</string>
-  <string name="share_link_file_no_exist">Ezin izan da karpeta edo fitxategi hau partekatu. Mesedez, ziurtatu existitzen dela</string>
   <string name="share_link_file_error">Errore bat egon da fitxategaia edo karpeta partekatzerakoan</string>
   <string name="share_link_file_error">Errore bat egon da fitxategaia edo karpeta partekatzerakoan</string>
-  <string name="unshare_link_file_no_exist">Ezin izan da karpeta edo fitxategi honen partekatzeari utzi. Ez da existitzen.</string>
   <string name="unshare_link_file_error">Errore bat egon da fitxategaia edo karpeta partekatzeari uzterakoan</string>
   <string name="unshare_link_file_error">Errore bat egon da fitxategaia edo karpeta partekatzeari uzterakoan</string>
   <string name="activity_chooser_send_file_title">Bidali</string>
   <string name="activity_chooser_send_file_title">Bidali</string>
   <string name="copy_link">Lotura kopiatu</string>
   <string name="copy_link">Lotura kopiatu</string>
@@ -261,4 +259,5 @@ Mesedez, baimendu berriz</string>
   <string name="prefs_category_accounts">Kontuak</string>
   <string name="prefs_category_accounts">Kontuak</string>
   <string name="prefs_add_account">Gehitu kontua</string>
   <string name="prefs_add_account">Gehitu kontua</string>
   <string name="auth_redirect_non_secure_connection_title">Konexio segurua birbideratu da segurua ez den bide batetik.</string>
   <string name="auth_redirect_non_secure_connection_title">Konexio segurua birbideratu da segurua ez den bide batetik.</string>
+  <string name="move_choose_button_text">Aukeratu</string>
 </resources>
 </resources>

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

@@ -217,9 +217,7 @@
   <string name="conflict_dont_upload">آپلود نکن</string>
   <string name="conflict_dont_upload">آپلود نکن</string>
   <string name="preview_image_description">پیش نمایش تصویر</string>
   <string name="preview_image_description">پیش نمایش تصویر</string>
   <string name="preview_image_error_unknown_format">نمایش این عکس امکانپذیر نمی باشد</string>
   <string name="preview_image_error_unknown_format">نمایش این عکس امکانپذیر نمی باشد</string>
-  <string name="share_link_file_no_exist">به اشتراک گذاری این فایل یا پوشه ممکن نیست. لطفاً از وجود آن اطمینان حاصل نمایید</string>
   <string name="share_link_file_error">در حین اشتراک گذاری این فایل یا پوشه خطایی رخ داده است</string>
   <string name="share_link_file_error">در حین اشتراک گذاری این فایل یا پوشه خطایی رخ داده است</string>
-  <string name="unshare_link_file_no_exist">حذف اشتراک گذاری این فایل یا پوشه ممکن نیست. لطفاً از وجود آن اطمینان حاصل نمایید</string>
   <string name="unshare_link_file_error">در حین حذف اشتراک گذاری این فایل یا پوشه خطایی رخ داده است</string>
   <string name="unshare_link_file_error">در حین حذف اشتراک گذاری این فایل یا پوشه خطایی رخ داده است</string>
   <string name="activity_chooser_send_file_title">ارسال</string>
   <string name="activity_chooser_send_file_title">ارسال</string>
   <string name="clipboard_text_copied">کپی به کلیپ بورد</string>
   <string name="clipboard_text_copied">کپی به کلیپ بورد</string>
@@ -231,4 +229,5 @@
   <string name="uploader_upload_forbidden_permissions">برای آپلود در این پوشه</string>
   <string name="uploader_upload_forbidden_permissions">برای آپلود در این پوشه</string>
   <string name="downloader_download_file_not_found">این فایل دیگر روی سرور وجود ندارد</string>
   <string name="downloader_download_file_not_found">این فایل دیگر روی سرور وجود ندارد</string>
   <string name="prefs_category_accounts">حساب‌ها</string>
   <string name="prefs_category_accounts">حساب‌ها</string>
+  <string name="move_choose_button_text">انتخاب کردن</string>
 </resources>
 </resources>

+ 8 - 1
res/values-fi-rFI/strings.xml

@@ -30,6 +30,8 @@
   <string name="prefs_recommend">Suosittele kaverille</string>
   <string name="prefs_recommend">Suosittele kaverille</string>
   <string name="prefs_feedback">Palaute</string>
   <string name="prefs_feedback">Palaute</string>
   <string name="recommend_subject">Kokeile %1$sia älypuhelimellasi!</string>
   <string name="recommend_subject">Kokeile %1$sia älypuhelimellasi!</string>
+  <string name="recommend_text">\"Kutsun sinut käyttämään %1$sia älypuhelimellasi!\nLataa tästä: %2$s\"
+	</string>
   <string name="auth_check_server">Tarkista palvelin</string>
   <string name="auth_check_server">Tarkista palvelin</string>
   <string name="auth_host_url">Palvelinosoite https://…</string>
   <string name="auth_host_url">Palvelinosoite https://…</string>
   <string name="auth_username">Käyttäjätunnus</string>
   <string name="auth_username">Käyttäjätunnus</string>
@@ -217,7 +219,6 @@
   <string name="preview_image_error_unknown_format">Tätä kuvaa ei voi näyttää</string>
   <string name="preview_image_error_unknown_format">Tätä kuvaa ei voi näyttää</string>
   <string name="share_link_no_support_share_api">Jakaminen ei ole käytössä palvelimellasi. Ota yhteys
   <string name="share_link_no_support_share_api">Jakaminen ei ole käytössä palvelimellasi. Ota yhteys
 		ylläpitäjään.</string>
 		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>
   <string name="share_link_file_error">Virhe tiedoston tai kansion jakamista yrittäessä</string>
   <string name="activity_chooser_send_file_title">Lähetä</string>
   <string name="activity_chooser_send_file_title">Lähetä</string>
   <string name="copy_link">Kopioi linkki</string>
   <string name="copy_link">Kopioi linkki</string>
@@ -239,4 +240,10 @@
   <string name="prefs_category_accounts">Tilit</string>
   <string name="prefs_category_accounts">Tilit</string>
   <string name="prefs_add_account">Lisää tili</string>
   <string name="prefs_add_account">Lisää tili</string>
   <string name="auth_redirect_non_secure_connection_title">Salattu yhteys on ohjattu uudelleen salaamatonta reittiä pitkin.</string>
   <string name="auth_redirect_non_secure_connection_title">Salattu yhteys on ohjattu uudelleen salaamatonta reittiä pitkin.</string>
+  <string name="actionbar_move">Siirrä</string>
+  <string name="file_list_empty_moving">Täällä ei ole mitään. Voit lisätä kansion!</string>
+  <string name="move_choose_button_text">Valitse</string>
+  <string name="move_file_not_found">Siirto ei onnistu. Tarkista, ettei tiedostoa ole jo olemassa</string>
+  <string name="move_file_invalid_overwrite">Tiedosto on jo olemassa kohdekansiossa</string>
+  <string name="move_file_error">Tämän tiedoston tai kansion siirtoa yrittäessä tapahtui virhe</string>
 </resources>
 </resources>

+ 2 - 2
res/values-fr/strings.xml

@@ -237,9 +237,7 @@
   <string name="preview_image_error_unknown_format">Cette image ne peut pas être affichée</string>
   <string name="preview_image_error_unknown_format">Cette image ne peut pas être affichée</string>
   <string name="error__upload__local_file_not_copied">%1$s n\'a pas pu être copié dans le dossier local %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s n\'a pas pu être copié dans le dossier local %2$s</string>
   <string name="share_link_no_support_share_api">Désolé, le partage n\'est pas disponible sur votre serveur. Contactez votre administrateur, s\'il vous plait.</string>
   <string name="share_link_no_support_share_api">Désolé, le partage n\'est pas disponible sur votre serveur. Contactez votre administrateur, s\'il vous plait.</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>
   <string name="activity_chooser_send_file_title">Envoyer</string>
   <string name="activity_chooser_send_file_title">Envoyer</string>
   <string name="copy_link">Copier le lien</string>
   <string name="copy_link">Copier le lien</string>
@@ -260,4 +258,6 @@
   <string name="downloader_download_file_not_found">Ce fichier n’est plus disponible sur le serveur</string>
   <string name="downloader_download_file_not_found">Ce fichier n’est plus disponible sur le serveur</string>
   <string name="prefs_category_accounts">Comptes</string>
   <string name="prefs_category_accounts">Comptes</string>
   <string name="prefs_add_account">Ajouter un compte</string>
   <string name="prefs_add_account">Ajouter un compte</string>
+  <string name="actionbar_move">Déplacer</string>
+  <string name="move_choose_button_text">Choisir</string>
 </resources>
 </resources>

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

@@ -238,9 +238,7 @@
   <string name="error__upload__local_file_not_copied">Non foi posíbel copiar %1$s no cartafol local %2$s</string>
   <string name="error__upload__local_file_not_copied">Non foi posíbel copiar %1$s no cartafol local %2$s</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
   <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>
 		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_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 deixar de 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>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="copy_link">Copiar a ligazón</string>
   <string name="copy_link">Copiar a ligazón</string>
@@ -262,4 +260,6 @@
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_add_account">Engadir unha conta</string>
   <string name="prefs_add_account">Engadir unha conta</string>
   <string name="auth_redirect_non_secure_connection_title">A conexión segura está a ser redirixida a través dunha ruta non segura.</string>
   <string name="auth_redirect_non_secure_connection_title">A conexión segura está a ser redirixida a través dunha ruta non segura.</string>
+  <string name="actionbar_move">Mover</string>
+  <string name="move_choose_button_text">Escoller</string>
 </resources>
 </resources>

+ 4 - 0
res/values-gu/strings.xml

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

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

@@ -29,7 +29,10 @@
   <string name="prefs_help">עזרה</string>
   <string name="prefs_help">עזרה</string>
   <string name="prefs_recommend">המלצה לחבר</string>
   <string name="prefs_recommend">המלצה לחבר</string>
   <string name="prefs_feedback">משוב</string>
   <string name="prefs_feedback">משוב</string>
+  <string name="prefs_imprint">חותמת</string>
   <string name="recommend_subject">לבדיקה %1$s בטלפון החכם שלך!</string>
   <string name="recommend_subject">לבדיקה %1$s בטלפון החכם שלך!</string>
+  <string name="recommend_text">\"הנכם מוזמנים להשתמש ב- %1$s בטלפון החכם שלכם!\n קישור הורדה כאן: %2$s\"
+⇥</string>
   <string name="auth_check_server">בודק שרת</string>
   <string name="auth_check_server">בודק שרת</string>
   <string name="auth_host_url">כתובת שרת https://…</string>
   <string name="auth_host_url">כתובת שרת https://…</string>
   <string name="auth_username">שם משתמש</string>
   <string name="auth_username">שם משתמש</string>
@@ -102,6 +105,7 @@
   <string name="sync_fail_in_favourites_content">לא ניתן לסנכרם את תוכנם של %1$d מהקבצים (%2$d התנגשויות)</string>
   <string name="sync_fail_in_favourites_content">לא ניתן לסנכרם את תוכנם של %1$d מהקבצים (%2$d התנגשויות)</string>
   <string name="sync_foreign_files_forgotten_ticker">חלק מהקבצים המקומיים נשכחו</string>
   <string name="sync_foreign_files_forgotten_ticker">חלק מהקבצים המקומיים נשכחו</string>
   <string name="sync_foreign_files_forgotten_content">קבצים %1$d מחוץ לתיקיית %2$s לא ניתן להעתיק אל</string>
   <string name="sync_foreign_files_forgotten_content">קבצים %1$d מחוץ לתיקיית %2$s לא ניתן להעתיק אל</string>
+  <string name="sync_foreign_files_forgotten_explanation">החל מגרסה 1.3.16, קבצים שהועלו ממכשיר זה מועתקים לתיקייה מקומית %1$s כדי למנוע איבוד מידע כאשר קובץ בודד מסונכרן למספר חשבונות.\n\nבשל שינוי זה, כל הקבצים שהועלו לאפליקציה בגרסאות קודמות הועתקו לתיקייה %2$s . עם זאת, שגיאה מונעת את השלמת התהליך בזמן סנכרון חשבון. ניתן להשאיר את הקובץ (קבצים) כמו שהם ולמחוק את הקישור אל %3$s, או העברת הקובץ (קבצים) לתיקיית %1$s ושמירת הקישור אל %4$s.\n\nלמטה ניתן לראות את רשימת הקובץ (קבצים) המקומיים והקובץ (קבצים) ב- %5$s אליהם הם מקושרים.</string>
   <string name="sync_current_folder_was_removed">תיקיית %1$s אינה קיימת עוד</string>
   <string name="sync_current_folder_was_removed">תיקיית %1$s אינה קיימת עוד</string>
   <string name="foreign_files_move">להעביר הכול</string>
   <string name="foreign_files_move">להעביר הכול</string>
   <string name="foreign_files_success">כל הקבצים הועברו</string>
   <string name="foreign_files_success">כל הקבצים הועברו</string>
@@ -128,7 +132,9 @@
   <string name="media_err_unsupported">מקודד המדיה אינו נתמך</string>
   <string name="media_err_unsupported">מקודד המדיה אינו נתמך</string>
   <string name="media_err_io">לא ניתן לקרוא את קובץ המדיה</string>
   <string name="media_err_io">לא ניתן לקרוא את קובץ המדיה</string>
   <string name="media_err_malformed">קובץ מדיה לא קודד כהלכה</string>
   <string name="media_err_malformed">קובץ מדיה לא קודד כהלכה</string>
+  <string name="media_err_timeout">פסק זמן בעת ניסיון הניגון</string>
   <string name="media_err_invalid_progressive_playback">לא ניתן להזרים את קובץ המדיה</string>
   <string name="media_err_invalid_progressive_playback">לא ניתן להזרים את קובץ המדיה</string>
+  <string name="media_err_unknown">קובץ המדיה לא ניתן לניגון באמצעות נגן המדיה הקבוע</string>
   <string name="media_err_security_ex">שגיאת הבטחה בזמן ניסיון ניגון %1$s</string>
   <string name="media_err_security_ex">שגיאת הבטחה בזמן ניסיון ניגון %1$s</string>
   <string name="media_err_io_ex">שגיאת קלט בזמן ניסיון ניגון %1$s</string>
   <string name="media_err_io_ex">שגיאת קלט בזמן ניסיון ניגון %1$s</string>
   <string name="media_err_unexpected">שגיאה לא צפויה בזמן ניסיון ניגון %1$s</string>
   <string name="media_err_unexpected">שגיאה לא צפויה בזמן ניסיון ניגון %1$s</string>
@@ -160,9 +166,18 @@
   <string name="auth_wtf_reenter_URL">מצב לא צפוי; יש להכניס בבקשה שוב את כתובת השרת</string>
   <string name="auth_wtf_reenter_URL">מצב לא צפוי; יש להכניס בבקשה שוב את כתובת השרת</string>
   <string name="auth_expired_oauth_token_toast">האישור שלך פג. נא לבצע אישור מחדש</string>
   <string name="auth_expired_oauth_token_toast">האישור שלך פג. נא לבצע אישור מחדש</string>
   <string name="auth_expired_basic_auth_toast">נא להזין סיסמה נוכחית</string>
   <string name="auth_expired_basic_auth_toast">נא להזין סיסמה נוכחית</string>
+  <string name="auth_expired_saml_sso_token_toast">זמן ההתקשרות שלך הסתיים. יש להתחבר מחדש</string>
+  <string name="auth_connecting_auth_server">מתחבר לשרת אימות...</string>
+  <string name="auth_unsupported_auth_method">השרת אינו תומך בשיטת אימות זו</string>
+  <string name="auth_unsupported_multiaccount">%1$s אינו תומך בריבוי חשבונות</string>
+  <string name="auth_fail_get_user_name">השרת אינו מחזיר מספר משתמש נכון, יש ליצור קשר עם מנהל
+⇥</string>
+  <string name="auth_can_not_auth_against_server">לא מצליח לאמת מול השרת</string>
   <string name="fd_keep_in_sync">לשמור על קובץ עדכני</string>
   <string name="fd_keep_in_sync">לשמור על קובץ עדכני</string>
   <string name="common_rename">שינוי שם</string>
   <string name="common_rename">שינוי שם</string>
   <string name="common_remove">הסרה</string>
   <string name="common_remove">הסרה</string>
+  <string name="confirmation_remove_alert">האם באמת להסיר %1$s?</string>
+  <string name="confirmation_remove_folder_alert">האם באמת להסיר %1$s ואת כל התכולה?</string>
   <string name="confirmation_remove_local">מקומי בלבד</string>
   <string name="confirmation_remove_local">מקומי בלבד</string>
   <string name="confirmation_remove_folder_local">תכנים מקומיים בלבד</string>
   <string name="confirmation_remove_folder_local">תכנים מקומיים בלבד</string>
   <string name="confirmation_remove_remote">הסרה מהשרת</string>
   <string name="confirmation_remove_remote">הסרה מהשרת</string>
@@ -174,9 +189,15 @@
   <string name="rename_server_fail_msg">לא ניתן להשלים את פעולת שינוי השם</string>
   <string name="rename_server_fail_msg">לא ניתן להשלים את פעולת שינוי השם</string>
   <string name="sync_file_fail_msg">לא ניתן לבדוק את הקובץ המרוחק </string>
   <string name="sync_file_fail_msg">לא ניתן לבדוק את הקובץ המרוחק </string>
   <string name="sync_file_nothing_to_do_msg">תוכן הקובץ כבר מסונכרן</string>
   <string name="sync_file_nothing_to_do_msg">תוכן הקובץ כבר מסונכרן</string>
+  <string name="create_dir_fail_msg">לא ניתן ליצור תיקייה</string>
+  <string name="filename_forbidden_characters">תווים אסורים: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_empty">שם קובץ לא יכול להיות ריק</string>
   <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_login_connection">התחברות אל שרת oAuth2…</string>
   <string name="ssl_validator_header">לא ניתן לאמת את זהות האתר</string>
   <string name="ssl_validator_header">לא ניתן לאמת את זהות האתר</string>
   <string name="ssl_validator_reason_cert_not_trusted">- תעודת השרת אינה מהימנה</string>
   <string name="ssl_validator_reason_cert_not_trusted">- תעודת השרת אינה מהימנה</string>
   <string name="ssl_validator_reason_cert_expired">- תוקף תעודת השרת פג</string>
   <string name="ssl_validator_reason_cert_expired">- תוקף תעודת השרת פג</string>
@@ -199,17 +220,48 @@
   <string name="ssl_validator_label_validity_to">סיום:</string>
   <string name="ssl_validator_label_validity_to">סיום:</string>
   <string name="ssl_validator_label_signature">חתימה:</string>
   <string name="ssl_validator_label_signature">חתימה:</string>
   <string name="ssl_validator_label_signature_algorithm">אלגוריתם:</string>
   <string name="ssl_validator_label_signature_algorithm">אלגוריתם:</string>
+  <string name="ssl_validator_null_cert">לא ניתן להראות את תעודת האישור.</string>
+  <string name="ssl_validator_no_info_about_error">- אין מידע על השגיאה</string>
   <string name="placeholder_sentence">זהו ממלא מקום</string>
   <string name="placeholder_sentence">זהו ממלא מקום</string>
+  <string name="placeholder_filename">placeholder.txt</string>
   <string name="placeholder_filetype">תמונת PNG</string>
   <string name="placeholder_filetype">תמונת PNG</string>
   <string name="placeholder_filesize">389 ק״ב</string>
   <string name="placeholder_filesize">389 ק״ב</string>
+  <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
+  <string name="placeholder_media_time">12:23:45</string>
   <string name="instant_upload_on_wifi">העלאת תמונות דרך WiFi בלבד</string>
   <string name="instant_upload_on_wifi">העלאת תמונות דרך WiFi בלבד</string>
+  <string name="instant_video_upload_on_wifi">העלאות קבצי וידאו על בסיס WiFi בלבד</string>
   <string name="instant_upload_path">/InstantUpload</string>
   <string name="instant_upload_path">/InstantUpload</string>
   <string name="conflict_title">התנגשות עדכון</string>
   <string name="conflict_title">התנגשות עדכון</string>
   <string name="conflict_message">הקובץ המרוחק %s אינו מסונכרן עם הקובץ המקומי. בחירה בהמשך התהליך תחליף את תוכן הקובץ בשרת.</string>
   <string name="conflict_message">הקובץ המרוחק %s אינו מסונכרן עם הקובץ המקומי. בחירה בהמשך התהליך תחליף את תוכן הקובץ בשרת.</string>
   <string name="conflict_keep_both">להשאיר את שניהם</string>
   <string name="conflict_keep_both">להשאיר את שניהם</string>
   <string name="conflict_overwrite">לשכתב</string>
   <string name="conflict_overwrite">לשכתב</string>
   <string name="conflict_dont_upload">לא להעלות</string>
   <string name="conflict_dont_upload">לא להעלות</string>
+  <string name="preview_image_description">תצוגה מקדימה לתמונה</string>
+  <string name="preview_image_error_unknown_format">תמונה זו לא ניתנת לצפייה</string>
+  <string name="error__upload__local_file_not_copied">%1$s לא ניתן להעתקה לתיקייה מקומית %2$s</string>
+  <string name="share_link_no_support_share_api">מצטערים, שיתוף אינו מורשה על השרת שלך. יש ליצור קשר עם
+⇥⇥מנהל.</string>
+  <string name="share_link_file_error">שגיאה אירעה בזמן ניסיון לשתף קובץ זה או תיקייה זו</string>
+  <string name="unshare_link_file_error">שגיאה אירעה בזמן ניסיון לבטל שיתוף לקובץ זה או לתיקייה זו</string>
   <string name="activity_chooser_send_file_title">שליחה</string>
   <string name="activity_chooser_send_file_title">שליחה</string>
+  <string name="copy_link">העתקת קישור</string>
+  <string name="clipboard_text_copied">הועתק ללוח הגזירים - clipboard</string>
+  <string name="error_cant_bind_to_operations_service">שגיאה קריטית: לא ניתן לבצע את הפעולות</string>
+  <string name="network_error_socket_exception">שגיאה אירעה בזמן חיבור לשרת.</string>
+  <string name="network_error_socket_timeout_exception">שגיאה אירעה בזמן המתנה לשרת, הפעולה לא הייתה ניתנת להשלמה</string>
+  <string name="network_error_connect_timeout_exception">שגיאה אירעה בזמן המתנה לשרת, הפעולה לא הייתה ניתנת להשלמה</string>
+  <string name="network_host_not_available">לא ניתן להשלים את הפעולה, השרת אינו זמין</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="forbidden_permissions">אין לך הרשאות %s</string>
+  <string name="forbidden_permissions_rename">לשנות שם לקובץ זה</string>
+  <string name="forbidden_permissions_delete">למחוק קובץ זה</string>
+  <string name="share_link_forbidden_permissions">לשתף קובץ זה</string>
+  <string name="unshare_link_forbidden_permissions">לבטל שיתוף לקובץ זה</string>
+  <string name="forbidden_permissions_create">ליצור קובץ</string>
+  <string name="uploader_upload_forbidden_permissions">להעלאה לתיקייה זו</string>
+  <string name="downloader_download_file_not_found">הקובץ אינו זמין יותר על השרת</string>
   <string name="prefs_category_accounts">חשבונות</string>
   <string name="prefs_category_accounts">חשבונות</string>
+  <string name="prefs_add_account">הוספת חשבון</string>
+  <string name="auth_redirect_non_secure_connection_title">חיבור מאובטח מנותב דרך נתיב לא מאובטח</string>
+  <string name="move_choose_button_text">בחירה</string>
 </resources>
 </resources>

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

@@ -27,4 +27,5 @@
   <string name="common_remove">Makni</string>
   <string name="common_remove">Makni</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Korisnićki računi</string>
   <string name="prefs_category_accounts">Korisnićki računi</string>
+  <string name="move_choose_button_text">Izaberi</string>
 </resources>
 </resources>

+ 9 - 2
res/values-hu-rHU/strings.xml

@@ -17,6 +17,10 @@
   <string name="prefs_manage_accounts">Fiókok kezelése</string>
   <string name="prefs_manage_accounts">Fiókok kezelése</string>
   <string name="prefs_pincode">Alkalmazás PIN</string>
   <string name="prefs_pincode">Alkalmazás PIN</string>
   <string name="prefs_pincode_summary">Védje meg az alkalmazást</string>
   <string name="prefs_pincode_summary">Védje meg az alkalmazást</string>
+  <string name="prefs_instant_upload">Azonnali képfeltöltések</string>
+  <string name="prefs_instant_upload_summary">Kamera által készítette képek azonnali feltöltése</string>
+  <string name="prefs_instant_video_upload">Azonnali video feltöltések</string>
+  <string name="prefs_instant_video_upload_summary">Kamera által készített videó azonnali feltöltése</string>
   <string name="prefs_log_title">Naplózás engedélyezése</string>
   <string name="prefs_log_title">Naplózás engedélyezése</string>
   <string name="prefs_log_summary">Ez használható a problémák naplózásához</string>
   <string name="prefs_log_summary">Ez használható a problémák naplózásához</string>
   <string name="prefs_log_title_history">Naplózás előzménye</string>
   <string name="prefs_log_title_history">Naplózás előzménye</string>
@@ -27,6 +31,8 @@
   <string name="prefs_feedback">Visszajelzés</string>
   <string name="prefs_feedback">Visszajelzés</string>
   <string name="prefs_imprint">Impresszum</string>
   <string name="prefs_imprint">Impresszum</string>
   <string name="recommend_subject">Próbálja ki %1$s-t az okostelefonján!</string>
   <string name="recommend_subject">Próbálja ki %1$s-t az okostelefonján!</string>
+  <string name="recommend_text">\"Szeretnélek meghívni, hogy használd %1$s az okostelefonodon!\nTölts le innen: %2$s\"
+	</string>
   <string name="auth_check_server">Szerver állapot ellenörzés</string>
   <string name="auth_check_server">Szerver állapot ellenörzés</string>
   <string name="auth_host_url">Kiszolgáló címe https://...</string>
   <string name="auth_host_url">Kiszolgáló címe https://...</string>
   <string name="auth_username">Felhasználói név</string>
   <string name="auth_username">Felhasználói név</string>
@@ -35,6 +41,7 @@
   <string name="sync_string_files">Fájlok</string>
   <string name="sync_string_files">Fájlok</string>
   <string name="setup_btn_connect">Kapcsolódás</string>
   <string name="setup_btn_connect">Kapcsolódás</string>
   <string name="uploader_btn_upload_text">Feltöltés</string>
   <string name="uploader_btn_upload_text">Feltöltés</string>
+  <string name="uploader_top_message">Válassz feltöltési mappát:</string>
   <string name="uploader_wrn_no_account_title">Nincs ilyen felhasználói fiók</string>
   <string name="uploader_wrn_no_account_title">Nincs ilyen felhasználói fiók</string>
   <string name="uploader_wrn_no_account_text">Nem található %1$s fiók ezen a készüléken. Hozzon létre egy fiókot előbb.</string>
   <string name="uploader_wrn_no_account_text">Nem található %1$s fiók ezen a készüléken. Hozzon létre egy fiókot előbb.</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Beállítás</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Beállítás</string>
@@ -45,6 +52,7 @@
   <string name="uploader_info_uploading">Feltöltés</string>
   <string name="uploader_info_uploading">Feltöltés</string>
   <string name="file_list_empty">Itt nincs semmi. Töltsön fel valamit!</string>
   <string name="file_list_empty">Itt nincs semmi. Töltsön fel valamit!</string>
   <string name="file_list_loading">Betöltés...</string>
   <string name="file_list_loading">Betöltés...</string>
+  <string name="local_file_list_empty">Nincs fájl ebben a mappában.</string>
   <string name="filedetails_select_file">Érintsen meg egy fájlt a további információkért.</string>
   <string name="filedetails_select_file">Érintsen meg egy fájlt a további információkért.</string>
   <string name="filedetails_size">Méret:</string>
   <string name="filedetails_size">Méret:</string>
   <string name="filedetails_type">Tipus:</string>
   <string name="filedetails_type">Tipus:</string>
@@ -214,13 +222,12 @@
   <string name="conflict_overwrite">Felülírás</string>
   <string name="conflict_overwrite">Felülírás</string>
   <string name="conflict_dont_upload">Ne töltsük föl</string>
   <string name="conflict_dont_upload">Ne töltsük föl</string>
   <string name="preview_image_description">Előnézeti kép</string>
   <string name="preview_image_description">Előnézeti kép</string>
-  <string name="share_link_file_no_exist">A mappa nem osztható meg. Lehet, hogy nem is létezik.</string>
   <string name="share_link_file_error">Hiba lépett fel a mappa megosztásakor</string>
   <string name="share_link_file_error">Hiba lépett fel a mappa megosztásakor</string>
-  <string name="unshare_link_file_no_exist">Nem lehet a megosztást megszüntetni. A mappa vagy fájl nem létezik.</string>
   <string name="unshare_link_file_error">Hiba lépett fel a mappa megosztásának visszavonásakor</string>
   <string name="unshare_link_file_error">Hiba lépett fel a mappa megosztásának visszavonásakor</string>
   <string name="activity_chooser_send_file_title">Küldjük el</string>
   <string name="activity_chooser_send_file_title">Küldjük el</string>
   <string name="copy_link">Link másolása</string>
   <string name="copy_link">Link másolása</string>
   <string name="clipboard_text_copied">Bemásolva a vágólapra</string>
   <string name="clipboard_text_copied">Bemásolva a vágólapra</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Fiókok</string>
   <string name="prefs_category_accounts">Fiókok</string>
+  <string name="move_choose_button_text">Válasszon</string>
 </resources>
 </resources>

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

@@ -26,4 +26,5 @@
   <string name="uploader_info_dirname">Nomine de dossier</string>
   <string name="uploader_info_dirname">Nomine de dossier</string>
   <string name="activity_chooser_send_file_title">Invia</string>
   <string name="activity_chooser_send_file_title">Invia</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="move_choose_button_text">Seliger</string>
 </resources>
 </resources>

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

@@ -209,4 +209,5 @@
   <string name="activity_chooser_send_file_title">Kirim</string>
   <string name="activity_chooser_send_file_title">Kirim</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Akun</string>
   <string name="prefs_category_accounts">Akun</string>
+  <string name="move_choose_button_text">Pilih</string>
 </resources>
 </resources>

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

@@ -24,4 +24,5 @@
   <string name="common_remove">Fjarlægja</string>
   <string name="common_remove">Fjarlægja</string>
   <string name="activity_chooser_send_file_title">Senda</string>
   <string name="activity_chooser_send_file_title">Senda</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="move_choose_button_text">Veldu</string>
 </resources>
 </resources>

+ 13 - 2
res/values-it/strings.xml

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Segnalazioni</string>
   <string name="prefs_feedback">Segnalazioni</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="recommend_subject">Prova %1$s sul tuo smartphone!</string>
   <string name="recommend_subject">Prova %1$s sul tuo smartphone!</string>
+  <string name="recommend_text">\"Vorrei invitarti a usare %1$s sul tuo smartphone!\nScaricalo qua: %2$s\"
+	</string>
   <string name="auth_check_server">Verifica server</string>
   <string name="auth_check_server">Verifica server</string>
   <string name="auth_host_url">Indirizzo server https://...</string>
   <string name="auth_host_url">Indirizzo server https://...</string>
   <string name="auth_username">Nome utente</string>
   <string name="auth_username">Nome utente</string>
@@ -103,6 +105,7 @@
   <string name="sync_fail_in_favourites_content">I contenuti di %1$d file non possono essere sincronizzati (%2$d conflitti)</string>
   <string name="sync_fail_in_favourites_content">I contenuti di %1$d file non possono essere sincronizzati (%2$d conflitti)</string>
   <string name="sync_foreign_files_forgotten_ticker">Alcuni file locali sono stati trascurati</string>
   <string name="sync_foreign_files_forgotten_ticker">Alcuni file locali sono stati trascurati</string>
   <string name="sync_foreign_files_forgotten_content">%1$d file della cartella %2$s non possono essere copiati</string>
   <string name="sync_foreign_files_forgotten_content">%1$d file della cartella %2$s non possono essere copiati</string>
+  <string name="sync_foreign_files_forgotten_explanation">Dalla versione 1.3.16, i file caricati da questo dispositivo sono copiati nella cartella locale %1$s per evitare perdite di dati in caso di sincronizzazione di un singolo file con più account.\n\nA causa di questa modifica, tutti i file caricati nelle versioni precedenti di questa applicazione sono copiati nella cartella %2$s. In ogni caso, un errore ha impedito il completamento di questa operazione durante la sincronizzazione dell\'account.  Puoi mantenere i file intatti e rimuovere il collegamento a %3$s o spostare i file nella cartella %1$s e mantenere il collegamento a %4$s.\n\nQui sotto sono elencati i file locali e i file remoti in %5$s ai quali sono collegati.</string>
   <string name="sync_current_folder_was_removed">La cartella %1$s non esiste più</string>
   <string name="sync_current_folder_was_removed">La cartella %1$s non esiste più</string>
   <string name="foreign_files_move">Sposta tutto</string>
   <string name="foreign_files_move">Sposta tutto</string>
   <string name="foreign_files_success">Tutti i file sono stati spostati</string>
   <string name="foreign_files_success">Tutti i file sono stati spostati</string>
@@ -238,9 +241,9 @@
   <string name="error__upload__local_file_not_copied">%1$s non può essere copiato nella cartella locale %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s non può essere copiato nella cartella locale %2$s</string>
   <string name="share_link_no_support_share_api">Spiacenti, la condivisione non è abilitata sul tuo server. Contatta il tuo
   <string name="share_link_no_support_share_api">Spiacenti, la condivisione non è abilitata sul tuo server. Contatta il tuo
 		amministratore.</string>
 		amministratore.</string>
-  <string name="share_link_file_no_exist">Impossibile condividere il file o la cartella. Assicurati che esista.</string>
+  <string name="share_link_file_no_exist">Impossibile condividere. Assicurati che il file esista</string>
   <string name="share_link_file_error">Si è verificato un errore durante il tentativo di condivisione del file o della cartella</string>
   <string name="share_link_file_error">Si è verificato un errore durante il tentativo di condivisione del file o della cartella</string>
-  <string name="unshare_link_file_no_exist">Impossibile rimuovere dalla condivisione il file o la cartella. Non esiste.</string>
+  <string name="unshare_link_file_no_exist">Impossibile rimuovere dalla condivisione. Assicurati che il file esista</string>
   <string name="unshare_link_file_error">Si è verificato un errore durante il tentativo di rimuovere la condivisione del file o della cartella</string>
   <string name="unshare_link_file_error">Si è verificato un errore durante il tentativo di rimuovere la condivisione del file o della cartella</string>
   <string name="activity_chooser_send_file_title">Invia</string>
   <string name="activity_chooser_send_file_title">Invia</string>
   <string name="copy_link">Copia collegamento</string>
   <string name="copy_link">Copia collegamento</string>
@@ -262,4 +265,12 @@
   <string name="prefs_category_accounts">Account</string>
   <string name="prefs_category_accounts">Account</string>
   <string name="prefs_add_account">Aggiungi account</string>
   <string name="prefs_add_account">Aggiungi account</string>
   <string name="auth_redirect_non_secure_connection_title">La connessione sicura è rediretta attraverso un percorso non sicuro.</string>
   <string name="auth_redirect_non_secure_connection_title">La connessione sicura è rediretta attraverso un percorso non sicuro.</string>
+  <string name="actionbar_move">Sposta</string>
+  <string name="file_list_empty_moving">Qui non c\'è niente. Puoi aggiungere una cartella.</string>
+  <string name="move_choose_button_text">Scegli</string>
+  <string name="move_file_not_found">Impossibile spostare. Assicurati che il file esista</string>
+  <string name="move_file_invalid_into_descendent">Impossibile spostare una cartella in una cartella inferiore</string>
+  <string name="move_file_invalid_overwrite">Il file esiste già nella cartella di destinazione</string>
+  <string name="move_file_error">Si è verificato un errore durante il tentativo di spostare il file o la cartella</string>
+  <string name="forbidden_permissions_move">per spostare questo file</string>
 </resources>
 </resources>

+ 2 - 2
res/values-ja-rJP/strings.xml

@@ -238,9 +238,7 @@
   <string name="error__upload__local_file_not_copied">%1$s は、ローカルフォルダー %2$s  にコピーできませんでした。</string>
   <string name="error__upload__local_file_not_copied">%1$s は、ローカルフォルダー %2$s  にコピーできませんでした。</string>
   <string name="share_link_no_support_share_api">申し訳ございません。共有がサーバー上で有効になっていません。 管理者に
   <string name="share_link_no_support_share_api">申し訳ございません。共有がサーバー上で有効になっていません。 管理者に
 		ご連絡ください。</string>
 		ご連絡ください。</string>
-  <string name="share_link_file_no_exist">このファイルまたはフォルダーは共有できません。存在するか確認してください。</string>
   <string name="share_link_file_error">このファイルまたはフォルダーを共有する際にエラーが発生しました</string>
   <string name="share_link_file_error">このファイルまたはフォルダーを共有する際にエラーが発生しました</string>
-  <string name="unshare_link_file_no_exist">このファイルまたはフォルダは存在しないため、共有を解除できません。</string>
   <string name="unshare_link_file_error">このファイルまたはフォルダーの共有を解除する際にエラーが発生しました</string>
   <string name="unshare_link_file_error">このファイルまたはフォルダーの共有を解除する際にエラーが発生しました</string>
   <string name="activity_chooser_send_file_title">送信</string>
   <string name="activity_chooser_send_file_title">送信</string>
   <string name="copy_link">リンクをコピー</string>
   <string name="copy_link">リンクをコピー</string>
@@ -261,4 +259,6 @@
   <string name="downloader_download_file_not_found">ファイルはサーバー上で利用できません</string>
   <string name="downloader_download_file_not_found">ファイルはサーバー上で利用できません</string>
   <string name="prefs_category_accounts">アカウント</string>
   <string name="prefs_category_accounts">アカウント</string>
   <string name="prefs_add_account">アカウントを追加</string>
   <string name="prefs_add_account">アカウントを追加</string>
+  <string name="actionbar_move">移動</string>
+  <string name="move_choose_button_text">選択</string>
 </resources>
 </resources>

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

@@ -148,4 +148,5 @@
   <string name="clipboard_text_copied">კოპირებულია კლიპბორდში</string>
   <string name="clipboard_text_copied">კოპირებულია კლიპბორდში</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">ანგარიში</string>
   <string name="prefs_category_accounts">ანგარიში</string>
+  <string name="move_choose_button_text">არჩევა</string>
 </resources>
 </resources>

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

@@ -81,4 +81,5 @@
   <string name="activity_chooser_send_file_title">ផ្ញើ</string>
   <string name="activity_chooser_send_file_title">ផ្ញើ</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">គណនី</string>
   <string name="prefs_category_accounts">គណនី</string>
+  <string name="move_choose_button_text">ជ្រើស</string>
 </resources>
 </resources>

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

@@ -214,4 +214,5 @@
   <string name="clipboard_text_copied">클립보드로 복사됨</string>
   <string name="clipboard_text_copied">클립보드로 복사됨</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">계정</string>
   <string name="prefs_category_accounts">계정</string>
+  <string name="move_choose_button_text">선택</string>
 </resources>
 </resources>

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

@@ -84,4 +84,5 @@
   <string name="activity_chooser_send_file_title">Schécken</string>
   <string name="activity_chooser_send_file_title">Schécken</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Accounten</string>
   <string name="prefs_category_accounts">Accounten</string>
+  <string name="move_choose_button_text">Auswielen</string>
 </resources>
 </resources>

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

@@ -218,13 +218,12 @@
   <string name="conflict_dont_upload">Nebesiųsti</string>
   <string name="conflict_dont_upload">Nebesiųsti</string>
   <string name="preview_image_description">Paveikslėlio peržiūra</string>
   <string name="preview_image_description">Paveikslėlio peržiūra</string>
   <string name="preview_image_error_unknown_format">Neįmanoma parodyti šio paveikslėlio</string>
   <string name="preview_image_error_unknown_format">Neįmanoma parodyti šio paveikslėlio</string>
-  <string name="share_link_file_no_exist">Nepavyksta dalinti šio failo ar aplanko. Prašome įsitikinti ar jis egzistuoja</string>
   <string name="share_link_file_error">Įvyko klaida bandant dalinti šį failą ar aplanką</string>
   <string name="share_link_file_error">Įvyko klaida bandant dalinti šį failą ar aplanką</string>
-  <string name="unshare_link_file_no_exist">Nepavyksta nebedalinti šiuo failu ar aplanku. Jis neegzistuoja</string>
   <string name="unshare_link_file_error">Įvyko klaida bandant nebedalinti šio failu ar aplanku</string>
   <string name="unshare_link_file_error">Įvyko klaida bandant nebedalinti šio failu ar aplanku</string>
   <string name="activity_chooser_send_file_title">Siųsti</string>
   <string name="activity_chooser_send_file_title">Siųsti</string>
   <string name="copy_link">Kopijuoti nuorodą</string>
   <string name="copy_link">Kopijuoti nuorodą</string>
   <string name="clipboard_text_copied">Nukopijuota į talpyklę</string>
   <string name="clipboard_text_copied">Nukopijuota į talpyklę</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Paskyros</string>
   <string name="prefs_category_accounts">Paskyros</string>
+  <string name="move_choose_button_text">Pasirinkite</string>
 </resources>
 </resources>

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

@@ -142,4 +142,5 @@
   <string name="activity_chooser_send_file_title">Sūtīt</string>
   <string name="activity_chooser_send_file_title">Sūtīt</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Konti</string>
   <string name="prefs_category_accounts">Konti</string>
+  <string name="move_choose_button_text">Izvēlieties</string>
 </resources>
 </resources>

+ 4 - 0
res/values-mg/strings.xml

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

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

@@ -119,4 +119,5 @@
   <string name="activity_chooser_send_file_title">Прати</string>
   <string name="activity_chooser_send_file_title">Прати</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Сметки</string>
   <string name="prefs_category_accounts">Сметки</string>
+  <string name="move_choose_button_text">Избери</string>
 </resources>
 </resources>

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

@@ -11,4 +11,5 @@
   <string name="common_ok">အိုကေ</string>
   <string name="common_ok">အိုကေ</string>
   <string name="common_cancel">ပယ်ဖျက်မည်</string>
   <string name="common_cancel">ပယ်ဖျက်မည်</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="move_choose_button_text">ရွေးချယ်</string>
 </resources>
 </resources>

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

@@ -238,9 +238,7 @@
   <string name="error__upload__local_file_not_copied">%1$s kunne ikke kopieres til lokal mappe %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s kunne ikke kopieres til lokal mappe %2$s</string>
   <string name="share_link_no_support_share_api">Beklager, deling er ikke skrudd på for din tjener. Ta kontakt med
   <string name="share_link_no_support_share_api">Beklager, deling er ikke skrudd på for din tjener. Ta kontakt med
 		administratoren.</string>
 		administratoren.</string>
-  <string name="share_link_file_no_exist">Klarte ikke å dele denne filen eller mappen. Sjekk at den eksisterer.</string>
   <string name="share_link_file_error">Det skjedde en feil under deling av denne filen eller mappen</string>
   <string name="share_link_file_error">Det skjedde en feil under deling av denne filen eller mappen</string>
-  <string name="unshare_link_file_no_exist">Klarte ikke å avslutte delingen av denne filen eller mappen. Den eksisterer ikke.</string>
   <string name="unshare_link_file_error">En feil oppstod ved avslutting av delingen av denne filen eller mappen</string>
   <string name="unshare_link_file_error">En feil oppstod ved avslutting av delingen av denne filen eller mappen</string>
   <string name="activity_chooser_send_file_title">Send</string>
   <string name="activity_chooser_send_file_title">Send</string>
   <string name="copy_link">Kopier lenke</string>
   <string name="copy_link">Kopier lenke</string>
@@ -262,4 +260,5 @@
   <string name="prefs_category_accounts">Kontoer</string>
   <string name="prefs_category_accounts">Kontoer</string>
   <string name="prefs_add_account">Legg til en konto</string>
   <string name="prefs_add_account">Legg til en konto</string>
   <string name="auth_redirect_non_secure_connection_title">Sikker tilkobling videresendes gjennom en usikker rute.</string>
   <string name="auth_redirect_non_secure_connection_title">Sikker tilkobling videresendes gjennom en usikker rute.</string>
+  <string name="move_choose_button_text">Velg</string>
 </resources>
 </resources>

+ 16 - 2
res/values-nl/strings.xml

@@ -31,6 +31,9 @@
   <string name="prefs_feedback">Feedback</string>
   <string name="prefs_feedback">Feedback</string>
   <string name="prefs_imprint">afdruk</string>
   <string name="prefs_imprint">afdruk</string>
   <string name="recommend_subject">Probeer %1$s op uw smartphone!</string>
   <string name="recommend_subject">Probeer %1$s op uw smartphone!</string>
+  <string name="recommend_text">\"Ik wil u graag uitnodigen om %1$s op uw smartphone te gebruiken!
+Download hier: %2$s\"
+	</string>
   <string name="auth_check_server">Controleer server</string>
   <string name="auth_check_server">Controleer server</string>
   <string name="auth_host_url">Serveradres https://…</string>
   <string name="auth_host_url">Serveradres https://…</string>
   <string name="auth_username">Gebruikersnaam</string>
   <string name="auth_username">Gebruikersnaam</string>
@@ -103,6 +106,9 @@
   <string name="sync_fail_in_favourites_content">Inhoud van %1$d bestanden kon niet worden gesynchroniseerd (%2$d conflicten)</string>
   <string name="sync_fail_in_favourites_content">Inhoud van %1$d bestanden kon niet worden gesynchroniseerd (%2$d conflicten)</string>
   <string name="sync_foreign_files_forgotten_ticker">Een paar lokale bestanden werden vergeten</string>
   <string name="sync_foreign_files_forgotten_ticker">Een paar lokale bestanden werden vergeten</string>
   <string name="sync_foreign_files_forgotten_content">%1$d bestanden uit de %2$s map konden niet worden gekopieerd naar</string>
   <string name="sync_foreign_files_forgotten_content">%1$d bestanden uit de %2$s map konden niet worden gekopieerd naar</string>
+  <string name="sync_foreign_files_forgotten_explanation">Vanaf versie 1.3.16, worden bestanden die vanaf dit apparaat worden ge-uploaded ook gekopieerd naar de lokale %1$s map om gegevensverlies te voorkomen als een enkel bestand wordt gesynchroniseerd met meerdere accounts.
+Door deze aanpassing werden alle bestanden die met een eerdere versie zijn ge-uploaded gekopieerd naar de %2$s map. Maar een fout voorkwam het succesvol afronden van deze actie tijdens het synchroniseren. U kunt de/het bestand(en) laten staan zoals ze nu zijn en de link naar %3$s verwijderen, of u kunt de bestanden verplaatsen naar de %1$s map en de link naar %4$s laten staan.
+Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar verwezen.</string>
   <string name="sync_current_folder_was_removed">Map %1$s bestaat niet meer</string>
   <string name="sync_current_folder_was_removed">Map %1$s bestaat niet meer</string>
   <string name="foreign_files_move">Alle verplaatsen</string>
   <string name="foreign_files_move">Alle verplaatsen</string>
   <string name="foreign_files_success">Alle bestanden zijn verplaatst</string>
   <string name="foreign_files_success">Alle bestanden zijn verplaatst</string>
@@ -238,9 +244,9 @@
   <string name="error__upload__local_file_not_copied">%1$s kon niet worden gekopieerd naar de %2$s lokale map</string>
   <string name="error__upload__local_file_not_copied">%1$s kon niet worden gekopieerd naar de %2$s lokale map</string>
   <string name="share_link_no_support_share_api">Sorry, delen is niet mogelijk op uw server. Neem contact op met uw
   <string name="share_link_no_support_share_api">Sorry, delen is niet mogelijk op uw server. Neem contact op met uw
 		beheerder.</string>
 		beheerder.</string>
-  <string name="share_link_file_no_exist">Kan dit bestand of deze map niet delen. Controleer of dit object wel bestaat.</string>
+  <string name="share_link_file_no_exist">Kan dit niet delen. Controleer of dit bestand wel bestaat.</string>
   <string name="share_link_file_error">Er trad een fout op bij uw poging dit bestand of deze map te delen</string>
   <string name="share_link_file_error">Er trad een fout op bij uw poging dit bestand of deze map te delen</string>
-  <string name="unshare_link_file_no_exist">Kan delen van dit bestand of deze map niet beëindigen. Het object bestaat niet.</string>
+  <string name="unshare_link_file_no_exist">Kan delen niet beëindigen. Ga na of het bestand bestaat</string>
   <string name="unshare_link_file_error">Er trad een fout op bij uw poging het delen van dit bestand of deze map te beëindigen</string>
   <string name="unshare_link_file_error">Er trad een fout op bij uw poging het delen van dit bestand of deze map te beëindigen</string>
   <string name="activity_chooser_send_file_title">Versturen</string>
   <string name="activity_chooser_send_file_title">Versturen</string>
   <string name="copy_link">Link kopiëren</string>
   <string name="copy_link">Link kopiëren</string>
@@ -262,4 +268,12 @@
   <string name="prefs_category_accounts">Accounts</string>
   <string name="prefs_category_accounts">Accounts</string>
   <string name="prefs_add_account">Toevoegen account</string>
   <string name="prefs_add_account">Toevoegen account</string>
   <string name="auth_redirect_non_secure_connection_title">De beveiligde verbinding is omgeleid via een onveilige route.</string>
   <string name="auth_redirect_non_secure_connection_title">De beveiligde verbinding is omgeleid via een onveilige route.</string>
+  <string name="actionbar_move">verplaatsen</string>
+  <string name="file_list_empty_moving">Niets hier. U kunt een map toevoegen!</string>
+  <string name="move_choose_button_text">Kies</string>
+  <string name="move_file_not_found">Kan niet verplaatsen. Ga na of het bestand wel bestaat</string>
+  <string name="move_file_invalid_into_descendent">De map kan niet naar een onderliggende map worden verplaatst</string>
+  <string name="move_file_invalid_overwrite">Het bestand bestaat al in de doelmap</string>
+  <string name="move_file_error">Er trad een fout op bij uw poging dit bestand of deze map te verplaatsen</string>
+  <string name="forbidden_permissions_move">om dit bestand te verplaatsen</string>
 </resources>
 </resources>

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

@@ -127,4 +127,5 @@
   <string name="activity_chooser_send_file_title">Send</string>
   <string name="activity_chooser_send_file_title">Send</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Kontoar</string>
   <string name="prefs_category_accounts">Kontoar</string>
+  <string name="move_choose_button_text">Vel</string>
 </resources>
 </resources>

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

@@ -41,4 +41,5 @@
   <string name="common_rename">Torna nomenar</string>
   <string name="common_rename">Torna nomenar</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Comptes</string>
   <string name="prefs_category_accounts">Comptes</string>
+  <string name="move_choose_button_text">Causís</string>
 </resources>
 </resources>

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

@@ -119,4 +119,5 @@
   <string name="activity_chooser_send_file_title">ਭੇਜੋ</string>
   <string name="activity_chooser_send_file_title">ਭੇਜੋ</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">ਅਕਾਊਂਟ</string>
   <string name="prefs_category_accounts">ਅਕਾਊਂਟ</string>
+  <string name="move_choose_button_text">ਚੁਣੋ</string>
 </resources>
 </resources>

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

@@ -238,9 +238,7 @@
   <string name="error__upload__local_file_not_copied">%1$s nie może zostać skopiowany do lokalnego folderu %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s nie może zostać skopiowany do lokalnego folderu %2$s</string>
   <string name="share_link_no_support_share_api">Przepraszamy, ale współdzielenie nie jest włączone na Twoim serwerze. Proszę skontaktuj się z
   <string name="share_link_no_support_share_api">Przepraszamy, ale współdzielenie nie jest włączone na Twoim serwerze. Proszę skontaktuj się z
 		administratorem.</string>
 		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_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. On 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>
   <string name="activity_chooser_send_file_title">Wyślij</string>
   <string name="activity_chooser_send_file_title">Wyślij</string>
   <string name="copy_link">Skopiuj link</string>
   <string name="copy_link">Skopiuj link</string>
@@ -262,4 +260,5 @@
   <string name="prefs_category_accounts">Konta</string>
   <string name="prefs_category_accounts">Konta</string>
   <string name="prefs_add_account">Dodaj konto</string>
   <string name="prefs_add_account">Dodaj konto</string>
   <string name="auth_redirect_non_secure_connection_title">Bezpieczne połączenie jest przekierowywane przez niezabezpieczone trasy.</string>
   <string name="auth_redirect_non_secure_connection_title">Bezpieczne połączenie jest przekierowywane przez niezabezpieczone trasy.</string>
+  <string name="move_choose_button_text">Wybierz</string>
 </resources>
 </resources>

+ 12 - 2
res/values-pt-rBR/strings.xml

@@ -31,6 +31,7 @@
   <string name="prefs_feedback">Feedback</string>
   <string name="prefs_feedback">Feedback</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="recommend_subject">Tentar %1$s em seu smartfone!</string>
   <string name="recommend_subject">Tentar %1$s em seu smartfone!</string>
+  <string name="recommend_text">\"Eu quero convidá-lo a utilizar %1$s em seu smartphone!\nDownload aqui: %2$s\"</string>
   <string name="auth_check_server">Verificar Servidor</string>
   <string name="auth_check_server">Verificar Servidor</string>
   <string name="auth_host_url">Endereço do servidor https://...</string>
   <string name="auth_host_url">Endereço do servidor https://...</string>
   <string name="auth_username">Nome de usuário</string>
   <string name="auth_username">Nome de usuário</string>
@@ -103,6 +104,7 @@
   <string name="sync_fail_in_favourites_content">O conteúdo de %1$d arquivos não puderam ser sincronizados (%2$d conflitos)</string>
   <string name="sync_fail_in_favourites_content">O conteúdo de %1$d arquivos não puderam ser sincronizados (%2$d conflitos)</string>
   <string name="sync_foreign_files_forgotten_ticker">Alguns arquivos locais foram esquecidos</string>
   <string name="sync_foreign_files_forgotten_ticker">Alguns arquivos locais foram esquecidos</string>
   <string name="sync_foreign_files_forgotten_content">%1$d arquivos de %2$s não puderam ser copiados para a pasta</string>
   <string name="sync_foreign_files_forgotten_content">%1$d arquivos de %2$s não puderam ser copiados para a pasta</string>
+  <string name="sync_foreign_files_forgotten_explanation">A partir da versão 1.3.16, os arquivos enviados a partir deste dispositivo são copiados para a pasta local %1$s para evitar a perda de dados quando um único arquivo é sincronizado com várias contas. \n\nDevido a esta mudança, todos os arquivos enviados em versões anteriores deste aplicativo foram copiados para a pasta %2$s . No entanto, um erro impediu a conclusão desta operação durante a sincronização de conta. Você pode tanto deixar os arquivos como são e remover o link para %3$s, ou mover os arquivo(s) para a pasta %1$s e manter o link para %4$s. \n\nListadas abaixo são os arquivo(s) locais, e os arquivo(s) remoto(s) em %5$s que estavam vinculados.</string>
   <string name="sync_current_folder_was_removed">Pasta %1s não existe mais</string>
   <string name="sync_current_folder_was_removed">Pasta %1s não existe mais</string>
   <string name="foreign_files_move">Mover todos</string>
   <string name="foreign_files_move">Mover todos</string>
   <string name="foreign_files_success">Todos os arquivos foram movidos</string>
   <string name="foreign_files_success">Todos os arquivos foram movidos</string>
@@ -238,9 +240,9 @@
   <string name="error__upload__local_file_not_copied">%1$s não pôde ser copiado para pasta local %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s não pôde ser copiado para pasta local %2$s</string>
   <string name="share_link_no_support_share_api">Desculpe, o compartilhamento não está habilitado em seu servidor. Entre em contato com seu 
   <string name="share_link_no_support_share_api">Desculpe, o compartilhamento não está habilitado em seu servidor. Entre em contato com seu 
 ⇥⇥ administrador.</string>
 ⇥⇥ administrador.</string>
-  <string name="share_link_file_no_exist">Incapaz de compartilhar esse arquivo ou pasta. Por favor, certifique-se que existe</string>
+  <string name="share_link_file_no_exist">Não é possível compartilhar. Por favor verifique se o arquivo existe</string>
   <string name="share_link_file_error">Ocorreu um erro durante a tentativa de compartilhar esse arquivo ou pasta</string>
   <string name="share_link_file_error">Ocorreu um erro durante a tentativa de compartilhar esse arquivo ou pasta</string>
-  <string name="unshare_link_file_no_exist">Incapaz de descompartilhar este arquivo ou pasta. Ela não existe.</string>
+  <string name="unshare_link_file_no_exist">Não é possível cancelar o compartilhamento. Por favor verifique se o arquivo existe</string>
   <string name="unshare_link_file_error">Ocorreu um erro ao tentar descompartilhar este arquivo ou pasta</string>
   <string name="unshare_link_file_error">Ocorreu um erro ao tentar descompartilhar este arquivo ou pasta</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="copy_link">Copiar o link</string>
   <string name="copy_link">Copiar o link</string>
@@ -262,4 +264,12 @@
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_add_account">Adicionar uma conta</string>
   <string name="prefs_add_account">Adicionar uma conta</string>
   <string name="auth_redirect_non_secure_connection_title">A conexão segura está redirecionada através de uma rota insegura.</string>
   <string name="auth_redirect_non_secure_connection_title">A conexão segura está redirecionada através de uma rota insegura.</string>
+  <string name="actionbar_move">Mover</string>
+  <string name="file_list_empty_moving">Nada aqui. Você pode adicionar uma pasta!</string>
+  <string name="move_choose_button_text">Escolher</string>
+  <string name="move_file_not_found">Não é possível mover. Por favor verifique se o arquivo existe</string>
+  <string name="move_file_invalid_into_descendent">Não é possível mover a pasta para uma descendente</string>
+  <string name="move_file_invalid_overwrite">O arquivo já existe na pasta de destino</string>
+  <string name="move_file_error">Ocorreu um erro ao tentar mover este arquivo ou pasta</string>
+  <string name="forbidden_permissions_move">mover este arquivo</string>
 </resources>
 </resources>

+ 7 - 2
res/values-pt-rPT/strings.xml

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Resposta</string>
   <string name="prefs_feedback">Resposta</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="prefs_imprint">Imprint</string>
   <string name="recommend_subject">Experimente %1$s no seu smartphone!</string>
   <string name="recommend_subject">Experimente %1$s no seu smartphone!</string>
+  <string name="recommend_text">Quero convidá-lo a usar %1$s no seu smartphone!\nDescarregue aqui: %2$s\"
+⇥</string>
   <string name="auth_check_server">Verificar Servidor</string>
   <string name="auth_check_server">Verificar Servidor</string>
   <string name="auth_host_url">Endereço do servidor https://..</string>
   <string name="auth_host_url">Endereço do servidor https://..</string>
   <string name="auth_username">Nome de Utilizador</string>
   <string name="auth_username">Nome de Utilizador</string>
@@ -103,6 +105,7 @@
   <string name="sync_fail_in_favourites_content">Não foi possível sincronizar  o conteúdo de %1$d ficheiros  (%2$d conflictos)</string>
   <string name="sync_fail_in_favourites_content">Não foi possível sincronizar  o conteúdo de %1$d ficheiros  (%2$d conflictos)</string>
   <string name="sync_foreign_files_forgotten_ticker">Alguns ficheiros locais ficaram esquecidos</string>
   <string name="sync_foreign_files_forgotten_ticker">Alguns ficheiros locais ficaram esquecidos</string>
   <string name="sync_foreign_files_forgotten_content">Nao foi possivel copiar os ficheiros %1$d da pasta %2$s para</string>
   <string name="sync_foreign_files_forgotten_content">Nao foi possivel copiar os ficheiros %1$d da pasta %2$s para</string>
+  <string name="sync_foreign_files_forgotten_explanation">Tal como na versão 1.3.16, os ficheiros que foram enviados deste dispositivo são copiados para a pasta local %1$s para prevenir perda de dados quando um ficheiro é partilhado com várias contas.\n\nDevido a esta alteração, todos os ficheiros das versões anteriores foram copiados para a pasta %2$s. No entanto, um erro impediu a conclusão deste processo durante a sincronização da conta. Pode deixar o ficheiro(s) como estão e remover o link para %3$s, ou mover o(s) ficheiro(s) para a pasta %1$s e guardar o link para %4$s. \n\nEm baixo estão listados ficheiro(s) locais e remotos em %5$s que foram ligados.</string>
   <string name="sync_current_folder_was_removed">A pasta %1$s já não existe</string>
   <string name="sync_current_folder_was_removed">A pasta %1$s já não existe</string>
   <string name="foreign_files_move">Mover Todos</string>
   <string name="foreign_files_move">Mover Todos</string>
   <string name="foreign_files_success">Todos os ficheiros foram movidos</string>
   <string name="foreign_files_success">Todos os ficheiros foram movidos</string>
@@ -236,9 +239,7 @@
   <string name="preview_image_error_unknown_format">Esta imagem não pode ser mostrada</string>
   <string name="preview_image_error_unknown_format">Esta imagem não pode ser mostrada</string>
   <string name="error__upload__local_file_not_copied">Não foi possível copiar %1$s para a pasta local %2$s</string>
   <string name="error__upload__local_file_not_copied">Não foi possível copiar %1$s para a pasta local %2$s</string>
   <string name="share_link_no_support_share_api">Lamentamos mas não é possível partilhar através do seu servidor. Por favor contacte o seu administrador.</string>
   <string name="share_link_no_support_share_api">Lamentamos mas não é possível partilhar através do seu servidor. Por favor contacte o seu administrador.</string>
-  <string name="share_link_file_no_exist">Não é possível partilhar este ficheiro ou pasta. Por favor, verifique se existe</string>
   <string name="share_link_file_error">Ocorreu um erro enquanto tentava partilhar este ficheiro ou pasta</string>
   <string name="share_link_file_error">Ocorreu um erro enquanto tentava partilhar este ficheiro ou pasta</string>
-  <string name="unshare_link_file_no_exist">Não é possível retirar a partilha deste ficheiro ou pasta. Não existe.</string>
   <string name="unshare_link_file_error">Ocorreu um erro enquanto retirava a partilha deste ficheiro ou pasta</string>
   <string name="unshare_link_file_error">Ocorreu um erro enquanto retirava a partilha deste ficheiro ou pasta</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="copy_link">Copiar ligação</string>
   <string name="copy_link">Copiar ligação</string>
@@ -260,4 +261,8 @@
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_category_accounts">Contas</string>
   <string name="prefs_add_account">Adicionar conta</string>
   <string name="prefs_add_account">Adicionar conta</string>
   <string name="auth_redirect_non_secure_connection_title">Uma ligação segura foi redireccionada por uma rota insegura.</string>
   <string name="auth_redirect_non_secure_connection_title">Uma ligação segura foi redireccionada por uma rota insegura.</string>
+  <string name="actionbar_move">Mover</string>
+  <string name="file_list_empty_moving">Não está aqui nada. Pode adicionar uma pasta!</string>
+  <string name="move_choose_button_text">Escolha</string>
+  <string name="forbidden_permissions_move">para mover este ficheiro</string>
 </resources>
 </resources>

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

@@ -237,9 +237,7 @@
   <string name="preview_image_error_unknown_format">Aceasta imagine nu poate fi arătată</string>
   <string name="preview_image_error_unknown_format">Aceasta imagine nu poate fi arătată</string>
   <string name="error__upload__local_file_not_copied">%1$s nu a putut fi copiat in dosarul local %2$s </string>
   <string name="error__upload__local_file_not_copied">%1$s nu a putut fi copiat in dosarul local %2$s </string>
   <string name="share_link_no_support_share_api">Ne pare rău, partajarea nu este activată pe server. Vă rugăm să contactați administratorul dvs.</string>
   <string name="share_link_no_support_share_api">Ne pare rău, partajarea nu este activată pe server. Vă rugăm să contactați administratorul dvs.</string>
-  <string name="share_link_file_no_exist">Acest fișier sau director nu se poate partaja. Vă rugăm, asigurați-vă că există</string>
   <string name="share_link_file_error">A apărut o eroare în timp ce încerca să partajeze acest fișier sau folder</string>
   <string name="share_link_file_error">A apărut o eroare în timp ce încerca să partajeze acest fișier sau folder</string>
-  <string name="unshare_link_file_no_exist">Imposibil de anulat partajarea acestui fișier sau director. Nu există.</string>
   <string name="unshare_link_file_error">A apărut o eroare în timp ce încerca să departajeze sau unshare acest fișier sau folder</string>
   <string name="unshare_link_file_error">A apărut o eroare în timp ce încerca să departajeze sau unshare acest fișier sau folder</string>
   <string name="activity_chooser_send_file_title">Expediază</string>
   <string name="activity_chooser_send_file_title">Expediază</string>
   <string name="copy_link">Link copiat</string>
   <string name="copy_link">Link copiat</string>
@@ -259,4 +257,5 @@
   <string name="uploader_upload_forbidden_permissions">pentru a încărca în acest folder</string>
   <string name="uploader_upload_forbidden_permissions">pentru a încărca în acest folder</string>
   <string name="downloader_download_file_not_found">Fișierul nu mai este disponibil pe server</string>
   <string name="downloader_download_file_not_found">Fișierul nu mai este disponibil pe server</string>
   <string name="prefs_category_accounts">Conturi</string>
   <string name="prefs_category_accounts">Conturi</string>
+  <string name="move_choose_button_text">Alege</string>
 </resources>
 </resources>

+ 5 - 2
res/values-ru/strings.xml

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Обратная связь</string>
   <string name="prefs_feedback">Обратная связь</string>
   <string name="prefs_imprint">Штамп</string>
   <string name="prefs_imprint">Штамп</string>
   <string name="recommend_subject">Попробуйте %1$s на вашем смартфоне!</string>
   <string name="recommend_subject">Попробуйте %1$s на вашем смартфоне!</string>
+  <string name="recommend_text">\"Хочу предложить вам использовать %1$s на смартфоне!\nЗагрузить можно здесь: %2$s\"
+	</string>
   <string name="auth_check_server">Проверить сервер</string>
   <string name="auth_check_server">Проверить сервер</string>
   <string name="auth_host_url">Адрес сервера https://...</string>
   <string name="auth_host_url">Адрес сервера https://...</string>
   <string name="auth_username">Имя пользователя</string>
   <string name="auth_username">Имя пользователя</string>
@@ -103,6 +105,7 @@
   <string name="sync_fail_in_favourites_content">Содержимое %1$d файлов не может быть синхронизировано (конфликтов: %2$d)</string>
   <string name="sync_fail_in_favourites_content">Содержимое %1$d файлов не может быть синхронизировано (конфликтов: %2$d)</string>
   <string name="sync_foreign_files_forgotten_ticker">Несколько локальных файлов были забыты</string>
   <string name="sync_foreign_files_forgotten_ticker">Несколько локальных файлов были забыты</string>
   <string name="sync_foreign_files_forgotten_content"> Не возможно скопировать %1$d файлы из %2$s папки</string>
   <string name="sync_foreign_files_forgotten_content"> Не возможно скопировать %1$d файлы из %2$s папки</string>
+  <string name="sync_foreign_files_forgotten_explanation">Начиная с версии 1.3.16, файлы, загружаемые с этого устройства, копируются в локальную директорию %1$s, чтобы предотвратить потерю данных при синхронизации файла с несколькими учётными записями.\n\nПоэтому все файлы, загруженные предыдущими версиями данного приложения, были скопированы в директорию %2$s. Однако, во время синхронизации что-то помешало завершить эту операцию. Теперь можно либо оставить файлы как есть и удалить ссылку на %3$s, либо переместить их в %1$s и сохранить ссылку на %4$s.\n\nНиже перечислены локальные файлы, и соответствующие им удалённые файлы в %5$s, к которым они привязаны.</string>
   <string name="sync_current_folder_was_removed">Каталог %1$s больше не существует</string>
   <string name="sync_current_folder_was_removed">Каталог %1$s больше не существует</string>
   <string name="foreign_files_move">Переместить всё</string>
   <string name="foreign_files_move">Переместить всё</string>
   <string name="foreign_files_success">Все файлы были перемещены</string>
   <string name="foreign_files_success">Все файлы были перемещены</string>
@@ -237,9 +240,7 @@
   <string name="preview_image_error_unknown_format">Это изображение не может быть отображено</string>
   <string name="preview_image_error_unknown_format">Это изображение не может быть отображено</string>
   <string name="error__upload__local_file_not_copied">%1$s не возможно скопировать в локальною папку %2$s </string>
   <string name="error__upload__local_file_not_copied">%1$s не возможно скопировать в локальною папку %2$s </string>
   <string name="share_link_no_support_share_api">К сожалению, на вашем сервере отключен совместный доступ. Пожалуйста, свяжитесь с вашим администратором.</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="share_link_file_error">Ошибка предоставления общего доступа к этому файлу или каталогу</string>
-  <string name="unshare_link_file_no_exist">Невозможно снять общий доступ с этого файла или каталога. Он не существует.</string>
   <string name="unshare_link_file_error">Ошибка удаления общего доступа к этому файлу или каталогу</string>
   <string name="unshare_link_file_error">Ошибка удаления общего доступа к этому файлу или каталогу</string>
   <string name="activity_chooser_send_file_title">Отправить</string>
   <string name="activity_chooser_send_file_title">Отправить</string>
   <string name="copy_link">Копировать ссылку</string>
   <string name="copy_link">Копировать ссылку</string>
@@ -261,4 +262,6 @@
   <string name="prefs_category_accounts">Учётные записи</string>
   <string name="prefs_category_accounts">Учётные записи</string>
   <string name="prefs_add_account">Добавить учетную запись</string>
   <string name="prefs_add_account">Добавить учетную запись</string>
   <string name="auth_redirect_non_secure_connection_title">Безопасное соединение перенаправлено через небезопасный маршрут.</string>
   <string name="auth_redirect_non_secure_connection_title">Безопасное соединение перенаправлено через небезопасный маршрут.</string>
+  <string name="actionbar_move">Переместить</string>
+  <string name="move_choose_button_text">Выбрать</string>
 </resources>
 </resources>

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

@@ -73,4 +73,5 @@
   <string name="ssl_validator_btn_details_hide">සඟවන්න</string>
   <string name="ssl_validator_btn_details_hide">සඟවන්න</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">ගිණුම්</string>
   <string name="prefs_category_accounts">ගිණුම්</string>
+  <string name="move_choose_button_text">තෝරන්න</string>
 </resources>
 </resources>

+ 2 - 2
res/values-sk-rSK/strings.xml

@@ -238,9 +238,7 @@
   <string name="error__upload__local_file_not_copied">%1$s nemožno skopírovať do lokálneho priečinka %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s nemožno skopírovať do lokálneho priečinka %2$s</string>
   <string name="share_link_no_support_share_api">Je nám to ľúto, ale zdieľanie nie je na vašom serveri povolené. Prosím kontaktujte vášho
   <string name="share_link_no_support_share_api">Je nám to ľúto, ale zdieľanie nie je na vašom serveri povolené. Prosím kontaktujte vášho
 		administrátora.</string>
 		administrátora.</string>
-  <string name="share_link_file_no_exist">Nie je možné zdieľať tento súbor alebo priečinok. Prosím uistite sa že existuje</string>
   <string name="share_link_file_error">Pri pokuse o zdieľanie tohto súboru alebo priečinka došlo k chybe</string>
   <string name="share_link_file_error">Pri pokuse o zdieľanie tohto súboru alebo priečinka došlo k chybe</string>
-  <string name="unshare_link_file_no_exist">Nie je možné zrušiť zdieľanie tohoto súboru alebo priečinka. Súbor alebo priečinok neexistuje.</string>
   <string name="unshare_link_file_error">Pri pokuse zrušiť zdieľanie tohto súboru alebo priečinka došlo k chybe</string>
   <string name="unshare_link_file_error">Pri pokuse zrušiť zdieľanie tohto súboru alebo priečinka došlo k chybe</string>
   <string name="activity_chooser_send_file_title">Odoslať</string>
   <string name="activity_chooser_send_file_title">Odoslať</string>
   <string name="copy_link">Kopíruj odkaz</string>
   <string name="copy_link">Kopíruj odkaz</string>
@@ -262,4 +260,6 @@
   <string name="prefs_category_accounts">Účty</string>
   <string name="prefs_category_accounts">Účty</string>
   <string name="prefs_add_account">Pridať účet</string>
   <string name="prefs_add_account">Pridať účet</string>
   <string name="auth_redirect_non_secure_connection_title">Zabezpečené spojenie je presmerované nezabezpečenou cestou.</string>
   <string name="auth_redirect_non_secure_connection_title">Zabezpečené spojenie je presmerované nezabezpečenou cestou.</string>
+  <string name="actionbar_move">Presunúť</string>
+  <string name="move_choose_button_text">Vybrať</string>
 </resources>
 </resources>

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

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Odziv</string>
   <string name="prefs_feedback">Odziv</string>
   <string name="prefs_imprint">Natis</string>
   <string name="prefs_imprint">Natis</string>
   <string name="recommend_subject">Preizkusi %1$s na pametnem telefonu!</string>
   <string name="recommend_subject">Preizkusi %1$s na pametnem telefonu!</string>
+  <string name="recommend_text">\"Želim ti priporočiti program %1$s za pametni telefon!\nPrejeti ga je mogoče s te strani: %2$s\"
+	</string>
   <string name="auth_check_server">Preveri strežnik</string>
   <string name="auth_check_server">Preveri strežnik</string>
   <string name="auth_host_url">Naslov strežnika https://…</string>
   <string name="auth_host_url">Naslov strežnika https://…</string>
   <string name="auth_username">Uporabniško ime</string>
   <string name="auth_username">Uporabniško ime</string>
@@ -238,9 +240,7 @@
   <string name="error__upload__local_file_not_copied">Datoteke %1$s ni mogoče kopirati v krajevno mapo %2$s</string>
   <string name="error__upload__local_file_not_copied">Datoteke %1$s ni mogoče kopirati v krajevno mapo %2$s</string>
   <string name="share_link_no_support_share_api">Souporaba je na strežniku onemogočena. Možnost lahko spreminjajo le
   <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>
 		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_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_no_exist">Ni mogoče prekiniti souporabe te datoteke ali mape, ker ne obstaja.</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>
   <string name="activity_chooser_send_file_title">Pošlji</string>
   <string name="activity_chooser_send_file_title">Pošlji</string>
   <string name="copy_link">Kopiraj povezavo</string>
   <string name="copy_link">Kopiraj povezavo</string>
@@ -262,4 +262,6 @@
   <string name="prefs_category_accounts">Računi</string>
   <string name="prefs_category_accounts">Računi</string>
   <string name="prefs_add_account">Dodaj račun</string>
   <string name="prefs_add_account">Dodaj račun</string>
   <string name="auth_redirect_non_secure_connection_title">Varna povezava je preusmerjena preko ne-varne poti.</string>
   <string name="auth_redirect_non_secure_connection_title">Varna povezava je preusmerjena preko ne-varne poti.</string>
+  <string name="actionbar_move">Premakni</string>
+  <string name="move_choose_button_text">Izbor</string>
 </resources>
 </resources>

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

@@ -70,4 +70,5 @@
   <string name="activity_chooser_send_file_title">Dërgo</string>
   <string name="activity_chooser_send_file_title">Dërgo</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Llogarit</string>
   <string name="prefs_category_accounts">Llogarit</string>
+  <string name="move_choose_button_text">Zgjidh</string>
 </resources>
 </resources>

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

@@ -54,4 +54,5 @@
   <string name="activity_chooser_send_file_title">Pošalji</string>
   <string name="activity_chooser_send_file_title">Pošalji</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Nalozi</string>
   <string name="prefs_category_accounts">Nalozi</string>
+  <string name="move_choose_button_text">Izaberi</string>
 </resources>
 </resources>

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

@@ -108,4 +108,5 @@
   <string name="activity_chooser_send_file_title">Пошаљи</string>
   <string name="activity_chooser_send_file_title">Пошаљи</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Налози</string>
   <string name="prefs_category_accounts">Налози</string>
+  <string name="move_choose_button_text">Одабери</string>
 </resources>
 </resources>

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

@@ -236,9 +236,7 @@
   <string name="error__upload__local_file_not_copied">%1$s kunde inte kopieras till %2$s lokal mapp</string>
   <string name="error__upload__local_file_not_copied">%1$s kunde inte kopieras till %2$s lokal mapp</string>
   <string name="share_link_no_support_share_api">Ledsen, delning är inte aktiverat på din server. Vänligen kontakta din
   <string name="share_link_no_support_share_api">Ledsen, delning är inte aktiverat på din server. Vänligen kontakta din
 		administratör.</string>
 		administratör.</string>
-  <string name="share_link_file_no_exist">Kan inte dela denna fil eller mapp. Se till att den existerar</string>
   <string name="share_link_file_error">Ett fel uppstod vid försök att dela denna fil eller mapp</string>
   <string name="share_link_file_error">Ett fel uppstod vid försök att dela denna fil eller mapp</string>
-  <string name="unshare_link_file_no_exist">Kan inte ta bort delningen för denna fil eller mapp. Den existerar inte.</string>
   <string name="unshare_link_file_error">Ett fel uppstod vid försök att sluta dela denna fil eller mapp</string>
   <string name="unshare_link_file_error">Ett fel uppstod vid försök att sluta dela denna fil eller mapp</string>
   <string name="activity_chooser_send_file_title">Skicka</string>
   <string name="activity_chooser_send_file_title">Skicka</string>
   <string name="copy_link">Kopiera länk</string>
   <string name="copy_link">Kopiera länk</string>
@@ -250,4 +248,5 @@
   <string name="network_host_not_available">Åtgärden kunte inte slutföras, servern är ej tillgänglig</string>
   <string name="network_host_not_available">Åtgärden kunte inte slutföras, servern är ej tillgänglig</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Konton</string>
   <string name="prefs_category_accounts">Konton</string>
+  <string name="move_choose_button_text">Välj</string>
 </resources>
 </resources>

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

@@ -136,4 +136,5 @@
   <string name="conflict_dont_upload">பதிவேற்ற வேண்டாம்</string>
   <string name="conflict_dont_upload">பதிவேற்ற வேண்டாம்</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">கணக்குகள்</string>
   <string name="prefs_category_accounts">கணக்குகள்</string>
+  <string name="move_choose_button_text">தெரிவுசெய்க </string>
 </resources>
 </resources>

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

@@ -149,4 +149,5 @@
   <string name="activity_chooser_send_file_title">ส่ง</string>
   <string name="activity_chooser_send_file_title">ส่ง</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">บัญชี</string>
   <string name="prefs_category_accounts">บัญชี</string>
+  <string name="move_choose_button_text">เลือก</string>
 </resources>
 </resources>

+ 13 - 2
res/values-tr/strings.xml

@@ -31,6 +31,8 @@
   <string name="prefs_feedback">Geribildirim</string>
   <string name="prefs_feedback">Geribildirim</string>
   <string name="prefs_imprint">İzlenim</string>
   <string name="prefs_imprint">İzlenim</string>
   <string name="recommend_subject">%1$s uygulamasını akıllı telefonunda dene!</string>
   <string name="recommend_subject">%1$s uygulamasını akıllı telefonunda dene!</string>
+  <string name="recommend_text">\"Seni, akıllı telefonunda %1$s kullanmaya davet ediyorum!\nBuradan indirebilirsin: %2$s\"
+        </string>
   <string name="auth_check_server">Sunucuyu Denetle</string>
   <string name="auth_check_server">Sunucuyu Denetle</string>
   <string name="auth_host_url">Sunucu adresi https://…</string>
   <string name="auth_host_url">Sunucu adresi https://…</string>
   <string name="auth_username">Kullanıcı Adı</string>
   <string name="auth_username">Kullanıcı Adı</string>
@@ -103,6 +105,7 @@
   <string name="sync_fail_in_favourites_content">%1$d dosya eşitlenemedi (%2$d çakışma)</string>
   <string name="sync_fail_in_favourites_content">%1$d dosya eşitlenemedi (%2$d çakışma)</string>
   <string name="sync_foreign_files_forgotten_ticker">Bazı yerel dosyalar unutuldu</string>
   <string name="sync_foreign_files_forgotten_ticker">Bazı yerel dosyalar unutuldu</string>
   <string name="sync_foreign_files_forgotten_content">%2$s klasöründeki %1$d dosya şuraya kopyalanamadı</string>
   <string name="sync_foreign_files_forgotten_content">%2$s klasöründeki %1$d dosya şuraya kopyalanamadı</string>
+  <string name="sync_foreign_files_forgotten_explanation">1.3.16 sürümünden sonra, bu aygıttan yüklenen dosyalar bir dosya birden fazla hesapla eşitlendiğinde veri kaybının önlenebilmesi için %1$s yerel klasörüne kopyalanır.\n\nBu değişiklikten dolayı, bu uygulamanın yüklenmiş tüm önceki sürümündeki dosyalar %2$s klasörüne kopyalandı. Ancak hesap eşitlenmesi sırasında bu işlemin tamamlanmasını engelleyen bir hata oluştu. Dosyayı/dosyaları olduğu gibi bırakabilir ve %3$s bağlantısını kaldırabilirsiniz veya dosyayı/dosyaları %1$s dizinine taşıyıp %4$s bağlantılarını koruyabilirsiniz.\n\nAşağıda listelenenler yerel dosyalar ve bağlı oldukları %5$s içerisindeki uzak dosyalardır.</string>
   <string name="sync_current_folder_was_removed">%1$s klasörü artık mevcut değil.</string>
   <string name="sync_current_folder_was_removed">%1$s klasörü artık mevcut değil.</string>
   <string name="foreign_files_move">Tümünü taşı</string>
   <string name="foreign_files_move">Tümünü taşı</string>
   <string name="foreign_files_success">Tüm dosyalar taşındı</string>
   <string name="foreign_files_success">Tüm dosyalar taşındı</string>
@@ -238,9 +241,9 @@
   <string name="error__upload__local_file_not_copied">%1$s, %2$s yerel klasörüne kopyalanamadı</string>
   <string name="error__upload__local_file_not_copied">%1$s, %2$s yerel klasörüne kopyalanamadı</string>
   <string name="share_link_no_support_share_api">Üzgünüz, paylaşım sunucunuzda etkin değil. Lütfen yöneticinizle
   <string name="share_link_no_support_share_api">Üzgünüz, paylaşım sunucunuzda etkin değil. Lütfen yöneticinizle
                 iletişime geçin.</string>
                 iletişime geçin.</string>
-  <string name="share_link_file_no_exist">Bu dosya veya klasör paylaşılamıyor. Lütfen mevcut olup olmadığını denetleyin</string>
+  <string name="share_link_file_no_exist">Paylaşma başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
   <string name="share_link_file_error">Bu dosya veya klasörü paylaşmaya çalışılırken bir hata oluştu</string>
   <string name="share_link_file_error">Bu dosya veya klasörü paylaşmaya çalışılırken bir hata oluştu</string>
-  <string name="unshare_link_file_no_exist">Bu dosya veya klasörün paylaşımı kaldırılamadı. Mevcut değil.</string>
+  <string name="unshare_link_file_no_exist">Paylaşımı kaldırma başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
   <string name="unshare_link_file_error">Bu dosya veya klasör paylaşımı kaldırılmaya çalışılırken bir hata oluştu</string>
   <string name="unshare_link_file_error">Bu dosya veya klasör paylaşımı kaldırılmaya çalışılırken bir hata oluştu</string>
   <string name="activity_chooser_send_file_title">Gönder</string>
   <string name="activity_chooser_send_file_title">Gönder</string>
   <string name="copy_link">Bağlantıyı kopyala</string>
   <string name="copy_link">Bağlantıyı kopyala</string>
@@ -262,4 +265,12 @@
   <string name="prefs_category_accounts">Hesaplar</string>
   <string name="prefs_category_accounts">Hesaplar</string>
   <string name="prefs_add_account">Hesap ekle</string>
   <string name="prefs_add_account">Hesap ekle</string>
   <string name="auth_redirect_non_secure_connection_title">Güvenli bağlantı, güvenli olmayan bir rotaya yönlendiriliyor.</string>
   <string name="auth_redirect_non_secure_connection_title">Güvenli bağlantı, güvenli olmayan bir rotaya yönlendiriliyor.</string>
+  <string name="actionbar_move">Taşı</string>
+  <string name="file_list_empty_moving">Burada bir şey yok. Bir klasör ekleyebilirsiniz!</string>
+  <string name="move_choose_button_text">Seç</string>
+  <string name="move_file_not_found">Taşıma başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
+  <string name="move_file_invalid_into_descendent">Klasörü, kendi alt klasörüne taşımak mümkün değil</string>
+  <string name="move_file_invalid_overwrite">Dosya zaten hedef klasörde mevcut</string>
+  <string name="move_file_error">Bu dosya veya klasörü taşımaya çalışılırken bir hata oluştu</string>
+  <string name="forbidden_permissions_move">bu dosyayı taşımak için</string>
 </resources>
 </resources>

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

@@ -153,4 +153,5 @@
   <string name="clipboard_text_copied">Скопійовано в буфер обміну</string>
   <string name="clipboard_text_copied">Скопійовано в буфер обміну</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Облікові записи</string>
   <string name="prefs_category_accounts">Облікові записи</string>
+  <string name="move_choose_button_text">Обрати</string>
 </resources>
 </resources>

+ 1 - 0
res/values-ur-rPK/strings.xml

@@ -17,4 +17,5 @@
   <string name="common_error_unknown">غیر معروف خرابی</string>
   <string name="common_error_unknown">غیر معروف خرابی</string>
   <string name="activity_chooser_send_file_title">بھجیں</string>
   <string name="activity_chooser_send_file_title">بھجیں</string>
   <string name="empty"></string>
   <string name="empty"></string>
+  <string name="move_choose_button_text">منتخب کریں</string>
 </resources>
 </resources>

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

@@ -1,4 +1,5 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
 <resources>
+  <string name="common_error">خرابی</string>
   <string name="empty"></string>
   <string name="empty"></string>
 </resources>
 </resources>

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

@@ -211,11 +211,10 @@
   <string name="conflict_overwrite">Ghi đè lên</string>
   <string name="conflict_overwrite">Ghi đè lên</string>
   <string name="conflict_dont_upload">Không tải lên</string>
   <string name="conflict_dont_upload">Không tải lên</string>
   <string name="preview_image_description">Xem trước hình ảnh</string>
   <string name="preview_image_description">Xem trước hình ảnh</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="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>
   <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>
   <string name="activity_chooser_send_file_title">Gởi</string>
   <string name="activity_chooser_send_file_title">Gởi</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">Tài khoản</string>
   <string name="prefs_category_accounts">Tài khoản</string>
+  <string name="move_choose_button_text">Chọn</string>
 </resources>
 </resources>

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

@@ -236,9 +236,7 @@
   <string name="preview_image_error_unknown_format">不能显示图片</string>
   <string name="preview_image_error_unknown_format">不能显示图片</string>
   <string name="error__upload__local_file_not_copied">无法复制 %1$s 到本地目录 %2$s</string>
   <string name="error__upload__local_file_not_copied">无法复制 %1$s 到本地目录 %2$s</string>
   <string name="share_link_no_support_share_api">抱歉,共享功能未启用。请联系管理员。</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="share_link_file_error">共享文件或目录出错</string>
-  <string name="unshare_link_file_no_exist">不能取消该文件或文件夹的共享,因为它不存在。</string>
   <string name="unshare_link_file_error">解除文件或目录共享时出错</string>
   <string name="unshare_link_file_error">解除文件或目录共享时出错</string>
   <string name="activity_chooser_send_file_title">发送</string>
   <string name="activity_chooser_send_file_title">发送</string>
   <string name="copy_link">复制链接</string>
   <string name="copy_link">复制链接</string>
@@ -250,4 +248,5 @@
   <string name="network_host_not_available">服务器不可用,此操作无法完成</string>
   <string name="network_host_not_available">服务器不可用,此操作无法完成</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">账号</string>
   <string name="prefs_category_accounts">账号</string>
+  <string name="move_choose_button_text">选择(&amp;C)...</string>
 </resources>
 </resources>

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

@@ -234,9 +234,7 @@
   <string name="error__upload__local_file_not_copied">%1$s 無法被複製到本地目錄 %2$s</string>
   <string name="error__upload__local_file_not_copied">%1$s 無法被複製到本地目錄 %2$s</string>
   <string name="share_link_no_support_share_api">很抱歉, 您的伺服器並未開啟分享的功能. 請聯絡您的
   <string name="share_link_no_support_share_api">很抱歉, 您的伺服器並未開啟分享的功能. 請聯絡您的
 		伺服器管理員.</string>
 		伺服器管理員.</string>
-  <string name="share_link_file_no_exist">無法分享這個檔案或目錄. 請檢查它們是否存在</string>
   <string name="share_link_file_error">在分享檔案或目錄時發生了錯誤</string>
   <string name="share_link_file_error">在分享檔案或目錄時發生了錯誤</string>
-  <string name="unshare_link_file_no_exist">無法將這個檔案或目錄取消分享. 它並不存在.</string>
   <string name="unshare_link_file_error">在取消分享檔案或目錄時發生了錯誤</string>
   <string name="unshare_link_file_error">在取消分享檔案或目錄時發生了錯誤</string>
   <string name="activity_chooser_send_file_title">寄出</string>
   <string name="activity_chooser_send_file_title">寄出</string>
   <string name="copy_link">複製連結</string>
   <string name="copy_link">複製連結</string>
@@ -248,4 +246,5 @@
   <string name="network_host_not_available">這個操作無法完成, 無法使用伺服器</string>
   <string name="network_host_not_available">這個操作無法完成, 無法使用伺服器</string>
   <string name="empty"></string>
   <string name="empty"></string>
   <string name="prefs_category_accounts">帳號</string>
   <string name="prefs_category_accounts">帳號</string>
+  <string name="move_choose_button_text">選擇</string>
 </resources>
 </resources>

+ 11 - 2
res/values/strings.xml

@@ -255,9 +255,9 @@
 
 
 	<string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
 	<string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
 		administrator.</string>
 		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. Please check whether the file 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_no_exist">Unable to unshare. Please check whether the file exists</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="activity_chooser_send_file_title">Send</string>
 	<string name="activity_chooser_send_file_title">Send</string>
@@ -288,5 +288,14 @@
 
 
 	<string name="saml_authentication_required_text">Authentication required</string>
 	<string name="saml_authentication_required_text">Authentication required</string>
 	<string name="saml_authentication_wrong_pass">Wrong password</string>
 	<string name="saml_authentication_wrong_pass">Wrong password</string>
+	<string name="actionbar_move">Move</string>
+	<string name="file_list_empty_moving">Nothing in here. You can add a folder!</string>
+	<string name="move_choose_button_text">Choose</string>
+
+	<string name="move_file_not_found">Unable to move. Please check whether the file exists</string>
+	<string name="move_file_invalid_into_descendent">It is not possible to move a folder into a descendant</string>
+	<string name="move_file_invalid_overwrite">The file exists already in the destination folder</string>
+	<string name="move_file_error">An error occurred while trying to move this file or folder</string>
+	<string name="forbidden_permissions_move">to move this file</string>
 
 
 </resources>
 </resources>

+ 121 - 0
src/com/owncloud/android/datamodel/FileDataStorageManager.java

@@ -612,6 +612,126 @@ public class FileDataStorageManager {
     }
     }
 
 
     
     
+    public void moveLocalFile(OCFile file, String targetPath, String targetParentPath) {
+
+        if (file != null && file.fileExists() && !OCFile.ROOT_PATH.equals(file.getFileName())) {
+            
+            OCFile targetParent = getFileByPath(targetParentPath);
+            if (targetParent == null) {
+                // TODO panic
+            }
+            
+            /// 1. get all the descendants of the moved element in a single QUERY
+            Cursor c = null;
+            if (getContentProviderClient() != null) {
+                try {
+                    c = getContentProviderClient().query(
+                        ProviderTableMeta.CONTENT_URI, 
+                        null,
+                        ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + 
+                                ProviderTableMeta.FILE_PATH + " LIKE ? ",
+                        new String[] { 
+                                mAccount.name, 
+                                file.getRemotePath() + "%"  
+                        }, 
+                        ProviderTableMeta.FILE_PATH + " ASC "
+                    );
+                } catch (RemoteException e) {
+                    Log_OC.e(TAG, e.getMessage());
+                }
+                
+            } else {
+                c = getContentResolver().query(
+                    ProviderTableMeta.CONTENT_URI, 
+                    null,
+                    ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " + 
+                            ProviderTableMeta.FILE_PATH + " LIKE ? ",
+                    new String[] { 
+                            mAccount.name, 
+                            file.getRemotePath() + "%"  
+                    }, 
+                    ProviderTableMeta.FILE_PATH + " ASC "
+                );
+            }
+
+            /// 2. prepare a batch of update operations to change all the descendants
+            ArrayList<ContentProviderOperation> operations = 
+                    new ArrayList<ContentProviderOperation>(c.getCount());
+            String defaultSavePath = FileStorageUtils.getSavePath(mAccount.name);
+            if (c.moveToFirst()) {
+                int lengthOfOldPath = file.getRemotePath().length();
+                int lengthOfOldStoragePath = defaultSavePath.length() + lengthOfOldPath;
+                do {
+                    ContentValues cv = new ContentValues(); // keep construction in the loop
+                    OCFile child = createFileInstance(c);
+                    cv.put(
+                        ProviderTableMeta.FILE_PATH, 
+                        targetPath + child.getRemotePath().substring(lengthOfOldPath)
+                    );
+                    if (child.getStoragePath() != null && 
+                            child.getStoragePath().startsWith(defaultSavePath)) {
+                        // update link to downloaded content - but local move is not done here!
+                        cv.put(
+                            ProviderTableMeta.FILE_STORAGE_PATH, 
+                            defaultSavePath + targetPath + 
+                                child.getStoragePath().substring(lengthOfOldStoragePath)
+                        );
+                    }
+                    if (child.getRemotePath().equals(file.getRemotePath())) {
+                        cv.put(
+                                ProviderTableMeta.FILE_PARENT,
+                                targetParent.getFileId()
+                            );
+                    }
+                    operations.add(
+                        ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
+                            withValues(cv).
+                            withSelection(  
+                                    ProviderTableMeta._ID + "=?", 
+                                    new String[] { String.valueOf(child.getFileId()) }
+                                    )
+                            .build());
+                    
+                } while (c.moveToNext());
+            }
+            c.close();
+
+            /// 3. apply updates in batch
+            try {
+                if (getContentResolver() != null) {
+                    getContentResolver().applyBatch(MainApp.getAuthority(), operations);
+
+                } else {
+                    getContentProviderClient().applyBatch(operations);
+                }
+
+            } catch (Exception e) {
+                Log_OC.e(
+                    TAG, 
+                    "Fail to update " + file.getFileId() + " and descendants in database", 
+                    e
+                );
+            }
+
+            /// 4. move in local file system 
+            String localPath = FileStorageUtils.getDefaultSavePathFor(mAccount.name, file);
+            File localFile = new File(localPath);
+            boolean renamed = false;
+            if (localFile.exists()) {
+                File targetFile = new File(defaultSavePath + targetPath);
+                File targetFolder = targetFile.getParentFile();
+                if (!targetFolder.exists()) {
+                    targetFolder.mkdirs();
+                }
+                renamed = localFile.renameTo(targetFile);
+            }
+            Log_OC.d(TAG, "Local file RENAMED : " + renamed);
+            
+        }
+        
+    }
+    
+    
     private Vector<OCFile> getFolderContent(long parentId) {
     private Vector<OCFile> getFolderContent(long parentId) {
 
 
         Vector<OCFile> ret = new Vector<OCFile>();
         Vector<OCFile> ret = new Vector<OCFile>();
@@ -1302,4 +1422,5 @@ public class FileDataStorageManager {
             */
             */
         //}
         //}
     }
     }
+
 }
 }

+ 8 - 0
src/com/owncloud/android/files/FileMenuFilter.java

@@ -162,6 +162,14 @@ public class FileMenuFilter {
         } else {
         } else {
             toShow.add(R.id.action_rename_file);
             toShow.add(R.id.action_rename_file);
         }
         }
+
+        // MOVE
+        if (mFile == null || downloading || uploading) {
+            toHide.add(R.id.action_move);
+
+        } else {
+            toShow.add(R.id.action_move);
+        }
         
         
         // REMOVE
         // REMOVE
         if (mFile == null || downloading || uploading) {
         if (mFile == null || downloading || uploading) {

+ 18 - 1
src/com/owncloud/android/files/FileOperationsHelper.java

@@ -265,7 +265,24 @@ public class FileOperationsHelper {
         } else if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) {
         } else if (uploaderBinder != null && uploaderBinder.isUploading(account, file)) {
             uploaderBinder.cancel(account, file);
             uploaderBinder.cancel(account, file);
         }
         }
-    }    
+    }
+
+    /**
+     * Start move file operation
+     * @param newfile           File where it is going to be moved
+     * @param currentFile       File with the previous info
+     */
+    public void moveFile(OCFile newfile, OCFile currentFile) {
+        // Move files
+        Intent service = new Intent(mFileActivity, OperationsService.class);
+        service.setAction(OperationsService.ACTION_MOVE_FILE);
+        service.putExtra(OperationsService.EXTRA_NEW_PARENT_PATH, newfile.getRemotePath());
+        service.putExtra(OperationsService.EXTRA_REMOTE_PATH, currentFile.getRemotePath());
+        service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
+        mWaitingForOpId =  mFileActivity.getOperationsServiceBinder().newOperation(service);
+
+        mFileActivity.showLoadingDialog();
+    }
 
 
 
 
     public long getOpIdWaitingFor() {
     public long getOpIdWaitingFor() {

+ 103 - 0
src/com/owncloud/android/operations/MoveFileOperation.java

@@ -0,0 +1,103 @@
+/* ownCloud Android client application
+ *   Copyright (C) 2012-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 com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.lib.resources.files.MoveRemoteFileOperation;
+import com.owncloud.android.operations.common.SyncOperation;
+
+import android.accounts.Account;
+
+
+/**
+ * Operation mmoving an {@link OCFile} to a different folder.
+ * 
+ * @author David A. Velasco
+ */
+public class MoveFileOperation extends SyncOperation {
+    
+    //private static final String TAG = MoveFileOperation.class.getSimpleName();
+    
+    private String mSrcPath;
+    private String mTargetParentPath;
+    
+    private OCFile mFile;
+
+    
+    
+    /**
+     * Constructor
+     * 
+     * @param path              Remote path of the {@link OCFile} to move.
+     * @param newParentPath     Path to the folder where the file will be moved into. 
+     * @param account           OwnCloud account containing both the file and the target folder 
+     */
+    public MoveFileOperation(String srcPath, String targetParentPath, Account account) {
+        mSrcPath = srcPath;
+        mTargetParentPath = targetParentPath;
+        if (!mTargetParentPath.endsWith(OCFile.PATH_SEPARATOR)) {
+            mTargetParentPath += OCFile.PATH_SEPARATOR;
+        }
+        
+        mFile = null;
+    }
+  
+    /**
+     * Performs the operation.
+     * 
+     * @param   client      Client object to communicate with the remote ownCloud server.
+     */
+    @Override
+    protected RemoteOperationResult run(OwnCloudClient client) {
+        RemoteOperationResult result = null;
+        
+        /// 1. check move validity
+        if (mTargetParentPath.startsWith(mSrcPath)) {
+            return new RemoteOperationResult(ResultCode.INVALID_MOVE_INTO_DESCENDANT);
+        }
+        mFile = getStorageManager().getFileByPath(mSrcPath);
+        if (mFile == null) {
+            return new RemoteOperationResult(ResultCode.FILE_NOT_FOUND);
+        }
+        
+        /// 2. remote move
+        String targetPath = mTargetParentPath + mFile.getFileName();
+        if (mFile.isFolder()) {
+            targetPath += OCFile.PATH_SEPARATOR;
+        }
+        MoveRemoteFileOperation operation = new MoveRemoteFileOperation(
+                mSrcPath, 
+                targetPath, 
+                false
+        );
+        result = operation.execute(client);
+        
+        /// 3. local move
+        if (result.isSuccess()) {
+            getStorageManager().moveLocalFile(mFile, targetPath, mTargetParentPath);
+        } 
+        // TODO handle ResultCode.PARTIAL_MOVE_DONE in client Activity, for the moment
+        
+        return result;
+    }
+    
+
+}

+ 8 - 0
src/com/owncloud/android/services/OperationsService.java

@@ -42,6 +42,7 @@ import com.owncloud.android.operations.common.SyncOperation;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.CreateShareOperation;
 import com.owncloud.android.operations.CreateShareOperation;
 import com.owncloud.android.operations.GetServerInfoOperation;
 import com.owncloud.android.operations.GetServerInfoOperation;
+import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.OAuth2GetAccessToken;
 import com.owncloud.android.operations.OAuth2GetAccessToken;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
 import com.owncloud.android.operations.RenameFileOperation;
@@ -79,6 +80,7 @@ public class OperationsService extends Service {
     public static final String EXTRA_CREATE_FULL_PATH = "CREATE_FULL_PATH";
     public static final String EXTRA_CREATE_FULL_PATH = "CREATE_FULL_PATH";
     public static final String EXTRA_SYNC_FILE_CONTENTS = "SYNC_FILE_CONTENTS";
     public static final String EXTRA_SYNC_FILE_CONTENTS = "SYNC_FILE_CONTENTS";
     public static final String EXTRA_RESULT = "RESULT";
     public static final String EXTRA_RESULT = "RESULT";
+    public static final String EXTRA_NEW_PARENT_PATH = "NEW_PARENT_PATH";
     
     
     // TODO review if ALL OF THEM are necessary
     // TODO review if ALL OF THEM are necessary
     public static final String EXTRA_SUCCESS_IF_ABSENT = "SUCCESS_IF_ABSENT";
     public static final String EXTRA_SUCCESS_IF_ABSENT = "SUCCESS_IF_ABSENT";
@@ -97,6 +99,7 @@ public class OperationsService extends Service {
     public static final String ACTION_REMOVE = "REMOVE";
     public static final String ACTION_REMOVE = "REMOVE";
     public static final String ACTION_CREATE_FOLDER = "CREATE_FOLDER";
     public static final String ACTION_CREATE_FOLDER = "CREATE_FOLDER";
     public static final String ACTION_SYNC_FILE = "SYNC_FILE";
     public static final String ACTION_SYNC_FILE = "SYNC_FILE";
+    public static final String ACTION_MOVE_FILE = "MOVE_FILE";
     
     
     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";
@@ -375,6 +378,11 @@ public class OperationsService extends Service {
                         String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
                         String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
                         boolean syncFileContents = operationIntent.getBooleanExtra(EXTRA_SYNC_FILE_CONTENTS, true);
                         boolean syncFileContents = operationIntent.getBooleanExtra(EXTRA_SYNC_FILE_CONTENTS, true);
                         operation = new SynchronizeFileOperation(remotePath, account, syncFileContents, getApplicationContext());
                         operation = new SynchronizeFileOperation(remotePath, account, syncFileContents, getApplicationContext());
+                    } else if (action.equals(ACTION_MOVE_FILE)) {
+                        // Move file/folder
+                        String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
+                        String newParentPath = operationIntent.getStringExtra(EXTRA_NEW_PARENT_PATH);
+                        operation = new MoveFileOperation(remotePath,newParentPath,account);
                     }
                     }
                     
                     
                 }
                 }

+ 8 - 5
src/com/owncloud/android/ui/activity/FileActivity.java

@@ -80,6 +80,8 @@ implements OnRemoteOperationListener, ComponentsGetter {
     private static final String DIALOG_WAIT_TAG = "DIALOG_WAIT";
     private static final String DIALOG_WAIT_TAG = "DIALOG_WAIT";
     private static final String KEY_WAITING_FOR_OP_ID = "WAITING_FOR_OP_ID";;
     private static final String KEY_WAITING_FOR_OP_ID = "WAITING_FOR_OP_ID";;
     
     
+    protected static final long DELAY_TO_REQUEST_OPERATION_ON_ACTIVITY_RESULTS = 200;
+    
     
     
     /** OwnCloud {@link Account} where the main {@link OCFile} handled by the activity is located. */
     /** OwnCloud {@link Account} where the main {@link OCFile} handled by the activity is located. */
     private Account mAccount;
     private Account mAccount;
@@ -506,11 +508,12 @@ implements OnRemoteOperationListener, ComponentsGetter {
     }
     }
     
     
     
     
-    private void updateFileFromDB(){
-      OCFile file = getStorageManager().getFileByPath(getFile().getRemotePath());
-      if (file != null) {
-          setFile(file);
-      }
+    protected void updateFileFromDB(){
+        OCFile file = getFile();
+        if (file != null) {
+            file = getStorageManager().getFileByPath(file.getRemotePath());
+            setFile(file);
+        }
     }
     }
     
     
     /**
     /**

+ 79 - 7
src/com/owncloud/android/ui/activity/FileDisplayActivity.java

@@ -21,6 +21,8 @@ package com.owncloud.android.ui.activity;
 import java.io.File;
 import java.io.File;
 import java.io.IOException;
 import java.io.IOException;
 
 
+import org.apache.commons.httpclient.methods.PostMethod;
+
 import android.accounts.Account;
 import android.accounts.Account;
 import android.accounts.AccountManager;
 import android.accounts.AccountManager;
 import android.accounts.AuthenticatorException;
 import android.accounts.AuthenticatorException;
@@ -48,6 +50,7 @@ import android.provider.MediaStore;
 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;
+import android.support.v4.widget.SwipeRefreshLayout;
 import android.util.Log;
 import android.util.Log;
 import android.view.View;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup;
@@ -79,6 +82,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.CreateShareOperation;
 import com.owncloud.android.operations.CreateShareOperation;
+import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 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;
@@ -109,8 +113,9 @@ import com.owncloud.android.utils.Log_OC;
  */
  */
 
 
 public class FileDisplayActivity extends HookActivity implements
 public class FileDisplayActivity extends HookActivity implements
-FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener {
-
+FileFragment.ContainerActivity, OnNavigationListener, 
+OnSslUntrustedCertListener, SwipeRefreshLayout.OnRefreshListener {
+    
     private ArrayAdapter<String> mDirectories;
     private ArrayAdapter<String> mDirectories;
 
 
     private SyncBroadcastReceiver mSyncBroadcastReceiver;
     private SyncBroadcastReceiver mSyncBroadcastReceiver;
@@ -134,6 +139,7 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
 
 
     private static final int ACTION_SELECT_CONTENT_FROM_APPS = 1;
     private static final int ACTION_SELECT_CONTENT_FROM_APPS = 1;
     private static final int ACTION_SELECT_MULTIPLE_FILES = 2;
     private static final int ACTION_SELECT_MULTIPLE_FILES = 2;
+    public static final int ACTION_MOVE_FILES = 3;
 
 
     private static final String TAG = FileDisplayActivity.class.getSimpleName();
     private static final String TAG = FileDisplayActivity.class.getSimpleName();
 
 
@@ -550,6 +556,20 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
         } else if (requestCode == ACTION_SELECT_MULTIPLE_FILES && (resultCode == RESULT_OK || resultCode == UploadFilesActivity.RESULT_OK_AND_MOVE)) {
         } else if (requestCode == ACTION_SELECT_MULTIPLE_FILES && (resultCode == RESULT_OK || resultCode == UploadFilesActivity.RESULT_OK_AND_MOVE)) {
             requestMultipleUpload(data, resultCode);
             requestMultipleUpload(data, resultCode);
 
 
+        } else if (requestCode == ACTION_MOVE_FILES && (resultCode == RESULT_OK || 
+                resultCode == MoveActivity.RESULT_OK_AND_MOVE)){
+
+            final Intent fData = data;
+            final int fResultCode = resultCode; 
+            getHandler().postDelayed(
+                new Runnable() {
+                    @Override
+                    public void run() {
+                        requestMoveOperation(fData, fResultCode);
+                    }
+                }, 
+                DELAY_TO_REQUEST_OPERATION_ON_ACTIVITY_RESULTS
+            );
         }
         }
     }
     }
 
 
@@ -630,6 +650,18 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
         startService(i);
         startService(i);
     }
     }
 
 
+    /**
+     * Request the operation for moving the file/folder from one path to another
+     * 
+     * @param data              Intent received
+     * @param resultCode        Result code received
+     */
+    private void requestMoveOperation(Intent data, int resultCode) {
+        OCFile folderToMoveAt = (OCFile) data.getParcelableExtra(MoveActivity.EXTRA_CURRENT_FOLDER);
+        OCFile targetFile = (OCFile) data.getParcelableExtra(MoveActivity.EXTRA_TARGET_FILE);
+        getFileOperationsHelper().moveFile(folderToMoveAt, targetFile);
+    }
+
     @Override
     @Override
     public void onBackPressed() {
     public void onBackPressed() {
         OCFileListFragment listOfFiles = getListOfFilesFragment(); 
         OCFileListFragment listOfFiles = getListOfFilesFragment(); 
@@ -1315,7 +1347,9 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
         } else if (operation instanceof UnshareLinkOperation) {
         } else if (operation instanceof UnshareLinkOperation) {
             onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
             onUnshareLinkOperationFinish((UnshareLinkOperation)operation, result);
         
         
-        } 
+        } else if (operation instanceof MoveFileOperation) {
+            onMoveFileOperationFinish((MoveFileOperation)operation, result);
+        }
         
         
     }
     }
 
 
@@ -1394,12 +1428,13 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
     
     
     
     
     /**
     /**
-     * Updates the view associated to the activity after the finish of an operation trying create a new folder
+     * Updates the view associated to the activity after the finish of an operation trying to move a 
+     * file.
      * 
      * 
-     * @param operation     Creation operation performed.
-     * @param result        Result of the creation.
+     * @param operation     Move operation performed.
+     * @param result        Result of the move operation.
      */
      */
-    private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) {
+    private void onMoveFileOperationFinish(MoveFileOperation operation, RemoteOperationResult result) {
         if (result.isSuccess()) {
         if (result.isSuccess()) {
             dismissLoadingDialog();
             dismissLoadingDialog();
             refreshListOfFilesFragment();
             refreshListOfFilesFragment();
@@ -1486,6 +1521,30 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
         }
         }
     }
     }
 
 
+    /**
+     * Updates the view associated to the activity after the finish of an operation trying create a new folder
+     * 
+     * @param operation     Creation operation performed.
+     * @param result        Result of the creation.
+     */
+    private void onCreateFolderOperationFinish(CreateFolderOperation operation, RemoteOperationResult result) {
+        if (result.isSuccess()) {
+            dismissLoadingDialog();
+            refreshListOfFilesFragment();
+        } else {
+            dismissLoadingDialog();
+            try {
+                Toast msg = Toast.makeText(FileDisplayActivity.this, 
+                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), 
+                        Toast.LENGTH_LONG); 
+                msg.show();
+
+            } catch (NotFoundException e) {
+                Log_OC.e(TAG, "Error while trying to show fail message " , e);
+            }
+        }
+    }
+
     
     
     /**
     /**
      * {@inheritDoc}
      * {@inheritDoc}
@@ -1654,4 +1713,17 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
         onTransferStateChanged(file, false, false);
         onTransferStateChanged(file, false, false);
     }
     }
 
 
+    @Override
+    public void onRefresh() {
+        OCFileListFragment listOfFiles = getListOfFilesFragment();
+        if (listOfFiles != null) {
+            OCFile folder = listOfFiles.getCurrentFile();
+            if (folder != null) {
+                /*mFile = mContainerActivity.getStorageManager().getFileById(mFile.getFileId());
+                listDirectory(mFile);*/
+                startSyncFolderOperation(folder);
+            }
+        }
+    }
+
 }
 }

+ 568 - 0
src/com/owncloud/android/ui/activity/MoveActivity.java

@@ -0,0 +1,568 @@
+/* ownCloud Android client application
+ *   Copyright (C) 2012-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.ui.activity;
+
+import java.io.IOException;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.res.Resources.NotFoundException;
+import android.os.Bundle;
+import android.support.v4.app.Fragment;
+import android.support.v4.app.FragmentTransaction;
+import android.support.v4.widget.SwipeRefreshLayout;
+import android.util.Log;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+import android.widget.Toast;
+
+import com.actionbarsherlock.app.ActionBar;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuInflater;
+import com.actionbarsherlock.view.MenuItem;
+import com.actionbarsherlock.view.Window;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.lib.common.OwnCloudAccount;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
+import com.owncloud.android.lib.common.OwnCloudCredentials;
+import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException;
+import com.owncloud.android.lib.common.operations.RemoteOperation;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult;
+import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
+import com.owncloud.android.operations.CreateFolderOperation;
+import com.owncloud.android.operations.SynchronizeFolderOperation;
+import com.owncloud.android.syncadapter.FileSyncAdapter;
+import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
+import com.owncloud.android.ui.fragment.FileFragment;
+import com.owncloud.android.ui.fragment.OCFileListFragment;
+import com.owncloud.android.utils.DisplayUtils;
+import com.owncloud.android.utils.ErrorMessageAdapter;
+import com.owncloud.android.utils.Log_OC;
+
+public class MoveActivity extends HookActivity implements FileFragment.ContainerActivity, 
+    OnClickListener, SwipeRefreshLayout.OnRefreshListener {
+
+    public static final String EXTRA_CURRENT_FOLDER = UploadFilesActivity.class.getCanonicalName() + ".EXTRA_CURRENT_FOLDER";
+    public static final String EXTRA_TARGET_FILE = UploadFilesActivity.class.getCanonicalName() + "EXTRA_TARGET_FILE";
+
+    public static final int RESULT_OK_AND_MOVE = 1;
+    
+    private SyncBroadcastReceiver mSyncBroadcastReceiver;
+
+    private static final String TAG = MoveActivity.class.getSimpleName();
+    
+    private static final String TAG_LIST_OF_FOLDERS = "LIST_OF_FOLDERS";
+       
+    private boolean mSyncInProgress = false;
+
+    private Button mCancelBtn;
+    private Button mChooseBtn;
+
+
+    @Override
+    protected void onCreate(Bundle savedInstanceState) {
+        Log_OC.d(TAG, "onCreate() start");
+        requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
+
+        super.onCreate(savedInstanceState); 
+
+        setContentView(R.layout.files_move);
+        
+        if (savedInstanceState == null) {
+            createFragments();
+        }
+
+        // sets callback listeners for UI elements
+        initControls();
+
+        // Action bar setup
+        ActionBar actionBar = getSupportActionBar();
+        actionBar.setDisplayShowTitleEnabled(true);
+        actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
+        setSupportProgressBarIndeterminateVisibility(mSyncInProgress);
+            // always AFTER setContentView(...) ; to work around bug in its implementation
+        
+        // sets message for empty list of folders
+        setBackgroundText();
+
+        Log_OC.d(TAG, "onCreate() end");
+        
+    }
+
+    @Override
+    protected void onStart() {
+        super.onStart();
+        getSupportActionBar().setIcon(DisplayUtils.getSeasonalIconId());
+    }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+    }
+
+    /**
+     *  Called when the ownCloud {@link Account} associated to the Activity was just updated.
+     */
+    @Override
+    protected void onAccountSet(boolean stateWasRecovered) {
+        super.onAccountSet(stateWasRecovered);
+        if (getAccount() != null) {
+            
+            updateFileFromDB();
+            
+            OCFile folder = getFile();
+            if (folder == null || !folder.isFolder()) {
+                // fall back to root folder
+                setFile(getStorageManager().getFileByPath(OCFile.ROOT_PATH));
+                folder = getFile();
+            }
+            
+            if (!stateWasRecovered) {
+                OCFileListFragment listOfFolders = getListOfFilesFragment(); 
+                listOfFolders.listDirectory(folder);   
+                
+                startSyncFolderOperation(folder);
+            }
+            
+            updateNavigationElementsInActionBar();
+        }
+    }
+
+    private void createFragments() {
+        OCFileListFragment listOfFiles = new OCFileListFragment();
+        Bundle args = new Bundle();
+        args.putBoolean(OCFileListFragment.ARG_JUST_FOLDERS, true);
+        args.putBoolean(OCFileListFragment.ARG_ALLOW_CONTEXTUAL_ACTIONS, false);
+        listOfFiles.setArguments(args);
+        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
+        transaction.add(R.id.fragment_container, listOfFiles, TAG_LIST_OF_FOLDERS);
+        transaction.commit();
+    }
+
+    /**
+     * Show a text message on screen view for notifying user if content is
+     * loading or folder is empty
+     */
+    private void setBackgroundText() {
+        OCFileListFragment listFragment = getListOfFilesFragment();
+        if (listFragment != null) {
+            int message = R.string.file_list_loading;
+            if (!mSyncInProgress) {
+                // In case folder list is empty
+                message = R.string.file_list_empty_moving;
+            }
+            listFragment.setMessageForEmptyList(getString(message));
+        } else {
+            Log.e(TAG, "OCFileListFragment is null");
+        }
+    }
+
+    private OCFileListFragment getListOfFilesFragment() {
+        Fragment listOfFiles = getSupportFragmentManager().findFragmentByTag(MoveActivity.TAG_LIST_OF_FOLDERS);
+        if (listOfFiles != null) {
+            return (OCFileListFragment)listOfFiles;
+        }
+        Log_OC.wtf(TAG, "Access to unexisting list of files fragment!!");
+        return null;
+    }
+
+    
+    /**
+     * {@inheritDoc}
+     * 
+     * Updates action bar and second fragment, if in dual pane mode.
+     */
+    @Override
+    public void onBrowsedDownTo(OCFile directory) {
+        setFile(directory);
+        updateNavigationElementsInActionBar();
+        // Sync Folder
+        startSyncFolderOperation(directory);
+        
+    }
+
+    
+    public void startSyncFolderOperation(OCFile folder) {
+        long currentSyncTime = System.currentTimeMillis(); 
+        
+        mSyncInProgress = true;
+                
+        // perform folder synchronization
+        RemoteOperation synchFolderOp = new SynchronizeFolderOperation( folder,  
+                                                                        currentSyncTime, 
+                                                                        false,
+                                                                        getFileOperationsHelper().isSharedSupported(),
+                                                                        getStorageManager(), 
+                                                                        getAccount(), 
+                                                                        getApplicationContext()
+                                                                      );
+        synchFolderOp.execute(getAccount(), this, null, null);
+        
+        setSupportProgressBarIndeterminateVisibility(true);
+
+        setBackgroundText();
+    }
+
+    @Override
+    protected void onResume() {
+        super.onResume();
+        Log_OC.e(TAG, "onResume() start");
+        
+        // refresh list of files
+        refreshListOfFilesFragment();
+
+        // Listen for sync messages
+        IntentFilter syncIntentFilter = new IntentFilter(FileSyncAdapter.EVENT_FULL_SYNC_START);
+        syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_END);
+        syncIntentFilter.addAction(FileSyncAdapter.EVENT_FULL_SYNC_FOLDER_CONTENTS_SYNCED);
+        syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED);
+        syncIntentFilter.addAction(SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED);
+        mSyncBroadcastReceiver = new SyncBroadcastReceiver();
+        registerReceiver(mSyncBroadcastReceiver, syncIntentFilter);
+        
+        Log_OC.d(TAG, "onResume() end");
+    }
+    
+    @Override
+    protected void onPause() {
+        Log_OC.e(TAG, "onPause() start");
+        if (mSyncBroadcastReceiver != null) {
+            unregisterReceiver(mSyncBroadcastReceiver);
+            //LocalBroadcastManager.getInstance(this).unregisterReceiver(mSyncBroadcastReceiver);
+            mSyncBroadcastReceiver = null;
+        }
+        
+        Log_OC.d(TAG, "onPause() end");
+        super.onPause();
+    }
+    
+    @Override
+    public boolean onCreateOptionsMenu(Menu menu) {
+        MenuInflater inflater = getSherlock().getMenuInflater();
+        inflater.inflate(R.menu.main_menu, menu);
+        menu.findItem(R.id.action_upload).setVisible(false);
+        menu.findItem(R.id.action_settings).setVisible(false);
+        menu.findItem(R.id.action_sync_account).setVisible(false);
+        return true;
+    }
+
+    @Override
+    public boolean onOptionsItemSelected(MenuItem item) {
+        boolean retval = true;
+        switch (item.getItemId()) {
+        case R.id.action_create_dir: {
+            CreateFolderDialogFragment dialog = 
+                    CreateFolderDialogFragment.newInstance(getCurrentFolder());
+            dialog.show(
+                    getSupportFragmentManager(), 
+                    CreateFolderDialogFragment.CREATE_FOLDER_FRAGMENT
+            );
+            break;
+        }
+        case android.R.id.home: {
+            OCFile currentDir = getCurrentFolder();
+            if(currentDir != null && currentDir.getParentId() != 0) {
+                onBackPressed();
+            }
+            break;
+        }
+        default:
+            retval = super.onOptionsItemSelected(item);
+        }
+        return retval;
+    }
+
+    private OCFile getCurrentFolder() {
+        OCFile file = getFile();
+        if (file != null) {
+            if (file.isFolder()) {
+                return file;
+            } else if (getStorageManager() != null) {
+                String parentPath = file.getRemotePath().substring(0, file.getRemotePath().lastIndexOf(file.getFileName()));
+                return getStorageManager().getFileByPath(parentPath);
+            }
+        }
+        return null;
+    }
+    
+    protected void refreshListOfFilesFragment() {
+        OCFileListFragment fileListFragment = getListOfFilesFragment();
+        if (fileListFragment != null) { 
+            fileListFragment.listDirectory();
+        }
+    }
+
+    public void browseToRoot() {
+        OCFileListFragment listOfFiles = getListOfFilesFragment(); 
+        if (listOfFiles != null) {  // should never be null, indeed
+            OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
+            listOfFiles.listDirectory(root);
+            setFile(listOfFiles.getCurrentFile());
+            updateNavigationElementsInActionBar();
+            startSyncFolderOperation(root);
+        }
+    }
+
+    @Override
+    public void onBackPressed() {
+        OCFileListFragment listOfFiles = getListOfFilesFragment();
+        if (listOfFiles != null) {  // should never be null, indeed
+            int levelsUp = listOfFiles.onBrowseUp();
+            if (levelsUp == 0) {
+                finish();
+                return;
+            }
+            setFile(listOfFiles.getCurrentFile());
+            updateNavigationElementsInActionBar();
+        }
+    }
+
+    private void updateNavigationElementsInActionBar() {
+        ActionBar actionBar = getSupportActionBar();
+        OCFile currentDir = getCurrentFolder();
+        boolean atRoot = (currentDir == null || currentDir.getParentId() == 0);
+        actionBar.setDisplayHomeAsUpEnabled(!atRoot);
+        actionBar.setHomeButtonEnabled(!atRoot);
+        actionBar.setTitle(
+            atRoot 
+                ? getString(R.string.default_display_name_for_root_folder) 
+                : currentDir.getFileName()
+        );
+    }
+
+    /**
+     * Set per-view controllers
+     */
+    private void initControls(){
+        mCancelBtn = (Button) findViewById(R.id.move_files_btn_cancel);
+        mCancelBtn.setOnClickListener(this);
+        mChooseBtn = (Button) findViewById(R.id.move_files_btn_choose);
+        mChooseBtn.setOnClickListener(this);
+    }
+    
+    @Override
+    public void onClick(View v) {
+        if (v == mCancelBtn) {
+            finish();
+        } else if (v == mChooseBtn) {
+            Intent i = getIntent();
+            OCFile targetFile = (OCFile) i.getParcelableExtra(MoveActivity.EXTRA_TARGET_FILE);
+
+            Intent data = new Intent();
+            data.putExtra(EXTRA_CURRENT_FOLDER, getCurrentFolder());
+            data.putExtra(EXTRA_TARGET_FILE, targetFile);
+            setResult(RESULT_OK_AND_MOVE, data);
+            finish();
+        }
+    }
+    
+    
+    @Override
+    public void onRemoteOperationFinish(RemoteOperation operation, RemoteOperationResult result) {
+        super.onRemoteOperationFinish(operation, result);
+        
+        if (operation instanceof CreateFolderOperation) {
+            onCreateFolderOperationFinish((CreateFolderOperation)operation, result);
+            
+        }
+    }
+    
+    
+    /**
+     * Updates the view associated to the activity after the finish of an operation trying 
+     * to create a new folder.
+     * 
+     * @param operation     Creation operation performed.
+     * @param result        Result of the creation.
+     */
+    private void onCreateFolderOperationFinish(
+            CreateFolderOperation operation, RemoteOperationResult result
+            ) {
+        
+        if (result.isSuccess()) {
+            dismissLoadingDialog();
+            refreshListOfFilesFragment();
+        } else {
+            dismissLoadingDialog();
+            try {
+                Toast msg = Toast.makeText(MoveActivity.this, 
+                        ErrorMessageAdapter.getErrorCauseMessage(result, operation, getResources()), 
+                        Toast.LENGTH_LONG); 
+                msg.show();
+
+            } catch (NotFoundException e) {
+                Log_OC.e(TAG, "Error while trying to show fail message " , e);
+            }
+        }
+    }
+    
+    
+    
+    private class SyncBroadcastReceiver extends BroadcastReceiver {
+
+        /**
+         * {@link BroadcastReceiver} to enable syncing feedback in UI
+         */
+        @Override
+        public void onReceive(Context context, Intent intent) {
+            try {
+                String event = intent.getAction();
+                Log_OC.d(TAG, "Received broadcast " + event);
+                String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
+                String synchFolderRemotePath = intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH); 
+                RemoteOperationResult synchResult = (RemoteOperationResult)intent.getSerializableExtra(FileSyncAdapter.EXTRA_RESULT);
+                boolean sameAccount = (getAccount() != null && accountName.equals(getAccount().name) && getStorageManager() != null); 
+    
+                if (sameAccount) {
+                    
+                    if (FileSyncAdapter.EVENT_FULL_SYNC_START.equals(event)) {
+                        mSyncInProgress = true;
+                        
+                    } else {
+                        OCFile currentFile = (getFile() == null) ? null : getStorageManager().getFileByPath(getFile().getRemotePath());
+                        OCFile currentDir = (getCurrentFolder() == null) ? null : getStorageManager().getFileByPath(getCurrentFolder().getRemotePath());
+    
+                        if (currentDir == null) {
+                            // current folder was removed from the server 
+                            Toast.makeText( MoveActivity.this, 
+                                            String.format(getString(R.string.sync_current_folder_was_removed), getCurrentFolder().getFileName()), 
+                                            Toast.LENGTH_LONG)
+                                .show();
+                            browseToRoot();
+                            
+                        } else {
+                            if (currentFile == null && !getFile().isFolder()) {
+                                // currently selected file was removed in the server, and now we know it
+                                currentFile = currentDir;
+                            }
+
+                            if (synchFolderRemotePath != null && currentDir.getRemotePath().equals(synchFolderRemotePath)) {
+                                OCFileListFragment fileListFragment = getListOfFilesFragment();
+                                if (fileListFragment != null) {
+                                    fileListFragment.listDirectory(currentDir);
+                                }
+                            }
+                            setFile(currentFile);
+                        }
+                        
+                        mSyncInProgress = (!FileSyncAdapter.EVENT_FULL_SYNC_END.equals(event) && !SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_SHARES_SYNCED.equals(event));
+                                
+                        if (SynchronizeFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED.
+                                    equals(event) &&
+                                /// TODO refactor and make common
+                                synchResult != null && !synchResult.isSuccess() &&  
+                                (synchResult.getCode() == ResultCode.UNAUTHORIZED   || 
+                                    synchResult.isIdPRedirection()                  ||
+                                    (synchResult.isException() && synchResult.getException() 
+                                            instanceof AuthenticatorException))) {
+
+                            OwnCloudClient client = null;
+                            try {
+                                OwnCloudAccount ocAccount = 
+                                        new OwnCloudAccount(getAccount(), context);
+                                client = (OwnCloudClientManagerFactory.getDefaultSingleton().
+                                        removeClientFor(ocAccount));
+                                // TODO get rid of these exceptions
+                            } catch (AccountNotFoundException e) {
+                                e.printStackTrace();
+                            } catch (AuthenticatorException e) {
+                                e.printStackTrace();
+                            } catch (OperationCanceledException e) {
+                                e.printStackTrace();
+                            } catch (IOException e) {
+                                e.printStackTrace();
+                            }
+                            
+                            if (client != null) {
+                                OwnCloudCredentials cred = client.getCredentials();
+                                if (cred != null) {
+                                    AccountManager am = AccountManager.get(context);
+                                    if (cred.authTokenExpires()) {
+                                        am.invalidateAuthToken(
+                                                getAccount().type, 
+                                                cred.getAuthToken()
+                                        );
+                                    } else {
+                                        am.clearPassword(getAccount());
+                                    }
+                                }
+                            }
+                            
+                            requestCredentialsUpdate();
+                            
+                        }
+                    }
+                    removeStickyBroadcast(intent);
+                    Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
+                    setSupportProgressBarIndeterminateVisibility(mSyncInProgress /*|| mRefreshSharesInProgress*/);
+
+                    setBackgroundText();
+                        
+                }
+                
+            } catch (RuntimeException e) {
+                // avoid app crashes after changing the serial id of RemoteOperationResult 
+                // in owncloud library with broadcast notifications pending to process
+                removeStickyBroadcast(intent);
+            }
+        }
+    }
+
+    
+
+    /**
+     * Shows the information of the {@link OCFile} received as a 
+     * parameter in the second fragment.
+     * 
+     * @param file          {@link OCFile} whose details will be shown
+     */
+    @Override
+    public void showDetails(OCFile file) {
+
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onTransferStateChanged(OCFile file, boolean downloading, boolean uploading) {
+            
+    }
+
+
+    @Override
+    public void onRefresh() {
+        OCFileListFragment listOfFiles = getListOfFilesFragment();
+        if (listOfFiles != null) {
+            OCFile folder = listOfFiles.getCurrentFile();
+            if (folder != null) {
+                startSyncFolderOperation(folder);
+            }
+        }
+    }
+
+}

+ 29 - 1
src/com/owncloud/android/ui/adapter/FileListListAdapter.java

@@ -53,12 +53,18 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
     private Context mContext;
     private Context mContext;
     private OCFile mFile = null;
     private OCFile mFile = null;
     private Vector<OCFile> mFiles = null;
     private Vector<OCFile> mFiles = null;
+    private boolean mJustFolders;
 
 
     private FileDataStorageManager mStorageManager;
     private FileDataStorageManager mStorageManager;
     private Account mAccount;
     private Account mAccount;
     private ComponentsGetter mTransferServiceGetter;
     private ComponentsGetter mTransferServiceGetter;
     
     
-    public FileListListAdapter(Context context, ComponentsGetter transferServiceGetter) {
+    public FileListListAdapter(
+            boolean justFolders, 
+            Context context, 
+            ComponentsGetter transferServiceGetter
+            ) {
+        mJustFolders = justFolders;
         mContext = context;
         mContext = context;
         mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);
         mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);
         mTransferServiceGetter = transferServiceGetter;
         mTransferServiceGetter = transferServiceGetter;
@@ -231,12 +237,34 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         }
         }
         if (mStorageManager != null) {
         if (mStorageManager != null) {
             mFiles = mStorageManager.getFolderContent(mFile);
             mFiles = mStorageManager.getFolderContent(mFile);
+            if (mJustFolders) {
+                mFiles = getFolders(mFiles);
+            }
         } else {
         } else {
             mFiles = null;
             mFiles = null;
         }
         }
         notifyDataSetChanged();
         notifyDataSetChanged();
     }
     }
     
     
+    
+    /**
+     * Filter for getting only the folders
+     * @param files
+     * @return Vector<OCFile>
+     */
+    public Vector<OCFile> getFolders(Vector<OCFile> files) {
+        Vector<OCFile> ret = new Vector<OCFile>(); 
+        OCFile current = null; 
+        for (int i=0; i<files.size(); i++) {
+            current = files.get(i);
+            if (current.isFolder()) {
+                ret.add(current);
+            }
+        }
+        return ret;
+    }
+    
+    
     /**
     /**
      * Check if parent folder does not include 'S' permission and if file/folder
      * Check if parent folder does not include 'S' permission and if file/folder
      * is shared with me
      * is shared with me

+ 2 - 0
src/com/owncloud/android/ui/dialog/CreateFolderDialogFragment.java

@@ -45,6 +45,8 @@ public class CreateFolderDialogFragment
 extends SherlockDialogFragment implements DialogInterface.OnClickListener {
 extends SherlockDialogFragment implements DialogInterface.OnClickListener {
 
 
     private static final String ARG_PARENT_FOLDER = "PARENT_FOLDER";
     private static final String ARG_PARENT_FOLDER = "PARENT_FOLDER";
+    
+    public static final String CREATE_FOLDER_FRAGMENT = "CREATE_FOLDER_FRAGMENT";
 
 
     /**
     /**
      * Public factory method to create new CreateFolderDialogFragment instances.
      * Public factory method to create new CreateFolderDialogFragment instances.

+ 109 - 2
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java

@@ -18,6 +18,8 @@
 
 
 package com.owncloud.android.ui.fragment;
 package com.owncloud.android.ui.fragment;
 
 
+import java.util.ArrayList;
+
 import android.os.Bundle;
 import android.os.Bundle;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.support.v4.widget.SwipeRefreshLayout;
 import android.view.LayoutInflater;
 import android.view.LayoutInflater;
@@ -37,11 +39,17 @@ import com.owncloud.android.utils.Log_OC;
 /**
 /**
  *  TODO extending SherlockListFragment instead of SherlockFragment 
  *  TODO extending SherlockListFragment instead of SherlockFragment 
  */
  */
-public class ExtendedListFragment extends SherlockFragment implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener{
+public class ExtendedListFragment extends SherlockFragment 
+implements OnItemClickListener, SwipeRefreshLayout.OnRefreshListener {
     
     
     private static final String TAG = ExtendedListFragment.class.getSimpleName();
     private static final String TAG = ExtendedListFragment.class.getSimpleName();
 
 
     private static final String KEY_SAVED_LIST_POSITION = "SAVED_LIST_POSITION"; 
     private static final String KEY_SAVED_LIST_POSITION = "SAVED_LIST_POSITION"; 
+    private static final String KEY_INDEXES = "INDEXES";
+    private static final String KEY_FIRST_POSITIONS= "FIRST_POSITIONS";
+    private static final String KEY_TOPS = "TOPS";
+    private static final String KEY_HEIGHT_CELL = "HEIGHT_CELL";
+    private static final String KEY_EMPTY_LIST_MESSAGE = "EMPTY_LIST_MESSAGE";
 
 
     protected ExtendedListView mList;
     protected ExtendedListView mList;
     
     
@@ -49,6 +57,15 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
     private SwipeRefreshLayout mRefreshEmptyLayout;
     private SwipeRefreshLayout mRefreshEmptyLayout;
     private TextView mEmptyListMessage;
     private TextView mEmptyListMessage;
     
     
+    // Save the state of the scroll in browsing
+    private ArrayList<Integer> mIndexes;
+    private ArrayList<Integer> mFirstPositions;
+    private ArrayList<Integer> mTops;
+    private int mHeightCell = 0;
+
+    private SwipeRefreshLayout.OnRefreshListener mOnRefreshListener = null;
+    
+    
     public void setListAdapter(ListAdapter listAdapter) {
     public void setListAdapter(ListAdapter listAdapter) {
         mList.setAdapter(listAdapter);
         mList.setAdapter(listAdapter);
         mList.invalidate();
         mList.invalidate();
@@ -62,7 +79,6 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
     @Override
     @Override
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
     public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
         Log_OC.e(TAG, "onCreateView");
         Log_OC.e(TAG, "onCreateView");
-        //mList = new ExtendedListView(getActivity());
         
         
         View v = inflater.inflate(R.layout.list_fragment, null);
         View v = inflater.inflate(R.layout.list_fragment, null);
         mEmptyListMessage = (TextView) v.findViewById(R.id.empty_list_view);
         mEmptyListMessage = (TextView) v.findViewById(R.id.empty_list_view);
@@ -90,11 +106,39 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
     }
     }
 
 
     
     
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void onActivityCreated(Bundle savedInstanceState) {
+        super.onActivityCreated(savedInstanceState);
+        
+        if (savedInstanceState != null) {
+            mIndexes = savedInstanceState.getIntegerArrayList(KEY_INDEXES);
+            mFirstPositions = savedInstanceState.getIntegerArrayList(KEY_FIRST_POSITIONS);
+            mTops = savedInstanceState.getIntegerArrayList(KEY_TOPS);
+            mHeightCell = savedInstanceState.getInt(KEY_HEIGHT_CELL);
+            setMessageForEmptyList(savedInstanceState.getString(KEY_EMPTY_LIST_MESSAGE));
+            
+        } else {
+            mIndexes = new ArrayList<Integer>();
+            mFirstPositions = new ArrayList<Integer>();
+            mTops = new ArrayList<Integer>();
+            mHeightCell = 0;
+        }
+    }    
+    
+    
     @Override
     @Override
     public void onSaveInstanceState(Bundle savedInstanceState) {
     public void onSaveInstanceState(Bundle savedInstanceState) {
         super.onSaveInstanceState(savedInstanceState);
         super.onSaveInstanceState(savedInstanceState);
         Log_OC.e(TAG, "onSaveInstanceState()");
         Log_OC.e(TAG, "onSaveInstanceState()");
         savedInstanceState.putInt(KEY_SAVED_LIST_POSITION, getReferencePosition());
         savedInstanceState.putInt(KEY_SAVED_LIST_POSITION, getReferencePosition());
+        savedInstanceState.putIntegerArrayList(KEY_INDEXES, mIndexes);
+        savedInstanceState.putIntegerArrayList(KEY_FIRST_POSITIONS, mFirstPositions);
+        savedInstanceState.putIntegerArrayList(KEY_TOPS, mTops);
+        savedInstanceState.putInt(KEY_HEIGHT_CELL, mHeightCell);
+        savedInstanceState.putString(KEY_EMPTY_LIST_MESSAGE, getEmptyViewText());
     }
     }
 
 
     
     
@@ -126,6 +170,60 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
         }
         }
     }
     }
 
 
+
+    /*
+     * Restore index and position
+     */
+    protected void restoreIndexAndTopPosition() {
+        if (mIndexes.size() > 0) {  
+            // needs to be checked; not every browse-up had a browse-down before 
+            
+            int index = mIndexes.remove(mIndexes.size() - 1);
+            
+            int firstPosition = mFirstPositions.remove(mFirstPositions.size() -1);
+            
+            int top = mTops.remove(mTops.size() - 1);
+            
+            mList.setSelectionFromTop(firstPosition, top);
+            
+            // Move the scroll if the selection is not visible
+            int indexPosition = mHeightCell*index;
+            int height = mList.getHeight();
+            
+            if (indexPosition > height) {
+                if (android.os.Build.VERSION.SDK_INT >= 11)
+                {
+                    mList.smoothScrollToPosition(index); 
+                }
+                else if (android.os.Build.VERSION.SDK_INT >= 8)
+                {
+                    mList.setSelectionFromTop(index, 0);
+                }
+                
+            }
+        }
+    }
+    
+    /*
+     * Save index and top position
+     */
+    protected void saveIndexAndTopPosition(int index) {
+        
+        mIndexes.add(index);
+        
+        int firstPosition = mList.getFirstVisiblePosition();
+        mFirstPositions.add(firstPosition);
+        
+        View view = mList.getChildAt(0);
+        int top = (view == null) ? 0 : view.getTop() ;
+
+        mTops.add(top);
+        
+        // Save the height of a cell
+        mHeightCell = (view == null || mHeightCell != 0) ? mHeightCell : view.getHeight();
+    }
+    
+    
     @Override
     @Override
     public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
     public void onItemClick (AdapterView<?> parent, View view, int position, long id) {
         // to be @overriden  
         // to be @overriden  
@@ -136,7 +234,16 @@ public class ExtendedListFragment extends SherlockFragment implements OnItemClic
         // to be @overriden
         // to be @overriden
         mRefreshLayout.setRefreshing(false);
         mRefreshLayout.setRefreshing(false);
         mRefreshEmptyLayout.setRefreshing(false);
         mRefreshEmptyLayout.setRefreshing(false);
+        
+        if (mOnRefreshListener != null) {
+            mOnRefreshListener.onRefresh();
+        }
+    }
+    
+    public void setOnRefreshListener(SwipeRefreshLayout.OnRefreshListener listener) {
+        mOnRefreshListener = listener;
     }
     }
+    
 
 
     /**
     /**
      * Enables swipe gesture
      * Enables swipe gesture

+ 7 - 0
src/com/owncloud/android/ui/fragment/FileDetailFragment.java

@@ -191,6 +191,13 @@ public class FileDetailFragment extends FileFragment implements OnClickListener
             item.setVisible(false);
             item.setVisible(false);
             item.setEnabled(false);
             item.setEnabled(false);
         }
         }
+
+        // additional restriction for this fragment
+        item = menu.findItem(R.id.action_move);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
     }
     }
 
 
     
     

+ 6 - 1
src/com/owncloud/android/ui/fragment/LocalFileListFragment.java

@@ -90,7 +90,7 @@ public class LocalFileListFragment extends ExtendedListFragment {
     public void onActivityCreated(Bundle savedInstanceState) {
     public void onActivityCreated(Bundle savedInstanceState) {
         Log_OC.i(TAG, "onActivityCreated() start");
         Log_OC.i(TAG, "onActivityCreated() start");
         
         
-        super.onCreate(savedInstanceState);
+        super.onActivityCreated(savedInstanceState);
         mAdapter = new LocalFileListAdapter(mContainerActivity.getInitialDirectory(), getActivity());
         mAdapter = new LocalFileListAdapter(mContainerActivity.getInitialDirectory(), getActivity());
         setListAdapter(mAdapter);
         setListAdapter(mAdapter);
         
         
@@ -111,6 +111,8 @@ public class LocalFileListFragment extends ExtendedListFragment {
                 listDirectory(file);
                 listDirectory(file);
                 // notify the click to container Activity
                 // notify the click to container Activity
                 mContainerActivity.onDirectoryClick(file);
                 mContainerActivity.onDirectoryClick(file);
+                // save index and top position
+                saveIndexAndTopPosition(position);
             
             
             } else {    /// Click on a file
             } else {    /// Click on a file
                 ImageView checkBoxV = (ImageView) v.findViewById(R.id.custom_checkbox);
                 ImageView checkBoxV = (ImageView) v.findViewById(R.id.custom_checkbox);
@@ -140,6 +142,9 @@ public class LocalFileListFragment extends ExtendedListFragment {
             parentDir = mDirectory.getParentFile();  // can be null
             parentDir = mDirectory.getParentFile();  // can be null
         }
         }
         listDirectory(parentDir);
         listDirectory(parentDir);
+
+        // restore index and top position
+        restoreIndexAndTopPosition();
     }
     }
 
 
     
     

+ 81 - 148
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@ -18,10 +18,11 @@
 package com.owncloud.android.ui.fragment;
 package com.owncloud.android.ui.fragment;
 
 
 import java.io.File;
 import java.io.File;
-import java.util.ArrayList;
 
 
 import android.app.Activity;
 import android.app.Activity;
+import android.content.Intent;
 import android.os.Bundle;
 import android.os.Bundle;
+import android.support.v4.widget.SwipeRefreshLayout;
 import android.view.ContextMenu;
 import android.view.ContextMenu;
 import android.view.MenuInflater;
 import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.MenuItem;
@@ -34,6 +35,7 @@ import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.datamodel.OCFile;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.files.FileMenuFilter;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.activity.MoveActivity;
 import com.owncloud.android.ui.adapter.FileListListAdapter;
 import com.owncloud.android.ui.adapter.FileListListAdapter;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
 import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
@@ -55,15 +57,14 @@ public class OCFileListFragment extends ExtendedListFragment {
     
     
     private static final String TAG = OCFileListFragment.class.getSimpleName();
     private static final String TAG = OCFileListFragment.class.getSimpleName();
 
 
-    private static final String MY_PACKAGE = OCFileListFragment.class.getPackage() != null ? OCFileListFragment.class.getPackage().getName() : "com.owncloud.android.ui.fragment";
-    private static final String EXTRA_FILE = MY_PACKAGE + ".extra.FILE";
+    private static final String MY_PACKAGE = OCFileListFragment.class.getPackage() != null ?
+            OCFileListFragment.class.getPackage().getName() : "com.owncloud.android.ui.fragment";
+            
+    public final static String ARG_JUST_FOLDERS = MY_PACKAGE + ".JUST_FOLDERS";
+    public final static String ARG_ALLOW_CONTEXTUAL_ACTIONS = MY_PACKAGE + ".ALLOW_CONTEXTUAL";
+            
+    private static final String KEY_FILE = MY_PACKAGE + ".extra.FILE";
 
 
-    private static final String KEY_INDEXES = "INDEXES";
-    private static final String KEY_FIRST_POSITIONS= "FIRST_POSITIONS";
-    private static final String KEY_TOPS = "TOPS";
-    private static final String KEY_HEIGHT_CELL = "HEIGHT_CELL";
-    private static final String KEY_EMPTY_LIST_MESSAGE = "EMPTY_LIST_MESSAGE";
-    
     private FileFragment.ContainerActivity mContainerActivity;
     private FileFragment.ContainerActivity mContainerActivity;
    
    
     private OCFile mFile = null;
     private OCFile mFile = null;
@@ -71,12 +72,6 @@ public class OCFileListFragment extends ExtendedListFragment {
     
     
     private OCFile mTargetFile;
     private OCFile mTargetFile;
 
 
-    // Save the state of the scroll in browsing
-    private ArrayList<Integer> mIndexes;
-    private ArrayList<Integer> mFirstPositions;
-    private ArrayList<Integer> mTops;
-
-    private int mHeightCell = 0;
     
     
     /**
     /**
      * {@inheritDoc}
      * {@inheritDoc}
@@ -87,15 +82,24 @@ public class OCFileListFragment extends ExtendedListFragment {
         Log_OC.e(TAG, "onAttach");
         Log_OC.e(TAG, "onAttach");
         try {
         try {
             mContainerActivity = (FileFragment.ContainerActivity) activity;
             mContainerActivity = (FileFragment.ContainerActivity) activity;
+            
         } catch (ClassCastException e) {
         } catch (ClassCastException e) {
             throw new ClassCastException(activity.toString() + " must implement " + 
             throw new ClassCastException(activity.toString() + " must implement " + 
                     FileFragment.ContainerActivity.class.getSimpleName());
                     FileFragment.ContainerActivity.class.getSimpleName());
         }
         }
+        try {
+            setOnRefreshListener((SwipeRefreshLayout.OnRefreshListener) activity);
+            
+        } catch (ClassCastException e) {
+            throw new ClassCastException(activity.toString() + " must implement " + 
+                    SwipeRefreshLayout.OnRefreshListener.class.getSimpleName());
+        }
     }
     }
 
 
     
     
     @Override
     @Override
     public void onDetach() {
     public void onDetach() {
+        setOnRefreshListener(null);
         mContainerActivity = null;
         mContainerActivity = null;
         super.onDetach();
         super.onDetach();
     }
     }
@@ -108,26 +112,17 @@ public class OCFileListFragment extends ExtendedListFragment {
         super.onActivityCreated(savedInstanceState);
         super.onActivityCreated(savedInstanceState);
         Log_OC.e(TAG, "onActivityCreated() start");
         Log_OC.e(TAG, "onActivityCreated() start");
         
         
-        mAdapter = new FileListListAdapter(getSherlockActivity(), mContainerActivity); 
-                
         if (savedInstanceState != null) {
         if (savedInstanceState != null) {
-            mFile = savedInstanceState.getParcelable(EXTRA_FILE);
-            mIndexes = savedInstanceState.getIntegerArrayList(KEY_INDEXES);
-            mFirstPositions = savedInstanceState.getIntegerArrayList(KEY_FIRST_POSITIONS);
-            mTops = savedInstanceState.getIntegerArrayList(KEY_TOPS);
-            mHeightCell = savedInstanceState.getInt(KEY_HEIGHT_CELL);
-            setMessageForEmptyList(savedInstanceState.getString(KEY_EMPTY_LIST_MESSAGE));
-            
-        } else {
-            mIndexes = new ArrayList<Integer>();
-            mFirstPositions = new ArrayList<Integer>();
-            mTops = new ArrayList<Integer>();
-            mHeightCell = 0;
-            
+            mFile = savedInstanceState.getParcelable(KEY_FILE);
         }
         }
         
         
-        mAdapter = new FileListListAdapter(getSherlockActivity(), mContainerActivity);
-        
+        Bundle args = getArguments();
+        boolean justFolders = (args == null) ? false : args.getBoolean(ARG_JUST_FOLDERS, false); 
+        mAdapter = new FileListListAdapter(
+                justFolders,
+                getSherlockActivity(), 
+                mContainerActivity
+        );
         setListAdapter(mAdapter);
         setListAdapter(mAdapter);
         
         
         registerForContextMenu(getListView());
         registerForContextMenu(getListView());
@@ -140,19 +135,14 @@ public class OCFileListFragment extends ExtendedListFragment {
     @Override
     @Override
     public void onSaveInstanceState (Bundle outState) {
     public void onSaveInstanceState (Bundle outState) {
         super.onSaveInstanceState(outState);
         super.onSaveInstanceState(outState);
-        outState.putParcelable(EXTRA_FILE, mFile);
-        outState.putIntegerArrayList(KEY_INDEXES, mIndexes);
-        outState.putIntegerArrayList(KEY_FIRST_POSITIONS, mFirstPositions);
-        outState.putIntegerArrayList(KEY_TOPS, mTops);
-        outState.putInt(KEY_HEIGHT_CELL, mHeightCell);
-        outState.putString(KEY_EMPTY_LIST_MESSAGE, getEmptyViewText());
+        outState.putParcelable(KEY_FILE, mFile);
     }
     }
     
     
     /**
     /**
      * Call this, when the user presses the up button.
      * Call this, when the user presses the up button.
      * 
      * 
-     * Tries to move up the current folder one level. If the parent folder was removed from the database, 
-     * it continues browsing up until finding an existing folders.
+     * Tries to move up the current folder one level. If the parent folder was removed from the 
+     * database, it continues browsing up until finding an existing folders.
      * 
      * 
      * return       Count of folder levels browsed up.
      * return       Count of folder levels browsed up.
      */
      */
@@ -166,25 +156,25 @@ public class OCFileListFragment extends ExtendedListFragment {
             String parentPath = null;
             String parentPath = null;
             if (mFile.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) {
             if (mFile.getParentId() != FileDataStorageManager.ROOT_PARENT_ID) {
                 parentPath = new File(mFile.getRemotePath()).getParent();
                 parentPath = new File(mFile.getRemotePath()).getParent();
-                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : parentPath + OCFile.PATH_SEPARATOR;
+                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : 
+                	parentPath + OCFile.PATH_SEPARATOR;
                 parentDir = storageManager.getFileByPath(parentPath);
                 parentDir = storageManager.getFileByPath(parentPath);
                 moveCount++;
                 moveCount++;
             } else {
             } else {
-                parentDir = storageManager.getFileByPath(OCFile.ROOT_PATH);    // never returns null; keep the path in root folder
+                parentDir = storageManager.getFileByPath(OCFile.ROOT_PATH);
             }
             }
             while (parentDir == null) {
             while (parentDir == null) {
                 parentPath = new File(parentPath).getParent();
                 parentPath = new File(parentPath).getParent();
-                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : parentPath + OCFile.PATH_SEPARATOR;
+                parentPath = parentPath.endsWith(OCFile.PATH_SEPARATOR) ? parentPath : 
+                	parentPath + OCFile.PATH_SEPARATOR;
                 parentDir = storageManager.getFileByPath(parentPath);
                 parentDir = storageManager.getFileByPath(parentPath);
                 moveCount++;
                 moveCount++;
             }   // exit is granted because storageManager.getFileByPath("/") never returns null
             }   // exit is granted because storageManager.getFileByPath("/") never returns null
-            mFile = parentDir;           
-        }
-        
-        if (mFile != null) {
+            mFile = parentDir;
+            
             listDirectory(mFile);
             listDirectory(mFile);
 
 
-            ((FileDisplayActivity)mContainerActivity).startSyncFolderOperation(mFile);
+            onRefresh();
             
             
             // restore index and top position
             // restore index and top position
             restoreIndexAndTopPosition();
             restoreIndexAndTopPosition();
@@ -194,58 +184,6 @@ public class OCFileListFragment extends ExtendedListFragment {
         return moveCount;
         return moveCount;
     }
     }
     
     
-    /*
-     * Restore index and position
-     */
-    private void restoreIndexAndTopPosition() {
-        if (mIndexes.size() > 0) {  
-            // needs to be checked; not every browse-up had a browse-down before 
-            
-            int index = mIndexes.remove(mIndexes.size() - 1);
-            
-            int firstPosition = mFirstPositions.remove(mFirstPositions.size() -1);
-            
-            int top = mTops.remove(mTops.size() - 1);
-            
-            mList.setSelectionFromTop(firstPosition, top);
-            
-            // Move the scroll if the selection is not visible
-            int indexPosition = mHeightCell*index;
-            int height = mList.getHeight();
-            
-            if (indexPosition > height) {
-                if (android.os.Build.VERSION.SDK_INT >= 11)
-                {
-                    mList.smoothScrollToPosition(index); 
-                }
-                else if (android.os.Build.VERSION.SDK_INT >= 8)
-                {
-                    mList.setSelectionFromTop(index, 0);
-                }
-                
-            }
-        }
-    }
-    
-    /*
-     * Save index and top position
-     */
-    private void saveIndexAndTopPosition(int index) {
-        
-        mIndexes.add(index);
-        
-        int firstPosition = mList.getFirstVisiblePosition();
-        mFirstPositions.add(firstPosition);
-        
-        View view = mList.getChildAt(0);
-        int top = (view == null) ? 0 : view.getTop() ;
-
-        mTops.add(top);
-        
-        // Save the height of a cell
-        mHeightCell = (view == null || mHeightCell != 0) ? mHeightCell : view.getHeight();
-    }
-    
     @Override
     @Override
     public void onItemClick(AdapterView<?> l, View v, int position, long id) {
     public void onItemClick(AdapterView<?> l, View v, int position, long id) {
         OCFile file = (OCFile) mAdapter.getItem(position);
         OCFile file = (OCFile) mAdapter.getItem(position);
@@ -253,7 +191,7 @@ public class OCFileListFragment extends ExtendedListFragment {
             if (file.isFolder()) { 
             if (file.isFolder()) { 
                 // update state and view of this fragment
                 // update state and view of this fragment
                 listDirectory(file);
                 listDirectory(file);
-                // then, notify parent activity to let it update its state and view, and other fragments
+                // then, notify parent activity to let it update its state and view
                 mContainerActivity.onBrowsedDownTo(file);
                 mContainerActivity.onBrowsedDownTo(file);
                 // save index and top position
                 // save index and top position
                 saveIndexAndTopPosition(position);
                 saveIndexAndTopPosition(position);
@@ -288,42 +226,46 @@ public class OCFileListFragment extends ExtendedListFragment {
      * {@inheritDoc}
      * {@inheritDoc}
      */
      */
     @Override
     @Override
-    public void onCreateContextMenu (ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+    public void onCreateContextMenu (
+            ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
         super.onCreateContextMenu(menu, v, menuInfo);
         super.onCreateContextMenu(menu, v, menuInfo);
-        MenuInflater inflater = getSherlockActivity().getMenuInflater();
-        inflater.inflate(R.menu.file_actions_menu, menu);
-        AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
-        OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
-        
-        if (mContainerActivity.getStorageManager() != null) {
-            FileMenuFilter mf = new FileMenuFilter(
-                targetFile,
-                mContainerActivity.getStorageManager().getAccount(),
-                mContainerActivity,
-                getSherlockActivity()
-            );
-            mf.filter(menu);
-        }
-        
-        /// additional restrictions for this fragment 
-        // TODO allow in the future 'open with' for previewable files
-        MenuItem item = menu.findItem(R.id.action_open_file_with);
-        if (item != null) {
-            item.setVisible(false);
-            item.setEnabled(false);
-        }
-        /// TODO break this direct dependency on FileDisplayActivity... if possible
-        FileFragment frag = ((FileDisplayActivity)getSherlockActivity()).getSecondFragment();
-        if (frag != null && frag instanceof FileDetailFragment && 
-                frag.getFile().getFileId() == targetFile.getFileId()) {
-            item = menu.findItem(R.id.action_see_details);
+        Bundle args = getArguments();
+        boolean allowContextualActions = 
+                (args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true); 
+        if (allowContextualActions) {
+            MenuInflater inflater = getSherlockActivity().getMenuInflater();
+            inflater.inflate(R.menu.file_actions_menu, menu);
+            AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
+            OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
+            
+            if (mContainerActivity.getStorageManager() != null) {
+                FileMenuFilter mf = new FileMenuFilter(
+                    targetFile,
+                    mContainerActivity.getStorageManager().getAccount(),
+                    mContainerActivity,
+                    getSherlockActivity()
+                );
+                mf.filter(menu);
+            }
+            
+            /// additional restrictions for this fragment 
+            // TODO allow in the future 'open with' for previewable files
+            MenuItem item = menu.findItem(R.id.action_open_file_with);
             if (item != null) {
             if (item != null) {
                 item.setVisible(false);
                 item.setVisible(false);
                 item.setEnabled(false);
                 item.setEnabled(false);
             }
             }
+            /// TODO break this direct dependency on FileDisplayActivity... if possible
+            FileFragment frag = ((FileDisplayActivity)getSherlockActivity()).getSecondFragment();
+            if (frag != null && frag instanceof FileDetailFragment && 
+                    frag.getFile().getFileId() == targetFile.getFileId()) {
+                item = menu.findItem(R.id.action_see_details);
+                if (item != null) {
+                    item.setVisible(false);
+                    item.setEnabled(false);
+                }
+            }
         }
         }
-        
-
     }
     }
     
     
     
     
@@ -378,6 +320,14 @@ public class OCFileListFragment extends ExtendedListFragment {
                 }
                 }
                 return true;
                 return true;
             }
             }
+            case R.id.action_move: {
+                Intent action = new Intent(getActivity(), MoveActivity.class);
+
+                // Pass mTargetFile that contains info of selected file/folder
+                action.putExtra(MoveActivity.EXTRA_TARGET_FILE, mTargetFile);
+                getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
+                return true;
+            }
             default:
             default:
                 return super.onContextItemSelected(item); 
                 return super.onContextItemSelected(item); 
         }
         }
@@ -436,21 +386,4 @@ public class OCFileListFragment extends ExtendedListFragment {
         }
         }
     }
     }
 
 
-
-    @Override
-    public void onRefresh() {
-        super.onRefresh();
-        
-        if (mFile != null) {
-            // Refresh mFile
-            mFile = mContainerActivity.getStorageManager().getFileById(mFile.getFileId());
-
-            listDirectory(mFile);
-            
-            ((FileDisplayActivity)mContainerActivity).startSyncFolderOperation(mFile);
-        }
-    }
-    
-    
-    
 }
 }

+ 7 - 0
src/com/owncloud/android/ui/preview/PreviewImageFragment.java

@@ -232,6 +232,13 @@ public class PreviewImageFragment extends FileFragment {
             item.setVisible(false);
             item.setVisible(false);
             item.setEnabled(false);
             item.setEnabled(false);
         }
         }
+
+        // additional restriction for this fragment
+        item = menu.findItem(R.id.action_move);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
         
         
     }
     }
 
 

+ 7 - 0
src/com/owncloud/android/ui/preview/PreviewMediaFragment.java

@@ -289,6 +289,13 @@ public class PreviewMediaFragment extends FileFragment implements
             item.setVisible(false);
             item.setVisible(false);
             item.setEnabled(false);
             item.setEnabled(false);
         }
         }
+
+        // additional restriction for this fragment
+        item = menu.findItem(R.id.action_move);
+        if (item != null) {
+            item.setVisible(false);
+            item.setEnabled(false);
+        }
     }
     }
     
     
     
     

+ 20 - 0
src/com/owncloud/android/utils/ErrorMessageAdapter.java

@@ -32,6 +32,7 @@ import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCo
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.CreateFolderOperation;
 import com.owncloud.android.operations.CreateShareOperation;
 import com.owncloud.android.operations.CreateShareOperation;
 import com.owncloud.android.operations.DownloadFileOperation;
 import com.owncloud.android.operations.DownloadFileOperation;
+import com.owncloud.android.operations.MoveFileOperation;
 import com.owncloud.android.operations.RemoveFileOperation;
 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;
@@ -186,6 +187,25 @@ public class ErrorMessageAdapter {
                 // Show a Message, operation finished without success
                 // Show a Message, operation finished without success
                 message = res.getString(R.string.unshare_link_file_error);
                 message = res.getString(R.string.unshare_link_file_error);
             }
             }
+        } else if (operation instanceof MoveFileOperation) {
+
+            if (result.getCode() == ResultCode.FILE_NOT_FOUND) {
+                message = res.getString(R.string.move_file_not_found);
+                
+            } else if (result.getCode() == ResultCode.INVALID_MOVE_INTO_DESCENDANT)  {
+                message = res.getString(R.string.move_file_invalid_into_descendent);
+
+            } else if (result.getCode() == ResultCode.INVALID_OVERWRITE) {
+                message = res.getString(R.string.move_file_invalid_overwrite);
+
+            } else if (result.getCode() == ResultCode.FORBIDDEN) {
+                message = String.format(res.getString(R.string.forbidden_permissions),
+                        res.getString(R.string.forbidden_permissions_move));
+
+            }else {    // Generic error
+                // Show a Message, operation finished without success
+                message = res.getString(R.string.move_file_error);
+            }
         }
         }
         
         
         return message;
         return message;