Merge pull request #541 from owncloud/fix_issue_540
authorjabarros <jabarros@solidgear.es>
Mon, 7 Jul 2014 11:02:42 +0000 (13:02 +0200)
committerjabarros <jabarros@solidgear.es>
Mon, 7 Jul 2014 11:02:42 +0000 (13:02 +0200)
Fix issue 540

76 files changed:
.travis.yml
owncloud-android-library
res/drawable-hdpi/shared_with_me.png [new file with mode: 0644]
res/drawable-hdpi/shared_with_me_folder.png [new file with mode: 0644]
res/drawable-hdpi/sharedlink.png
res/drawable-mdpi/shared_with_me.png [new file with mode: 0644]
res/drawable-mdpi/shared_with_me_folder.png [new file with mode: 0644]
res/drawable-mdpi/sharedlink.png
res/drawable-xhdpi/shared_with_me.png [new file with mode: 0644]
res/drawable-xhdpi/sharedlink.png
res/layout/list_item.xml
res/values-ar/strings.xml
res/values-ca/strings.xml
res/values-cs-rCZ/strings.xml
res/values-cy-rGB/strings.xml
res/values-da/strings.xml
res/values-de-rCH/strings.xml
res/values-de-rDE/strings.xml
res/values-de/strings.xml
res/values-el/strings.xml
res/values-en-rGB/strings.xml
res/values-eo/strings.xml
res/values-es-rAR/strings.xml
res/values-es-rCL/strings.xml
res/values-es-rMX/strings.xml
res/values-es/strings.xml
res/values-et-rEE/strings.xml
res/values-fa/strings.xml
res/values-fi-rFI/strings.xml
res/values-fr/strings.xml
res/values-gl/strings.xml
res/values-hu-rHU/strings.xml
res/values-it/strings.xml
res/values-ja-rJP/strings.xml
res/values-ka-rGE/strings.xml
res/values-ko/strings.xml
res/values-ml-rIN/strings.xml
res/values-nb-rNO/strings.xml
res/values-nl/strings.xml
res/values-pl/strings.xml
res/values-pt-rBR/strings.xml
res/values-pt-rPT/strings.xml
res/values-ro/strings.xml
res/values-ru/strings.xml
res/values-sk-rSK/strings.xml
res/values-sl/strings.xml
res/values-sv/strings.xml
res/values-th-rTH/strings.xml
res/values-tr/strings.xml
res/values-uk/strings.xml
res/values-vi/strings.xml
res/values-zh-rCN/strings.xml
res/values-zh-rTW/strings.xml
res/values/strings.xml
src/com/owncloud/android/MainApp.java
src/com/owncloud/android/authentication/AuthenticatorActivity.java
src/com/owncloud/android/authentication/OwnCloudAccount.java [deleted file]
src/com/owncloud/android/datamodel/FileDataStorageManager.java
src/com/owncloud/android/datamodel/OCFile.java
src/com/owncloud/android/db/ProviderMeta.java
src/com/owncloud/android/files/services/FileDownloader.java
src/com/owncloud/android/files/services/FileUploader.java
src/com/owncloud/android/operations/DetectAuthenticationMethodOperation.java
src/com/owncloud/android/operations/GetServerInfoOperation.java
src/com/owncloud/android/operations/SynchronizeFolderOperation.java
src/com/owncloud/android/operations/common/SyncOperation.java
src/com/owncloud/android/providers/FileContentProvider.java
src/com/owncloud/android/services/OperationsService.java
src/com/owncloud/android/syncadapter/AbstractOwnCloudSyncAdapter.java
src/com/owncloud/android/syncadapter/FileSyncAdapter.java
src/com/owncloud/android/ui/activity/FileActivity.java
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/activity/Uploader.java
src/com/owncloud/android/ui/adapter/FileListListAdapter.java
src/com/owncloud/android/ui/adapter/LocalFileListAdapter.java
src/com/owncloud/android/utils/FileStorageUtils.java

index 4429520..d205021 100644 (file)
@@ -3,9 +3,10 @@ jdk: oraclejdk7
 before_install:
   # Install base Android SDK
     - sudo apt-get update -qq
-    - sudo apt-get install -qq libstdc++6:i386 lib32z1
-    - export COMPONENTS=build-tools-18.1.0,android-14,android-17,android-19,sysimg-19,extra-android-support
-    - curl -3L https://raw.github.com/embarkmobile/android-sdk-installer/version-1/android-sdk-installer | bash /dev/stdin --install=$COMPONENTS
+    - sudo apt-get install -qq libstdc++6:i386 lib32z1 expect
+    - export COMPONENTS="build-tools-20.0.0,android-14,android-17,android-19,sysimg-19,extra-android-support"
+    - export LICENSES="android-sdk-license-5be876d5|android-sdk-license-598b93a6"
+    - curl -3L https://raw.github.com/embarkmobile/android-sdk-installer/version-2/android-sdk-installer | bash /dev/stdin --install=$COMPONENTS --accept=$LICENSES
     - source ~/.android-sdk-installer/env
     - rm pom.xml
     - ./setup_env.sh
index 8f8c29c..e72fec7 160000 (submodule)
@@ -1 +1 @@
-Subproject commit 8f8c29c776c299a639bc21a5ffbb63aeda07b1f9
+Subproject commit e72fec72a3138d4e714a9db37eb87cb76a958bdf
diff --git a/res/drawable-hdpi/shared_with_me.png b/res/drawable-hdpi/shared_with_me.png
new file mode 100644 (file)
index 0000000..222172a
Binary files /dev/null and b/res/drawable-hdpi/shared_with_me.png differ
diff --git a/res/drawable-hdpi/shared_with_me_folder.png b/res/drawable-hdpi/shared_with_me_folder.png
new file mode 100644 (file)
index 0000000..271e7b2
Binary files /dev/null and b/res/drawable-hdpi/shared_with_me_folder.png differ
index 222172a..071c622 100644 (file)
Binary files a/res/drawable-hdpi/sharedlink.png and b/res/drawable-hdpi/sharedlink.png differ
diff --git a/res/drawable-mdpi/shared_with_me.png b/res/drawable-mdpi/shared_with_me.png
new file mode 100644 (file)
index 0000000..8300eac
Binary files /dev/null and b/res/drawable-mdpi/shared_with_me.png differ
diff --git a/res/drawable-mdpi/shared_with_me_folder.png b/res/drawable-mdpi/shared_with_me_folder.png
new file mode 100644 (file)
index 0000000..3b8aeee
Binary files /dev/null and b/res/drawable-mdpi/shared_with_me_folder.png differ
index 8300eac..95ab180 100644 (file)
Binary files a/res/drawable-mdpi/sharedlink.png and b/res/drawable-mdpi/sharedlink.png differ
diff --git a/res/drawable-xhdpi/shared_with_me.png b/res/drawable-xhdpi/shared_with_me.png
new file mode 100644 (file)
index 0000000..3879663
Binary files /dev/null and b/res/drawable-xhdpi/shared_with_me.png differ
index 3879663..f474b48 100644 (file)
Binary files a/res/drawable-xhdpi/sharedlink.png and b/res/drawable-xhdpi/sharedlink.png differ
index abe0e7f..9c47aa6 100644 (file)
 \r
     </LinearLayout>\r
 \r
+    <LinearLayout\r
+        android:layout_width="wrap_content"\r
+        android:layout_height="match_parent"\r
+        android:gravity="center_vertical"\r
+        android:orientation="vertical">\r
+\r
     <ImageView\r
-        android:id="@+id/shareIcon"\r
+        android:id="@+id/sharedIcon"\r
         android:layout_width="wrap_content"\r
         android:layout_height="wrap_content"\r
         android:layout_gravity="center_vertical"\r
         android:layout_marginLeft="4dp"\r
+        android:layout_marginBottom="4dp"\r
         android:layout_marginRight="4dp"\r
         android:src="@drawable/sharedlink" />\r
 \r
     <ImageView\r
+        android:id="@+id/sharedWithMeIcon"\r
+        android:layout_width="wrap_content"\r
+        android:layout_height="wrap_content"\r
+        android:layout_gravity="center_vertical"\r
+        android:layout_marginLeft="4dp"\r
+        android:layout_marginRight="4dp"\r
+        android:layout_marginTop="4dp"\r
+        android:src="@drawable/shared_with_me" />\r
+\r
+    </LinearLayout>\r
+\r
+    <ImageView\r
         android:id="@+id/custom_checkbox"\r
         android:layout_width="wrap_content"\r
         android:layout_height="wrap_content"\r
index c581e30..af7cdda 100644 (file)
@@ -82,6 +82,7 @@
   <string name="uploader_upload_succeeded_content_single">تم رفع %1$s  بنجاح </string>
   <string name="uploader_upload_failed_ticker">فشل الرفع</string>
   <string name="uploader_upload_failed_content_single">لم يكتمل رفع  %1$s </string>
+  <string name="uploader_upload_failed_credentials_error">فشل الرفع, تحتاج للدخول مرة أخرى</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_succeeded_ticker">تم التحميل بنجاح</string>
@@ -89,6 +90,7 @@
   <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_download_failed_credentials_error">فشل التحميل, تحتاج للدخول مرة أخرى</string>
   <string name="common_choose_account">اختر حسابا</string>
   <string name="sync_fail_ticker">فشلت المزامنة.</string>
   <string name="sync_fail_content">لم تكتمل مزامنة %1$s  </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_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="foreign_files_move">نقل الكل</string>
   <string name="foreign_files_success">تم نقل جميع الملفات</string>
   <string name="foreign_files_fail">لم ينجح نقل بعض الملفات</string>
   <string name="foreign_files_local_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="upload_query_move_foreign_files">لا يوجد مساحة كافية لنسخ الملفات المحددة لمجلد  %1$s . هل ترغب بنقلهم بدلاً من ذلك؟</string>
   <string name="pincode_enter_pin_code">يرجى إدخال كلمة السر</string>
   <string name="pincode_configure_your_pin">أدخل كلمة السر</string>
   <string name="pincode_configure_your_pin_explanation">سيتم طلب PIN في كل مرة يتم فيها تشغيل التطبيق</string>
   <string name="auth_unsupported_auth_method">الخادم لا يدعم طريقة التحقق هذه</string>
   <string name="auth_unsupported_multiaccount">%1$s لا يدعم الحسابات المتعددة </string>
   <string name="auth_fail_get_user_name">الخادم الخاص بك لم يعد الإتصال بهويتك الصحيحة, الرجاء الإتصال بالمسؤول\n\t</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="confirmation_remove_local">محليا فقط</string>
   <string name="confirmation_remove_folder_local">المحتويات المحلية فقط</string>
   <string name="confirmation_remove_remote">الحذف من الخادم</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="filedisplay_unexpected_bad_get_content">خطا غير متوقع : الرجاء اختيار الملف من تطبيق آخر</string>
   <string name="filedisplay_no_file_selected">لم يتم اختيار أي ملف</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="error__upload__local_file_not_copied">%1$s تعذر نسخه %2$s للمجلد المحلي</string>
   <string name="actionbar_failed_instant_upload">فشل في محاولة الرفع الفوري</string>
   <string name="failed_upload_headline_text">فشل في الرفع الفوري</string>
   <string name="failed_upload_headline_retryall_btn">اعادة كل المختارات</string>
   <string name="failed_upload_headline_delete_all_btn">حذف كل المختارات من قائمة انتظار الرفع</string>
   <string name="failed_upload_retry_text">اعادة المحاولة لرفع الصورة:</string>
+  <string name="failed_upload_load_more_images">تحميل المزيد من الصور</string>
   <string name="failed_upload_retry_do_nothing_text">do nothing you are not online for instant upload</string>
   <string name="failed_upload_failure_text">رسالة خطا:</string>
   <string name="failed_upload_quota_exceeded_text">الرجاء التاكد من اعدادات الخادم, من الممكن انك تعديت الحد في quota</string>
   <string name="activity_chooser_send_file_title">أرسل</string>
   <string name="copy_link">نسخ الرابط</string>
   <string name="clipboard_text_copied">تم النسخ للحافظة</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>
 </resources>
index c6d538e..8ffe43f 100644 (file)
   <string name="auth_unsupported_auth_method">El serivdor no permet aquest mètode d\'autenticació</string>
   <string name="auth_unsupported_multiaccount">%1$s no permet comptes múltiples</string>
   <string name="auth_fail_get_user_name">El servidor no retorna una id d\'usuari correcta, contacteu amb l\'administrador.</string>
+  <string name="auth_can_not_auth_against_server">No es pot autenticar en aquest servidor</string>
   <string name="fd_keep_in_sync">Mantén el fitxer actualitzat</string>
   <string name="common_rename">Reanomena</string>
   <string name="common_remove">Elimina</string>
+  <string name="confirmation_remove_alert">Esteu segur que voleu eliminar %1$s?</string>
+  <string name="confirmation_remove_folder_alert">Estàs segur que vols esborrar %1$s i els seus continguts?</string>
   <string name="confirmation_remove_local">Només local</string>
   <string name="confirmation_remove_folder_local">Només contiguts locals</string>
   <string name="confirmation_remove_remote">Elimina del servidor</string>
   <string name="conflict_overwrite">Sobrescriu</string>
   <string name="conflict_dont_upload">No el pugis</string>
   <string name="preview_image_description">Visualització prèvia d\'imatge</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="actionbar_failed_instant_upload">La pujada instantània ha fallat</string>
   <string name="failed_upload_headline_text">Fallada de pujades instantànies</string>
   <string name="failed_upload_headline_retryall_btn">reintenta els seleccionats</string>
   <string name="failed_upload_headline_delete_all_btn">elimina tots els seleccionats de la cua de pujada</string>
   <string name="failed_upload_retry_text">intenta pujar de nou la imatge:</string>
+  <string name="failed_upload_load_more_images">Carrega més fotos</string>
   <string name="failed_upload_retry_do_nothing_text">no facis res, no estàs en lína per la pujada instantània</string>
   <string name="failed_upload_failure_text">Missatge d\'Error:</string>
   <string name="failed_upload_quota_exceeded_text">Comproveu la configuració del servidor, potser heu excedit la quota.</string>
   <string name="activity_chooser_send_file_title">Envia</string>
   <string name="copy_link">Copia l\'enllaç</string>
   <string name="clipboard_text_copied">S\'ha copiat al porta-retalls</string>
+  <string name="error_cant_bind_to_operations_service">Error crític: no es poden realitzar operacions</string>
   <string name="network_error_socket_exception">Hi ha hagut un error mentre es connectava al servidor.</string>
   <string name="network_error_socket_timeout_exception">Hi ha hagut un error esperant al 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>
 </resources>
index c899901..e6eb499 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Stahování selhalo. Je třeba se přihlásit znovu.</string>
   <string name="common_choose_account">Vybrat účet</string>
   <string name="sync_fail_ticker">Synchronizace selhala</string>
+  <string name="sync_fail_ticker_unauthorized">Synchronizace selhala, je třeba se znovu přihlásit</string>
   <string name="sync_fail_content">Synchronizaci %1$s nelze dokončit</string>
   <string name="sync_fail_content_unauthorized">Chybné heslo pro %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Nalezeny konflikty</string>
   <string name="foreign_files_fail">Některé soubory nebylo možno přesunout</string>
   <string name="foreign_files_local_text">Místní: %1$s</string>
   <string name="foreign_files_remote_text">Vzdálené: %1$s</string>
-  <string name="upload_query_move_foreign_files">Nedostatek místa pro zkopírování vybraných souborů do složky %1$s. Přejete si je místo kopírování přesunout?</string>
+  <string name="upload_query_move_foreign_files">Není dostatek místa pro kopírování vybraných souborů do adresáře %1$s. Přejete si je místo kopírování přesunout?</string>
   <string name="pincode_enter_pin_code">Zadejte PIN aplikace</string>
   <string name="pincode_configure_your_pin">Zadat PIN aplikace</string>
   <string name="pincode_configure_your_pin_explanation">Při každém spuštění aplikace bude vyžadováno zadání PIN</string>
   <string name="common_rename">Přejmenovat</string>
   <string name="common_remove">Odstranit</string>
   <string name="confirmation_remove_alert">Opravdu chcete odstranit %1$s ?</string>
+  <string name="confirmation_remove_folder_alert">Opravdu chcete odstranit %1$s a jeho obsah?</string>
   <string name="confirmation_remove_local">Pouze místní</string>
   <string name="confirmation_remove_folder_local">Pouze místní obsah</string>
   <string name="confirmation_remove_remote">Odstranit ze serveru</string>
index 6983e1a..18083d8 100644 (file)
@@ -70,7 +70,6 @@
   <string name="foreign_files_fail">Methwyd symud rhai ffeiliau</string>
   <string name="foreign_files_local_text">Lleol: %1$s</string>
   <string name="foreign_files_remote_text">Pell: %1$s</string>
-  <string name="upload_query_move_foreign_files">Does dim digon o le i gopïo\'r ffeiliau ddewiswyd i blygell %1$s . Would like to move them into instead? </string>
   <string name="pincode_enter_pin_code">Cyflwynwch PIN eich Ap</string>
   <string name="pincode_configure_your_pin">Cyflwynwch PIN eich Ap</string>
   <string name="pincode_configure_your_pin_explanation">Bydd cais am y PIN bob tro mae\'r ap yn cychwyn</string>
index b25fbc7..1ca7bda 100644 (file)
   <string name="foreign_files_fail">Visse filer kunne ikke flyttes</string>
   <string name="foreign_files_local_text">Lokal: %1$s</string>
   <string name="foreign_files_remote_text">Fjernplacering: %1$s</string>
-  <string name="upload_query_move_foreign_files">Der er ikke tilstrækkelig plads til at kopiere de valgte filer ind i %1$s mappen. Vil du flytte dem i stedet?</string>
   <string name="pincode_enter_pin_code">Indsæt venligst din App PIN</string>
   <string name="pincode_configure_your_pin">Indtast App PIN</string>
   <string name="pincode_configure_your_pin_explanation">PIN koden vil blive anmodet om hver gang applikationen bliver startet</string>
index 0c5e94c..cebb147 100644 (file)
@@ -92,7 +92,6 @@
   <string name="foreign_files_fail">Einige Dateien konnten nicht verschoben werden</string>
   <string name="foreign_files_local_text">Lokal: %1$s</string>
   <string name="foreign_files_remote_text">Remote: %1$s</string>
-  <string name="upload_query_move_foreign_files">Es steht nicht genügend Speicherplatz zur Verfügung, um die ausgewählten Dateien in den %1$s Ordner zu kopieren. Möchten Sie sie stattdessen verschieben?</string>
   <string name="pincode_enter_pin_code">Bitte geben Sie Ihre App-PIN ein</string>
   <string name="pincode_configure_your_pin">Bitte geben Sie Ihre App-PIN ein</string>
   <string name="pincode_configure_your_pin_explanation">PIN-Abfrage erfolgt nach Starten der App.</string>
index 0106bc3..aed6770 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Herunterladen fehlgeschlagen, Sie müssen sich nochmals anmelden</string>
   <string name="common_choose_account">Konto auswählen</string>
   <string name="sync_fail_ticker">Synchronisation fehlgeschlagen</string>
+  <string name="sync_fail_ticker_unauthorized">Synchronisation fehlgeschlagen, Sie müssen sich neu anmelden</string>
   <string name="sync_fail_content">Bei der Synchronisation konnte %1$s nicht übertragen werden</string>
   <string name="sync_fail_content_unauthorized">Ungültiges Passwort für %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Konflikte gefunden</string>
   <string name="foreign_files_fail">Einige Dateien konnten nicht verschoben werden</string>
   <string name="foreign_files_local_text">Lokal: %1$s</string>
   <string name="foreign_files_remote_text">Remote: %1$s</string>
-  <string name="upload_query_move_foreign_files">Es steht nicht genügend Speicherplatz zur Verfügung, um die ausgewählten Dateien in den %1$s Ordner zu kopieren. Möchten Sie sie stattdessen verschieben?</string>
+  <string name="upload_query_move_foreign_files">Es steht nicht genügend Speicherplatz zur Verfügung um die ausgewählten Dateien in den %1$s Ordner zu kopieren. Möchten Sie diese stattdessen verschieben?</string>
   <string name="pincode_enter_pin_code">Bitte geben Sie Ihre App-PIN ein</string>
   <string name="pincode_configure_your_pin">Bitte geben Sie Ihre App-PIN ein</string>
   <string name="pincode_configure_your_pin_explanation">PIN-Abfrage erfolgt nach Starten der App.</string>
index dea1a35..5e67d4f 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Herunterladen fehlgeschlagen, Du musst dich nochmals anmelden</string>
   <string name="common_choose_account">Account auswählen</string>
   <string name="sync_fail_ticker">Synchronisation fehlgeschlagen</string>
+  <string name="sync_fail_ticker_unauthorized">Synchronisation fehlgeschlagen, Du musst Dich neu anmelden</string>
   <string name="sync_fail_content">Bei der Synchronisation konnte %1$s nicht übertragen werden</string>
   <string name="sync_fail_content_unauthorized">Falsches Passwort für %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Konflikte gefunden</string>
   <string name="foreign_files_fail">Einige Dateien konnten nicht verschoben werden</string>
   <string name="foreign_files_local_text">Lokal: %1$s</string>
   <string name="foreign_files_remote_text">Remote: %1$s</string>
-  <string name="upload_query_move_foreign_files">Es steht nicht genügend Speicherplatz zur Verfügung, um die ausgewählten Dateien in den %1$s Ordner zu kopieren. Möchtest Du sie stattdessen verschieben?</string>
+  <string name="upload_query_move_foreign_files">Es steht nicht genügend Speicherplatz zur Verfügung um die ausgewählten Dateien in den %1$s Ordner zu kopieren. Möchtest du diese stattdessen verschieben?</string>
   <string name="pincode_enter_pin_code">Bitte gib Deine App-PIN ein</string>
   <string name="pincode_configure_your_pin">Bitte gib Deine App-PIN ein</string>
   <string name="pincode_configure_your_pin_explanation">PIN-Abfrage erfolgt nach Starten der App.</string>
index bf084e1..5e52d8f 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <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="actionbar_sync">Ανανέωση λογαριασμού</string>
   <string name="actionbar_upload">Μεταφόρτωση</string>
   <string name="prefs_category_general">Γενικά</string>
   <string name="prefs_category_more">Περισσότερα</string>
   <string name="prefs_accounts">Λογαριασμοί</string>
-  <string name="prefs_manage_accounts">Î\94ιαÏ\87είÏ\81ιÏ\83η Î»ογαριασμών</string>
-  <string name="prefs_pincode">PIN Î³Î¹Î± Ï\80Ï\81Ï\8cÏ\83βαÏ\83η Ï\83Ï\84ην ÎµÏ\86αÏ\81μογή</string>
-  <string name="prefs_pincode_summary">ΠÏ\81οÏ\83Ï\84αÏ\84έÏ\88Ï\84ε Ï\84ην ÎµÏ\86αÏ\81μογή</string>
-  <string name="prefs_instant_upload">Στιγμιαίες φορτώσεις εικόνων</string>
-  <string name="prefs_instant_upload_summary">Î\91νεβάÏ\83Ï\84ε Î±Ï\80εÏ\85θείαÏ\82 Ï\86Ï\89Ï\84ογÏ\81αÏ\86ίεÏ\82 Î±Ï\80Ï\8c Ï\84ην ÎºÎ¬Î¼ÎµÏ\81α.</string>
-  <string name="prefs_instant_video_upload">Στιγμιαίες φορτώσεις βίντεο</string>
+  <string name="prefs_manage_accounts">Î\94ιαÏ\87είÏ\81ιÏ\83η Î\9bογαριασμών</string>
+  <string name="prefs_pincode">PIN ÎµÏ\86αÏ\81μογήÏ\82</string>
+  <string name="prefs_pincode_summary">ΠÏ\81οÏ\83Ï\84αÏ\84έÏ\88Ï\84ε Ï\84ο Î´Î­ÎºÏ\84η Ï\83αÏ\82</string>
+  <string name="prefs_instant_upload">Στιγμιαίες μεταφορτώσεις εικόνων</string>
+  <string name="prefs_instant_upload_summary">Î\9cεÏ\84αÏ\86οÏ\81Ï\84Ï\8eÏ\83Ï\84ε Î±Ï\80εÏ\85θείαÏ\82 Ï\86Ï\89Ï\84ογÏ\81αÏ\86ίεÏ\82 Î±Ï\80Ï\8c Ï\84ην ÎºÎ¬Î¼ÎµÏ\81α</string>
+  <string name="prefs_instant_video_upload">Στιγμιαίες μεταφορτώσεις βίντεο</string>
   <string name="prefs_instant_video_upload_summary">Άμεση μεταφόρτωση των βίντεο από την φωτογραφική μηχανή</string>
   <string name="prefs_log_title">Ενεργοποίηση Καταγραφής Ιστορικού</string>
   <string name="prefs_log_summary">Χρησιμοποιείται για την καταγραφή προβλημάτων</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_host_url">Î\94ιεÏ\8dθÏ\85νÏ\83η ÎµÎ¾Ï\85Ï\80ηÏ\81έÏ\84η https://…</string>
+  <string name="auth_host_url">Î\94ιεÏ\8dθÏ\85νÏ\83η Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83Ï\84ή https://…</string>
   <string name="auth_username">Όνομα χρήστη</string>
   <string name="auth_password">Συνθηματικό</string>
   <string name="auth_register">Νέοι στο %1$s;</string>
   <string name="sync_string_files">Αρχεία</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_text">Δεν υπάρχουν λογαριασμοί %1$s στη συσκευή σας. Παρακαλώ ρυθμίστε πρώτα ένα λογαριασμό.</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Ρύθμιση</string>
-  <string name="uploader_wrn_no_account_quit_btn_text">Î\9aλείÏ\83ιμο</string>
+  <string name="uploader_wrn_no_account_quit_btn_text">Î\88ξοδοÏ\82</string>
   <string name="uploader_wrn_no_content_title">Δεν υπάρχει περιεχόμενο για να μεταφορτώσετε</string>
   <string name="uploader_wrn_no_content_text">Δεν ελήφθη περιεχόμενο. Δεν υπάρχει τίποτα να μεταφορτώσετε.</string>
-  <string name="uploader_error_forbidden_content">Το %1$s δεν επιτρέπεται να έχει πρόσβαση στο κοινόχρηστο περιεχόμενο</string>
+  <string name="uploader_error_forbidden_content">Î\9f %1$s δεν επιτρέπεται να έχει πρόσβαση στο κοινόχρηστο περιεχόμενο</string>
   <string name="uploader_info_uploading">Μεταφόρτωση</string>
   <string name="file_list_empty">Δεν υπάρχουν αρχεία σε αυτόν τον φάκελο.\nΝέα αρχεία μπορούν να προστεθούν με την επιλογή \"Μεταφόρτωση\" του μενού.</string>
   <string name="filedetails_select_file">Αγγίξτε κάποιο αρχείο για να προβάλετε περισσότερες πληροφορίες.</string>
   <string name="filedetails_modified">Τροποποιήθηκε:</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_unshare_file">Ακύρωση διαμοιρασμού συνδέσμου</string>
   <string name="common_yes">Ναι</string>
   <string name="common_no">Όχι</string>
   <string name="common_ok">ΟΚ</string>
   <string name="common_cancel_download">Ακύρωση λήψης</string>
-  <string name="common_cancel_upload">Î\91κÏ\8dÏ\81Ï\89Ï\83η Î±Ï\80οÏ\83Ï\84ολής</string>
+  <string name="common_cancel_upload">Î\91κÏ\8dÏ\81Ï\89Ï\83η Î¼ÎµÏ\84αÏ\86Ï\8cÏ\81Ï\84Ï\89Ï\83ης</string>
   <string name="common_cancel">Άκυρο</string>
   <string name="common_save_exit">Αποθήκευση &amp; Έξοδος</string>
   <string name="common_error">Σφάλμα</string>
   <string name="common_loading">Φόρτωση ...</string>
   <string name="common_error_unknown">Άγνωστο σφάλμα</string>
   <string name="about_title">Σχετικά</string>
-  <string name="change_password">Αλλαγή συνθηματικού</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_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_succeeded_ticker">Η μεταφόρτωση ολοκληρώθηκε επιτυχώς</string>
   <string name="uploader_upload_succeeded_content_single">Το %1$s μεταφορτώθηκε με επιτυχία</string>
   <string name="uploader_upload_failed_ticker">Η μεταφόρτωση απέτυχε</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_content">%1$d%% Λαμβάνονται %2$s</string>
   <string name="downloader_download_succeeded_ticker">Η λήψη ολοκληρώθηκε επιτυχώς</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_not_downloaded_yet">Î\94εν Î­Ï\87ει ÎºÎ±Ï\84έβει ακόμα</string>
-  <string name="downloader_download_failed_credentials_error">Η λήψη απέτυχε, πρέπει να εισάγετε ξανά τον κωδικό σας</string>
+  <string name="downloader_download_failed_content">Η λήψη του %1$s δεν μπόρεσε να ολοκληρωθεί</string>
+  <string name="downloader_not_downloaded_yet">Î\94εν Î­Ï\87ει Î»Î·Ï\86θεί ακόμα</string>
+  <string name="downloader_download_failed_credentials_error">Η λήψη απέτυχε, πρέπει να επανασυνδεθείτε</string>
   <string name="common_choose_account">Επιλογή λογαριασμού</string>
   <string name="sync_fail_ticker">Ο συγχρονισμός απέτυχε</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_conflicts_in_favourites_ticker">Βρέθηκαν συγκρούσεις</string>
-  <string name="sync_conflicts_in_favourites_content">%1$d αρχεία σε αναμονή συγχρονισμού, δεν μπόρεσαν να συγχρονιστούν</string>
+  <string name="sync_conflicts_in_favourites_content">%1$d αρχεία σε αναμονή συγχρονισμού δεν μπόρεσαν να συγχρονιστούν</string>
   <string name="sync_fail_in_favourites_ticker">Τα αρχεία σε αναμονή συγχρονισμού απέτυχαν</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_content">%1$d Î±Ï\81Ï\87εία Î±Ï\80Ï\8c Ï\84ον %2$s Ï\87Ï\8eÏ\81ο Î±Ï\80οθήκεÏ\85Ï\83ηÏ\82 Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ δυνατό να αντιγραφούν σε</string>
-  <string name="sync_foreign_files_forgotten_explanation">Î\91Ï\80Ï\8c Ï\84ην Î­ÎºÎ´Î¿Ï\83η 1.3.16 ÎºÎ±Î¹ Î¼ÎµÏ\84ά, Î±Ï\81Ï\87εία Ï\80οÏ\85 Î¼ÎµÏ\84αÏ\86οÏ\81Ï\84Ï\8eνονÏ\84αι Î±Ï\80Ï\8c Î±Ï\85Ï\84ήν Ï\84η Ï\83Ï\85Ï\83κεÏ\85ή Î±Î½Ï\84ιγÏ\81άÏ\86ονÏ\84αι Ï\83Ï\84ον Ï\84οÏ\80ικÏ\8c Ï\86άκελο %1$s Î³Î¹Î± Î½Î± Î±Ï\80οÏ\84Ï\81αÏ\80εί Î· Î±Ï\80Ï\8eλεια Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν Ï\8cÏ\84αν Î­Î½Î± Î±Ï\81Ï\87είο ÎµÎ¯Î½Î±Î¹ Ï\83Ï\85γÏ\87Ï\81ονιÏ\83μένο Î¼Îµ Ï\80ολλαÏ\80λοÏ\8dÏ\82 Î»Î¿Î³Î±Ï\81ιαÏ\83μοÏ\8dÏ\82.\nÎ\9bÏ\8cγÏ\89 Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 Î±Î»Î»Î±Î³Î®Ï\82, Ï\8cλα Ï\84α Î±Ï\81Ï\87εία Ï\80οÏ\85 Î¼ÎµÏ\84αÏ\86οÏ\81Ï\84Ï\8eθηκαν Î¼Îµ Ï\80Ï\81οηγοÏ\8dμενεÏ\82 ÎµÎºÎ´Ï\8cÏ\83ειÏ\82 Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 ÎµÏ\86αÏ\81μογήÏ\82 Î±Î½Ï\84ιγÏ\81άÏ\86ηκαν Ï\83Ï\84ον Ï\86άκελο %2$s. Î©Ï\83Ï\84Ï\8cÏ\83ο, Î­Î½Î± Ï\83Ï\86άλμα ÎµÎ¼Ï\80Ï\8cδιÏ\83ε Ï\84ην Î¿Î»Î¿ÎºÎ»Î®Ï\81Ï\89Ï\83η Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 ÎµÏ\81γαÏ\83ίαÏ\82 ÎºÎ±Ï\84ά Ï\84ο Ï\83Ï\85γÏ\87Ï\81ονιÏ\83μÏ\8c Ï\84οÏ\85 Î»Î¿Î³Î±Ï\81ιαÏ\83μοÏ\8d. Î\9cÏ\80οÏ\81είÏ\84ε ÎµÎ¯Ï\84ε Î½Î± Î±Ï\86ήÏ\83εÏ\84ε Ï\84α Î±Ï\81Ï\87εία Ï\8cÏ\80Ï\89Ï\82 ÎµÎ¯Î½Î±Î¹ ÎºÎ±Î¹ Î½Î± ÎºÎ±Ï\84αÏ\81γήÏ\83εÏ\84ε Ï\84η Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84ο %3$s Î® Î½Î± Î¼ÎµÏ\84ακινήÏ\83εÏ\84ε Ï\84α Î±Ï\81Ï\87εία Ï\83Ï\84ον ÎºÎ±Ï\84άλογο %1$s ÎºÎ±Î¹ Î½Î± Î´Î¹Î±Ï\84ηÏ\81ήÏ\83εÏ\84ε Ï\84η Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84ο %4$s.\n\nÎ\91Ï\80αÏ\81ιθμημένα Ï\80ιο ÎºÎ¬Ï\84Ï\89 ÎµÎ¯Î½Î±Î¹ Ï\84ο/Ï\84α Ï\84οÏ\80ικÏ\8c/ά Î±Ï\81Ï\87είο/α ÎºÎ±Î¹ Ï\84ο/Ï\84α Î±Ï\80ομακÏ\81Ï\85Ï\83μένο/α Î±Ï\81Ï\87είο/α Ï\83Ï\84ο %5$s Î¼Îµ Ï\84ο/Ï\84α Î¿Ï\80οίο/α συνδέονταν.</string>
+  <string name="sync_foreign_files_forgotten_content">%1$d Î±Ï\81Ï\87εία Î±Ï\80Ï\8c Ï\84ον %2$s Ï\87Ï\8eÏ\81ο Î±Ï\80οθήκεÏ\85Ï\83ηÏ\82 Î´ÎµÎ½ Î®Ï\84αν δυνατό να αντιγραφούν σε</string>
+  <string name="sync_foreign_files_forgotten_explanation">Î\91Ï\80Ï\8c Ï\84ην Î­ÎºÎ´Î¿Ï\83η 1.3.16 ÎºÎ±Î¹ Î¼ÎµÏ\84ά, Î±Ï\81Ï\87εία Ï\80οÏ\85 Î¼ÎµÏ\84αÏ\86οÏ\81Ï\84Ï\8eνονÏ\84αι Î±Ï\80Ï\8c Î±Ï\85Ï\84ήν Ï\84η Ï\83Ï\85Ï\83κεÏ\85ή Î±Î½Ï\84ιγÏ\81άÏ\86ονÏ\84αι Ï\83Ï\84ον Ï\84οÏ\80ικÏ\8c Ï\86άκελο %1$s Î³Î¹Î± Î½Î± Î±Ï\80οÏ\84Ï\81αÏ\80εί Î· Î±Ï\80Ï\8eλεια Î´ÎµÎ´Î¿Î¼Î­Î½Ï\89ν Ï\8cÏ\84αν Î­Î½Î± Î±Ï\81Ï\87είο ÎµÎ¯Î½Î±Î¹ Ï\83Ï\85γÏ\87Ï\81ονιÏ\83μένο Î¼Îµ Ï\80ολλαÏ\80λοÏ\8dÏ\82 Î»Î¿Î³Î±Ï\81ιαÏ\83μοÏ\8dÏ\82.\nÎ\9bÏ\8cγÏ\89 Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 Î±Î»Î»Î±Î³Î®Ï\82, Ï\8cλα Ï\84α Î±Ï\81Ï\87εία Ï\80οÏ\85 Î¼ÎµÏ\84αÏ\86οÏ\81Ï\84Ï\8eθηκαν Î¼Îµ Ï\80Ï\81οηγοÏ\8dμενεÏ\82 ÎµÎºÎ´Ï\8cÏ\83ειÏ\82 Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 ÎµÏ\86αÏ\81μογήÏ\82 Î±Î½Ï\84ιγÏ\81άÏ\86ηκαν Ï\83Ï\84ον Ï\86άκελο %2$s. Î©Ï\83Ï\84Ï\8cÏ\83ο, Î­Î½Î± Ï\83Ï\86άλμα ÎµÎ¼Ï\80Ï\8cδιÏ\83ε Ï\84ην Î¿Î»Î¿ÎºÎ»Î®Ï\81Ï\89Ï\83η Î±Ï\85Ï\84ήÏ\82 Ï\84ηÏ\82 ÎµÏ\81γαÏ\83ίαÏ\82 ÎºÎ±Ï\84ά Ï\84ο Ï\83Ï\85γÏ\87Ï\81ονιÏ\83μÏ\8c Ï\84οÏ\85 Î»Î¿Î³Î±Ï\81ιαÏ\83μοÏ\8d. Î\9cÏ\80οÏ\81είÏ\84ε ÎµÎ¯Ï\84ε Î½Î± Î±Ï\86ήÏ\83εÏ\84ε Ï\84ο(α) Î±Ï\81Ï\87είο(α) Ï\8cÏ\80Ï\89Ï\82 ÎµÎ¯Î½Î±Î¹ ÎºÎ±Î¹ Î½Î± ÎºÎ±Ï\84αÏ\81γήÏ\83εÏ\84ε Ï\84η Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84ο %3$s Î® Î½Î± Î¼ÎµÏ\84ακινήÏ\83εÏ\84ε Ï\84α Î±Ï\81Ï\87εία Ï\83Ï\84ο Ï\86άκελο %1$s ÎºÎ±Î¹ Î½Î± Î´Î¹Î±Ï\84ηÏ\81ήÏ\83εÏ\84ε Ï\84η Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84ο %4$s.\n\nÎ\91Ï\80αÏ\81ιθμημένα Ï\80ιο ÎºÎ¬Ï\84Ï\89 ÎµÎ¯Î½Î±Î¹ Ï\84ο(α) Ï\84οÏ\80ικÏ\8c(ά) Î±Ï\81Ï\87είο(α) ÎºÎ±Î¹ Ï\84ο(α) Î±Ï\80ομακÏ\81Ï\85Ï\83μένο(α) Î±Ï\81Ï\87είο(α) Ï\83Ï\84ο %5$s Î¼Îµ Ï\84ο(α) Î¿Ï\80οίο(α) συνδέονταν.</string>
   <string name="sync_current_folder_was_removed">Ο φάκελος %1$s δεν υπάρχει πια</string>
-  <string name="foreign_files_move">Î\9cεÏ\84ακινηÏ\83η Î¿λων</string>
-  <string name="foreign_files_success">Î\9fλα Ï\84α Î±Ï\81Ï\87εια Î¼ÎµÏ\84ακινηθηκαν</string>
-  <string name="foreign_files_fail">Î\9cεÏ\81ικα Î±Ï\81Ï\87εια Î´ÎµÎ½ Î¼Ï\80οÏ\81εÏ\83αν Î½Î± Î¼ÎµÏ\84ακινηθοÏ\85ν</string>
-  <string name="foreign_files_local_text">ΤοÏ\80ικα: %1$s</string>
-  <string name="foreign_files_remote_text">Remote: %1$s</string>
-  <string name="upload_query_move_foreign_files">Î\94εν Ï\85Ï\80αÏ\81Ï\87ει Î±Ï\81κεÏ\84οÏ\82 Ï\87Ï\89Ï\81οÏ\82 Î³Î¹Î± Î½Î± Î±Î½Ï\84ιγÏ\81αÏ\86θοÏ\85ν Ï\84α ÎµÏ\80ιλεγμενα Î±Ï\81Ï\87εια Ï\83Ï\84ον Ï\87Ï\89Ï\81ο Î±Ï\80οθηκεÏ\85Ï\83ηÏ\82  %1$s. Î\98ελεÏ\84ε Î½Î± Î¼ÎµÏ\84ακινηθοÏ\85ν Î¼ÎµÏ\81ικα?</string>
-  <string name="pincode_enter_pin_code">Παρακαλώ, εισάγετε το PIN σας</string>
+  <string name="foreign_files_move">Î\9cεÏ\84ακίνηÏ\83η Ï\8cλων</string>
+  <string name="foreign_files_success">Î\8cλα Ï\84α Î±Ï\81Ï\87εία Î¼ÎµÏ\84ακινήθηκαν</string>
+  <string name="foreign_files_fail">Î\9cεÏ\81ικά Î±Ï\81Ï\87εία Î´ÎµÎ½ Î¼Ï\80Ï\8cÏ\81εÏ\83αν Î½Î± Î¼ÎµÏ\84ακινηθοÏ\8dν</string>
+  <string name="foreign_files_local_text">ΤοÏ\80ικά: %1$s</string>
+  <string name="foreign_files_remote_text">Απομακρυσμένα: %1$s</string>
+  <string name="upload_query_move_foreign_files">Î\94εν Ï\85Ï\80άÏ\81Ï\87ει Î±Ï\81κεÏ\84Ï\8cÏ\82 Î´Î¹Î±Î¸Î­Ï\83ιμοÏ\82 Î±Ï\80οθηκεÏ\85Ï\84ικÏ\8cÏ\82 Ï\87Ï\8eÏ\81οÏ\82 Î³Î¹Î± Î½Î± Î±Î½Ï\84ιγÏ\81αÏ\86οÏ\8dν Ï\84α ÎµÏ\80ιλεγμένα Î±Ï\81Ï\87εία Ï\83Ï\84ον Ï\86άκελο %1$s. Î\98α Î¸Î­Î»Î±Ï\84ε Î½Î± Ï\84α Î¼ÎµÏ\84ακινήÏ\83εÏ\84ε Î±Î½Ï\84ί Î±Ï\85Ï\84οÏ\8d;</string>
+  <string name="pincode_enter_pin_code">Παρακαλώ, εισάγετε το PIN εφαρμογής σας</string>
   <string name="pincode_configure_your_pin">Εισάγετε το PIN της εφαρμογής</string>
-  <string name="pincode_configure_your_pin_explanation">Το PIN Î¸Î± Î¶Î·Ï\84είÏ\84αι ÎºÎ¬Î¸Îµ Ï\86οÏ\81ά Ï\83Ï\84ην ÎµÎºÎºÎ¯Î½Î·Ï\83η </string>
-  <string name="pincode_reenter_your_pincode">ΠαÏ\81ακαλÏ\8e ÎµÏ\80αναειÏ\83άγεÏ\84ε Ï\84ο PIN Ï\84ηÏ\82 ÎµÏ\86αÏ\81μογήÏ\82</string>
+  <string name="pincode_configure_your_pin_explanation">Το PIN Î¸Î± Î¶Î·Ï\84είÏ\84αι ÎºÎ¬Î¸Îµ Ï\86οÏ\81ά Ï\80οÏ\85 ÎµÎºÎºÎ¹Î½ÎµÎ¯Ï\84αι Î· ÎµÏ\86αÏ\81μογή</string>
+  <string name="pincode_reenter_your_pincode">Παρακαλώ επανεισάγετε το PIN της εφαρμογής</string>
   <string name="pincode_remove_your_pincode">Αφαιρέστε τον PIN της εφαρμογής</string>
   <string name="pincode_mismatch">Δεν ταιριάζουν τα PIN της εφαρμογής </string>
   <string name="pincode_wrong">Εσφαλμένο PIN της εφαρμογής</string>
   <string name="media_err_not_in_owncloud">Το αρχείο δεν βρίσκεται σε έγκυρο λογαριασμό</string>
   <string name="media_err_unsupported">Αυτή η μορφή κωδικοποιήσης πολυμέσων δεν υποστηρίζεται</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_unknown">Το αρχείο πολυμέσων δεν μπορεί να αναπαραχθεί με την παρεχόμενη εφαρμογή αναπαραγωγής πολυμέσων</string>
   <string name="media_err_security_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_play_pause_description">Κουμπί αναπαραγωγής ή παύσης</string>
   <string name="media_forward_description">Κουμπί προώθησης</string>
-  <string name="auth_getting_authorization">Î\9bήÏ\88η Ï\80ιÏ\83Ï\84οÏ\80οιηÏ\84ικοÏ\8d...</string>
+  <string name="auth_getting_authorization">Î\9bήÏ\88η Ï\80ιÏ\83Ï\84οÏ\80οίηÏ\83ηÏ\82...</string>
   <string name="auth_trying_to_login">Προσπάθεια σύνδεσης...</string>
   <string name="auth_no_net_conn_title">Δεν υπάρχει σύνδεση στο δίκτυο</string>
   <string name="auth_nossl_plain_ok_title">Μη διαθέσιμη ασφαλής σύνδεση.</string>
   <string name="auth_connection_established">Επετεύχθη σύνδεση</string>
   <string name="auth_testing_connection">Έλεγχος σύνδεσης...</string>
-  <string name="auth_not_configured_title">Λανθασμένες ρυθμίσεις </string>
+  <string name="auth_not_configured_title">Λανθασμένες ρυθμίσεις διακομιστή</string>
   <string name="auth_account_not_new">Ένας λογαριασμός για τον ίδιο χρήστη και διακομιστή υπάρχει ήδη στη συσκευή</string>
   <string name="auth_account_not_the_same">Ο χρήστης που εισάγατε δεν ταιριάζει με το χρήστη αυτού του λογαριασμού</string>
-  <string name="auth_unknown_error_title">Παρουσιάστηκε άγνωστο σφάλμα</string>
-  <string name="auth_unknown_host_title">Δεν βρέθηκε υπολογιστής</string>
-  <string name="auth_incorrect_path_title">Δεν βρέθηκε παρουσία του εξυπηρετητή σας</string>
-  <string name="auth_timeout_title">Î\9f ÎµÎ¾Ï\85Ï\80ηÏ\81εÏ\84ητής αργεί πολύ να απαντήσει</string>
+  <string name="auth_unknown_error_title">Παρουσιάστηκε άγνωστο σφάλμα!</string>
+  <string name="auth_unknown_host_title">Δεν βρέθηκε κόμβος</string>
+  <string name="auth_incorrect_path_title">Δεν βρέθηκε εγκατεστημένος διακομιστής</string>
+  <string name="auth_timeout_title">Î\9f Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83τής αργεί πολύ να απαντήσει</string>
   <string name="auth_incorrect_address_title">Κακώς διατυπωμένο URL</string>
   <string name="auth_ssl_general_error_title">Η αρχικοποίηση του SLL απέτυχε</string>
-  <string name="auth_ssl_unverified_server_title">Αδυναμία επιβεβαίωσης την ταυτότητα SSL του διακομιστή</string>
-  <string name="auth_bad_oc_version_title">Μη αναγνωρίσιμη έκδοση διακομιστή server σας</string>
+  <string name="auth_ssl_unverified_server_title">Αδυναμία επιβεβαίωσης της ταυτότητας του διακομιστή SSL </string>
+  <string name="auth_bad_oc_version_title">Μη-αναγνωρίσιμη έκδοση διακομιστή</string>
   <string name="auth_wrong_connection_title">Δεν ήταν δυνατή η σύνδεση</string>
   <string name="auth_secure_connection">Επιτεύχθηκε ασφαλής σύνδεση</string>
   <string name="auth_unauthorized">Λάθος όνομα χρήστη ή κωδικός</string>
   <string name="auth_oauth_error">Η πιστοποίηση απέτυχε</string>
   <string name="auth_oauth_error_access_denied">Ο διακομιστής πιστοποίησης αρνήθηκε την πρόσβαση</string>
   <string name="auth_wtf_reenter_URL">Απρόοπτη κατάσταση - παρακαλώ εισάγετε τη διεύθυνση URL του διακομιστή ξανά</string>
-  <string name="auth_expired_oauth_token_toast">Η εξουσιοδότησή σας έληξε. Παρακαλώ εξουσιοδοτείστε ξανά</string>
-  <string name="auth_expired_basic_auth_toast">ΠαÏ\81ακαλÏ\8e ÎµÎ¯Ï\83άγεÏ\84ε Ï\84ον Ï\84Ï\81έÏ\87ονÏ\84α ÎºÏ\89δικÏ\8c</string>
+  <string name="auth_expired_oauth_token_toast">Η πιστοποιίησή σας έληξε. Παρακαλώ πιστοποιήστε ξανά</string>
+  <string name="auth_expired_basic_auth_toast">ΠαÏ\81ακαλÏ\8e ÎµÎ¹Ï\83άγεÏ\84ε Ï\84ον Ï\84Ï\81έÏ\87ονÏ\84α ÎºÏ\89δικÏ\8c Ï\80Ï\81Ï\8cÏ\83βαÏ\83ηÏ\82</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">Ο διακομιστής σας δεν επιστρέφει το σωστό χαρακτηριστικό χρήστη, παρακαλώ επικοινωνήστε με έναν διαχειριστή\n</string>
-  <string name="auth_can_not_auth_against_server">Δεν είναι δυνατός ο έλεγχος ταυτότητας με αυτόν τον διακομιστή</string>
+  <string name="auth_fail_get_user_name">Ο διακομιστής σας δεν επιστρέφει το σωστό αναγνωριστικό χρήστη, παρακαλώ επικοινωνήστε με ένα διαχειριστή\n⇥</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">Î\94ιαγÏ\81αÏ\86ή</string>
-  <string name="confirmation_remove_alert">Θέλετε να αφαιρέσετε το  %1$s ;</string>
-  <string name="confirmation_remove_folder_alert">Θέλετε να διαγράψετε το %1$s και τα περιεχόμενά του;</string>
+  <string name="common_remove">Î\91Ï\86αίÏ\81εÏ\83η</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_folder_local">Μόνο τοπικοί φάκελοι</string>
-  <string name="confirmation_remove_remote">Î\94ιαγÏ\81αÏ\86ή Î±Ï\80Ï\8c Ï\84ον ÎµÎ¾Ï\85Ï\80ηÏ\81έÏ\84η</string>
-  <string name="confirmation_remove_remote_and_local">Î\9aαι Î±πομακρυσμένα και τοπικά</string>
-  <string name="remove_success_msg">Î\94ιαγÏ\81αÏ\86ή ÎµÏ\80ιÏ\84Ï\85Ï\87ές</string>
-  <string name="remove_fail_msg">Î\97 Î´Î¹Î±Î³Ï\81αÏ\86ή απέτυχε</string>
+  <string name="confirmation_remove_folder_local">Μόνο τοπικό περιεχόμενο</string>
+  <string name="confirmation_remove_remote">Î\91Ï\86αίÏ\81εÏ\83η Î±Ï\80Ï\8c Ï\84ο Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83Ï\84ή</string>
+  <string name="confirmation_remove_remote_and_local">Î\91πομακρυσμένα και τοπικά</string>
+  <string name="remove_success_msg">Î\91Ï\86αίÏ\81εÏ\83η ÎµÏ\80ιÏ\84Ï\85Ï\87ής</string>
+  <string name="remove_fail_msg">Î\97 Î±Ï\86αίÏ\81εÏ\83η απέτυχε</string>
   <string name="rename_dialog_title">Εισάγετε νέο όνομα</string>
-  <string name="rename_local_fail_msg">Το Ï\84οÏ\80ικÏ\8c Î±Î½Ï\84ίγÏ\81αÏ\86ο Î´ÎµÎ½ Î®Ï\84αν Î´Ï\85ναÏ\84Ï\8cν Î½Î± Î¼ÎµÏ\84ονομαÏ\83Ï\84εί. Î Î±Ï\81ακαλÏ\8e ÎµÏ\80ιλέξÏ\84ε Î½Î­Î¿ Ï\8cνομα. </string>
+  <string name="rename_local_fail_msg">Το Ï\84οÏ\80ικÏ\8c Î±Î½Ï\84ίγÏ\81αÏ\86ο Î´ÎµÎ½ Î®Ï\84αν Î´Ï\85ναÏ\84Ï\8cν Î½Î± Î¼ÎµÏ\84ονομαÏ\83Ï\84εί. Î Î±Ï\81ακαλÏ\8e ÎµÏ\80ιλέξÏ\84ε Î­Î½Î± Î´Î¹Î±Ï\86οÏ\81εÏ\84ικÏ\8c Ï\8cνομα.</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="create_dir_fail_msg">Î\94ημιουργία φακέλου απέτυχε</string>
+  <string name="create_dir_fail_msg">Î\97 Î´ημιουργία φακέλου απέτυχε</string>
   <string name="filename_forbidden_characters">Μη-επιτρεπόμενοι χαρακτήρες: / \\ &lt; &gt; : \" | ? *</string>
   <string name="filename_empty">Το όνομα αρχείου δεν μπορεί να είναι κενό.</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="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_reason_cert_not_trusted">- Î¤Î¿ Ï\80ιÏ\83Ï\84οÏ\80οιηÏ\84ικÏ\8c Ï\84οÏ\85 Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83Ï\84ή Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î±Î¾Î¹Ï\8cπιστο</string>
+  <string name="ssl_validator_header">Η ταυτότητα της σελίδας δεν μπορεί να επληθευτεί</string>
+  <string name="ssl_validator_reason_cert_not_trusted">- Î¤Î¿ Ï\80ιÏ\83Ï\84οÏ\80οιηÏ\84ικÏ\8c Ï\84οÏ\85 Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83Ï\84ή Î´ÎµÎ½ ÎµÎ¯Î½Î±Î¹ Î­Î¼πιστο</string>
   <string name="ssl_validator_reason_cert_expired">- Το πιστοποιητικό του διακομιστή έχει λήξει</string>
   <string name="ssl_validator_reason_cert_not_yet_valid">- Το πιστοποιητικό του διακομιστή είναι πολύ νέο</string>
-  <string name="ssl_validator_reason_hostname_not_verified">- Η διεύθυνση URL δεν ταιριάζει με το όνομα στο πιστοποιητικό</string>
-  <string name="ssl_validator_question">Θέλετε να θεωρείται έμπιστο το πιστοποιητικό αυτό ούτως ή άλλως;</string>
+  <string name="ssl_validator_reason_hostname_not_verified">- Î\97 Î´Î¹ÎµÏ\8dθÏ\85νÏ\83η URL Î´ÎµÎ½ Ï\84αιÏ\81ιάζει Î¼Îµ Ï\84ο Ï\8cνομα Ï\84οÏ\85 ÎºÏ\8cμβοÏ\85 Ï\83Ï\84ο Ï\80ιÏ\83Ï\84οÏ\80οιηÏ\84ικÏ\8c</string>
+  <string name="ssl_validator_question">Θέλετε να θεωρείται έμπιστο το πιστοποιητικό αυτό παρ\' όλα αυτά;</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_label_subject">Εκδόθηκε σε:</string>
+  <string name="ssl_validator_label_subject">Εκδόθηκε για:</string>
   <string name="ssl_validator_label_issuer">Εκδόθηκε από:</string>
   <string name="ssl_validator_label_CN">Κοινό όνομα:</string>
   <string name="ssl_validator_label_O">Οργανισμός:</string>
   <string name="ssl_validator_label_OU">Μονάδα Οργανισμού:</string>
   <string name="ssl_validator_label_C">Χώρα:</string>
-  <string name="ssl_validator_label_ST">Πολιτεία</string>
+  <string name="ssl_validator_label_ST">Πολιτεία:</string>
   <string name="ssl_validator_label_L">Τοποθεσία:</string>
-  <string name="ssl_validator_label_validity">Î\95γκÏ\85Ï\81Ï\8cÏ\84ηÏ\84α:</string>
+  <string name="ssl_validator_label_validity">ΠεÏ\81ίοδοÏ\82 Î¹Ï\83Ï\87Ï\8dοÏ\82:</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_algorithm">Αλγόριθμος:</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">- Î\9aαμμία Ï\80ληÏ\81οÏ\86οÏ\81ία Ï\83Ï\87εÏ\84ικά Î¼Îµ Ï\84ο Ï\83Ï\86άλμα</string>
   <string name="placeholder_sentence">Αυτό είναι ένα σημείο κράτησης θέσης</string>
   <string name="placeholder_filename">placeholder.txt</string>
   <string name="placeholder_filetype">Εικόνα PNG</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_video_upload_on_wifi">Î\91Ï\80οÏ\83Ï\84ολή βίντεο μόνο μέσω WiFi</string>
+  <string name="instant_video_upload_on_wifi">Î\9cεÏ\84αÏ\86Ï\8cÏ\81Ï\84Ï\89Ï\83η βίντεο μόνο μέσω WiFi</string>
   <string name="instant_upload_path">/InstantUpload</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_overwrite">Αντικατάσταση</string>
   <string name="conflict_dont_upload">Να μην μεταφορτωθεί</string>
   <string name="preview_image_description">Προεπισκόπηση εικόνας</string>
-  <string name="preview_image_error_unknown_format">Î\91Ï\85Ï\84ή Î· ÎµÎ¹ÎºÏ\8cνε Î´ÎµÎ½ Î¼Ï\80Ï\8cÏ\81εÏ\83ε να προβληθεί</string>
-  <string name="error__upload__local_file_not_copied">%1$s δεν μπόρεσε να αντιγραφεί %2$s στον τοπικό φάκελο</string>
-  <string name="actionbar_failed_instant_upload">Αποτυχημένη στιγμιαία φόρτωση</string>
-  <string name="failed_upload_headline_text">Αποτυχημένες στιγμιαίες φορτώσεις</string>
-  <string name="failed_upload_headline_hint">Σύνοψη όλων των αποτυχημένων φορτώσεων</string>
+  <string name="preview_image_error_unknown_format">Î\91Ï\85Ï\84ή Î· ÎµÎ¹ÎºÏ\8cνα Î´ÎµÎ½ Î¼Ï\80οÏ\81εί να προβληθεί</string>
+  <string name="error__upload__local_file_not_copied">Το %1$s δεν μπόρεσε να αντιγραφεί στον τοπικό φάκελο %2$s</string>
+  <string name="actionbar_failed_instant_upload">Αποτυχημένη Στιγμιαία Μεταφόρτωση</string>
+  <string name="failed_upload_headline_text">Αποτυχημένες στιγμιαίες μεταφορτώσεις</string>
+  <string name="failed_upload_headline_hint">Σύνοψη όλων των αποτυχημένων μεταφορτώσεων</string>
   <string name="failed_upload_all_cb">επιλογή όλων</string>
   <string name="failed_upload_headline_retryall_btn">επανάληψη για όλα τα επιλεγμένα</string>
   <string name="failed_upload_headline_delete_all_btn">διαγραφή όλων των επιλεγμένων από τη λίστα προς μεταφόρτωση</string>
   <string name="failed_upload_retry_text">επανάληψη προσπάθειας μεταφόρτωσης της εικόνας:</string>
-  <string name="failed_upload_load_more_images">ΦÏ\8cÏ\81Ï\84Ï\89Ï\83η Ï\80εÏ\81ιÏ\83Ï\83Ï\8cÏ\84εÏ\81Ï\89ν Îµικόνων</string>
+  <string name="failed_upload_load_more_images">ΦÏ\8cÏ\81Ï\84Ï\89Ï\83η Ï\80εÏ\81ιÏ\83Ï\83Ï\8cÏ\84εÏ\81Ï\89ν Î\95ικόνων</string>
   <string name="failed_upload_retry_do_nothing_text">μην κάνετε τίποτε, δεν είστε συνδεμένος για άμεση μεταφόρτωση</string>
   <string name="failed_upload_failure_text">Μήνυμα Αποτυχίας:</string>
-  <string name="failed_upload_quota_exceeded_text">ΠαÏ\81ακαλÏ\8e ÎµÎ»Î­Î³Î¾Ï\84ε Ï\84ιÏ\82 Ï\81Ï\85θμίÏ\83ειÏ\82 Ï\84οÏ\85 Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83Ï\84ή Ï\83αÏ\82, Î¯Ï\83Ï\89Ï\82 Î­Ï\87εÏ\84ε Ï\85Ï\80εÏ\81βεί Ï\84η Î´Î¹Î±Î¸Î­Ï\83ιμη Î¼ÎµÏ\81ίδα σας.</string>
-  <string name="share_link_no_support_share_api">Λυπούμαστε, ο διαμοιρασμός δεν επιτρέπεται στον διακομιστή σας. Παρακαλούμε επικοινωνείστε με τον \n\t\tδιαχειριστή σας.</string>
+  <string name="failed_upload_quota_exceeded_text">ΠαÏ\81ακαλÏ\8e ÎµÎ»Î­Î³Î¾Ï\84ε Ï\84ιÏ\82 Ï\81Ï\85θμίÏ\83ειÏ\82 Ï\84οÏ\85 Î´Î¹Î±ÎºÎ¿Î¼Î¹Ï\83Ï\84ή Ï\83αÏ\82, Î¯Ï\83Ï\89Ï\82 Î­Ï\87εÏ\84ε Ï\85Ï\80εÏ\81βεί Ï\84ο Î´Î¹Î±Î¸Î­Ï\83ιμο Î¼ÎµÏ\81ίδιÏ\8c σας.</string>
+  <string name="share_link_no_support_share_api">Λυπούμαστε, ο διαμοιρασμός δεν επιτρέπεται στο διακομιστή σας. Παρακαλούμε επικοινωνείστε με το\n\t\tδιαχειριστή σας.</string>
   <string name="share_link_file_no_exist">Αδυναμία διαμοιρασμού αυτού του αρχείου ή φακέλου. Παρακαλώ βεβαιωθείτε ότι υπάρχει</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="activity_chooser_send_file_title">Αποστολή</string>
   <string name="copy_link">Αντιγραφή συνδέσμου</string>
-  <string name="clipboard_text_copied">Αντιγραφθηκε στο clipboard</string>
+  <string name="clipboard_text_copied">Αντιγραφθηκε στο πρόχειρο</string>
   <string name="error_cant_bind_to_operations_service">Κρίσιμο σφάλμα: αδύνατη η εκτέλεση λειτουργειών</string>
-  <string name="network_error_socket_exception">ΣÏ\85νέβη Ï\83Ï\86άλμα ÎºÎ±Ï\84ά Ï\84ην Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84ον διακομιστή.</string>
-  <string name="network_error_socket_timeout_exception">ΣÏ\85νέβη Ï\83Ï\86άλμα ÎºÎ±Ï\84ά Ï\84ην Î±Î½Î±Î¼Î¿Î½Î® Î³Î¹Î± Ï\84ον διακομιστή, η λειτουργία δεν ήταν επιτυχής</string>
-  <string name="network_error_connect_timeout_exception">ΣÏ\85νέβη Ï\83Ï\86άλμα ÎºÎ±Ï\84ά Ï\84ην Î±Î½Î±Î¼Î¿Î½Î® Î³Î¹Î± Ï\84ον διακομιστή, η λειτουργία δεν ήταν επιτυχής</string>
+  <string name="network_error_socket_exception">Î\88να Ï\83Ï\86άλμα Ï\80Ï\81οέκÏ\85Ï\88ε ÎºÎ±Ï\84ά Ï\84η Ï\83Ï\8dνδεÏ\83η Î¼Îµ Ï\84ο διακομιστή.</string>
+  <string name="network_error_socket_timeout_exception">Î\88να Ï\83Ï\86άλμα Ï\80Ï\81οέκÏ\85Ï\88ε ÎºÎ±Ï\84ά Ï\84ην Î±Î½Î±Î¼Î¿Î½Î® Î³Î¹Î± Ï\84ο διακομιστή, η λειτουργία δεν ήταν επιτυχής</string>
+  <string name="network_error_connect_timeout_exception">Î\88να Ï\83Ï\86άλμα Ï\80Ï\81οέκÏ\85Ï\88ε ÎºÎ±Ï\84ά Ï\84ην Î±Î½Î±Î¼Î¿Î½Î® Î³Î¹Î± Ï\84ο διακομιστή, η λειτουργία δεν ήταν επιτυχής</string>
   <string name="network_host_not_available">Η λειτουργία δεν ήταν δυνατό να ολοκληρωθεί, ο διακομιστής δεν είναι διαθέσιμος</string>
 </resources>
index 1b3138d..e05cd36 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Download failed, you need to login again</string>
   <string name="common_choose_account">Choose account</string>
   <string name="sync_fail_ticker">Synchronisation failed</string>
+  <string name="sync_fail_ticker_unauthorized">Synchronisation failed, you need to relogin</string>
   <string name="sync_fail_content">Synchronisation of %1$s could not be completed</string>
   <string name="sync_fail_content_unauthorized">Invalid password for %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Conflicts found</string>
index b5a99ac..ccd8faf 100644 (file)
@@ -1,8 +1,11 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
+  <string name="about_android">Android-aplikaĵo %1$s</string>
+  <string name="about_version">eldono %1$s</string>
   <string name="actionbar_upload">Alŝuti dosieron</string>
   <string name="actionbar_upload_from_apps">Enhavo el aliaj aplikaĵoj</string>
   <string name="actionbar_upload_files">Dosieroj</string>
+  <string name="actionbar_open_with">Malfermi per</string>
   <string name="actionbar_mkdir">Nova dosierujo</string>
   <string name="actionbar_settings">Agordo</string>
   <string name="actionbar_see_details">Detaloj</string>
   <string name="prefs_pincode">PIN de App-aplikaĵo</string>
   <string name="prefs_pincode_summary">Protekti vian klienton</string>
   <string name="prefs_help">Helpo</string>
+  <string name="prefs_recommend">Rekomendi al amiko</string>
+  <string name="auth_check_server">Kontroli servilon</string>
+  <string name="auth_host_url">Servila adreso https://...</string>
   <string name="auth_username">Uzantonomo</string>
   <string name="auth_password">Pasvorto</string>
   <string name="sync_string_files">Dosieroj</string>
   <string name="setup_btn_connect">Konekti</string>
   <string name="uploader_btn_upload_text">Alŝuti</string>
+  <string name="uploader_top_message">Elektu alŝutan dosierujon:</string>
   <string name="uploader_wrn_no_account_title">Neniu konto troviĝis</string>
   <string name="uploader_wrn_no_account_text">Estas neniu $1%s-konto en via aparato. Bonvolu agordi konton unue.</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Agordi</string>
@@ -35,6 +42,7 @@
   <string name="filedetails_download">Elŝuti</string>
   <string name="filedetails_renamed_in_upload_msg">La dosiero alinomiĝis al %1$s dum alŝuto</string>
   <string name="action_share_file">Konhavigi ligilon</string>
+  <string name="action_unshare_file">Malkunhavigi ligilon</string>
   <string name="common_yes">Jes</string>
   <string name="common_no">Ne</string>
   <string name="common_ok">Akcepti</string>
@@ -43,6 +51,7 @@
   <string name="common_cancel">Nuligi</string>
   <string name="common_save_exit">Konservi kaj forlasi</string>
   <string name="common_error">Eraro</string>
+  <string name="common_loading">Ŝargante...</string>
   <string name="common_error_unknown">Nekonata eraro</string>
   <string name="about_title">Pri</string>
   <string name="change_password">Ŝanĝi la pasvorton</string>
   <string name="uploader_upload_succeeded_content_single">%1$s sukcese alŝutiĝis</string>
   <string name="uploader_upload_failed_ticker">Alŝuto malsukcesis</string>
   <string name="uploader_upload_failed_content_single">Alŝuto de %1s ne eblis plenumiĝi</string>
+  <string name="uploader_upload_failed_credentials_error">Alŝuto malsukcesis, vi devas reensaluti</string>
   <string name="downloader_download_in_progress_ticker">Elŝutante...</string>
   <string name="downloader_download_in_progress_content">%1$d%% Elŝutante %2$s</string>
   <string name="downloader_download_succeeded_ticker">Elŝuto sukcesis</string>
   <string name="downloader_download_succeeded_content">%1$s sukcese elŝutiĝis</string>
   <string name="downloader_download_failed_ticker">Elŝuto malsukcesis</string>
   <string name="downloader_download_failed_content">Elŝuto de %1$s ne eblis plenumiĝi</string>
+  <string name="downloader_not_downloaded_yet">Ankoraŭ ne elŝutita</string>
+  <string name="downloader_download_failed_credentials_error">Elŝuto malsukcesis, vi devas reensaluti</string>
   <string name="common_choose_account">Elekti konton</string>
   <string name="sync_fail_ticker">Sinkronigo malsukcesis</string>
   <string name="sync_fail_content">Sinkronigo de %1$s ne povis plenumiĝi</string>
+  <string name="sync_fail_content_unauthorized">Nevalida pasvorto por %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Konfliktoj troviĝis</string>
   <string name="sync_conflicts_in_favourites_content">%1$d ade sinkronigataj dosieroj ne povis sinkroniĝi</string>
   <string name="sync_fail_in_favourites_ticker">Malsukcesis ada sinkronigo de dosieroj</string>
   <string name="sync_fail_in_favourites_content">Enhavoj de %1$d dosieroj ne povis sinkroniĝi (%2$d konfliktas)</string>
+  <string name="sync_foreign_files_forgotten_ticker">Iuj lokaj dosieroj forgesiĝis</string>
+  <string name="sync_current_folder_was_removed">La dosierujo %1$s ne plu ekzistas</string>
+  <string name="foreign_files_move">Movi ĉion</string>
+  <string name="foreign_files_success">Ĉiuj dosieroj moviĝis</string>
+  <string name="foreign_files_fail">Iuj dosieroj ne povis moviĝi</string>
+  <string name="foreign_files_local_text">Loka: %1$s</string>
+  <string name="foreign_files_remote_text">Malloka: %1$s</string>
   <string name="pincode_enter_pin_code">Bonvolu enigi vian PIN-on de aplikaĵo</string>
   <string name="pincode_configure_your_pin">Enigu PIN-on de aplikaĵo</string>
   <string name="pincode_reenter_your_pincode">Bonvolu reenigi PIN-on de aplikaĵo</string>
@@ -77,6 +97,9 @@
   <string name="pincode_wrong">Malĝusta PIN de aplikaĵo</string>
   <string name="pincode_removed">PIN de aplikaĵo foriĝis</string>
   <string name="pincode_stored">PIN de aplikaĵo konserviĝis</string>
+  <string name="media_state_playing">%1$s (ludanta)</string>
+  <string name="media_state_loading">%1$s (ŝarganta)</string>
+  <string name="auth_getting_authorization">Ekhavante rajtigon...</string>
   <string name="auth_trying_to_login">Provante ensaluti...</string>
   <string name="auth_no_net_conn_title">Neniu reta konekto</string>
   <string name="auth_nossl_plain_ok_title">Sekura konekto ne haveblas.</string>
   <string name="auth_bad_oc_version_title">Nerekonita eldono de servilo</string>
   <string name="auth_wrong_connection_title">Ne eblis starigi konekton</string>
   <string name="auth_secure_connection">Sekura konekto stariĝis</string>
+  <string name="auth_unauthorized">Malĝusta uzantonomo aŭ pasvorto</string>
+  <string name="auth_oauth_error">Malsukcesa rajtigo</string>
+  <string name="auth_expired_basic_auth_toast">Bonvolu enigi la nunan pasvorton</string>
+  <string name="auth_connecting_auth_server">Konektante al aŭtentiga servilo...</string>
+  <string name="auth_unsupported_auth_method">La servilo ne kongruas kun ĉi tiu aŭtentiga metodo</string>
   <string name="fd_keep_in_sync">Teni dosieron ĝisdatigita</string>
   <string name="common_rename">Alinomigi</string>
   <string name="common_remove">Forigi</string>
+  <string name="confirmation_remove_alert">Ĉu vi vere volas forigi %1$s?</string>
+  <string name="confirmation_remove_folder_alert">Ĉu vi vere volas forigi %1$s kaj ĝia enhavo?</string>
   <string name="confirmation_remove_local">Nur loka</string>
   <string name="confirmation_remove_folder_local">Nur lokaj enhavoj</string>
   <string name="confirmation_remove_remote">Forigi el la servilo</string>
   <string name="rename_server_fail_msg">Alinomigo ne povis plenumiĝi</string>
   <string name="sync_file_fail_msg">Malloka dosiero ne povis kontroliĝi</string>
   <string name="sync_file_nothing_to_do_msg">Dosierenhavoj jam sinkroniĝis</string>
+  <string name="filename_forbidden_characters">Malpermesataj signoj: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_empty">Dosieronomo ne povas malpleni</string>
   <string name="wait_a_moment">Atendu momenton</string>
   <string name="filedisplay_unexpected_bad_get_content">Neatendita problemo; bonvolu provi alian aplikaĵon por elekti la dosieron</string>
   <string name="filedisplay_no_file_selected">Neniu dosiero elektiĝis</string>
+  <string name="activity_chooser_title">Sendi ligilon al...</string>
+  <string name="oauth_check_onoff">Ensaluti per oAuth2</string>
+  <string name="oauth_login_connection">Konektante al oAuth2-servilo...</string>
   <string name="ssl_validator_header">La idento de la ejo ne povis kontroliĝi</string>
   <string name="ssl_validator_reason_cert_not_trusted">- La servila atestilo ne fidindas</string>
   <string name="ssl_validator_reason_cert_expired">- La servila atestilo eksvalidiĝis</string>
   <string name="ssl_validator_label_signature">Subskribo:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritmo:</string>
   <string name="placeholder_sentence">Ĉi tio estas lokokupilo</string>
+  <string name="placeholder_filetype">PNG-bildo</string>
+  <string name="placeholder_filesize">389 KB</string>
+  <string name="placeholder_media_time">12:23:45</string>
   <string name="instant_upload_on_wifi">Alŝuti bildojn nur per WiFi</string>
   <string name="conflict_title">Alŝuta konflikto</string>
   <string name="conflict_message">La malloka dosiero %s estas ne sinkronigita kun loka dosiero. Se la ago daŭrus, enhavo de la dosiero en la servilo anstataŭiĝus.</string>
   <string name="conflict_keep_both">Konservi ambaŭ</string>
   <string name="conflict_overwrite">Anstataŭigi</string>
   <string name="conflict_dont_upload">Ne alŝuti</string>
+  <string name="preview_image_description">Antaŭvido de bildo</string>
+  <string name="preview_image_error_unknown_format">Ĉi tiu bildo ne povas montriĝi</string>
+  <string name="error__upload__local_file_not_copied">%1$s ne povis kopiiĝi al la loka dosierujo %2$s</string>
+  <string name="failed_upload_all_cb">elekti ĉion</string>
+  <string name="failed_upload_failure_text">Mesaĝo de malsukceso:</string>
   <string name="activity_chooser_send_file_title">Sendi</string>
+  <string name="copy_link">Kopii ligilon</string>
   <string name="clipboard_text_copied">Kopiita en la tondejon</string>
+  <string name="network_error_socket_exception">Eraro okazis dum konekto al la servilo.</string>
 </resources>
index 4bb22be..6b80364 100644 (file)
@@ -97,7 +97,6 @@
   <string name="foreign_files_fail">Algunos archivos no pudieron ser movidos</string>
   <string name="foreign_files_local_text">Local: %1$s</string>
   <string name="foreign_files_remote_text">Remote: %1$s</string>
-  <string name="upload_query_move_foreign_files">No hay suficiente espacio para copiar los archivos seleccionados al directorio %1$s. Querés moverlos ahí?</string>
   <string name="pincode_enter_pin_code">Por favor, escribí el PIN de la aplicación</string>
   <string name="pincode_configure_your_pin">Ingresá el PIN de la aplicación</string>
   <string name="pincode_configure_your_pin_explanation">Se te pedirá el PIN cada vez que esta app sea iniciada.</string>
index 74b5fc8..341aa73 100644 (file)
@@ -79,7 +79,6 @@
   <string name="foreign_files_fail">algunos archivos no pueden ser transferidos</string>
   <string name="foreign_files_local_text">Local: %1$s</string>
   <string name="foreign_files_remote_text">Remoto: %1$s</string>
-  <string name="upload_query_move_foreign_files">No hay espacio suficiente para copiar los archivos seleccionados en la %1$s carpeta. Le gustaria que los trasladaran en su lugar?</string>
   <string name="pincode_enter_pin_code">Por favor, ingreses su PIN de aplicación</string>
   <string name="pincode_configure_your_pin">Ingrese su PIN de aplicación</string>
   <string name="pincode_configure_your_pin_explanation">El PIN será solicitado cada vez que la aplicación se inicie</string>
index 441c54c..d906888 100644 (file)
@@ -97,7 +97,6 @@
   <string name="foreign_files_fail">Algunos archivos no han podido ser movidos</string>
   <string name="foreign_files_local_text">Local: %1$s</string>
   <string name="foreign_files_remote_text">Remoto: %1$s</string>
-  <string name="upload_query_move_foreign_files">No hay suficiente espacio para copiar los archivos seleccionados en la carpeta %1$s. ¿Quiere moverlos en lugar de copiarlos?</string>
   <string name="pincode_enter_pin_code">Por favor, inserta tu PIN de aplicación</string>
   <string name="pincode_configure_your_pin">Introduzca un PIN para la aplicación</string>
   <string name="pincode_configure_your_pin_explanation">Se solicitará el PIN cada vez que se inicie la aplicación</string>
index f6d05d8..ea42c3b 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Descarga fallida, necesita reinicar la sesión</string>
   <string name="common_choose_account">Elige una cuenta</string>
   <string name="sync_fail_ticker">Falló la sincronización</string>
+  <string name="sync_fail_ticker_unauthorized">La sincronización falló, debe reiniciar la sesión</string>
   <string name="sync_fail_content">La sincronización de %1$s s no se pudo completar</string>
   <string name="sync_fail_content_unauthorized">Contraseña no válida para %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Se encontraron conflictos</string>
   <string name="foreign_files_fail">No se han podido mover algunos archivos</string>
   <string name="foreign_files_local_text">Local: %1$s</string>
   <string name="foreign_files_remote_text">Remoto: %1$s</string>
-  <string name="upload_query_move_foreign_files">No hay suficiente espacio para copiar los archivos seleccionados en la carpeta %1$s. ¿Quiere moverlos en lugar de copiarlos?</string>
+  <string name="upload_query_move_foreign_files">No hay suficiente espacio para copiar los archivos seleccionados a la carpeta %1$s. ¿Desea moverlos en vez de copiarlos?</string>
   <string name="pincode_enter_pin_code">Por favor, inserta tu PIN de aplicación</string>
   <string name="pincode_configure_your_pin">Introduzca un PIN para la aplicación</string>
   <string name="pincode_configure_your_pin_explanation">Se solicitará el PIN cada vez que se inicie la aplicación</string>
index 69f7e90..da787a6 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Allaladimine ebaõnnestus, sa pead uuesti sisse logima</string>
   <string name="common_choose_account">Vali konto</string>
   <string name="sync_fail_ticker">Sünkroniseerimine ebaõnnestus</string>
+  <string name="sync_fail_ticker_unauthorized">Sünkroniseering katkes, pead uuesti sisse logima</string>
   <string name="sync_fail_content">%1$s sünkroniseerimise lõpetamine ebaõnnestus</string>
   <string name="sync_fail_content_unauthorized">Vigane parool %1$s jaoks</string>
   <string name="sync_conflicts_in_favourites_ticker">Leite konflikte</string>
   <string name="foreign_files_fail">Mõningaid faile ei saa ümber tõsta</string>
   <string name="foreign_files_local_text">Kohalik: %1$s</string>
   <string name="foreign_files_remote_text">Serveris: %1$s</string>
-  <string name="upload_query_move_foreign_files">Pole piisavalt ruumi kopeerimaks valitud faile kataloogi %1$s. Soovid kopeerimise asemel neid ümber tõsta?</string>
+  <string name="upload_query_move_foreign_files">Pole piisavalt ruumi kopeerimaks valitud faile kataloogi %1$s. Kas soovid kopeerimise asemel neid ümber tõsta?</string>
   <string name="pincode_enter_pin_code">Palun sisesta oma rakenduse PIN</string>
   <string name="pincode_configure_your_pin">Sisesta oma rakenduse PIN</string>
   <string name="pincode_configure_your_pin_explanation">PIN-i nõutakse iga kord, kui rakendus käivitatakse</string>
   <string name="auth_unsupported_auth_method">See server ei toeta seda autentimise viisi</string>
   <string name="auth_unsupported_multiaccount">%1$s ei toeta mitme konto kasutamist</string>
   <string name="auth_fail_get_user_name">Server ei tagasta korrektset kasutaja ID-d. Palun kontakteeru administraatoriga.\n⇥</string>
+  <string name="auth_can_not_auth_against_server">Ei suuda autoriseerida selle serveriga.</string>
   <string name="fd_keep_in_sync">Hoia faili ajakohasena</string>
   <string name="common_rename">Nimeta ümber</string>
   <string name="common_remove">Eemalda</string>
+  <string name="confirmation_remove_alert">Oled sa kindel, et soovid %1$s eemaldada?</string>
+  <string name="confirmation_remove_folder_alert">Kas sa tõesti soovid eemaldada %1$s ja selle sisu?</string>
   <string name="confirmation_remove_local">Ainult kohalik</string>
   <string name="confirmation_remove_folder_local">Ainult kohalik sisu</string>
   <string name="confirmation_remove_remote">Eemalda serverist</string>
   <string name="conflict_overwrite">Kirjuta üle</string>
   <string name="conflict_dont_upload">Ära uuenda</string>
   <string name="preview_image_description">Pildi eelvaade</string>
+  <string name="preview_image_error_unknown_format">Seda pilti ei saa näidata</string>
   <string name="error__upload__local_file_not_copied">%1$s ei suudetud kopeerida kohalikku kataloogi %2$s</string>
   <string name="actionbar_failed_instant_upload">Ebaõnnestunud kohene üleslaadimine</string>
   <string name="failed_upload_headline_text">Ebaõnnestunud kohesed üleslaadimised</string>
   <string name="failed_upload_headline_retryall_btn">proovi uuesti kõik valitud</string>
   <string name="failed_upload_headline_delete_all_btn">eemalda kõik valitud üleslaadimise järjekorrast</string>
   <string name="failed_upload_retry_text">proovi uuesti pilti üles laadida:</string>
+  <string name="failed_upload_load_more_images">Laadi rohkem pilte</string>
   <string name="failed_upload_retry_do_nothing_text">ära tee midagi, sa pole võrku ühendatud koheseks üleslaadimiseks</string>
   <string name="failed_upload_failure_text">Veateade:</string>
   <string name="failed_upload_quota_exceeded_text">Palun kontrolli oma serveri seadeid, võib-olla on mahulimiit ületatud.</string>
   <string name="activity_chooser_send_file_title">Saada</string>
   <string name="copy_link">Kopeeri link</string>
   <string name="clipboard_text_copied">Kopeeritud lõikepuhvrisse</string>
+  <string name="error_cant_bind_to_operations_service">Viga: ei suutnud operatsiooni lõpetada</string>
   <string name="network_error_socket_exception">Serveriga ühendumisel tekkis tõrge.</string>
   <string name="network_error_socket_timeout_exception">Serverilt vastuse ootamisel tekkis tõrge, toimingu sooritamine ebaõnnestus</string>
   <string name="network_error_connect_timeout_exception">Serverilt vastuse ootamisel tekkis tõrge, toimingu sooritamine ebaõnnestus</string>
+  <string name="network_host_not_available">Toimingu lõpetamine ebaõnnestus, server pole saadaval</string>
 </resources>
index 16121e0..ea69555 100644 (file)
@@ -98,7 +98,6 @@
   <string name="foreign_files_fail">بعضی از فایل ها نمی توانند انتقال یابند</string>
   <string name="foreign_files_local_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">لطفا PIN برنامه خودتان را وارد کنید</string>
   <string name="pincode_configure_your_pin">PIN برنامه را وارد کنید</string>
   <string name="pincode_configure_your_pin_explanation">هر زمان که برنامه آغاز شود PIN درخواست خواهد شد.</string>
index 17622f6..a50ab45 100644 (file)
@@ -17,6 +17,8 @@
   <string name="prefs_manage_accounts">Tilien hallinta</string>
   <string name="prefs_pincode">Sovelluksen PIN-koodi</string>
   <string name="prefs_pincode_summary">Suojaa Asiakasohjelmasi</string>
+  <string name="prefs_instant_video_upload">Välittömät videolähetykset</string>
+  <string name="prefs_instant_video_upload_summary">Lähetä kameralla kuvatut videot välittömästi</string>
   <string name="prefs_log_title">Käytä lokitusta</string>
   <string name="prefs_log_summary_history">Tämä näyttää tallennetut lokit</string>
   <string name="prefs_log_delete_history_button">Poista historia</string>
@@ -33,6 +35,7 @@
   <string name="sync_string_files">Tiedostot</string>
   <string name="setup_btn_connect">Yhdistä</string>
   <string name="uploader_btn_upload_text">Lähetä</string>
+  <string name="uploader_top_message">Valitse lähetyskansio:</string>
   <string name="uploader_wrn_no_account_title">Tiliä ei löytynyt</string>
   <string name="uploader_wrn_no_account_text">Laitteelle ei ole asetettu %1$s-tiliä. Luo tili ensin.</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Asetukset</string>
@@ -84,6 +87,7 @@
   <string name="downloader_download_failed_credentials_error">Lataus epäonnistui, kirjaudu uudelleen</string>
   <string name="common_choose_account">Valitse tili</string>
   <string name="sync_fail_ticker">Synkronointi epäonnistui</string>
+  <string name="sync_fail_ticker_unauthorized">Synkronointi epäonnistui, kirjaudu uudelleen</string>
   <string name="sync_fail_content">Kohteen %1$s synkronointia ei voitu suorittaa loppuun</string>
   <string name="sync_fail_content_unauthorized">Virheellinen salasana tilille %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Ristiriitoja löytynyt</string>
   <string name="auth_timeout_title">Palvelimen vastaus viipyy liian kauan</string>
   <string name="auth_incorrect_address_title">Väärin annettu osoite</string>
   <string name="auth_ssl_general_error_title">SSL:n alustus epäonnistui</string>
+  <string name="auth_ssl_unverified_server_title">SSL-palvelimen identiteettiä ei voitu varmistaa</string>
   <string name="auth_bad_oc_version_title">Tuntematon palvelimen versio</string>
   <string name="auth_wrong_connection_title">Yhteyden muodostus epäonnistui</string>
   <string name="auth_secure_connection">Salattu yhteys muodostettu</string>
   <string name="auth_connecting_auth_server">Yhdistetään tunnistautumispalvelimeen…</string>
   <string name="auth_unsupported_auth_method">Palvelin ei tue tätä tunnistautumistapaa</string>
   <string name="auth_unsupported_multiaccount">%1$s ei tue useita tilejä</string>
+  <string name="auth_can_not_auth_against_server">Tunnistautuminen palvelinta vastaan ei onnistu</string>
   <string name="fd_keep_in_sync">Pidä tiedosto ajan tasalla</string>
   <string name="common_rename">Nimeä uudelleen</string>
   <string name="common_remove">Poista</string>
   <string name="conflict_overwrite">Korvaa</string>
   <string name="conflict_dont_upload">Älä lähetä</string>
   <string name="preview_image_description">Kuvan esikatselu</string>
+  <string name="preview_image_error_unknown_format">Tätä kuvaa ei voi näyttää</string>
   <string name="failed_upload_all_cb">valitse kaikki</string>
   <string name="failed_upload_headline_retryall_btn">yritä uudelleen kaikkia valittuja</string>
+  <string name="failed_upload_load_more_images">Lataa lisää kuvia</string>
   <string name="failed_upload_failure_text">Virheviesti:</string>
+  <string name="share_link_no_support_share_api">Jakaminen ei ole käytössä palvelimellasi. Ota yhteys\n\t\tyllä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="activity_chooser_send_file_title">Lähetä</string>
   <string name="copy_link">Kopioi linkki</string>
   <string name="clipboard_text_copied">Kopioitu leikepöydälle</string>
+  <string name="error_cant_bind_to_operations_service">Kriittinen virhe: toimintoja ei voi suorittaa</string>
   <string name="network_error_socket_exception">Virhe palvelimeen yhdistäessä</string>
+  <string name="network_host_not_available">Toimintoa ei voi suorittaa loppuun, palvelin ei ole käytettävissä</string>
 </resources>
index eb1abac..506cdc1 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Le téléchargement a échoué, vous devez vous connecter à nouveau</string>
   <string name="common_choose_account">Choisissez un compte</string>
   <string name="sync_fail_ticker">La synchronisation a échoué</string>
+  <string name="sync_fail_ticker_unauthorized">Échec de la synchronisation, vous devez vous reconnecter à nouveau</string>
   <string name="sync_fail_content">La synchronisation de %1$s ne peut pas être complétée</string>
   <string name="sync_fail_content_unauthorized">Mot de passe invalide pour %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Des conflits ont été trouvés</string>
   <string name="foreign_files_fail">Certains fichiers n\'ont pu être déplacés</string>
   <string name="foreign_files_local_text">Local: %1$s</string>
   <string name="foreign_files_remote_text">Distant: %1$s</string>
-  <string name="upload_query_move_foreign_files">Il n\'y a pas assez de place disponible pour copier les fichiers sélectionnés dans le dossier %1$s. Voulez-vous les déplacer à la place ?</string>
+  <string name="upload_query_move_foreign_files">Il n\'y a pas assez de place disponible pour copier les fichiers sélectionnés dans le dossier %1$s. Voulez-vous quand même les déplacer ?</string>
   <string name="pincode_enter_pin_code">Veuillez saisir votre code de sécurité</string>
   <string name="pincode_configure_your_pin">Veuillez saisir votre code de sécurité </string>
   <string name="pincode_configure_your_pin_explanation">Le code PIN vous sera demandé à chaque lancement de l\'application</string>
index 725f5b5..5029707 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Fallou a descarga, necesita volver acceder</string>
   <string name="common_choose_account">Escoller unha conta</string>
   <string name="sync_fail_ticker">Produciuse un fallo na sincronización</string>
+  <string name="sync_fail_ticker_unauthorized">Fallou a sincronización, necesita volver acceder</string>
   <string name="sync_fail_content">Non foi posíbel completar a sincronización de %1$s</string>
   <string name="sync_fail_content_unauthorized">Contrasinal incorrecto para %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Atopáronse conflictos</string>
index e26ddb4..20d31ce 100644 (file)
@@ -98,7 +98,6 @@
   <string name="foreign_files_fail">Egyes fájlokat nem sikerült áthelyezni</string>
   <string name="foreign_files_local_text">Helyi: %1$s</string>
   <string name="foreign_files_remote_text">Távoli: %1$s</string>
-  <string name="upload_query_move_foreign_files">Nincs elég hely ahhoz, hogy a kiválasztott fájlokat a %1$s mappába másoljuk. Akkor inkább helyezzük át őket oda?</string>
   <string name="pincode_enter_pin_code">Kérem adja meg az alkalmazás PIN-kódját</string>
   <string name="pincode_configure_your_pin">Az alkalmazás PIN-kódja</string>
   <string name="pincode_configure_your_pin_explanation">A PIN-t kötelező lesz megadni az alkalmazás minden indításakor</string>
index 2cacb0d..b21685e 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Scaricamento non riuscito, devi ripetere l\'accesso</string>
   <string name="common_choose_account">Scegli account</string>
   <string name="sync_fail_ticker">Sincronizzazione non riuscita</string>
+  <string name="sync_fail_ticker_unauthorized">Sincronizzazione non riuscita, devi ripetere l\'accesso</string>
   <string name="sync_fail_content">La sincronizzazione di %1$s non può essere completata</string>
   <string name="sync_fail_content_unauthorized">Password non valida per %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Conflitti rilevati</string>
   <string name="foreign_files_fail">Alcuni file non possono essere spostati</string>
   <string name="foreign_files_local_text">Locale: %1$s</string>
   <string name="foreign_files_remote_text">Remoto %1$s</string>
-  <string name="upload_query_move_foreign_files">Non c\'è spazio sufficiente per copiare i file selezionati nella cartella %1$s. Vuoi invece spostarli nella cartella?</string>
+  <string name="upload_query_move_foreign_files">Non c\'è spazio sufficiente per copiare i file selezionati nella cartella %1$s. Vuoi invece spostarli?</string>
   <string name="pincode_enter_pin_code">Inserisci il PIN dell\'applicazione</string>
   <string name="pincode_configure_your_pin">Inserisci il PIN di l\'applicazione</string>
   <string name="pincode_configure_your_pin_explanation">Il PIN sarà richiesto ad ogni avvio dell\'applicazione</string>
index 4278f48..90c4dce 100644 (file)
   <string name="foreign_files_fail">一部のファイルは移動できませんでした</string>
   <string name="foreign_files_local_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="upload_query_move_foreign_files">十分なスペースが無いため、選択されたファイルを %1$s フォルダーにコピーすることができません。コピーする代わりに、それらを移動させますか?</string>
   <string name="pincode_enter_pin_code">アプリのパスワードを入力してください</string>
   <string name="pincode_configure_your_pin">アプリのパスワードを入力してください</string>
   <string name="pincode_configure_your_pin_explanation">アプリ開始時に毎回PINが要求されます。</string>
index 0cc10ab..02c4b9d 100644 (file)
@@ -76,7 +76,6 @@
   <string name="foreign_files_fail">რამოდენიმე ფაილის გადატანა ვერ მოხერხდა</string>
   <string name="foreign_files_local_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">გთხოვთ, ჩასვათ თქვენი აპლიკაციის PIN–ი</string>
   <string name="pincode_configure_your_pin">შეიყვანეთ თქვენი აპლიკაციის PIN–ი</string>
   <string name="pincode_configure_your_pin_explanation">PIN–ი მოთხოვნილი იქნება აპლიკაციის ყოველ ჩართვაზე</string>
index 73d01e5..4ba7ab0 100644 (file)
@@ -97,7 +97,6 @@
   <string name="foreign_files_fail">몇몇 파일을 옮기지 못했습니다.</string>
   <string name="foreign_files_local_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">앱 암호를 입력하십시오</string>
   <string name="pincode_configure_your_pin">앱 암호를 입력하십시오</string>
   <string name="pincode_configure_your_pin_explanation">앱을 시작할 때마다 암호를 물어봅니다</string>
index c757504..9bb8089 100644 (file)
@@ -1,2 +1,5 @@
 <?xml version='1.0' encoding='UTF-8'?>
-<resources/>
+<resources>
+  <string name="actionbar_upload_files">ഫയലുകൾ</string>
+  <string name="sync_string_files">ഫയലുകൾ</string>
+</resources>
index 55ad86c..a6122df 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Nedlasting feilet. Du må logge inn på nytt</string>
   <string name="common_choose_account">Velg konto</string>
   <string name="sync_fail_ticker">Synkronisering feilet</string>
+  <string name="sync_fail_ticker_unauthorized">Synkronisering feilet, du må logge inn på nytt</string>
   <string name="sync_fail_content">Synkronisering av %1$s kunne ikke fullføres</string>
   <string name="sync_fail_content_unauthorized">Ugyldig passord for %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Konflikter funnet</string>
   <string name="foreign_files_fail">Noen filer kunne ikke fjernes</string>
   <string name="foreign_files_local_text">Lokal: %1$s</string>
   <string name="foreign_files_remote_text">Ekstern: %1$s</string>
-  <string name="upload_query_move_foreign_files">Det er ikke nok plass til å kopiere de valgte filene til mappe %1$s. Vil du flytte dem i stedet?</string>
+  <string name="upload_query_move_foreign_files">Det er ikke nok plass til å kopiere de valgte filene inn i mappen %1$s. Vil du flytte dem i stedet? </string>
   <string name="pincode_enter_pin_code">Vennligst tast inn din App-PIN</string>
   <string name="pincode_configure_your_pin">Skriv inn din PIN kode</string>
   <string name="pincode_configure_your_pin_explanation">PIN koden vil bli ettersourt hver gang appen starter</string>
index 96caa44..11f063b 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Download mislukt, u moet opnieuw inloggen</string>
   <string name="common_choose_account">Kies account</string>
   <string name="sync_fail_ticker">Synchronisatie mislukt</string>
+  <string name="sync_fail_ticker_unauthorized">Synchronisatie mislukt, opnieuw inloggen</string>
   <string name="sync_fail_content">Synchronisatie van %1$s kon niet worden voltooid</string>
   <string name="sync_fail_content_unauthorized">Ongeldig wachtwoord voor %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Conflicten gevonden</string>
   <string name="foreign_files_fail">Een paar bestanden konden niet worden verplaatst</string>
   <string name="foreign_files_local_text">Lokaal: %1$s</string>
   <string name="foreign_files_remote_text">Extern: %1$s</string>
-  <string name="upload_query_move_foreign_files">Er is niet genoeg ruimte om de gekopieerde bestanden ook te plaatsen in map %1$s. Wilt u ze erheen verplaatsten? </string>
+  <string name="upload_query_move_foreign_files">Er is niet genoeg ruimte om de bestanden te gekopieëren in map %1$s. Wilt u ze erheen verplaatsten? </string>
   <string name="pincode_enter_pin_code">Voer App PIN in</string>
   <string name="pincode_configure_your_pin">Voer App PIN in</string>
   <string name="pincode_configure_your_pin_explanation">De PIN wordt steeds opnieuw gevraagd als de app wordt gestart</string>
index be62572..876be97 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">Ściganie nie powiodło się, musisz się ponownie zalogować</string>
   <string name="common_choose_account">Wybierz konto</string>
   <string name="sync_fail_ticker">Błąd synchronizacji</string>
+  <string name="sync_fail_ticker_unauthorized">Synchronizacja nie powiodła się, musisz się przelogować</string>
   <string name="sync_fail_content">Nie można było ukończyć synchronizacji %1$s </string>
   <string name="sync_fail_content_unauthorized">Niepoprawne hasło dla %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Znaleziono konflikty</string>
index 9ccfc86..4775649 100644 (file)
@@ -21,9 +21,9 @@
   <string name="prefs_instant_upload_summary">Enviar instantaneamente fotos tiradas com a camera</string>
   <string name="prefs_instant_video_upload">Envio instantâneo de vídeos</string>
   <string name="prefs_instant_video_upload_summary">Enviar instantaneamente vídeos feitos com a camera</string>
-  <string name="prefs_log_title">Habilitar conexão</string>
-  <string name="prefs_log_summary">Isto é usado para registrar os problemas</string>
-  <string name="prefs_log_title_history">História de Registro</string>
+  <string name="prefs_log_title">Habilitar Conexão</string>
+  <string name="prefs_log_summary">Isto é usado para registrar(log) os problemas</string>
+  <string name="prefs_log_title_history">História de Registro(log)</string>
   <string name="prefs_log_summary_history">Isso mostra os registros gravados</string>
   <string name="prefs_log_delete_history_button">Excluir Histórico</string>
   <string name="prefs_help">Ajuda</string>
@@ -40,7 +40,7 @@
   <string name="sync_string_files">Arquivos</string>
   <string name="setup_btn_connect">Conectar</string>
   <string name="uploader_btn_upload_text">Enviar</string>
-  <string name="uploader_top_message">Escolher pasta enviar:</string>
+  <string name="uploader_top_message">Escolher pasta para enviar:</string>
   <string name="uploader_wrn_no_account_title">Nenhuma conta encontrada</string>
   <string name="uploader_wrn_no_account_text">Não existem contas %1$s no seu dispositivo. Por favor, configure uma conta primeiro.</string>
   <string name="uploader_wrn_no_account_setup_btn_text">Instalação</string>
@@ -82,7 +82,7 @@
   <string name="uploader_upload_succeeded_content_single">%1$s foi enviado com sucesso</string>
   <string name="uploader_upload_failed_ticker">Falha no envio</string>
   <string name="uploader_upload_failed_content_single">Envio de %1$s não pôde ser finalizado</string>
-  <string name="uploader_upload_failed_credentials_error">Enviar falhou, você precisa reconectar</string>
+  <string name="uploader_upload_failed_credentials_error">O envio falhou, você precisa reconectar</string>
   <string name="downloader_download_in_progress_ticker">Baixando …</string>
   <string name="downloader_download_in_progress_content">%1$d%% Baixando %2$s</string>
   <string name="downloader_download_succeeded_ticker">Download bem sucedido</string>
   <string name="downloader_download_failed_ticker">Download falhou</string>
   <string name="downloader_download_failed_content">Download de %1$s não pôde ser concluído</string>
   <string name="downloader_not_downloaded_yet">Não baixado ainda</string>
-  <string name="downloader_download_failed_credentials_error">Baixar falhou, você precisa reconectar</string>
+  <string name="downloader_download_failed_credentials_error">O download falhou, você precisa reconectar</string>
   <string name="common_choose_account">Escolha a conta</string>
   <string name="sync_fail_ticker">Sincronização falhou</string>
+  <string name="sync_fail_ticker_unauthorized">A sincronização falhou, você necessita se reconectar</string>
   <string name="sync_fail_content">Sincronização de %1$s não pôde ser completada</string>
   <string name="sync_fail_content_unauthorized">Senha inválida para %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Conflitos encontrados</string>
   <string name="foreign_files_fail">Alguns arquivos não puderam ser movidos</string>
   <string name="foreign_files_local_text">Local: %1$s</string>
   <string name="foreign_files_remote_text">Remoto: %1$s</string>
-  <string name="upload_query_move_foreign_files">Não há espaço suficiente para copiar os arquivos selecionados para a pasta %1$s. Ao invés disso, gostaria de movê-los?</string>
+  <string name="upload_query_move_foreign_files">Não existe espaço suficiente para copiar os arquivos selecionados para a pasta %1$s. Você gostaria de ao invés de copiar movê-los? </string>
   <string name="pincode_enter_pin_code">Por favor, insira o seu PIN de Aplicativo</string>
   <string name="pincode_configure_your_pin">Insira seu PIN de Aplicativo</string>
   <string name="pincode_configure_your_pin_explanation">O PIN (senha) será solicitado toda vez que o aplicativo for iniciado</string>
   <string name="media_err_malformed">Arquivo de mídia não corretamente codificado</string>
   <string name="media_err_timeout">Expirou o tempo durante a tentativa</string>
   <string name="media_err_invalid_progressive_playback">Arquivo de mídia não pode ser transmitido</string>
-  <string name="media_err_unknown">Arquivo de mídia não pode ser reproduzido com o estoque media player</string>
+  <string name="media_err_unknown">Arquivo de mídia não pode ser reproduzido com o stock media player</string>
   <string name="media_err_security_ex">Erro de segurança tentando reproduzir %1$s</string>
   <string name="media_err_io_ex">Erro de entrada tentando reproduzir %1$s</string>
   <string name="media_err_unexpected">Erro inesperado tentando reproduzir %1$s</string>
   <string name="auth_testing_connection">Testando conexão...</string>
   <string name="auth_not_configured_title">Configuração do servidor mal formada</string>
   <string name="auth_account_not_new">Uma conta para o mesmo usuário e servidor já existe no dispositivo</string>
-  <string name="auth_account_not_the_same">As informações que o usuário digitou não corresponde ao usuário da conta</string>
+  <string name="auth_account_not_the_same">As informações que o usuário digitou não correspondem ao usuário da conta</string>
   <string name="auth_unknown_error_title">Ocorreu um erro desconhecido!</string>
   <string name="auth_unknown_host_title">Não pôde encontrar host</string>
   <string name="auth_incorrect_path_title">Instância de servidor não encontrada</string>
   <string name="sync_file_nothing_to_do_msg">Conteúdo do arquivo já foi sincronizado</string>
   <string name="create_dir_fail_msg">A pasta não pode ser criada</string>
   <string name="filename_forbidden_characters">Caracteres proibidos: / \\ &lt; &gt; : \" | ? *</string>
-  <string name="filename_empty">O nome do arquivo não pode ficar estar vazio</string>
+  <string name="filename_empty">O nome do arquivo não pode estar vazio</string>
   <string name="wait_a_moment">Aguarde um momento</string>
   <string name="filedisplay_unexpected_bad_get_content">Problema inesperado; por favor, tente selecionar o arquivo com outro app</string>
   <string name="filedisplay_no_file_selected">Nenhum arquivo foi selecionado</string>
index 2265e79..af54169 100644 (file)
   <string name="foreign_files_fail">Não foi possível mover alguns ficheiros</string>
   <string name="foreign_files_local_text">Local: %1$s</string>
   <string name="foreign_files_remote_text">Remoto: %1$s</string>
-  <string name="upload_query_move_foreign_files">Não existe espaço suficiente para copiar os ficheiros seleccionados para a pasta %1$s . Deseja move-los?</string>
+  <string name="upload_query_move_foreign_files">Não existe espaço disponível para copiar o ficheiro seleccionado para a pasta %1$s . Em vez disso deseja mover o ficheiro?</string>
   <string name="pincode_enter_pin_code">Por favor escreva o PIN da Aplicação</string>
   <string name="pincode_configure_your_pin">Escreva o PIN da Aplicação</string>
   <string name="pincode_configure_your_pin_explanation">O PIN vai ser pedido todas as vezes que iniciar a aplicação.</string>
   <string name="auth_unsupported_auth_method">O servidor não suporta este método de autenticação</string>
   <string name="auth_unsupported_multiaccount">%1$s não suporta contas múltiplas</string>
   <string name="auth_fail_get_user_name">O seu servidor não transmite o ID correcto. Por favor contacte o administrador.</string>
+  <string name="auth_can_not_auth_against_server">Não foi possível autenticar no servidor</string>
   <string name="fd_keep_in_sync">manter ficheiro actualizado</string>
   <string name="common_rename">Renomear</string>
   <string name="common_remove">Remover</string>
+  <string name="confirmation_remove_alert">Tem a certeza que deseja remover %1$s ?</string>
+  <string name="confirmation_remove_folder_alert">Deseja realmente remover %1$s e o seu conteúdo?</string>
   <string name="confirmation_remove_local">Apenas localmente</string>
   <string name="confirmation_remove_folder_local">So conteúdos locais</string>
   <string name="confirmation_remove_remote">Apagar do servidor</string>
   <string name="conflict_overwrite">Sobrepor</string>
   <string name="conflict_dont_upload">Não enviar.</string>
   <string name="preview_image_description">Pré-Visualização da imagem</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="actionbar_failed_instant_upload">O envio rápido falhou</string>
   <string name="failed_upload_headline_text">Falharam os Uploads-Instantâneos</string>
   <string name="failed_upload_headline_retryall_btn">Tentar todos os seleccionados</string>
   <string name="failed_upload_headline_delete_all_btn">Eliminar todos os seleccionados da lista de envio</string>
   <string name="failed_upload_retry_text">Tentar envio da imagem:</string>
+  <string name="failed_upload_load_more_images">Carregar mais Fotos</string>
   <string name="failed_upload_retry_do_nothing_text">não fazer nada, nao está online para o Upload-Instantâneo</string>
   <string name="failed_upload_failure_text">Mensagem de erro:</string>
   <string name="failed_upload_quota_exceeded_text">Por favor verifique a configuração do servidor, talvez tenha excedido a sua quota</string>
   <string name="activity_chooser_send_file_title">Enviar</string>
   <string name="copy_link">Copiar ligação</string>
   <string name="clipboard_text_copied">Copiado para a área de transferência</string>
+  <string name="error_cant_bind_to_operations_service">Erro crítico: não é possível executar as operações</string>
   <string name="network_error_socket_exception">Ocorreu um erro durante a ligação ao servidos.</string>
   <string name="network_error_socket_timeout_exception">Ocorreu um erro durante a ligação ao servidor, não foi possível realizar a operação.</string>
   <string name="network_error_connect_timeout_exception">Ocorreu um erro durante a ligação ao servidor, não foi possível realizar a operação.</string>
+  <string name="network_host_not_available">A operação não foi concluída, o servidor está inacessível.</string>
 </resources>
index b74d8c3..26349ee 100644 (file)
@@ -1,5 +1,8 @@
 <?xml version='1.0' encoding='UTF-8'?>
 <resources>
+  <string name="about_android">%1$s Aplicație Android</string>
+  <string name="about_version">versiunea %1$s</string>
+  <string name="actionbar_sync">Refresh cont</string>
   <string name="actionbar_upload">Încarcă</string>
   <string name="actionbar_upload_from_apps">Conținut de la alte aplicații</string>
   <string name="actionbar_upload_files">Fișiere</string>
   <string name="prefs_pincode">PIN-ul aplicaţiei</string>
   <string name="prefs_pincode_summary">Protejaţi-vă clientul</string>
   <string name="prefs_instant_upload">Încărcare instanta de imagine</string>
+  <string name="prefs_instant_upload_summary">Încărca instantaneu imagini luate de camera</string>
+  <string name="prefs_instant_video_upload">Încărcare instantă de videoclipuri.</string>
+  <string name="prefs_instant_video_upload_summary">Încarcă videoclipuri instant, filmate cu camera.</string>
+  <string name="prefs_log_summary">Acesta este folosit pentru a înregistra problemele</string>
+  <string name="prefs_log_summary_history">Asta arata înregistrările salvate</string>
   <string name="prefs_log_delete_history_button">Ştergeţi istoric</string>
   <string name="prefs_help">Ajutor</string>
   <string name="prefs_recommend">Recomandati unui prieten</string>
+  <string name="prefs_feedback">Feedback</string>
+  <string name="recommend_subject">Încearcă %1$s pe smartphone-ul tău!</string>
   <string name="auth_check_server">Verificaţi Serverul</string>
   <string name="auth_host_url">Adresa serverului https://...</string>
   <string name="auth_username">Nume utilizator</string>
   <string name="auth_password">Parolă</string>
+  <string name="auth_register">Nou la %1$s?</string>
   <string name="sync_string_files">Fișiere</string>
   <string name="setup_btn_connect">Conectare</string>
   <string name="uploader_btn_upload_text">Încărcare</string>
@@ -32,7 +43,9 @@
   <string name="uploader_wrn_no_account_quit_btn_text">Anulare</string>
   <string name="uploader_wrn_no_content_title">Nu exista conţinut pentru încărcare</string>
   <string name="uploader_wrn_no_content_text">Nu a fost primit nici un conţinut .Nu exista nimic de încărcat .</string>
+  <string name="uploader_error_forbidden_content">%1$s nu este permis sa acceseze conținutul shared</string>
   <string name="uploader_info_uploading">Încărcare</string>
+  <string name="file_list_empty">Nu există fișiere în acest dosar. \nNoile fișiere pot fi adăugate cu opțiunea de meniu \"Upload\" </string>
   <string name="filedetails_select_file">Selectati un fisier pentru a afisa informatia aditionala</string>
   <string name="filedetails_size">Mărime:</string>
   <string name="filedetails_type">Tip:</string>
@@ -40,6 +53,9 @@
   <string name="filedetails_modified">Modificat:</string>
   <string name="filedetails_download">Descarcă</string>
   <string name="filedetails_sync_file">Împrospătare fişier</string>
+  <string name="filedetails_renamed_in_upload_msg">Fișierul a fost redenumit %1$s în timpul încărcării</string>
+  <string name="action_share_file">Share link</string>
+  <string name="action_unshare_file">Unshare link</string>
   <string name="common_yes">Da</string>
   <string name="common_no">Nu</string>
   <string name="common_ok">OK</string>
   <string name="uploader_upload_succeeded_content_single">%1$s a fost încărcat cu succes</string>
   <string name="uploader_upload_failed_ticker">Încărcarea a eșuat</string>
   <string name="uploader_upload_failed_content_single">Încărcarea fișierului %1$s nu a putut fi încheiată</string>
+  <string name="uploader_upload_failed_credentials_error">Incărcarea a eşuat, trebuie să te logezi din nou</string>
   <string name="downloader_download_in_progress_ticker">Se descarcă...</string>
   <string name="downloader_download_in_progress_content">%1$d%% Se descarcă %2$s</string>
   <string name="downloader_download_succeeded_ticker">Descărcarea a reușit</string>
   <string name="downloader_download_succeeded_content">%1$s a fost descărcat cu succes</string>
   <string name="downloader_download_failed_ticker">Descărcarea a eșuat</string>
+  <string name="downloader_download_failed_content">Nu s-a putut face downloadarea completa a %1$s</string>
+  <string name="downloader_not_downloaded_yet">Nu s-a  descărcat încă</string>
+  <string name="downloader_download_failed_credentials_error">Descărcarea a eşuat, trebuie să te logezi din nou</string>
   <string name="common_choose_account">Alege cont</string>
   <string name="sync_fail_ticker">Sincronizarea a eșuat</string>
+  <string name="sync_fail_content">Sincronizarea %1$s nu a putut fi completata</string>
+  <string name="sync_fail_content_unauthorized">Parolă greșită pentru %1$s</string>
+  <string name="sync_conflicts_in_favourites_ticker">S-au gasit conflicte</string>
+  <string name="sync_foreign_files_forgotten_ticker">Unele fisiere locale au fost uitate</string>
+  <string name="sync_foreign_files_forgotten_content">%1$d fisiere din  dosarul  %2$s nu a putut fi copiat in</string>
+  <string name="sync_foreign_files_forgotten_explanation">Începând cu versiunea 1.3.16, fișierele încărcate de acest aparat sunt copiate în dosarul local %1$s pentru a preveni pierderea de date atunci când un singur fișier este sincronizat cu conturi multiple.  \nDatorita acestei schimbari, toate fișierele încărcate în versiunile anterioare ale acestei aplicații au fost copiate în dosarul %2$s. Cu toate acestea, o eroare a împiedicat finalizarea acestei operațiuni în timpul sincronizarii contului. Poti fie sa lasi fișierul(le), așa cum sunt și sa  elimini link-ul spre \n%3$s, sau muți fișierul(le) în dosarul %1$s și păstrezi link-ul la %4$s.  Mai jos sunt listate fișierul(le) locale  și fișierul(le) la distanță  în %5$s unde au fost link-ate. </string>
+  <string name="sync_current_folder_was_removed">Folderul %1$s nu mai există</string>
+  <string name="foreign_files_move">Muta tot/toate</string>
   <string name="foreign_files_success">Toate fişierele au fost mutate</string>
   <string name="foreign_files_fail">Unele fişiere nu au putut fi mutate</string>
+  <string name="foreign_files_local_text">Local: %1$s</string>
+  <string name="foreign_files_remote_text">La distanta: %1$s</string>
+  <string name="upload_query_move_foreign_files">Nu este suficient spațiu pentru a copia fișierele selectate în dosarul %1$s . Dorești să le muți în loc?\n</string>
   <string name="pincode_enter_pin_code">Te rugăm să specifici PIN-ul aplicației</string>
   <string name="pincode_configure_your_pin">Introduceti PIN-ul aplicatiei</string>
   <string name="pincode_configure_your_pin_explanation">PIN-ul va fi solicitat ori de cate ori aplicaţia este pornita</string>
   <string name="pincode_wrong">PIN-ul aplicației este incorect</string>
   <string name="pincode_removed">PIN-ul aplicației a fost eliminat</string>
   <string name="pincode_stored">PIN-ul aplicației a fost memorat</string>
+  <string name="media_notif_ticker">%1$s  player de muzică</string>
+  <string name="media_state_playing">%1$s (cântă)</string>
+  <string name="media_state_loading">%1$s (încarcă)</string>
+  <string name="media_event_done">%1$s redare terminată</string>
   <string name="media_err_nothing_to_play">Nu a fost găsit nici un fişier media</string>
+  <string name="media_err_no_account">Nu a fost dat nici un cont</string>
+  <string name="media_err_not_in_owncloud">Fişierul nu este într-un cont valid</string>
+  <string name="media_err_unsupported">Codec media fără suport</string>
+  <string name="media_err_io">Fişierul media nu a putut fi citit</string>
   <string name="media_err_malformed">Fişierul media nu a fost codat corect</string>
+  <string name="media_err_timeout">Timpul a expirat în  ce încerca să execute</string>
+  <string name="media_err_invalid_progressive_playback">Fișierul media nu poate fi transmis</string>
+  <string name="media_err_unknown">Fișierul media nu poate fi executat cu stock media player</string>
+  <string name="media_err_security_ex">Eroare de securitate în timp ce încerca să execute %1$s</string>
+  <string name="media_err_io_ex">Eroare de input în timp ce încerca să execute %1$s</string>
+  <string name="media_err_unexpected">Eroare neprevăzută în timp ce încerca să execute %1$s</string>
+  <string name="media_rewind_description">Butonul rewind</string>
+  <string name="media_play_pause_description">Buton de play sau pauză </string>
+  <string name="media_forward_description">Butonul pentru repede înainte</string>
   <string name="auth_trying_to_login">În curs de autentificare...</string>
   <string name="auth_no_net_conn_title">Nu exista conexiune</string>
   <string name="auth_nossl_plain_ok_title">Conexiune securizată indisponibilă</string>
   <string name="auth_connection_established">Conexiune stabilită</string>
   <string name="auth_testing_connection">Se testează conexiunea...</string>
   <string name="auth_not_configured_title">Configurație serverului incorectă</string>
+  <string name="auth_account_not_new">Un cont pentru același utilizator și server există deja în dispozitiv</string>
+  <string name="auth_account_not_the_same">Utilizatorul introdus nu se potrivește cu utilizatorul acestui cont</string>
   <string name="auth_unknown_error_title">A apărut o eroare necunoscută!</string>
+  <string name="auth_unknown_host_title">Nu a putut gasi host-ul</string>
   <string name="auth_incorrect_path_title">Instanța serverului nu a fost găsită</string>
+  <string name="auth_timeout_title">Server-ului i-a luat prea mult timp sa raspunda</string>
+  <string name="auth_incorrect_address_title">URL  scris gresit</string>
   <string name="auth_ssl_general_error_title">Inițializarea SSL a eșuat</string>
+  <string name="auth_ssl_unverified_server_title">Nu s-a putut verifica identitatea serverului SSL</string>
   <string name="auth_bad_oc_version_title">Versiune necunoscuta a serverului </string>
   <string name="auth_wrong_connection_title">Nu s-a putut stabili conexiunea</string>
   <string name="auth_secure_connection">Conexiune sigură stabilită</string>
   <string name="auth_unauthorized">Utilizator sau parola greşită </string>
+  <string name="auth_oauth_error">Autorizare nereușită</string>
+  <string name="auth_oauth_error_access_denied">Acces refuzat de serverul de autorizare</string>
+  <string name="auth_expired_oauth_token_toast">Autorizarea dvs. a expirat. Vă rugăm să autorizați din nou.</string>
   <string name="auth_expired_basic_auth_toast">Va rugam introduceţi parola curenta</string>
   <string name="auth_expired_saml_sso_token_toast">Sesiunea a expirat .Va rugam conectati-va din nou </string>
+  <string name="auth_connecting_auth_server">Se conectează la serverul de autentificare...</string>
   <string name="auth_unsupported_auth_method">Serverul nu soporta aceasta metoda de autentificare </string>
+  <string name="auth_unsupported_multiaccount">%1$s nu suporta conturi multiple</string>
+  <string name="auth_can_not_auth_against_server">Nu se poate autentifica cu acest server</string>
   <string name="fd_keep_in_sync">Păstrează fișierul actualizat</string>
   <string name="common_rename">Redenumește</string>
   <string name="common_remove">Elimină</string>
+  <string name="confirmation_remove_alert">Doriti sigur sa stergeti %1$s?</string>
+  <string name="confirmation_remove_folder_alert">Sigur vrei să elimini %1$s și conținutul său?</string>
   <string name="confirmation_remove_local">Doar local</string>
+  <string name="confirmation_remove_folder_local">Doar continut local</string>
   <string name="confirmation_remove_remote">Elimină de pe server</string>
+  <string name="confirmation_remove_remote_and_local">De la distanță și local</string>
   <string name="remove_success_msg">Eliminat cu succes</string>
   <string name="remove_fail_msg">Eliminarea nu a reușit</string>
   <string name="rename_dialog_title">Introduceţi un nou nume</string>
+  <string name="rename_local_fail_msg">Copia locala nu a putut fi renumita; incearca un nume diferit</string>
   <string name="rename_server_fail_msg">Redenumirea nu s-a putut realiza</string>
+  <string name="sync_file_fail_msg">Fisierul de la distanta nu a putut fi verificat</string>
+  <string name="sync_file_nothing_to_do_msg">Continutul fisierului este deja sincronizat</string>
   <string name="create_dir_fail_msg">Nu a putut fi creat directorul</string>
+  <string name="filename_forbidden_characters">Caractere interzise: / \\ &lt; &gt; : \" | ? *</string>
+  <string name="filename_empty">Numele fișierului nu poate fi gol.</string>
   <string name="wait_a_moment">Așteaptă un moment</string>
   <string name="filedisplay_unexpected_bad_get_content">Problema neasteptata ; selectati fisierul dintr-o aplicatie diferita </string>
   <string name="filedisplay_no_file_selected">Nu a fost selectat nici un fișier</string>
+  <string name="activity_chooser_title">Trimite link la ...</string>
+  <string name="oauth_check_onoff">Întră în cont cu oAuth2</string>
+  <string name="oauth_login_connection">Se conectează la serverul oAuth2...</string>
   <string name="ssl_validator_header">Nu s-a putut verifica identitatea site-ului</string>
   <string name="ssl_validator_reason_cert_not_trusted">Certificatul serverului nu este de incredere </string>
   <string name="ssl_validator_reason_cert_expired">Certificatul serverului a expirat</string>
+  <string name="ssl_validator_reason_cert_not_yet_valid">- Perioada de valabilitate a certificatului serverului este în viitor</string>
+  <string name="ssl_validator_reason_hostname_not_verified">URL nu se potriveste cu numele gazda in certificat</string>
+  <string name="ssl_validator_question">Vrei să ai încredere în acest certificat, oricum?</string>
+  <string name="ssl_validator_not_saved">Certificatul nu a putut fi salvat.</string>
   <string name="ssl_validator_btn_details_see">Detalii</string>
   <string name="ssl_validator_btn_details_hide">Ascunde</string>
+  <string name="ssl_validator_label_subject">A emis:</string>
+  <string name="ssl_validator_label_issuer">Emis de:</string>
+  <string name="ssl_validator_label_CN">Nume comun</string>
   <string name="ssl_validator_label_O">Organizaţie</string>
+  <string name="ssl_validator_label_OU">Unitate organizationala</string>
   <string name="ssl_validator_label_C">Tara :</string>
   <string name="ssl_validator_label_ST">Stat:</string>
   <string name="ssl_validator_label_L">Locaţie:</string>
   <string name="ssl_validator_label_validity_to">Catre:</string>
   <string name="ssl_validator_label_signature">Semnatura:</string>
   <string name="ssl_validator_label_signature_algorithm">Algoritm:</string>
+  <string name="ssl_validator_null_cert">Certificatul nu a putut fi aratat.</string>
   <string name="ssl_validator_no_info_about_error">- Nu exista nici o informaţie pentru aceasta eroare</string>
+  <string name="placeholder_sentence">Acesta este un substituent</string>
+  <string name="placeholder_filename">placeholder.txt</string>
+  <string name="placeholder_filetype">Imagine PNG</string>
+  <string name="placeholder_filesize">389 KO</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">Incarca poze doar via WiFi</string>
+  <string name="instant_video_upload_on_wifi">Încarcă videoclipuri doar via WiFi</string>
   <string name="instant_upload_path">/Încărcare instanta</string>
+  <string name="conflict_title">Actualizați conflictul</string>
+  <string name="conflict_message">Fișierul de la distanță %s nu este sincronizat cu fișierul local. Continuand, se va înlocui conținutul fișierului de pe server.</string>
+  <string name="conflict_keep_both">Pastreaza amandoua</string>
+  <string name="conflict_overwrite">Scrie peste</string>
   <string name="conflict_dont_upload">Nu încarcă</string>
+  <string name="preview_image_description">Previzualizare imagine</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="actionbar_failed_instant_upload">Încărcare instantă nereușită</string>
+  <string name="failed_upload_headline_text">Încărcare instantă nereușită</string>
+  <string name="failed_upload_headline_hint">Rezumat al tuturor imaginilor trimise instant eșuate</string>
+  <string name="failed_upload_all_cb">selectează tot</string>
+  <string name="failed_upload_headline_delete_all_btn">șterge tot ce-i selectat din coada de încărcare</string>
+  <string name="failed_upload_retry_text">încearcă să încarci imaginea iar:\n</string>
+  <string name="failed_upload_load_more_images">Încarcă mai multe Poze</string>
+  <string name="failed_upload_failure_text">Mesaj de eroare:</string>
+  <string name="failed_upload_quota_exceeded_text">Vă rugăm să verificați configurația serverului, poate cota dvs. este depășită.</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="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="activity_chooser_send_file_title">Expediază</string>
+  <string name="copy_link">Link copiat</string>
+  <string name="error_cant_bind_to_operations_service">Eroare critică: nu se pot executa operațiunile</string>
+  <string name="network_error_socket_exception">A apărut o eroare în timp ce se conecta la server</string>
+  <string name="network_error_socket_timeout_exception">A apărut o eroare în timp ce se aștepta pentru server, operațiunea nu s-a executat</string>
+  <string name="network_error_connect_timeout_exception">A apărut o eroare în timp ce se aștepta pentru server, operațiunea nu s-a executat</string>
+  <string name="network_host_not_available">Operațiunea nu a putut fi finalizată, serverul este indisponibil</string>
 </resources>
index 160baa0..81e9f53 100644 (file)
@@ -7,7 +7,7 @@
   <string name="actionbar_upload_from_apps">Содержимое из других приложений</string>
   <string name="actionbar_upload_files">Файлы</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_see_details">Подробно</string>
   <string name="actionbar_send_file">Отправить</string>
@@ -38,7 +38,7 @@
   <string name="auth_password">Пароль</string>
   <string name="auth_register">Незнакомы с %1$s?</string>
   <string name="sync_string_files">Файлы</string>
-  <string name="setup_btn_connect">СоединиÑ\82Ñ\8c</string>
+  <string name="setup_btn_connect">Ð\9fодклÑ\8eÑ\87иÑ\82Ñ\8cÑ\81Ñ\8f</string>
   <string name="uploader_btn_upload_text">Загрузить</string>
   <string name="uploader_top_message">Выберете папку для загрузки</string>
   <string name="uploader_wrn_no_account_title">Учётная запись не найдена</string>
@@ -66,7 +66,7 @@
   <string name="common_cancel_download">Отменить скачивание</string>
   <string name="common_cancel_upload">Отменить загрузку</string>
   <string name="common_cancel">Отмена</string>
-  <string name="common_save_exit">Сохранить &amp; Выйти</string>
+  <string name="common_save_exit">Сохранить и выйти</string>
   <string name="common_error">Ошибка</string>
   <string name="common_loading">Идёт загрузка...</string>
   <string name="common_error_unknown">Неизвестная ошибка</string>
   <string name="foreign_files_fail">Некоторые файлы не могут быть перемещены</string>
   <string name="foreign_files_local_text">Локально: %1$s</string>
   <string name="foreign_files_remote_text">Удаленно: %1$s</string>
-  <string name="upload_query_move_foreign_files">Ð\9dедоÑ\81Ñ\82аÑ\82оÑ\87но Ð¼ÐµÑ\81Ñ\82а Ð´Ð»Ñ\8f ÐºÐ¾Ð¿Ð¸Ñ\80ованиÑ\8f Ð²Ñ\8bделеннÑ\8bÑ\85 Ñ\84айлов Ð² ÐºÐ°Ñ\82алог %1$s. Ð\9fеÑ\80емеÑ\81Ñ\82иÑ\82Ñ\8c Ð¸Ñ\85 в другое место?</string>
-  <string name="pincode_enter_pin_code">Вставьте PIN вашего приложения</string>
+  <string name="upload_query_move_foreign_files">Ð\94лÑ\8f ÐºÐ¾Ð¿Ð¸Ñ\80ованиÑ\8f Ð²Ñ\8bбÑ\80аннÑ\8bÑ\85 Ñ\84айлов Ð² Ð¿Ð°Ð¿ÐºÑ\83 %1$s Ð½ÐµÐ´Ð¾Ñ\81Ñ\82аÑ\82оÑ\87но Ñ\81вободного Ð¼ÐµÑ\81Ñ\82а. Ð¡ÐºÐ¾Ð¿Ð¸Ñ\80оваÑ\82Ñ\8c в другое место?</string>
+  <string name="pincode_enter_pin_code">Вставьте  App PIN</string>
   <string name="pincode_configure_your_pin">Введите App PIN</string>
   <string name="pincode_configure_your_pin_explanation">PIN-код будет запрашиваться при каждом запуске приложения.</string>
   <string name="pincode_reenter_your_pincode">Повторите ввод App PIN</string>
-  <string name="pincode_remove_your_pincode">Удалить App PIN</string>
+  <string name="pincode_remove_your_pincode">Удалите App PIN</string>
   <string name="pincode_mismatch">Введённые App PIN не совпадают</string>
   <string name="pincode_wrong">Неверный App PIN</string>
   <string name="pincode_removed">App PIN удалён</string>
   <string name="media_play_pause_description">Воспроизведение или пауза</string>
   <string name="media_forward_description">Перемотка вперед</string>
   <string name="auth_getting_authorization">Происходит авторизация.....</string>
-  <string name="auth_trying_to_login">Ð\9fопÑ\8bÑ\82ка Ð²Ñ\85ода...</string>
-  <string name="auth_no_net_conn_title">Нет сетевого соединения</string>
+  <string name="auth_trying_to_login">Ð\90вÑ\82оÑ\80изаÑ\86иÑ\8f...</string>
+  <string name="auth_no_net_conn_title">Нет подключения к сети</string>
   <string name="auth_nossl_plain_ok_title">Защищённое соединение недоступно.</string>
   <string name="auth_connection_established">Соединение установлено</string>
   <string name="auth_testing_connection">Тестирование соединения...</string>
index 5a90b83..0bfd78a 100644 (file)
   <string name="foreign_files_fail">Niektoré súbory nebolo možné premiestniť</string>
   <string name="foreign_files_local_text">Lokálne: %1$s</string>
   <string name="foreign_files_remote_text">Vzdialené: %1$s</string>
-  <string name="upload_query_move_foreign_files">Nie je dostatok miesta na kopírovanie vybraných súborov do priečinka %1$s. Želáte si miesto kopírovania zmeniť?</string>
   <string name="pincode_enter_pin_code">Zadajte PIN aplikácie</string>
   <string name="pincode_configure_your_pin">Zadajte PIN aplikácie</string>
   <string name="pincode_configure_your_pin_explanation">Pri každom spustení aplikácie bude vyžadovaný PIN</string>
   <string name="auth_oauth_error">Neúspešná autorizácia</string>
   <string name="auth_oauth_error_access_denied">Prístup odmietnutý autorizačným serverom</string>
   <string name="auth_wtf_reenter_URL">Nečakaný stav; prosím, opätovne vložte URL adresu servera</string>
-  <string name="auth_expired_oauth_token_toast">Vaša autorizácia expirovala. Prosím autorizujte sa znovu prosím</string>
+  <string name="auth_expired_oauth_token_toast">Vaša autorizácia vypršala. Prosím, autorizujte sa znovu</string>
   <string name="auth_expired_basic_auth_toast">Prosím, zadajte aktuálne heslo</string>
   <string name="auth_expired_saml_sso_token_toast">Vaše pripojenie vypršalo. Pripojte sa znovu prosím</string>
   <string name="auth_connecting_auth_server">Pripájam sa na autentifikačný server...</string>
   <string name="failed_upload_headline_delete_all_btn">zmazať všetky vybrané z radu pre nahratie</string>
   <string name="failed_upload_retry_text">opakovať nahratie obrazu:</string>
   <string name="failed_upload_load_more_images">Nahrať viac obrázkov</string>
-  <string name="failed_upload_retry_do_nothing_text">nevykonať nič, nie ste online pre instantné nahratie</string>
+  <string name="failed_upload_retry_do_nothing_text">nevykonať nič, nie ste online pre okamžité nahratie</string>
   <string name="failed_upload_failure_text">Chybová správa:</string>
   <string name="failed_upload_quota_exceeded_text">Prosím skontrolujte nastavenie vášho servera, možno bola prekročená disková kvóta.</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\n\t\tadministrátora.</string>
index 42bff0f..7ec6ee2 100644 (file)
@@ -82,7 +82,7 @@
   <string name="uploader_upload_succeeded_content_single">%1$s je uspešno poslan</string>
   <string name="uploader_upload_failed_ticker">Pošiljanje je spodletelo</string>
   <string name="uploader_upload_failed_content_single">Pošiljanja %1$s ni mogoče dokončati</string>
-  <string name="uploader_upload_failed_credentials_error">Napaka pri nalaganju, ponovno se prijavite!</string>
+  <string name="uploader_upload_failed_credentials_error">Pošiljanje je spodletelo. Pred nadaljevanjem se je treba prijaviti.</string>
   <string name="downloader_download_in_progress_ticker">Prejemanje …</string>
   <string name="downloader_download_in_progress_content">%1$d%% Prejemanje %2$s</string>
   <string name="downloader_download_succeeded_ticker">Prejemanje je uspešno končano</string>
   <string name="downloader_download_failed_ticker">Prejemanje je spodletelo</string>
   <string name="downloader_download_failed_content">Prejemanja %1$s ni mogoče dokončati</string>
   <string name="downloader_not_downloaded_yet">Prejem še ni zaključen</string>
-  <string name="downloader_download_failed_credentials_error">Napaka pri prenosu, ponovno se prijavite!</string>
+  <string name="downloader_download_failed_credentials_error">Prejemanje je spodletelo. Pred nadaljevanjem se je treba prijaviti.</string>
   <string name="common_choose_account">Izbor računa</string>
   <string name="sync_fail_ticker">Usklajevanje je spodletelo</string>
+  <string name="sync_fail_ticker_unauthorized">Usklajevanje je spodletelo. Znova se je treba prijaviti.</string>
   <string name="sync_fail_content">Usklajevanja %1$s ni mogoče dokončati</string>
   <string name="sync_fail_content_unauthorized">Neveljavno geslo za %1$s</string>
   <string name="sync_conflicts_in_favourites_ticker">Zaznani spori</string>
   <string name="foreign_files_fail">Nekaterih datotek ni mogoče premakniti</string>
   <string name="foreign_files_local_text">Krajevno: %1$s</string>
   <string name="foreign_files_remote_text">Oddaljeno: %1$s</string>
-  <string name="upload_query_move_foreign_files">Na strežniku ni dovolj prostora za kopiranje izbranih datotek v mapo %1$s. Ali želite datoteke raje premakniti na novo mesto? </string>
+  <string name="upload_query_move_foreign_files">Ni dovolj prostora za kopiranje izbranih datotek v mapo %1$s. Ali jih želite premakniti?</string>
   <string name="pincode_enter_pin_code">Vnesite kodo PIN programa</string>
   <string name="pincode_configure_your_pin">Vnesite kodo PIN programa</string>
   <string name="pincode_configure_your_pin_explanation">Koda PIN bo zahtevana vsakič pred zagonom programa.</string>
   <string name="auth_unsupported_auth_method">Strežnik ne podpira tega načina overitve</string>
   <string name="auth_unsupported_multiaccount">%1$s ne omogoča podpore več računom</string>
   <string name="auth_fail_get_user_name">Strežnik ne vrača ustreznega ID uporabnika. Stopite v stik s skrbnikom sistema.\n\t</string>
-  <string name="auth_can_not_auth_against_server">Preverjanje pristnosti s tem strežnikom ni uspela</string>
+  <string name="auth_can_not_auth_against_server">Ni mogoče preveriti pristnosti strežnika</string>
   <string name="fd_keep_in_sync">Datoteka naj bo posodobljena</string>
   <string name="common_rename">Preimenuj</string>
   <string name="common_remove">Odstrani</string>
-  <string name="confirmation_remove_alert">Resnično želite odstraniti %1$s?</string>
-  <string name="confirmation_remove_folder_alert">Resnično želite odstraniti %1$s in vsebino?</string>
+  <string name="confirmation_remove_alert">Ali res želite odstraniti %1$s?</string>
+  <string name="confirmation_remove_folder_alert">Ali res želite odstraniti %1$s skupaj s celotno vsebino?</string>
   <string name="confirmation_remove_local">Le krajevno</string>
   <string name="confirmation_remove_folder_local">Le krajevno vsebino</string>
   <string name="confirmation_remove_remote">Odstrani s strežnika</string>
   <string name="conflict_overwrite">Prepiši</string>
   <string name="conflict_dont_upload">Ne pošlji</string>
   <string name="preview_image_description">Predogled slike</string>
-  <string name="preview_image_error_unknown_format">Slike se ne da prikazati</string>
+  <string name="preview_image_error_unknown_format">Te slike ni mogoče prikazati</string>
   <string name="error__upload__local_file_not_copied">Datoteke %1$s ni mogoče kopirati v krajevno mapo %2$s</string>
   <string name="actionbar_failed_instant_upload">Spodletelo takojšnje pošiljanje</string>
   <string name="failed_upload_headline_text">Spodletela takojšnja pošiljanja</string>
   <string name="copy_link">Kopiraj povezavo</string>
   <string name="clipboard_text_copied">Kopirano v odložišče</string>
   <string name="error_cant_bind_to_operations_service">Kritična napaka: dejanj ni možno izvesti</string>
-  <string name="network_error_socket_exception">Pri povezavi s tem strežnikom je prišlo do napake.</string>
-  <string name="network_error_socket_timeout_exception">Med čakanjem na strežnik je prišlo do napake. Zahtevanega dejanja ni bilo moč izvesti.</string>
-  <string name="network_error_connect_timeout_exception">Med čakanjem na strežnik je prišlo do napake. Zahtevanega dejanja ni bilo moč izvesti.</string>
-  <string name="network_host_not_available">Zahtevanega dejanja se ne da izvesti ker strežnik ni dosegljiv.</string>
+  <string name="network_error_socket_exception">Med povezovanjem s strežnikom je prišlo do napake.</string>
+  <string name="network_error_socket_timeout_exception">Med čakanjem na vzpostavitev povezave s strežnikom je prišlo do napake. Zahtevanega dejanja ni mogoče izvesti.</string>
+  <string name="network_error_connect_timeout_exception">Med čakanjem na vzpostavitev povezave s strežnikom je prišlo do napake. Zahtevanega dejanja ni bilo mogoče končati.</string>
+  <string name="network_host_not_available">Zahtevanega dejanja ni bilo mogoče končati. Strežnik ni dosegljiv.</string>
 </resources>
index 35db3f1..8be33d9 100644 (file)
   <string name="foreign_files_fail">Vissa filer kunde inte flyttas</string>
   <string name="foreign_files_local_text">Lokal: %1$s</string>
   <string name="foreign_files_remote_text">Fjärr: %1$s</string>
-  <string name="upload_query_move_foreign_files">Det finns inte tillräckligt med utrymme för att kopiera valda filer till mappen %1$s. Vill du flytta filerna istället? </string>
+  <string name="upload_query_move_foreign_files">Det finns inte tillräckligt med ledigt utrymme för att kopiera de valda filerna till %1$s mappen. Skulle du vilja flytta dem istället?</string>
   <string name="pincode_enter_pin_code">Ange din PIN</string>
   <string name="pincode_configure_your_pin">Ange applikation PIN</string>
   <string name="pincode_configure_your_pin_explanation">Din PIN måste anges varje gång du startar programmet.</string>
index ba6d811..7b64376 100644 (file)
@@ -75,7 +75,6 @@
   <string name="foreign_files_fail">มีบางแฟ้มข้อมูลไม่สามารถย้ายได้</string>
   <string name="foreign_files_local_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">กรุณาใส่ PIN แอปของคุณ</string>
   <string name="pincode_configure_your_pin">กรอกรหัส PIN ของ  App</string>
   <string name="pincode_configure_your_pin_explanation">หมายเลข PIN ดังกล่าวจะถูกร้องขอทุกครั้งที่เริ่มใช้งานแอปฯ</string>
index baa450a..1bb3c14 100644 (file)
@@ -93,6 +93,7 @@
   <string name="downloader_download_failed_credentials_error">İndirme başarısız, yeniden oturum açmalısınız</string>
   <string name="common_choose_account">Hesap seçin</string>
   <string name="sync_fail_ticker">Eşitleme başarısız</string>
+  <string name="sync_fail_ticker_unauthorized">Eşitleme başarısız, yeniden oturum açmalısınız</string>
   <string name="sync_fail_content">%1$s eşitlemesi tamamlanamadı</string>
   <string name="sync_fail_content_unauthorized">%1$s için geçersiz parola</string>
   <string name="sync_conflicts_in_favourites_ticker">Çakışma bulundu</string>
   <string name="foreign_files_fail">Bazı dosyalar taşınamadı</string>
   <string name="foreign_files_local_text">Yerel: %1$s</string>
   <string name="foreign_files_remote_text">Uzak: %1$s</string>
-  <string name="upload_query_move_foreign_files">Seçilen dosyaları %1$s klasörüne kopyalamak için yeterli alan yok. Bunun yerine dosyayı taşımak ister misiniz?</string>
+  <string name="upload_query_move_foreign_files">Seçilen dosyaları %1$s dizinine kopyalamak için yeterli alan yok. Bunun yerine dosyayı içine taşımak ister misiniz?</string>
   <string name="pincode_enter_pin_code">Lütfen uygulama PIN\'inizi girin</string>
   <string name="pincode_configure_your_pin">Uygulama PIN\'inizi girin</string>
   <string name="pincode_configure_your_pin_explanation">PIN uygulama yeniden başladığında tekrar sorulacak</string>
index 260e756..f1e6381 100644 (file)
@@ -78,7 +78,6 @@
   <string name="foreign_files_fail">Деякі файли не можуть бути переміщені</string>
   <string name="foreign_files_local_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">Будь ласка, введіть свій програмний PIN</string>
   <string name="pincode_configure_your_pin">Введіть програмний PIN</string>
   <string name="pincode_configure_your_pin_explanation">PIN необхідно буде вводити щоразу при запуску цієї програми</string>
index d5a4bed..56d2028 100644 (file)
@@ -98,7 +98,6 @@
   <string name="foreign_files_fail">Một vài tập tin không thể chuyển đi</string>
   <string name="foreign_files_local_text">Cục bộ: %1$s</string>
   <string name="foreign_files_remote_text">Từ xa: %1$s</string>
-  <string name="upload_query_move_foreign_files">Không đủ chỗ trống để chép các tập tin đã chọn vào thư mục %1$s. Bạn có muốn di chuyển chúng thay vì sao chép?</string>
   <string name="pincode_enter_pin_code">Vui lòng, nhập mã PIN ứng dụng của bạn</string>
   <string name="pincode_configure_your_pin">Nhập mã PIN ứng dụng App</string>
   <string name="pincode_configure_your_pin_explanation">Mã PIN sẽ được yêu cầu mỗi khi ứng dụng được bật </string>
index cbedd5b..6df723e 100644 (file)
   <string name="foreign_files_fail">某些文件无法被移动</string>
   <string name="foreign_files_local_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 PIN码</string>
   <string name="pincode_configure_your_pin">输入 App PIN码</string>
   <string name="pincode_configure_your_pin_explanation">每次应用启动时都会请求PIN码</string>
index 7870ba3..e606c15 100644 (file)
   <string name="foreign_files_fail">部份文件無法被移動</string>
   <string name="foreign_files_local_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="pincode_configure_your_pin_explanation">這個密碼在你每次啟動這程式時都會被要求輸入</string>
index 3a1f97d..71436a8 100644 (file)
@@ -97,6 +97,7 @@
     <string name="downloader_download_failed_credentials_error">Download failed, you need to relogin</string>
     <string name="common_choose_account">Choose account</string>
     <string name="sync_fail_ticker">Synchronization failed</string>
+    <string name="sync_fail_ticker_unauthorized">Synchronization failed, you need to relogin</string>
     <string name="sync_fail_content">Synchronization of %1$s could not be completed</string>
     <string name="sync_fail_content_unauthorized">Invalid password for %1$s</string>
        <string name="sync_conflicts_in_favourites_ticker">Conflicts found</string>
     <string name="foreign_files_fail">"Some files could not be moved"</string>
     <string name="foreign_files_local_text">"Local: %1$s"</string>
     <string name="foreign_files_remote_text">"Remote: %1$s"</string>
-    <string name="upload_query_move_foreign_files">There is not space enough to copy the selected files into the %1$s folder. Would like to move them into instead? </string>
+    <string name="upload_query_move_foreign_files">There is not space enough to copy the selected files into the %1$s folder. Would you like to move them instead? </string>
     <string name="pincode_enter_pin_code">Please, insert your App PIN</string>
     
     <string name="pincode_configure_your_pin">Enter your App PIN</string>
index 85718ff..08efe34 100644 (file)
  */
 package com.owncloud.android;
 
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory.Policy;
+
 import android.app.Application;
 import android.content.Context;
 /**
  * Main Application of the project
  * 
- * Contains methods to build the "static" strings. These strings were before constants in different classes
+ * Contains methods to build the "static" strings. These strings were before constants in different
+ * classes
  * 
  * @author masensio
+ * @author David A. Velasco
  */
 public class MainApp extends Application {
+    
+    private static final String AUTH_ON = "on";
+    
+    @SuppressWarnings("unused")
+    private static final String POLICY_SINGLE_SESSION_PER_ACCOUNT = "single session per account";
+    @SuppressWarnings("unused")
+    private static final String POLICY_ALWAYS_NEW_CLIENT = "always new client";
 
     private static Context mContext;
-
+    
     public void onCreate(){
         super.onCreate();
         MainApp.mContext = getApplicationContext();
+        
+        boolean isSamlAuth = AUTH_ON.equals(getString(R.string.auth_method_saml_web_sso));
+        
+        if (isSamlAuth) {   
+            OwnCloudClientManagerFactory.setDefaultPolicy(Policy.SINGLE_SESSION_PER_ACCOUNT);
+            
+        } else {
+            OwnCloudClientManagerFactory.setDefaultPolicy(Policy.ALWAYS_NEW_CLIENT);
+        }
+        
     }
 
     public static Context getAppContext() {
@@ -78,4 +100,5 @@ public class MainApp extends Application {
     public static String getLogName() {
         return getAppContext().getResources().getString(R.string.log_name);
     }
+
 }
index 32bbcdc..bc0ab54 100644 (file)
@@ -62,6 +62,9 @@ import com.actionbarsherlock.app.SherlockDialogFragment;
 import com.owncloud.android.MainApp;\r
 import com.owncloud.android.R;\r
 import com.owncloud.android.authentication.SsoWebViewClient.SsoWebViewClientListener;\r
+import com.owncloud.android.lib.common.OwnCloudAccount;\r
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;\r
+import com.owncloud.android.lib.common.OwnCloudCredentialsFactory;\r
 import com.owncloud.android.lib.common.accounts.AccountTypeUtils;\r
 import com.owncloud.android.lib.common.accounts.AccountUtils.Constants;\r
 import com.owncloud.android.operations.DetectAuthenticationMethodOperation.AuthenticationMethod;\r
@@ -723,9 +726,7 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
             Intent getServerInfoIntent = new Intent();\r
             getServerInfoIntent.setAction(OperationsService.ACTION_GET_SERVER_INFO);\r
             getServerInfoIntent.putExtra(OperationsService.EXTRA_SERVER_URL, uri);\r
-            getServerInfoIntent.putExtra(OperationsService.EXTRA_AUTH_TOKEN_TYPE, mAuthTokenType);\r
             if (mOperationsServiceBinder != null) {\r
-                //Log_OC.wtf(TAG, "checking server..." );\r
                 mWaitingForOpId = mOperationsServiceBinder.newOperation(getServerInfoIntent);\r
             } else {\r
               Log_OC.wtf(TAG, "Server check tried with OperationService unbound!" );\r
@@ -828,9 +829,6 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
      * the root folder of the ownCloud server.\r
      */\r
     private void checkBasicAuthorization() {\r
-        /// get the path to the root folder through WebDAV from the version server\r
-        String webdav_path = AccountUtils.getWebdavPath(mServerInfo.mVersion, mAuthTokenType);\r
-\r
         /// get basic credentials entered by user\r
         String username = mUsernameInput.getText().toString();\r
         String password = mPasswordInput.getText().toString();\r
@@ -840,26 +838,19 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
                 IndeterminateProgressDialog.newInstance(R.string.auth_trying_to_login, true);\r
         dialog.show(getSupportFragmentManager(), WAIT_DIALOG_TAG);\r
 \r
-        /// test credentials accessing the root folder\r
-        String remotePath ="";\r
-        boolean successIfAbsent = false;\r
-        boolean followRedirects = true;\r
-        startExistenceCheckRemoteOperation(remotePath, this, successIfAbsent, webdav_path, username, password, followRedirects);\r
+        /// validate credentials accessing the root folder\r
+        accessRootFolderRemoteOperation(username, password);\r
         \r
     }\r
 \r
-    private void startExistenceCheckRemoteOperation(String remotePath, Context context, boolean successIfAbsent, String webdav_path,\r
-            String username, String password, boolean followRedirects) {\r
+    private void accessRootFolderRemoteOperation(String username, String password) {\r
         Intent existenceCheckIntent = new Intent();\r
         existenceCheckIntent.setAction(OperationsService.ACTION_EXISTENCE_CHECK);\r
         existenceCheckIntent.putExtra(OperationsService.EXTRA_SERVER_URL, mServerInfo.mBaseUrl);\r
-        existenceCheckIntent.putExtra(OperationsService.EXTRA_REMOTE_PATH, remotePath);\r
-        existenceCheckIntent.putExtra(OperationsService.EXTRA_SUCCESS_IF_ABSENT, successIfAbsent);\r
-        existenceCheckIntent.putExtra(OperationsService.EXTRA_WEBDAV_PATH, webdav_path);\r
+        existenceCheckIntent.putExtra(OperationsService.EXTRA_REMOTE_PATH, "/");\r
         existenceCheckIntent.putExtra(OperationsService.EXTRA_USERNAME, username);\r
         existenceCheckIntent.putExtra(OperationsService.EXTRA_PASSWORD, password);\r
         existenceCheckIntent.putExtra(OperationsService.EXTRA_AUTH_TOKEN, mAuthToken);\r
-        existenceCheckIntent.putExtra(OperationsService.EXTRA_FOLLOW_REDIRECTS, followRedirects);\r
         \r
         if (mOperationsServiceBinder != null) {\r
             //Log_OC.wtf(TAG, "starting existenceCheckRemoteOperation..." );\r
@@ -904,14 +895,8 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
                 IndeterminateProgressDialog.newInstance(R.string.auth_trying_to_login, true);\r
         dialog.show(getSupportFragmentManager(), WAIT_DIALOG_TAG);\r
 \r
-        /// get the path to the root folder through WebDAV from the version server\r
-        String webdav_path = AccountUtils.getWebdavPath(mServerInfo.mVersion, mAuthTokenType);\r
-\r
-        /// test credentials accessing the root folder\r
-        String remotePath ="";\r
-        boolean successIfAbsent = false;\r
-        boolean followRedirections = false;\r
-        startExistenceCheckRemoteOperation(remotePath, this, successIfAbsent, webdav_path, "", "", followRedirections);\r
+        /// validate credentials accessing the root folder\r
+        accessRootFolderRemoteOperation("", "");\r
 \r
     }\r
 \r
@@ -959,7 +944,15 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
 \r
                 if (!mUsernameInput.getText().toString().equals(username)) {\r
                     // fail - not a new account, but an existing one; disallow\r
-                    result = new RemoteOperationResult(ResultCode.ACCOUNT_NOT_THE_SAME); \r
+                    result = new RemoteOperationResult(ResultCode.ACCOUNT_NOT_THE_SAME);\r
+                    /*\r
+                    OwnCloudClientManagerFactory.getDefaultSingleton().removeClientFor(\r
+                            new OwnCloudAccount(\r
+                                    Uri.parse(mServerInfo.mBaseUrl),\r
+                                    OwnCloudCredentialsFactory.newSamlSsoCredentials(mAuthToken))\r
+                            );\r
+                            */\r
+                    mAuthToken = "";\r
                     updateAuthStatusIconAndText(result);\r
                     showAuthStatus();\r
                     Log_OC.d(TAG, result.getLogMessage());\r
@@ -1284,8 +1277,7 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
         mWaitingForOpId = Long.MAX_VALUE;\r
         dismissDialog(WAIT_DIALOG_TAG);\r
 \r
-        String webdav_path = AccountUtils.getWebdavPath(mServerInfo.mVersion, mAuthTokenType);\r
-        if (result.isSuccess() && webdav_path != null) {\r
+        if (result.isSuccess()) {\r
             /// be gentle with the user\r
             IndeterminateProgressDialog dialog = \r
                     IndeterminateProgressDialog.newInstance(R.string.auth_trying_to_login, true);\r
@@ -1298,10 +1290,7 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
             //mAuthToken = ((OAuth2GetAccessToken)operation).getResultTokenMap().get(OAuth2Constants.KEY_ACCESS_TOKEN);\r
             Log_OC.d(TAG, "Got ACCESS TOKEN: " + mAuthToken);\r
             \r
-            String remotePath ="";\r
-            boolean successIfAbsent = false;\r
-            boolean followRedirects = true;\r
-            startExistenceCheckRemoteOperation(remotePath, this, successIfAbsent, webdav_path, "", "", followRedirects);\r
+            accessRootFolderRemoteOperation("", "");\r
 \r
         } else {\r
             updateAuthStatusIconAndText(result);\r
@@ -1417,11 +1406,9 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
         String username = mUsernameInput.getText().toString().trim();\r
         if (isOAuth) {\r
             username = "OAuth_user" + (new java.util.Random(System.currentTimeMillis())).nextLong();\r
-        }            \r
-        String accountName = username + "@" + uri.getHost();\r
-        if (uri.getPort() >= 0) {\r
-            accountName += ":" + uri.getPort();\r
         }\r
+        String accountName = com.owncloud.android.lib.common.accounts.AccountUtils.\r
+                buildAccountName(uri, username);\r
         Account newAccount = new Account(accountName, MainApp.getAccountType());\r
         if (AccountUtils.exists(newAccount, getApplicationContext())) {\r
             // fail - not a new account, but an existing one; disallow\r
@@ -1642,7 +1629,6 @@ SsoWebViewClientListener, OnSslUntrustedCertListener {
         getUserNameIntent.setAction(OperationsService.ACTION_GET_USER_NAME);\r
         getUserNameIntent.putExtra(OperationsService.EXTRA_SERVER_URL, mServerInfo.mBaseUrl);\r
         getUserNameIntent.putExtra(OperationsService.EXTRA_COOKIE, sessionCookie);\r
-        getUserNameIntent.putExtra(OperationsService.EXTRA_FOLLOW_REDIRECTS, followRedirects);\r
         \r
         if (mOperationsServiceBinder != null) {\r
             //Log_OC.wtf(TAG, "starting getRemoteUserNameOperation..." );\r
diff --git a/src/com/owncloud/android/authentication/OwnCloudAccount.java b/src/com/owncloud/android/authentication/OwnCloudAccount.java
deleted file mode 100644 (file)
index 51a9900..0000000
+++ /dev/null
@@ -1,75 +0,0 @@
-/* ownCloud Android client application
- *   Copyright (C) 2014 ownCloud Inc.
- *
- *   This program is free software: you can redistribute it and/or modify
- *   it under the terms of the GNU General Public License version 2,
- *   as published by the Free Software Foundation.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *   GNU General Public License for more details.
- *
- *   You should have received a copy of the GNU General Public License
- *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-package com.owncloud.android.authentication;
-
-import android.accounts.Account;
-import android.os.Parcel;
-import android.os.Parcelable;
-
-/**
- * Account with extra information specific for ownCloud accounts.
- * 
- * TODO integrate in the main app
- * 
- * @author David A. Velasco
- */
-public class OwnCloudAccount extends Account {
-
-       private String mAuthTokenType;
-
-       public OwnCloudAccount(String name, String type, String authTokenType) {
-               super(name, type);
-               // TODO validate authTokentype as supported
-               mAuthTokenType = authTokenType;
-       }
-       
-    /**
-     * Reconstruct from parcel
-     * 
-     * @param source The source parcel
-     */
-       public OwnCloudAccount(Parcel source) {
-               super(source);
-        mAuthTokenType = source.readString();
-       }
-       
-    @Override
-    public void writeToParcel(Parcel dest, int flags) {
-       super.writeToParcel(dest, flags);
-        dest.writeString(mAuthTokenType);
-    }
-       
-       
-       public String getAuthTokenType() {
-               return mAuthTokenType;
-       }
-
-       
-    public static final Parcelable.Creator<OwnCloudAccount> CREATOR = new Parcelable.Creator<OwnCloudAccount>() {
-        @Override
-        public OwnCloudAccount createFromParcel(Parcel source) {
-            return new OwnCloudAccount(source);
-        }
-
-        @Override
-        public OwnCloudAccount [] newArray(int size) {
-            return new OwnCloudAccount[size];
-        }
-    };
-       
-}
index 650acf7..c8c0d24 100644 (file)
@@ -186,6 +186,8 @@ public class FileDataStorageManager {
         cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
         cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
+        cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
+        cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
         
         boolean sameRemotePath = fileExists(file.getRemotePath());
         if (sameRemotePath ||
@@ -285,6 +287,8 @@ public class FileDataStorageManager {
             cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
             cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0);
             cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
+            cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
+            cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
 
             boolean existsByPath = fileExists(file.getRemotePath());
             if (existsByPath || fileExists(file.getFileId())) {
@@ -342,6 +346,8 @@ public class FileDataStorageManager {
         cv.put(ProviderTableMeta.FILE_ETAG, folder.getEtag());
         cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, folder.isShareByLink() ? 1 : 0);
         cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, folder.getPublicLink());
+        cv.put(ProviderTableMeta.FILE_PERMISSIONS, folder.getPermissions());
+        cv.put(ProviderTableMeta.FILE_REMOTE_ID, folder.getRemoteId());
         
         operations.add(ContentProviderOperation.newUpdate(ProviderTableMeta.CONTENT_URI).
                 withValues(cv).
@@ -750,6 +756,8 @@ public class FileDataStorageManager {
             file.setShareByLink(c.getInt(
                     c.getColumnIndex(ProviderTableMeta.FILE_SHARE_BY_LINK)) == 1 ? true : false);
             file.setPublicLink(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_PUBLIC_LINK)));
+            file.setPermissions(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_PERMISSIONS)));
+            file.setRemoteId(c.getString(c.getColumnIndex(ProviderTableMeta.FILE_REMOTE_ID)));
                     
         }
         return file;
@@ -1092,6 +1100,8 @@ public class FileDataStorageManager {
                 cv.put(ProviderTableMeta.FILE_ETAG, file.getEtag());
                 cv.put(ProviderTableMeta.FILE_SHARE_BY_LINK, file.isShareByLink() ? 1 : 0);
                 cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
+                cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
+                cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
 
                 boolean existsByPath = fileExists(file.getRemotePath());
                 if (existsByPath || fileExists(file.getFileId())) {
index 82c341c..92168ff 100644 (file)
@@ -65,6 +65,9 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
     private boolean mShareByLink;
     private String mPublicLink;
 
+    private String mPermissions;
+    private String mRemoteId;
+
 
     /**
      * Create new {@link OCFile} with given path.
@@ -104,6 +107,8 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mEtag = source.readString();
         mShareByLink = source.readInt() == 1;
         mPublicLink = source.readString();
+        mPermissions = source.readString();
+        mRemoteId = source.readString();
     }
 
     @Override
@@ -124,6 +129,8 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         dest.writeString(mEtag);
         dest.writeInt(mShareByLink ? 1 : 0);
         dest.writeString(mPublicLink);
+        dest.writeString(mPermissions);
+        dest.writeString(mRemoteId);
     }
     
     /**
@@ -334,6 +341,8 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         mEtag = null;
         mShareByLink = false;
         mPublicLink = null;
+        mPermissions = null;
+        mRemoteId = null;
     }
 
     /**
@@ -518,4 +527,20 @@ public class OCFile implements Parcelable, Comparable<OCFile> {
         return (result != null) ? result : "";
     }
 
+    public String getPermissions() {
+        return mPermissions;
+    }
+
+    public void setPermissions(String permissions) {
+        this.mPermissions = permissions;
+    }
+
+    public String getRemoteId() {
+        return mRemoteId;
+    }
+
+    public void setRemoteId(String remoteId) {
+        this.mRemoteId = remoteId;
+    }
+
 }
index 2101a68..1adf697 100644 (file)
  */\r
 package com.owncloud.android.db;\r
 \r
-import com.owncloud.android.MainApp;\r
-\r
 import android.net.Uri;\r
 import android.provider.BaseColumns;\r
 \r
+import com.owncloud.android.MainApp;\r
+\r
 /**\r
  * Meta-Class that holds various static field information\r
  * \r
@@ -31,7 +31,7 @@ import android.provider.BaseColumns;
 public class ProviderMeta {\r
 \r
     public static final String DB_NAME = "filelist";\r
-    public static final int DB_VERSION = 6;\r
+    public static final int DB_VERSION = 7;\r
 \r
     private ProviderMeta() {\r
     }\r
@@ -68,6 +68,8 @@ public class ProviderMeta {
         public static final String FILE_ETAG = "etag";\r
         public static final String FILE_SHARE_BY_LINK = "share_by_link";\r
         public static final String FILE_PUBLIC_LINK = "public_link";\r
+        public static final String FILE_PERMISSIONS = "permissions";\r
+        public static final String FILE_REMOTE_ID = "remote_id";\r
 \r
         public static final String FILE_DEFAULT_SORT_ORDER = FILE_NAME\r
                 + " collate nocase asc";\r
index 80d4a6d..2e34a8b 100644 (file)
@@ -34,14 +34,15 @@ import com.owncloud.android.datamodel.FileDataStorageManager;
 import com.owncloud.android.datamodel.OCFile;
 
 import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
-import com.owncloud.android.lib.common.OwnCloudClientFactory;
+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.notifications.NotificationBuilderWithProgressBar;
 import com.owncloud.android.notifications.NotificationDelayer;
-import com.owncloud.android.operations.DownloadFileOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult.ResultCode;
 import com.owncloud.android.lib.resources.files.FileUtils;
+import com.owncloud.android.operations.DownloadFileOperation;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
 import com.owncloud.android.ui.preview.PreviewImageActivity;
@@ -347,8 +348,11 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
                 /// prepare client object to send the request to the ownCloud server
                 if (mDownloadClient == null || !mLastAccount.equals(mCurrentDownload.getAccount())) {
                     mLastAccount = mCurrentDownload.getAccount();
-                    mStorageManager = new FileDataStorageManager(mLastAccount, getContentResolver());
-                    mDownloadClient = OwnCloudClientFactory.createOwnCloudClient(mLastAccount, getApplicationContext());
+                    mStorageManager = 
+                            new FileDataStorageManager(mLastAccount, getContentResolver());
+                    OwnCloudAccount ocAccount = new OwnCloudAccount(mLastAccount, this);
+                    mDownloadClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+                            getClientFor(ocAccount, this);
                 }
 
                 /// perform the download
@@ -466,9 +470,10 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
             int tickerId = (downloadResult.isSuccess()) ? R.string.downloader_download_succeeded_ticker : 
                 R.string.downloader_download_failed_ticker;
             
-            boolean needsToUpdateCredentials = (downloadResult.getCode() == ResultCode.UNAUTHORIZED ||
-                                                  (downloadResult.isIdPRedirection()
-                                                        && mDownloadClient.getCredentials() == null));
+            boolean needsToUpdateCredentials = (
+                    downloadResult.getCode() == ResultCode.UNAUTHORIZED ||
+                    downloadResult.isIdPRedirection()
+            );
             tickerId = (needsToUpdateCredentials) ? 
                     R.string.downloader_download_failed_credentials_error : tickerId;
             
index e9d8d1b..7a5f8de 100644 (file)
@@ -48,8 +48,9 @@ import com.owncloud.android.lib.resources.files.FileUtils;
 import com.owncloud.android.lib.resources.status.OwnCloudVersion;
 import com.owncloud.android.lib.common.accounts.AccountUtils.Constants;
 import com.owncloud.android.lib.common.network.OnDatatransferProgressListener;
-import com.owncloud.android.lib.common.OwnCloudClientFactory;
+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.ui.activity.FailedUploadActivity;
 import com.owncloud.android.ui.activity.FileActivity;
 import com.owncloud.android.ui.activity.FileDisplayActivity;
@@ -486,8 +487,11 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
                 /// prepare client object to send requests to the ownCloud server
                 if (mUploadClient == null || !mLastAccount.equals(mCurrentUpload.getAccount())) {
                     mLastAccount = mCurrentUpload.getAccount();
-                    mStorageManager = new FileDataStorageManager(mLastAccount, getContentResolver());
-                    mUploadClient = OwnCloudClientFactory.createOwnCloudClient(mLastAccount, getApplicationContext());
+                    mStorageManager = 
+                            new FileDataStorageManager(mLastAccount, getContentResolver());
+                    OwnCloudAccount ocAccount = new OwnCloudAccount(mLastAccount, this);
+                    mUploadClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+                            getClientFor(ocAccount, this);
                 }
                 
                 /// check the existence of the parent folder for the file to upload
@@ -737,9 +741,10 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
             String content = null;
 
             // check credentials error
-            boolean needsToUpdateCredentials = (uploadResult.getCode() == ResultCode.UNAUTHORIZED || 
-                    (uploadResult.isIdPRedirection() &&
-                            mUploadClient.getCredentials() == null));
+            boolean needsToUpdateCredentials = (
+                    uploadResult.getCode() == ResultCode.UNAUTHORIZED || 
+                    uploadResult.isIdPRedirection()
+            );
             tickerId = (needsToUpdateCredentials) ? 
                     R.string.uploader_upload_failed_credentials_error : tickerId;
 
index b817e72..b90c25e 100644 (file)
@@ -64,7 +64,6 @@ public class DetectAuthenticationMethodOperation extends RemoteOperation {
     }
     
     private Context mContext;
-    private String mWebDavUrl;
     
     /**
      * Constructor
@@ -72,9 +71,8 @@ public class DetectAuthenticationMethodOperation extends RemoteOperation {
      * @param context       Android context of the caller.
      * @param webdavUrl
      */
-    public DetectAuthenticationMethodOperation(Context context, String webdavUrl) {
+    public DetectAuthenticationMethodOperation(Context context) {
         mContext = context;
-        mWebDavUrl = webdavUrl;
     }
     
 
@@ -93,15 +91,15 @@ public class DetectAuthenticationMethodOperation extends RemoteOperation {
         AuthenticationMethod authMethod = AuthenticationMethod.UNKNOWN;
         
         RemoteOperation operation = new ExistenceCheckRemoteOperation("", mContext, false);
-        client.setWebdavUri(Uri.parse(mWebDavUrl));
-        client.setBasicCredentials("", "");
+        client.clearCredentials();
         client.setFollowRedirects(false);
         
         // try to access the root folder, following redirections but not SAML SSO redirections
         result = operation.execute(client);
         String redirectedLocation = result.getRedirectedLocation(); 
-        while (redirectedLocation != null && redirectedLocation.length() > 0 && !result.isIdPRedirection()) {
-            client.setWebdavUri(Uri.parse(result.getRedirectedLocation()));
+        while (redirectedLocation != null && redirectedLocation.length() > 0 && 
+                !result.isIdPRedirection()) {
+            client.setBaseUri(Uri.parse(result.getRedirectedLocation()));
             result = operation.execute(client);
             redirectedLocation = result.getRedirectedLocation();
         } 
index 14f405e..7d42886 100644 (file)
@@ -53,7 +53,6 @@ public class GetServerInfoOperation extends RemoteOperation {
     private static final String TAG = GetServerInfoOperation.class.getSimpleName();
     
     private String mUrl;
-    private String mAuthTokenType;
     private Context mContext;
     
     private ServerInfo mResultData;
@@ -62,14 +61,11 @@ public class GetServerInfoOperation extends RemoteOperation {
      * Constructor.
      * 
      * @param url               URL to an ownCloud server.
-     * @param authTokenType     Identifies the authorization token supported by the caller;
-     *                          TODO ugly dependency, get rid of it. 
      * @param context           Android context; needed to check network state
      *                          TODO ugly dependency, get rid of it. 
      */
-    public GetServerInfoOperation(String url, String authTokenType, Context context) {
+    public GetServerInfoOperation(String url, Context context) {
         mUrl = trimWebdavSuffix(url);
-        mAuthTokenType = authTokenType;
         mContext = context;
         
         mResultData = new ServerInfo();
@@ -87,9 +83,9 @@ public class GetServerInfoOperation extends RemoteOperation {
        protected RemoteOperationResult run(OwnCloudClient client) {
            
            // first: check the status of the server (including its version)
-           GetRemoteStatusOperation getStatus = new GetRemoteStatusOperation(mUrl, mContext);
+           GetRemoteStatusOperation getStatus = new GetRemoteStatusOperation(mContext);
            RemoteOperationResult result = getStatus.execute(client);
-
+           
         if (result.isSuccess()) {
             // second: get authentication method required by the server
             mResultData.mVersion = (OwnCloudVersion)(result.getData().get(0));
@@ -114,10 +110,8 @@ public class GetServerInfoOperation extends RemoteOperation {
        
     private RemoteOperationResult detectAuthorizationMethod(OwnCloudClient client) {
         Log_OC.d(TAG, "Trying empty authorization to detect authentication method");
-        String webdav_path = AccountUtils.getWebdavPath(mResultData.mVersion, mAuthTokenType);
-        String webdav_url = mResultData.mBaseUrl + webdav_path;
         DetectAuthenticationMethodOperation operation = 
-                new DetectAuthenticationMethodOperation(mContext, webdav_url);
+                new DetectAuthenticationMethodOperation(mContext);
         return operation.execute(client);
     }
     
index a8e230d..fc4a74e 100644 (file)
@@ -416,6 +416,8 @@ public class SynchronizeFolderOperation extends RemoteOperation {
         file.setMimetype(remote.getMimeType());
         file.setModificationTimestamp(remote.getModifiedTimestamp());
         file.setEtag(remote.getEtag());
+        file.setPermissions(remote.getPermissions());
+        file.setRemoteId(remote.getRemoteId());
         return file;
     }
     
index e16530d..8c5678b 100644 (file)
@@ -23,7 +23,6 @@ import com.owncloud.android.lib.common.operations.OnRemoteOperationListener;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
 
-import android.app.Activity;
 import android.content.Context;
 import android.os.Handler;
 
@@ -97,6 +96,7 @@ public abstract class SyncOperation extends RemoteOperation {
      * @param listenerHandler   Handler associated to the thread where the methods of the listener objects must be called.
      * @return                  Thread were the remote operation is executed.
      */
+       /*
     public Thread execute(FileDataStorageManager storageManager, Context context, OnRemoteOperationListener listener, Handler listenerHandler, Activity callerActivity) {
         if (storageManager == null) {
             throw new IllegalArgumentException("Trying to execute a sync operation with a NULL storage manager");
@@ -107,6 +107,7 @@ public abstract class SyncOperation extends RemoteOperation {
         mStorageManager = storageManager;
         return super.execute(storageManager.getAccount(), context, listener, listenerHandler, callerActivity);
     }
+    */
 
     
        /**
index c84d66b..d001bf8 100644 (file)
@@ -93,6 +93,10 @@ public class FileContentProvider extends ContentProvider {
                 ProviderTableMeta.FILE_SHARE_BY_LINK);
         mFileProjectionMap.put(ProviderTableMeta.FILE_PUBLIC_LINK,
                 ProviderTableMeta.FILE_PUBLIC_LINK);
+        mFileProjectionMap.put(ProviderTableMeta.FILE_PERMISSIONS,
+                ProviderTableMeta.FILE_PERMISSIONS);
+        mFileProjectionMap.put(ProviderTableMeta.FILE_REMOTE_ID,
+                ProviderTableMeta.FILE_REMOTE_ID);
     }
 
     private static final int SINGLE_FILE = 1;
@@ -554,7 +558,9 @@ public class FileContentProvider extends ContentProvider {
                     + ProviderTableMeta.FILE_MODIFIED_AT_LAST_SYNC_FOR_DATA + " INTEGER, "
                     + ProviderTableMeta.FILE_ETAG + " TEXT, " 
                     + ProviderTableMeta.FILE_SHARE_BY_LINK + " INTEGER, "
-                    + ProviderTableMeta.FILE_PUBLIC_LINK  + " TEXT );"
+                    + ProviderTableMeta.FILE_PUBLIC_LINK  + " TEXT, "
+                    + ProviderTableMeta.FILE_PERMISSIONS  + " TEXT null,"
+                    + ProviderTableMeta.FILE_REMOTE_ID  + " TEXT null);"
                     );
             
             // Create table ocshares
@@ -643,7 +649,7 @@ public class FileContentProvider extends ContentProvider {
             }
             if (!upgraded)
                 Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion + ", newVersion == " + newVersion);
-            
+
             if (oldVersion < 6 && newVersion >= 6) {
                 Log_OC.i("SQL", "Entering in the #5 ADD in onUpgrade");
                 db.beginTransaction();
@@ -655,7 +661,7 @@ public class FileContentProvider extends ContentProvider {
                     db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME +
                             " ADD COLUMN " + ProviderTableMeta.FILE_PUBLIC_LINK + " TEXT " +
                             " DEFAULT NULL");
-                    
+
                     // Create table ocshares
                     db.execSQL("CREATE TABLE " + ProviderTableMeta.OCSHARES_TABLE_NAME + "("
                             + ProviderTableMeta._ID + " INTEGER PRIMARY KEY, "
@@ -673,6 +679,27 @@ public class FileContentProvider extends ContentProvider {
                             + ProviderTableMeta.OCSHARES_USER_ID + " INTEGER, "
                             + ProviderTableMeta.OCSHARES_ID_REMOTE_SHARED + " INTEGER," 
                             + ProviderTableMeta.OCSHARES_ACCOUNT_OWNER + " TEXT );" );
+
+                    upgraded = true;
+                    db.setTransactionSuccessful();
+                } finally {
+                    db.endTransaction();
+                }
+            }
+            if (!upgraded)
+                Log_OC.i("SQL", "OUT of the ADD in onUpgrade; oldVersion == " + oldVersion + ", newVersion == " + newVersion);
+
+            if (oldVersion < 7 && newVersion >= 7) {
+                Log_OC.i("SQL", "Entering in the #7 ADD in onUpgrade");
+                db.beginTransaction();
+                try {
+                    db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME +
+                            " ADD COLUMN " + ProviderTableMeta.FILE_PERMISSIONS + " TEXT " +
+                            " DEFAULT NULL");
+
+                    db .execSQL("ALTER TABLE " + ProviderTableMeta.FILE_TABLE_NAME +
+                            " ADD COLUMN " + ProviderTableMeta.FILE_REMOTE_ID + " TEXT " +
+                            " DEFAULT NULL");
                     
                     upgraded = true;
                     db.setTransactionSuccessful();
index ce80b57..2522749 100644 (file)
@@ -23,10 +23,15 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentLinkedQueue;
 import java.util.concurrent.ConcurrentMap;
 
+import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.datamodel.FileDataStorageManager;
-import com.owncloud.android.lib.common.OwnCloudClientFactory;
+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.OwnCloudCredentialsFactory;
+import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException;
 import com.owncloud.android.lib.common.operations.OnRemoteOperationListener;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@@ -46,6 +51,8 @@ import com.owncloud.android.utils.Log_OC;
 
 import android.accounts.Account;
 import android.accounts.AccountsException;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
 import android.app.Service;
 import android.content.Intent;
 import android.net.Uri;
@@ -64,7 +71,6 @@ public class OperationsService extends Service {
     
     public static final String EXTRA_ACCOUNT = "ACCOUNT";
     public static final String EXTRA_SERVER_URL = "SERVER_URL";
-    public static final String EXTRA_AUTH_TOKEN_TYPE = "AUTH_TOKEN_TYPE";
     public static final String EXTRA_OAUTH2_QUERY_PARAMETERS = "OAUTH2_QUERY_PARAMETERS";
     public static final String EXTRA_REMOTE_PATH = "REMOTE_PATH";
     public static final String EXTRA_SEND_INTENT = "SEND_INTENT";
@@ -75,12 +81,10 @@ public class OperationsService extends Service {
     public static final String EXTRA_RESULT = "RESULT";
     
     // TODO review if ALL OF THEM are necessary
-    public static final String EXTRA_WEBDAV_PATH = "WEBDAV_PATH";
     public static final String EXTRA_SUCCESS_IF_ABSENT = "SUCCESS_IF_ABSENT";
     public static final String EXTRA_USERNAME = "USERNAME";
     public static final String EXTRA_PASSWORD = "PASSWORD";
     public static final String EXTRA_AUTH_TOKEN = "AUTH_TOKEN";
-    public static final String EXTRA_FOLLOW_REDIRECTS = "FOLLOW_REDIRECTS";
     public static final String EXTRA_COOKIE = "COOKIE";
     
     public static final String ACTION_CREATE_SHARE = "CREATE_SHARE";
@@ -107,22 +111,18 @@ public class OperationsService extends Service {
     private static class Target {
         public Uri mServerUrl = null;
         public Account mAccount = null;
-        public String mWebDavUrl = null;
         public String mUsername = null;
         public String mPassword = null;
         public String mAuthToken = null;
-        public boolean mFollowRedirects = true;
         public String mCookie = null;
         
-        public Target(Account account, Uri serverUrl, String webdavUrl, String username, String password, String authToken,
-                boolean followRedirects, String cookie) {
+        public Target(Account account, Uri serverUrl, String username, String password, String authToken,
+                String cookie) {
             mAccount = account;
             mServerUrl = serverUrl;
-            mWebDavUrl = webdavUrl;
             mUsername = username;
             mPassword = password;
             mAuthToken = authToken;
-            mFollowRedirects = followRedirects;
             mCookie = cookie;
         }
     }
@@ -172,8 +172,25 @@ public class OperationsService extends Service {
     @Override
     public void onDestroy() {
         //Log_OC.wtf(TAG, "onDestroy init" );
+        // Saving cookies
+        try {
+            OwnCloudClientManagerFactory.getDefaultSingleton().
+                saveAllClients(this, MainApp.getAccountType());
+            
+            // 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();
+        }
+        
         //Log_OC.wtf(TAG, "Clear mUndispatchedFinisiedOperations" );
         mUndispatchedFinishedOperations.clear();
+        
         //Log_OC.wtf(TAG, "onDestroy end" );
         super.onDestroy();
     }
@@ -281,21 +298,16 @@ public class OperationsService extends Service {
                 } else {
                     Account account = operationIntent.getParcelableExtra(EXTRA_ACCOUNT);
                     String serverUrl = operationIntent.getStringExtra(EXTRA_SERVER_URL);
-                    String webDavPath = operationIntent.getStringExtra(EXTRA_WEBDAV_PATH);
-                    String webDavUrl = serverUrl + webDavPath;
                     String username = operationIntent.getStringExtra(EXTRA_USERNAME);
                     String password = operationIntent.getStringExtra(EXTRA_PASSWORD);
                     String authToken = operationIntent.getStringExtra(EXTRA_AUTH_TOKEN);
-                    boolean followRedirects = operationIntent.getBooleanExtra(EXTRA_FOLLOW_REDIRECTS, true);
                     String cookie = operationIntent.getStringExtra(EXTRA_COOKIE);
                     target = new Target(
                             account, 
                             (serverUrl == null) ? null : Uri.parse(serverUrl),
-                            ((webDavPath == null) || (serverUrl == null)) ? null : webDavUrl,
                             username,
                             password,
                             authToken,
-                            followRedirects,
                             cookie
                     );
                     
@@ -318,10 +330,7 @@ public class OperationsService extends Service {
                         
                     } else if (action.equals(ACTION_GET_SERVER_INFO)) { 
                         // check OC server and get basic information from it
-                        String authTokenType = 
-                                operationIntent.getStringExtra(EXTRA_AUTH_TOKEN_TYPE);
-                        operation = new GetServerInfoOperation(
-                                serverUrl, authTokenType, OperationsService.this);
+                        operation = new GetServerInfoOperation(serverUrl, OperationsService.this);
                         
                     } else if (action.equals(ACTION_OAUTH2_GET_ACCESS_TOKEN)) {
                         /// GET ACCESS TOKEN to the OAuth server
@@ -336,7 +345,7 @@ public class OperationsService extends Service {
                     } else if (action.equals(ACTION_EXISTENCE_CHECK)) {
                         // Existence Check 
                         String remotePath = operationIntent.getStringExtra(EXTRA_REMOTE_PATH);
-                        boolean successIfAbsent = operationIntent.getBooleanExtra(EXTRA_SUCCESS_IF_ABSENT, true);
+                        boolean successIfAbsent = operationIntent.getBooleanExtra(EXTRA_SUCCESS_IF_ABSENT, false);
                         operation = new ExistenceCheckRemoteOperation(remotePath, OperationsService.this, successIfAbsent);
                         
                     } else if (action.equals(ACTION_GET_USER_NAME)) {
@@ -453,21 +462,35 @@ public class OperationsService extends Service {
                 if (mLastTarget == null || !mLastTarget.equals(next.first)) {
                     mLastTarget = next.first;
                     if (mLastTarget.mAccount != null) {
-                        mOwnCloudClient = OwnCloudClientFactory.createOwnCloudClient(mLastTarget.mAccount, getApplicationContext());
-                        mStorageManager = new FileDataStorageManager(mLastTarget.mAccount, getContentResolver());
+                        OwnCloudAccount ocAccount = new OwnCloudAccount(mLastTarget.mAccount, this);
+                        mOwnCloudClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+                                getClientFor(ocAccount, this);
+                        mStorageManager = 
+                                new FileDataStorageManager(
+                                        mLastTarget.mAccount, 
+                                        getContentResolver());
                     } else {
-                        mOwnCloudClient = OwnCloudClientFactory.createOwnCloudClient(mLastTarget.mServerUrl, getApplicationContext(), 
-                                mLastTarget.mFollowRedirects);    // this is not good enough
-                        if (mLastTarget.mWebDavUrl != null) {
-                            mOwnCloudClient.setWebdavUri(Uri.parse(mLastTarget.mWebDavUrl));
-                        }
-                        if (mLastTarget.mUsername != null && mLastTarget.mPassword != null) {
-                            mOwnCloudClient.setBasicCredentials(mLastTarget.mUsername, mLastTarget.mPassword);
-                        } else if (mLastTarget.mAuthToken != null) {
-                            mOwnCloudClient.setBearerCredentials(mLastTarget.mAuthToken);
-                        } else if (mLastTarget.mCookie != null) {
-                            mOwnCloudClient.setSsoSessionCookie(mLastTarget.mCookie);
+                        OwnCloudCredentials credentials = null;
+                        if (mLastTarget.mUsername != null && 
+                                mLastTarget.mUsername.length() > 0) {
+                            credentials = OwnCloudCredentialsFactory.newBasicCredentials(
+                                    mLastTarget.mUsername, 
+                                    mLastTarget.mPassword);  // basic
+                            
+                        } else if (mLastTarget.mAuthToken != null && 
+                                mLastTarget.mAuthToken.length() > 0) {
+                            credentials = OwnCloudCredentialsFactory.newBearerCredentials(
+                                    mLastTarget.mAuthToken);  // bearer token
+                            
+                        } else if (mLastTarget.mCookie != null &&
+                                mLastTarget.mCookie.length() > 0) {
+                            credentials = OwnCloudCredentialsFactory.newSamlSsoCredentials(
+                                    mLastTarget.mCookie); // SAML SSO
                         }
+                        OwnCloudAccount ocAccount = new OwnCloudAccount(
+                                mLastTarget.mServerUrl, credentials);
+                        mOwnCloudClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+                                getClientFor(ocAccount, this);
                         mStorageManager = null;
                     }
                 }
index a9defc0..28cfa54 100644 (file)
@@ -27,9 +27,9 @@ import org.apache.http.client.ClientProtocolException;
 import com.owncloud.android.datamodel.FileDataStorageManager;\r
 import com.owncloud.android.lib.common.accounts.AccountUtils;\r
 import com.owncloud.android.lib.common.accounts.AccountUtils.AccountNotFoundException;\r
-import com.owncloud.android.lib.common.OwnCloudClientFactory;\r
+import com.owncloud.android.lib.common.OwnCloudAccount;\r
 import com.owncloud.android.lib.common.OwnCloudClient;\r
-\r
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;\r
 \r
 import android.accounts.Account;\r
 import android.accounts.AccountManager;\r
@@ -102,7 +102,9 @@ public abstract class AbstractOwnCloudSyncAdapter extends
 \r
     protected void initClientForCurrentAccount() throws OperationCanceledException, AuthenticatorException, IOException, AccountNotFoundException {\r
         AccountUtils.constructFullURLForAccount(getContext(), account);\r
-        mClient = OwnCloudClientFactory.createOwnCloudClient(account, getContext());\r
+        OwnCloudAccount ocAccount = new OwnCloudAccount(account, getContext());\r
+        mClient = OwnCloudClientManagerFactory.getDefaultSingleton().\r
+                getClientFor(ocAccount, getContext());\r
     }\r
     \r
     protected OwnCloudClient getClient() {\r
index 407ce1a..2ac8983 100644 (file)
@@ -292,10 +292,9 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
             
         } else {
             // in failures, the statistics for the global result are updated
-            if (result.getCode() == RemoteOperationResult.ResultCode.UNAUTHORIZED ||
-                    ( result.isIdPRedirection() &&
-                            getClient().getCredentials() == null      )) {
-                            //MainApp.getAuthTokenTypeSamlSessionCookie().equals(getClient().getAuthTokenType()))) {
+            if (    result.getCode() == RemoteOperationResult.ResultCode.UNAUTHORIZED ||
+                    result.isIdPRedirection()
+                ) {
                 mSyncResult.stats.numAuthExceptions++;
                 
             } else if (result.getException() instanceof DavException) {
@@ -383,16 +382,12 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
      */
     private void notifyFailedSynchronization() {
         NotificationCompat.Builder notificationBuilder = createNotificationBuilder();
-        notificationBuilder.setTicker(i18n(R.string.sync_fail_ticker));
-        boolean needsToUpdateCredentials = (mLastFailedResult != null && 
-                                             (  mLastFailedResult.getCode() == ResultCode.UNAUTHORIZED ||
-                                                ( mLastFailedResult.isIdPRedirection() && 
-                                                  getClient().getCredentials() == null      )
-                                                 //MainApp.getAuthTokenTypeSamlSessionCookie().equals(getClient().getAuthTokenType()))
-                                             )
-                                           );
-        // TODO put something smart in the contentIntent below for all the possible errors
-        notificationBuilder.setContentTitle(i18n(R.string.sync_fail_ticker));
+        boolean needsToUpdateCredentials = (
+                mLastFailedResult != null && (  
+                        mLastFailedResult.getCode() == ResultCode.UNAUTHORIZED ||
+                        mLastFailedResult.isIdPRedirection()
+                )
+        );
         if (needsToUpdateCredentials) {
             // let the user update credentials with one click
             Intent updateAccountCredentials = new Intent(getContext(), AuthenticatorActivity.class);
@@ -402,12 +397,16 @@ public class FileSyncAdapter extends AbstractOwnCloudSyncAdapter {
             updateAccountCredentials.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
             updateAccountCredentials.addFlags(Intent.FLAG_FROM_BACKGROUND);
             notificationBuilder
+                .setTicker(i18n(R.string.sync_fail_ticker_unauthorized))
+                .setContentTitle(i18n(R.string.sync_fail_ticker_unauthorized))
                 .setContentIntent(PendingIntent.getActivity(
                     getContext(), (int)System.currentTimeMillis(), updateAccountCredentials, PendingIntent.FLAG_ONE_SHOT
                 ))
                 .setContentText(i18n(R.string.sync_fail_content_unauthorized, getAccount().name));
         } else {
             notificationBuilder
+                .setTicker(i18n(R.string.sync_fail_ticker))
+                .setContentTitle(i18n(R.string.sync_fail_ticker))
                 .setContentText(i18n(R.string.sync_fail_content, getAccount().name));
         }
         
index 6b8fa43..fced61b 100644 (file)
@@ -195,6 +195,7 @@ implements OnRemoteOperationListener, ComponentsGetter {
     
     @Override
     protected void onPause()  {
+        
         if (mOperationsServiceBinder != null) {
             mOperationsServiceBinder.removeOperationListener(this);
         }
@@ -464,7 +465,7 @@ implements OnRemoteOperationListener, ComponentsGetter {
         } 
     }
 
-    private void requestCredentialsUpdate() {
+    protected void requestCredentialsUpdate() {
         Intent updateAccountCredentials = new Intent(this, AuthenticatorActivity.class);
         updateAccountCredentials.putExtra(AuthenticatorActivity.EXTRA_ACCOUNT, getAccount());
         updateAccountCredentials.putExtra(
index f85a50a..cb77130 100644 (file)
 package com.owncloud.android.ui.activity;
 
 import java.io.File;
+import java.io.IOException;
 
 import android.accounts.Account;
+import android.accounts.AccountManager;
+import android.accounts.AuthenticatorException;
+import android.accounts.OperationCanceledException;
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.ProgressDialog;
@@ -68,6 +72,11 @@ import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
 import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
 import com.owncloud.android.operations.CreateFolderOperation;
 
+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.network.CertificateCombinedException;
 import com.owncloud.android.lib.common.operations.RemoteOperation;
 import com.owncloud.android.lib.common.operations.RemoteOperationResult;
@@ -918,10 +927,54 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
                         
                         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*/);
+                    }
+                    removeStickyBroadcast(intent);
+                    Log_OC.d(TAG, "Setting progress visibility to " + mSyncInProgress);
+                    setSupportProgressBarIndeterminateVisibility(mSyncInProgress /*|| mRefreshSharesInProgress*/);
                         
                 }
                 
@@ -1478,7 +1531,7 @@ FileFragment.ContainerActivity, OnNavigationListener, OnSslUntrustedCertListener
                                                                         getAccount(), 
                                                                         getApplicationContext()
                                                                       );
-        synchFolderOp.execute(getAccount(), this, null, null, this);
+        synchFolderOp.execute(getAccount(), this, null, null);
         
         setSupportProgressBarIndeterminateVisibility(true);
     }
index 07e6e95..16b3267 100644 (file)
@@ -329,19 +329,10 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro
 
     public void uploadFiles() {
         try {
-            //OwnCloudClient webdav = OwnCloudClientUtils.createOwnCloudClient(mAccount, getApplicationContext());
 
             ArrayList<String> local = new ArrayList<String>();
             ArrayList<String> remote = new ArrayList<String>();
             
-            /* TODO - mCreateDir can never be true at this moment; we will replace wdc.createDirectory by CreateFolderOperation when that is fixed 
-            OwnCloudClient wdc = OwnCloudClientUtils.createOwnCloudClient(mAccount, getApplicationContext());
-            // create last directory in path if necessary
-            if (mCreateDir) {
-                wdc.createDirectory(mUploadPath);
-            }
-            */
-            
             // this checks the mimeType 
             for (Parcelable mStream : mStreamsToUpload) {
                 
index 656e004..408154a 100644 (file)
  */\r
 package com.owncloud.android.ui.adapter;\r
 \r
+import java.util.Vector;\r
+\r
 import android.accounts.Account;\r
-import android.content.Context;
+import android.content.Context;\r
 import android.view.LayoutInflater;\r
 import android.view.View;\r
 import android.view.ViewGroup;\r
@@ -28,9 +30,6 @@ import android.widget.ListAdapter;
 import android.widget.ListView;\r
 import android.widget.TextView;\r
 \r
-\r
-import java.util.Vector;\r
-\r
 import com.owncloud.android.R;\r
 import com.owncloud.android.authentication.AccountUtils;\r
 import com.owncloud.android.datamodel.FileDataStorageManager;\r
@@ -49,6 +48,8 @@ import com.owncloud.android.utils.DisplayUtils;
  * \r
  */\r
 public class FileListListAdapter extends BaseAdapter implements ListAdapter {\r
+    private final static String PERMISSION_SHARED_WITH_ME = "S";\r
+\r
     private Context mContext;\r
     private OCFile mFile = null;\r
     private Vector<OCFile> mFiles = null;\r
@@ -113,7 +114,10 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
 \r
             fileName.setText(name);\r
             ImageView fileIcon = (ImageView) view.findViewById(R.id.imageView1);\r
-            fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));\r
+            ImageView sharedIconV = (ImageView) view.findViewById(R.id.sharedIcon);\r
+            ImageView sharedWithMeIconV = (ImageView) view.findViewById(R.id.sharedWithMeIcon);\r
+            sharedWithMeIconV.setVisibility(View.GONE);\r
+\r
             ImageView localStateView = (ImageView) view.findViewById(R.id.imageView2);\r
             FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();\r
             FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();\r
@@ -158,7 +162,12 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                     }\r
                     checkBoxV.setVisibility(View.VISIBLE);\r
                 }\r
-                \r
+\r
+                fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));\r
+\r
+                if (checkIfFileIsSharedWithMe(file)) {\r
+                    sharedWithMeIconV.setVisibility(View.VISIBLE);\r
+                }\r
             } \r
             else {\r
                 \r
@@ -168,13 +177,19 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
                 lastModV.setText(DisplayUtils.unixTimeToHumanReadable(file.getModificationTimestamp()));\r
                 checkBoxV.setVisibility(View.GONE);\r
                 view.findViewById(R.id.imageView3).setVisibility(View.GONE);\r
+\r
+                if (checkIfFileIsSharedWithMe(file)) {\r
+                    fileIcon.setImageResource(R.drawable.shared_with_me_folder);\r
+                    sharedWithMeIconV.setVisibility(View.VISIBLE);\r
+                } else {\r
+                    fileIcon.setImageResource(DisplayUtils.getResourceId(file.getMimetype(), file.getFileName()));\r
+                }\r
             }\r
-            \r
-            ImageView shareIconV = (ImageView) view.findViewById(R.id.shareIcon);\r
+\r
             if (file.isShareByLink()) {\r
-                shareIconV.setVisibility(View.VISIBLE);\r
+                sharedIconV.setVisibility(View.VISIBLE);\r
             } else {\r
-                shareIconV.setVisibility(View.INVISIBLE);\r
+                sharedIconV.setVisibility(View.GONE);\r
             }\r
         }\r
 \r
@@ -215,4 +230,15 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter {
         notifyDataSetChanged();\r
     }\r
     \r
+    /**\r
+     * Check if parent folder does not include 'S' permission and if file/folder\r
+     * is shared with me\r
+     * \r
+     * @param file: OCFile\r
+     * @return boolean: True if it is shared with me and false if it is not\r
+     */\r
+    private boolean checkIfFileIsSharedWithMe(OCFile file) {\r
+        return (mFile.getPermissions() != null && !mFile.getPermissions().contains(PERMISSION_SHARED_WITH_ME)\r
+                && file.getPermissions() != null && file.getPermissions().contains(PERMISSION_SHARED_WITH_ME));\r
+    }\r
 }\r
index 5686874..6190ebe 100644 (file)
@@ -21,10 +21,6 @@ import java.io.File;
 import java.util.Arrays;
 import java.util.Comparator;
 
-import com.owncloud.android.R;
-import com.owncloud.android.utils.DisplayUtils;
-
-
 import android.content.Context;
 import android.view.LayoutInflater;
 import android.view.View;
@@ -35,6 +31,9 @@ import android.widget.ListAdapter;
 import android.widget.ListView;
 import android.widget.TextView;
 
+import com.owncloud.android.R;
+import com.owncloud.android.utils.DisplayUtils;
+
 /**
  * This Adapter populates a ListView with all files and directories contained
  * in a local directory
@@ -136,7 +135,8 @@ public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
             view.findViewById(R.id.imageView2).setVisibility(View.INVISIBLE);   // not GONE; the alignment changes; ugly way to keep it
             view.findViewById(R.id.imageView3).setVisibility(View.GONE);
             
-            view.findViewById(R.id.shareIcon).setVisibility(View.GONE);
+            view.findViewById(R.id.sharedIcon).setVisibility(View.GONE);
+            view.findViewById(R.id.sharedWithMeIcon).setVisibility(View.GONE);
         }
 
         return view;
index e8e8f48..58dda0d 100644 (file)
@@ -97,7 +97,8 @@ public class FileStorageUtils {
         file.setMimetype(remote.getMimeType());
         file.setModificationTimestamp(remote.getModifiedTimestamp());
         file.setEtag(remote.getEtag());
-        
+        file.setPermissions(remote.getPermissions());
+        file.setRemoteId(remote.getRemoteId());
         return file;
     }
     
@@ -114,6 +115,8 @@ public class FileStorageUtils {
         file.setMimeType(ocFile.getMimetype());
         file.setModifiedTimestamp(ocFile.getModificationTimestamp());
         file.setEtag(ocFile.getEtag());
+        file.setPermissions(ocFile.getPermissions());
+        file.setRemoteId(ocFile.getRemoteId());
         return file;
     }