along with this program. If not, see <http://www.gnu.org/licenses/>.
-->
<manifest package="com.owncloud.android"
- android:versionCode="10700200"
- android:versionName="1.7.2" xmlns:android="http://schemas.android.com/apk/res/android">
+ android:versionCode="10800000"
+ android:versionName="1.8.0" xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
+## 1.8.0 (September 2015)
+- New MATERIAL DESIGN theme
+- Updated FILE TYPE ICONS
+- Preview TXT files within the app
+- COPY files & folders
+- Preview the full file/folder name from the long press menu
+- Set a file as FAVORITE (kept-in-sync) from the CONTEXT MENU
+- Updated CONFLICT RESOLUTION dialog (wording)
+- Updated background for images with TRANSPARENCY in GALLERY
+- Hidden files will not enforce list view instead of GRID VIEW (folders from Picasa & others)
+- Security:
+ + Updated network stack with security fixes (Jackrabbit 2.10.1)
+- Bugs fixed:
+ + Fixed crash when ETag is lost
+ + Passcode creation not restarted on device rotation
+ + Recovered share icon shown on folders 'shared with me'
+ + User name added to subject when sending a share link through e-mail (fixed on SAMLed apps)
+
## 1.7.2 (July 2015)
- New navigation drawer
- Improved Passcode
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.owncloud.android.workaround.accounts"
- android:versionCode="0100024"
- android:versionName="1.0.24" >
+ android:versionCode="0100025"
+ android:versionName="1.0.25" >
<uses-sdk
android:minSdkVersion="16"
-Subproject commit ecc3415e3e3c13fa8f73fdd51a88c1ab7087b199
+Subproject commit 5985ba9a9fd9a208b2a09ee7809949874e0c3a97
android:gravity="center"\r
android:orientation="vertical"\r
android:padding="8dp" >\r
- \r
- <Button\r
- android:id="@+id/centeredRefreshButton"\r
- android:layout_width="wrap_content"\r
- android:layout_height="wrap_content"\r
- android:layout_gravity="center_horizontal"\r
+\r
+ <android.support.v7.widget.AppCompatButton\r
+ android:id="@+id/centeredRefreshButton"\r
+ style="@style/ownCloud.Button"\r
+ android:layout_width="wrap_content"\r
+ android:layout_height="wrap_content"\r
+ android:layout_gravity="center_horizontal"\r
android:layout_marginBottom="10dp"\r
- android:text="@string/auth_check_server"\r
- android:visibility="gone"\r
- android:contentDescription="@string/auth_check_server"/>\r
+ android:text="@string/auth_check_server"\r
+ android:visibility="gone"\r
+ android:contentDescription="@string/auth_check_server"/>\r
+\r
<TextView\r
android:id="@+id/instructions_message"\r
android:layout_width="wrap_content"\r
android:id="@+id/hostUrlFrame"\r
android:layout_width="match_parent"\r
android:layout_height="wrap_content"\r
- android:layout_marginBottom="10dp"\r
+ android:layout_marginBottom="0dp"\r
>\r
<EditText\r
android:id="@+id/hostUrlInput"\r
</EditText>\r
<ImageButton\r
android:id="@+id/embeddedRefreshButton"\r
- android:layout_width="48dp"\r
- android:layout_height="48dp"\r
+ android:layout_width="wrap_content"\r
+ android:layout_height="wrap_content"\r
android:layout_gravity="center_vertical|right"\r
android:layout_marginRight="5dp"\r
android:padding="0dp"\r
android:scaleType="fitCenter"\r
- android:src="@drawable/ic_action_refresh_black"\r
+ android:src="@drawable/ic_action_refresh_grey"\r
android:onClick="onRefreshClick"\r
android:visibility="gone"\r
android:background="@android:color/transparent"\r
android:textColor="@color/login_text_color"\r
android:textColorHint="@color/login_text_hint_color"\r
android:text="@string/auth_testing_connection"\r
+ android:minHeight="32dp"\r
android:contentDescription="@string/auth_testing_connection"/>\r
\r
<CheckBox\r
<android.support.v7.widget.AppCompatButton\r
android:id="@+id/buttonOK"\r
android:theme="@style/Button.Primary"\r
+ style="@style/Button.Primary"\r
android:layout_width="match_parent"\r
android:layout_height="wrap_content"\r
android:layout_gravity="center_horizontal"\r
android:layout_height="wrap_content"\r
android:layout_marginBottom="20dp"\r
android:layout_marginTop="10dp"\r
+ android:background="@color/login_logo_background_color"\r
android:src="@drawable/logo"\r
android:contentDescription="@string/app_name"/>\r
\r
android:textColor="@color/login_text_color"\r
android:textColorHint="@color/login_text_hint_color"\r
android:text="@string/auth_testing_connection"\r
+ android:minHeight="32dp"\r
android:contentDescription="@string/auth_testing_connection"/>\r
\r
<CheckBox\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?><!--
+ ownCloud Android client application
+
+ Copyright (C) 2012 Bartek Przybylski
+ Copyright (C) 2015 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/>.
+-->
+<menu xmlns:android="http://schemas.android.com/apk/res/android">
+ <item
+ android:id="@+id/action_download_file"
+ android:title="@string/filedetails_download"
+ android:icon="@drawable/ic_action_download"
+ android:orderInCategory="1" />
+ <item
+ android:id="@+id/action_move"
+ android:title="@string/actionbar_move"
+ android:icon="@android:drawable/ic_menu_set_as"
+ android:orderInCategory="1" />
+ <item
+ android:id="@+id/action_copy"
+ android:title="@android:string/copy"
+ android:icon="@android:drawable/ic_menu_set_as"
+ android:orderInCategory="1" />
+ <item
+ android:id="@+id/action_remove_file"
+ android:title="@string/common_remove"
+ android:icon="@android:drawable/ic_menu_delete"
+ android:orderInCategory="1" />
+ <item
+ android:id="@+id/action_favorite_file"
+ android:title="@string/favorite"
+ android:icon="@android:drawable/ic_menu_set_as"
+ android:orderInCategory="1" />
+ <item
+ android:id="@+id/action_unfavorite_file"
+ android:title="@string/unfavorite"
+ android:icon="@android:drawable/ic_menu_set_as"
+ android:orderInCategory="1" />
+</menu>
<string name="favorite">المفضلة</string>
<string name="common_rename">إعادة التسمية</string>
<string name="common_remove">حذف</string>
- <string name="confirmation_remove_alert">هل تريد حقاً حذف %1$s ؟</string>
+ <string name="confirmation_remove_file_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="favorite">İstəkli</string>
<string name="common_rename">Adı dəyiş</string>
<string name="common_remove">Sil</string>
- <string name="confirmation_remove_alert">Siz həqiqətən %1$s silmək istəyirsiniz?</string>
+ <string name="confirmation_remove_file_alert">Siz həqiqətən %1$s silmək istəyirsiniz?</string>
<string name="confirmation_remove_folder_alert">Siz həqiqətəndə %1$s və onun kontentini silmək istəyirsiniz?</string>
<string name="confirmation_remove_local">Yalnız daxili</string>
<string name="confirmation_remove_folder_local">Yalnız daxili</string>
<string name="favorite">Любими</string>
<string name="common_rename">Преименуване</string>
<string name="common_remove">Премахване</string>
- <string name="confirmation_remove_alert">Наистина ли искате да изтриете %1$s ?</string>
+ <string name="confirmation_remove_file_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="favorite">প্রিয়জন</string>
<string name="common_rename">পূনঃনামকরণ</string>
<string name="common_remove">অপসারণ</string>
- <string name="confirmation_remove_alert">আপনি কি সত্যিই %1$s অপসারণ করতে চান?</string>
+ <string name="confirmation_remove_file_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="favorite">Preferits</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_file_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 local</string>
<string name="unfavorite">Odebrat z oblíbených</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_file_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í</string>
- <string name="confirmation_remove_remote">Ze serveru</string>
+ <string name="confirmation_remove_file_remote">Ze serveru</string>
<string name="confirmation_remove_remote_and_local">Vzdálený & místní</string>
<string name="remove_success_msg">Úspěšně odstraněno</string>
<string name="remove_fail_msg">Odstranění nelze dokončit</string>
<string name="unfavorite">Fjern markering som foretrukket</string>
<string name="common_rename">Omdøb</string>
<string name="common_remove">Fjern</string>
- <string name="confirmation_remove_alert">Er du sikker på at du vil fjerne %1$s ?</string>
+ <string name="confirmation_remove_file_alert">Er du sikker på at du vil fjerne %1$s ?</string>
<string name="confirmation_remove_folder_alert">Ønsker du virkelig at slette %1$s og dets indhold?</string>
<string name="confirmation_remove_local">Kun lokal</string>
<string name="confirmation_remove_folder_local">Kun lokal</string>
- <string name="confirmation_remove_remote">Fra server</string>
+ <string name="confirmation_remove_file_remote">Fra server</string>
<string name="confirmation_remove_remote_and_local">Fjernbeliggende og lokalt</string>
<string name="remove_success_msg">Vellykket fjernelse</string>
<string name="remove_fail_msg">Fjernelse kunne ikke fuldføres</string>
<string name="common_remove">Löschen</string>
<string name="confirmation_remove_local">Nur lokal</string>
<string name="confirmation_remove_folder_local">Nur lokale Inhalte</string>
- <string name="confirmation_remove_remote">Vom Server entfernen</string>
+ <string name="confirmation_remove_file_remote">Vom Server entfernen</string>
<string name="confirmation_remove_remote_and_local">Lokal und auf dem Server</string>
<string name="remove_success_msg">Erfolgreich gelöscht</string>
<string name="remove_fail_msg">Der Löschvorgang konnte nicht beendet werden</string>
<string name="unfavorite">Nicht mehr favorisieren</string>
<string name="common_rename">Umbenennen</string>
<string name="common_remove">Löschen</string>
- <string name="confirmation_remove_alert">Möchten Sie %1$s wirklich löschen?</string>
+ <string name="confirmation_remove_file_alert">Möchten Sie %1$s wirklich löschen?</string>
<string name="confirmation_remove_folder_alert">Möchten Sie wirklich %1$s und dessen Inhalte entfernen?</string>
<string name="confirmation_remove_local">Nur lokal</string>
<string name="confirmation_remove_folder_local">Nur lokal</string>
<string name="unfavorite">Favorit entfernen</string>
<string name="common_rename">Umbenennen</string>
<string name="common_remove">Löschen</string>
- <string name="confirmation_remove_alert">Möchtest Du %1$s wirklich löschen?</string>
+ <string name="confirmation_remove_file_alert">Möchtest Du %1$s wirklich löschen?</string>
<string name="confirmation_remove_folder_alert">Möchtest Du wirklich %1$s und dessen Inhalte entfernen?</string>
<string name="confirmation_remove_local">Nur lokal</string>
<string name="confirmation_remove_folder_local">Nur lokal</string>
<string name="unfavorite">Κατάργηση από τα αγαπημένα</string>
<string name="common_rename">Μετονομασία</string>
<string name="common_remove">Αφαίρεση</string>
- <string name="confirmation_remove_alert">Θέλετε στ\' αλήθεια να αφαιρέσετε το %1$s;</string>
+ <string name="confirmation_remove_file_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="confirmation_remove_file_remote">Από το διακομιστή</string>
<string name="confirmation_remove_remote_and_local">Απομακρυσμένα & τοπικά</string>
<string name="remove_success_msg">Αφαίρεση επιτυχής</string>
<string name="remove_fail_msg">Η αφαίρεση απέτυχε</string>
<string name="unfavorite">Unfavourite</string>
<string name="common_rename">Rename</string>
<string name="common_remove">Remove</string>
- <string name="confirmation_remove_alert">Do you really want to remove %1$s?</string>
+ <string name="confirmation_remove_file_alert">Do you really want to remove %1$s?</string>
<string name="confirmation_remove_folder_alert">Do you really want to remove %1$s and its contents?</string>
<string name="confirmation_remove_local">Local only</string>
<string name="confirmation_remove_folder_local">Local only</string>
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+ <!--TODO re-enable when server-side folder size calculation is available
+ <item>Biggest - Smallest</item>-->
+ <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+ <!--<string name="drawer_item_accounts">Accounts</string>-->
+ <!--TODO re-enable when "On Device" is available
+ <string name="drawer_item_on_device">On device</string>-->
+ <string name="empty"></string>
+</resources>
<string name="unfavorite">Nefavoratigi</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_file_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 loka</string>
<string name="favorite">Favorito</string>
<string name="common_rename">Renombrar</string>
<string name="common_remove">Borrar</string>
- <string name="confirmation_remove_alert">¿Realmente quieres eliminar %1$s?</string>
+ <string name="confirmation_remove_file_alert">¿Realmente quieres eliminar %1$s?</string>
<string name="confirmation_remove_folder_alert">¿Realmente deseas eliminar %1$s y todo su contenido?</string>
<string name="confirmation_remove_local">Sólo local</string>
<string name="confirmation_remove_folder_local">Sólo local</string>
<string name="auth_unauthorized">usuario o clave incorrecta</string>
<string name="common_rename">Renombrar</string>
<string name="common_remove">Remover</string>
- <string name="confirmation_remove_alert">¿Realmente desea eliminar %1$s?</string>
+ <string name="confirmation_remove_file_alert">¿Realmente desea eliminar %1$s?</string>
<string name="confirmation_remove_folder_alert">¿Realmente desea eliminar el archivo %1$s y su contenido?</string>
<string name="confirmation_remove_local">Solo local</string>
<string name="confirmation_remove_folder_local">Solo local</string>
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+ <!--TODO re-enable when server-side folder size calculation is available
+ <item>Biggest - Smallest</item>-->
+ <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+ <!--<string name="drawer_item_accounts">Accounts</string>-->
+ <!--TODO re-enable when "On Device" is available
+ <string name="drawer_item_on_device">On device</string>-->
+ <string name="empty"></string>
+</resources>
<string name="unfavorite">No-favorito</string>
<string name="common_rename">Renombrar</string>
<string name="common_remove">Borrar</string>
- <string name="confirmation_remove_alert">¿Realmente desea eliminar %1$s?</string>
+ <string name="confirmation_remove_file_alert">¿Realmente desea eliminar %1$s?</string>
<string name="confirmation_remove_folder_alert">¿Realmente desea eliminar %1$s y todo su contenido?</string>
<string name="confirmation_remove_local">Sólo local</string>
<string name="confirmation_remove_folder_local">Sólo local</string>
- <string name="confirmation_remove_remote">Desde el servidor</string>
+ <string name="confirmation_remove_file_remote">Desde el servidor</string>
<string name="confirmation_remove_remote_and_local">Remoto & local</string>
<string name="remove_success_msg">Borrado correctamente</string>
<string name="remove_fail_msg">El borrado no pudo ser completado</string>
<string name="move_file_invalid_overwrite">El archivo ya existe en la carpeta de destino</string>
<string name="move_file_error">Hubo un error al tratar de mover este archivo o carpeta</string>
<string name="forbidden_permissions_move">para mover este archivo</string>
- <string name="copy_file_not_found">No se puede copiar. Revise si el archivo existe</string>
+ <string name="copy_file_not_found">No se puede copiar. Revise si existe el archivo</string>
<string name="copy_file_invalid_into_descendent">No se puede copiar una carpeta dentro de una de sus subcarpetas.</string>
<string name="copy_file_invalid_overwrite">El fichero ya existe en el directorio de destino</string>
<string name="copy_file_error">Hubo un error al tratar de copiar este archivo o carpeta</string>
<string name="unfavorite">Eemalda lemmik</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_file_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</string>
- <string name="confirmation_remove_remote">Serverist</string>
+ <string name="confirmation_remove_file_remote">Serverist</string>
<string name="confirmation_remove_remote_and_local">Kaugfail & kohalik</string>
<string name="remove_success_msg">Eemaldamine oli edukas</string>
<string name="remove_fail_msg">Eemaldamine ebaõnnestus</string>
<string name="favorite">Gogokoa</string>
<string name="common_rename">Berrizendatu</string>
<string name="common_remove">Ezabatu</string>
- <string name="confirmation_remove_alert">Ziur zaude %1$s ezabatu nahi duzula?</string>
+ <string name="confirmation_remove_file_alert">Ziur zaude %1$s ezabatu nahi duzula?</string>
<string name="confirmation_remove_folder_alert">Ziru zaude %1$s eta bere edukiak ezabatu nahi dituzula?</string>
<string name="confirmation_remove_local">Bertakoa bakarrik</string>
<string name="confirmation_remove_folder_local">Bertakoa bakarrik</string>
<string name="unfavorite">Poista suosikeista</string>
<string name="common_rename">Nimeä uudelleen</string>
<string name="common_remove">Poista</string>
- <string name="confirmation_remove_alert">Haluatko varmasti poistaa kohteen %1$s?</string>
+ <string name="confirmation_remove_file_alert">Haluatko varmasti poistaa kohteen %1$s?</string>
<string name="confirmation_remove_folder_alert">Haluatko varmasti poistaa kohteen %1$s ja sen sisällön?</string>
<string name="confirmation_remove_local">Vain paikallinen</string>
<string name="confirmation_remove_folder_local">Vain paikallinen</string>
- <string name="confirmation_remove_remote">Palvelimelta</string>
+ <string name="confirmation_remove_file_remote">Palvelimelta</string>
<string name="confirmation_remove_remote_and_local">Etä ja paikallinen</string>
<string name="remove_success_msg">Poistettu onnistuneesti</string>
<string name="remove_fail_msg">Poistamista ei voitu suorittaa loppuun asti</string>
<string name="unfavorite">Supprimer des favoris</string>
<string name="common_rename">Renommer</string>
<string name="common_remove">Supprimer</string>
- <string name="confirmation_remove_alert">Voulez-vous vraiment supprimer %1$s ?</string>
+ <string name="confirmation_remove_file_alert">Voulez-vous vraiment supprimer %1$s ?</string>
<string name="confirmation_remove_folder_alert">Voulez-vous vraiment supprimer %1$s et son contenu ?</string>
<string name="confirmation_remove_local">Local seulement</string>
<string name="confirmation_remove_folder_local">Local seulement</string>
- <string name="confirmation_remove_remote">Depuis le serveur</string>
+ <string name="confirmation_remove_file_remote">Depuis le serveur</string>
<string name="confirmation_remove_remote_and_local">Distant & local</string>
<string name="remove_success_msg">Suppression effectuée avec succès</string>
<string name="remove_fail_msg">Suppression impossible</string>
<string name="network_error_connect_timeout_exception">Une erreur est survenue pendant l\'attente du serveur. L\'opération n\'a pas pu être effectuée</string>
<string name="network_host_not_available">L\'opération n\'a pas pu être terminée, le serveur n\'est pas disponible</string>
<string name="empty"></string>
- <string name="forbidden_permissions">Vous ne possédez pas les droits suffisants %s</string>
- <string name="forbidden_permissions_rename">afin de renommer ce fichier</string>
- <string name="forbidden_permissions_delete">afin d’effacer ce fichier</string>
+ <string name="forbidden_permissions">Vous n\'avez pas la permission %s</string>
+ <string name="forbidden_permissions_rename">de renommer ce fichier</string>
+ <string name="forbidden_permissions_delete">d’effacer ce fichier</string>
<string name="share_link_forbidden_permissions">afin de partager ce fichier</string>
<string name="unshare_link_forbidden_permissions">afin de ne plus partager ce fichier</string>
- <string name="forbidden_permissions_create">afin de créer ce fichier</string>
+ <string name="forbidden_permissions_create">de créer ce fichier</string>
<string name="uploader_upload_forbidden_permissions">afin d’importer dans ce répertoire</string>
<string name="downloader_download_file_not_found">Ce fichier n’est plus disponible sur le serveur</string>
<string name="prefs_category_accounts">Comptes</string>
<string name="copy_file_not_found">Impossible de copier. Vérifiez que le fichier existe</string>
<string name="copy_file_invalid_into_descendent">Il n\'est pas possible de copier un dossier vers un de ses descendants</string>
<string name="copy_file_invalid_overwrite">Fichier déjà existant dans le dossier de destination</string>
- <string name="copy_file_error">Une erreur est survenue lors de la tentative de copie de ce fichier ou dossier</string>
+ <string name="copy_file_error">Une erreur est survenue lors de la copie de ce fichier ou dossier</string>
<string name="forbidden_permissions_copy">de copier ce fichier</string>
<string name="prefs_category_instant_uploading">Téléversement immédiat</string>
<string name="prefs_category_security">Sécurité</string>
<string name="unfavorite">Retirar de favoritos</string>
<string name="common_rename">Renomear</string>
<string name="common_remove">Retirar</string>
- <string name="confirmation_remove_alert">Confirma que quere retirar %1$s?</string>
+ <string name="confirmation_remove_file_alert">Confirma que quere retirar %1$s?</string>
<string name="confirmation_remove_folder_alert">Confirma que quere retirar %1$s e o seu contido?</string>
<string name="confirmation_remove_local">Só local</string>
<string name="confirmation_remove_folder_local">Só local</string>
<string name="favorite">מועדף</string>
<string name="common_rename">שינוי שם</string>
<string name="common_remove">הסרה</string>
- <string name="confirmation_remove_alert">האם באמת להסיר %1$s?</string>
+ <string name="confirmation_remove_file_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>
<?xml version='1.0' encoding='UTF-8'?>
<resources>
+ <!--TODO re-enable when server-side folder size calculation is available
+ <item>Biggest - Smallest</item>-->
+ <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+ <!--<string name="drawer_item_accounts">Accounts</string>-->
+ <!--TODO re-enable when "On Device" is available
+ <string name="drawer_item_on_device">On device</string>-->
<string name="empty"></string>
</resources>
<string name="unfavorite">Nem kedvenc</string>
<string name="common_rename">Átnevezés</string>
<string name="common_remove">Eltávolítás</string>
- <string name="confirmation_remove_alert">Tényleg el akarod távolítani %1$s?</string>
+ <string name="confirmation_remove_file_alert">Tényleg el akarod távolítani %1$s?</string>
<string name="confirmation_remove_folder_alert">Tényleg el akarod távolítani a %1$s és tartalmát?</string>
<string name="confirmation_remove_local">Csak a helyi példány</string>
<string name="confirmation_remove_folder_local">Csak a helyi példány</string>
<string name="unfavorite">Hapus favorit</string>
<string name="common_rename">Ubah nama</string>
<string name="common_remove">Hapus</string>
- <string name="confirmation_remove_alert">Apakah Anda yakin ingin menghapus %1$s?</string>
+ <string name="confirmation_remove_file_alert">Apakah Anda yakin ingin menghapus %1$s?</string>
<string name="confirmation_remove_folder_alert">Apakah Anda yakin ingin menghapus %1$s dan isinya?</string>
<string name="confirmation_remove_local">Lokal saja</string>
<string name="confirmation_remove_folder_local">Lokal saja</string>
- <string name="confirmation_remove_remote">Dari server</string>
+ <string name="confirmation_remove_file_remote">Dari server</string>
<string name="confirmation_remove_remote_and_local">Remot & lokal</string>
<string name="remove_success_msg">Penghapusan berhasil</string>
<string name="remove_fail_msg">Penghapusan gagal</string>
<string name="unfavorite">Rimuovi dai preferiti</string>
<string name="common_rename">Rinomina</string>
<string name="common_remove">Rimuovi</string>
- <string name="confirmation_remove_alert">Vuoi davvero rimuovere %1$s?</string>
+ <string name="confirmation_remove_file_alert">Vuoi davvero rimuovere %1$s?</string>
<string name="confirmation_remove_folder_alert">Vuoi davvero rimuovere %1$s e il suo contenuto?</string>
<string name="confirmation_remove_local">Solo localmente</string>
<string name="confirmation_remove_folder_local">Solo locale</string>
- <string name="confirmation_remove_remote">Dal server</string>
+ <string name="confirmation_remove_file_remote">Dal server</string>
<string name="confirmation_remove_remote_and_local">Remota e locale</string>
<string name="remove_success_msg">Rimozione effettuata con successo</string>
<string name="remove_fail_msg">La rimozione non può essere completata</string>
<string name="unfavorite">お気に入りを解除</string>
<string name="common_rename">名前を変更</string>
<string name="common_remove">削除</string>
- <string name="confirmation_remove_alert">本当に %1$s を削除しますか?</string>
+ <string name="confirmation_remove_file_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="unfavorite">책갈피 해제</string>
<string name="common_rename">이름 바꾸기</string>
<string name="common_remove">삭제</string>
- <string name="confirmation_remove_alert">%1$s을(를) 삭제하시겠습니까?</string>
+ <string name="confirmation_remove_file_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="auth_unsupported_auth_method">De Server ënnerstëtzt dës Authentifizéierungsmethod net</string>
<string name="common_rename">Ëmbenennen</string>
<string name="common_remove">Läschen</string>
- <string name="confirmation_remove_alert">Wëlls du %1$s wierklech läschen?</string>
+ <string name="confirmation_remove_file_alert">Wëlls du %1$s wierklech läschen?</string>
<string name="confirmation_remove_folder_alert">Wëlls du %1$s an de ganzen Inhalt wierklech läschen?</string>
<string name="confirmation_remove_local">Nemme lokal</string>
<string name="confirmation_remove_folder_local">Nemme lokal</string>
<string name="favorite">Mėgiamas</string>
<string name="common_rename">Pervadinti</string>
<string name="common_remove">Pašalinti</string>
- <string name="confirmation_remove_alert">Ar tikrai norite pašalinti %1$s?</string>
+ <string name="confirmation_remove_file_alert">Ar tikrai norite pašalinti %1$s?</string>
<string name="confirmation_remove_folder_alert">Ar tikrai norite pašalinti %1$s ir ten esantį turinį?</string>
<string name="confirmation_remove_local">Tik vietiniai</string>
<string name="confirmation_remove_folder_local">Tik vietiniai</string>
<string name="auth_account_does_not_exist">Сметката сеуште не постои на овој уред</string>
<string name="common_rename">Преименувај</string>
<string name="common_remove">Отстрани</string>
- <string name="confirmation_remove_alert">Дали навистина сакаш да ја отстраниш %1$s?</string>
+ <string name="confirmation_remove_file_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="unfavorite">Fjern favoritt</string>
<string name="common_rename">Endre navn</string>
<string name="common_remove">Fjern</string>
- <string name="confirmation_remove_alert">Vil du virkelig fjerne %1$s?</string>
+ <string name="confirmation_remove_file_alert">Vil du virkelig fjerne %1$s?</string>
<string name="confirmation_remove_folder_alert">Vil du virkelig fjerne %1$s inkludert innholdet?</string>
<string name="confirmation_remove_local">Kun lokalt</string>
<string name="confirmation_remove_folder_local">Kun lokalt</string>
- <string name="confirmation_remove_remote">Fra server</string>
+ <string name="confirmation_remove_file_remote">Fra server</string>
<string name="confirmation_remove_remote_and_local">Ekstern & lokal</string>
<string name="remove_success_msg">Fjerning var vellykket</string>
<string name="remove_fail_msg">Fjerning mislyktes</string>
<string name="unfavorite">Niet meer favoriet</string>
<string name="common_rename">Hernoemen</string>
<string name="common_remove">Verwijderen</string>
- <string name="confirmation_remove_alert">Wilt u %1$s werkelijk verwijderen?</string>
+ <string name="confirmation_remove_file_alert">Wilt u %1$s werkelijk verwijderen?</string>
<string name="confirmation_remove_folder_alert">Wilt u %1$s en de inhoud ervan werkelijk verwijderen?</string>
<string name="confirmation_remove_local">Alleen lokaal</string>
<string name="confirmation_remove_folder_local">Alleen lokaal</string>
- <string name="confirmation_remove_remote">Van server</string>
+ <string name="confirmation_remove_file_remote">Van server</string>
<string name="confirmation_remove_remote_and_local">Extern & lokaal</string>
<string name="remove_success_msg">Succesvol verwijderd</string>
<string name="remove_fail_msg">Verwijdering kon niet voltooid worden</string>
<?xml version='1.0' encoding='UTF-8'?>
<resources>
+ <string name="about_android">%1$s Android App</string>
<string name="about_version">version %1$s</string>
- <string name="actionbar_upload">Amontcarga</string>
+ <string name="actionbar_sync">Actualizar lo compte</string>
+ <string name="actionbar_upload">Mandar</string>
+ <string name="actionbar_upload_from_apps">Contengut d\'autras aplicacions</string>
<string name="actionbar_upload_files">Fichièrs</string>
- <string name="actionbar_mkdir">Novèl dorsièr</string>
- <string name="actionbar_settings">Configuracion</string>
+ <string name="actionbar_open_with">Dobrir amb</string>
+ <string name="actionbar_mkdir">Dorsièr novèl</string>
+ <string name="actionbar_settings">Paramètres</string>
+ <string name="actionbar_see_details">Detalhs</string>
<string name="actionbar_send_file">Mandar</string>
+ <string name="actionbar_sort">Triar</string>
+ <string name="actionbar_sort_title">Triar</string>
+ <string-array name="actionbar_sortby">
+ <item>per òrdre alfabetic</item>
+ <item>del mai recent al pus ancian</item>
+ </string-array>
<!--TODO re-enable when server-side folder size calculation is available
<item>Biggest - Smallest</item>-->
<!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
<!--<string name="drawer_item_accounts">Accounts</string>-->
+ <string name="drawer_item_all_files">Totes los fichièrs</string>
<!--TODO re-enable when "On Device" is available
<string name="drawer_item_on_device">On device</string>-->
<string name="drawer_item_settings">Paramètres</string>
- <string name="drawer_open">Dubrís</string>
+ <string name="drawer_item_logs">Logs</string>
+ <string name="drawer_close">Tampar</string>
+ <string name="drawer_open">Dobrir</string>
<string name="prefs_category_general">General</string>
- <string name="prefs_category_more">Mai d\'aquò</string>
+ <string name="prefs_category_more">Mai</string>
<string name="prefs_accounts">Comptes</string>
- <string name="prefs_manage_accounts">Maneja comptes</string>
+ <string name="prefs_manage_accounts">Gestion dels comptes</string>
+ <string name="prefs_passcode">Còde de seguretat</string>
+ <string name="prefs_instant_upload">Mandadís immediat de las fòtos</string>
+ <string name="prefs_instant_upload_summary">Mandar immediatament las fòtos presas per la camèra</string>
+ <string name="prefs_instant_video_upload">Mandadís immediat de las vidèos</string>
+ <string name="prefs_instant_video_upload_summary">Mandar immediatament las vidèos presas per la camèra</string>
+ <string name="prefs_log_title">Activar los logs</string>
+ <string name="prefs_log_summary">Utilizat per enregistrar los problèmas dins los logs</string>
+ <string name="prefs_log_title_history">Istoric dels logs</string>
+ <string name="prefs_log_summary_history">Aquò aficha los logs enregistrats</string>
+ <string name="prefs_log_delete_history_button">Suprimir l\'istoric</string>
<string name="prefs_help">Ajuda</string>
- <string name="prefs_imprint">Mencions legalas</string>
- <string name="auth_username">Nom d\'usancièr</string>
+ <string name="prefs_recommend">Recomandar a un amis</string>
+ <string name="prefs_feedback">Comentaris</string>
+ <string name="prefs_imprint">Mencions</string>
+ <string name="prefs_remember_last_share_location">Memorizar l\'emplaçament de partiment</string>
+ <string name="prefs_remember_last_upload_location_summary">Memorizar lo darrièr emplaçament de mandadís</string>
+ <string name="recommend_subject">Ensajatz %1$s sus vòstre smartphone !</string>
+ <string name="recommend_text">M\'agradariá de vos convidar a utilizar %1$s sus vòstre smartphone !
+Telecargatz-lo aicí : %2$s</string>
+ <string name="auth_check_server">Verificar lo servidor</string>
+ <string name="auth_host_url">Adreça del servidor https://…</string>
+ <string name="auth_username">Nom d\'utilizaire</string>
<string name="auth_password">Senhal</string>
+ <string name="auth_register">Novèl dins %1$s ?</string>
<string name="sync_string_files">Fichièrs</string>
- <string name="setup_btn_connect">Connecta</string>
- <string name="uploader_btn_upload_text">Amontcarga</string>
- <string name="uploader_btn_new_folder_text">Novèl dorsièr</string>
- <string name="uploader_wrn_no_account_title">Cap de compte trobat</string>
+ <string name="setup_btn_connect">Connectar</string>
+ <string name="uploader_btn_upload_text">Mandar</string>
+ <string name="uploader_btn_new_folder_text">Dorsièr novèl</string>
+ <string name="uploader_top_message">Seleccionar lo dorsièr de mandadís :</string>
+ <string name="uploader_wrn_no_account_title">Cap de compte es pas estat trobat</string>
+ <string name="uploader_wrn_no_account_text">Cap de compte %1$s es pas estat trobat. Començar per ne configurar un.</string>
<string name="uploader_wrn_no_account_setup_btn_text">Configuracion</string>
- <string name="uploader_wrn_no_account_quit_btn_text">Quita</string>
- <string name="uploader_info_uploading">Al amontcargar</string>
- <string name="file_list_seconds_ago">segonda a</string>
- <string name="file_list_empty">Pas res dedins. Amontcarga qualquaren</string>
+ <string name="uploader_wrn_no_account_quit_btn_text">Quitar</string>
+ <string name="uploader_wrn_no_content_title">Pas res a mandar</string>
+ <string name="uploader_wrn_no_content_text">Cap de contengut pas recebut. Pas res a mandar.</string>
+ <string name="uploader_error_forbidden_content">%1$s es pas autorizat a accedir al contengut partejat</string>
+ <string name="uploader_info_uploading">Mandadís...</string>
+ <string name="file_list_seconds_ago">i a qualques segondas</string>
+ <string name="file_list_empty">I a pas res aicí ! Mandatz doncas quicòm :)</string>
+ <string name="file_list_loading">Cargament...</string>
+ <string name="local_file_list_empty">Cap de fichièr es pas present dins aqueste dorsièr.</string>
+ <string name="filedetails_select_file">Quichatz sus un fichièr per afichar las informacions suplementàrias</string>
<string name="filedetails_size">Talha :</string>
<string name="filedetails_type">Tipe :</string>
- <string name="filedetails_created">Creat :</string>
- <string name="filedetails_modified">Modificat :</string>
- <string name="filedetails_download">Avalcarga</string>
- <string name="action_share_file">Partiment per ligam</string>
+ <string name="filedetails_created">Creat lo :</string>
+ <string name="filedetails_modified">Modificat lo :</string>
+ <string name="filedetails_download">Telecargar</string>
+ <string name="filedetails_sync_file">Actualizar lo fichièr</string>
+ <string name="filedetails_renamed_in_upload_msg">Lo fichièr es estat renomenat en %s pendent lo mandadís</string>
+ <string name="list_layout">Afichatge en lista</string>
+ <string name="action_share_file">Partejar lo ligam</string>
+ <string name="action_unshare_file">Partejar pas mai aqueste ligam</string>
<string name="common_yes">Òc</string>
<string name="common_no">Non</string>
- <string name="common_ok">D\'accòrdi</string>
- <string name="common_cancel_upload"> Anulla l\'amontcargar</string>
- <string name="common_cancel">Annula</string>
+ <string name="common_ok">D\'acòrdi</string>
+ <string name="common_cancel_download">Anullar lo telecargament</string>
+ <string name="common_cancel_upload">Anullar lo mandadís</string>
+ <string name="common_cancel">Anullar</string>
+ <string name="common_save_exit">Salvar & Quitar</string>
<string name="common_error">Error</string>
- <string name="common_error_unknown">Error Desconeguda </string>
- <string name="about_title">A prepaus</string>
- <string name="change_password">Cambia lo senhal</string>
- <string name="delete_account">Escafa lo compte</string>
- <string name="create_account">Crea un compte</string>
- <string name="upload_chooser_title">Avalcarga dempuèi ...</string>
+ <string name="common_loading">Cargament…</string>
+ <string name="common_error_unknown">Error desconeguda </string>
+ <string name="about_title">A prepaus de</string>
+ <string name="change_password">Cambiar de senhal</string>
+ <string name="delete_account">Suprimir aqueste compte</string>
+ <string name="create_account">Crear un compte</string>
+ <string name="upload_chooser_title">Mandar un fichièr dempuèi…</string>
<string name="uploader_info_dirname">Nom del dorsièr</string>
- <string name="uploader_upload_in_progress_ticker">Al avalcargar ...</string>
- <string name="uploader_upload_succeeded_ticker">Capitada d\'avalcargar</string>
- <string name="common_choose_account">Causís lo compte</string>
+ <string name="uploader_upload_in_progress_ticker">Mandadís…</string>
+ <string name="uploader_upload_in_progress_content">Mandadís del fichièr %2$s : %1$d%% efectuats</string>
+ <string name="uploader_upload_succeeded_ticker">Mandadís capitat</string>
+ <string name="uploader_upload_succeeded_content_single">Lo fichièr %1$s es estat mandat amb succès</string>
+ <string name="uploader_upload_failed_ticker">Fracàs del mandadís</string>
+ <string name="uploader_upload_failed_content_single">Lo mandadís de %1$s a fracassat</string>
+ <string name="uploader_upload_failed_credentials_error">Lo mandadís a fracassat, vos cal vos connectar tornamai</string>
+ <string name="downloader_download_in_progress_ticker">Telecargament en cors…</string>
+ <string name="downloader_download_in_progress_content">Telecargament en cors de %2$s, %1$d%% efectuats</string>
+ <string name="downloader_download_succeeded_ticker">Telecargament capitat</string>
+ <string name="downloader_download_succeeded_content">%1$s es estat telecargat amb succès</string>
+ <string name="downloader_download_failed_ticker">Lo telecargament a fracassat</string>
+ <string name="downloader_download_failed_content">Lo telecargament de %1$s a fracassat</string>
+ <string name="downloader_not_downloaded_yet">Pas encara telecargat</string>
+ <string name="downloader_download_failed_credentials_error">Lo telecargament a fracassat, vos cal vos connectar tornamai</string>
+ <string name="common_choose_account">Causissètz un compte</string>
+ <string name="sync_fail_ticker">La sincronizacion a fracassat</string>
+ <string name="sync_fail_ticker_unauthorized">Fracàs de la sincronizacion, vos cal vos reconnectar</string>
+ <string name="sync_fail_content">La sincronizacion de %1$s a pas pogut èsser acabada</string>
+ <string name="sync_fail_content_unauthorized">Senhal invalid per %1$s</string>
+ <string name="sync_conflicts_in_favourites_ticker">De conflictes son estats trobats</string>
+ <string name="sync_conflicts_in_favourites_content">%1$d fichièrs de gardar sincronizats an pas pogut èsser sincronizats</string>
+ <string name="sync_fail_in_favourites_ticker">La sincronizacion dels fichièrs a fracassat</string>
+ <string name="sync_fail_in_favourites_content">Lo contengut de %1$d fichièrs a pas pogut èsser sincronizat (%2$d conflictes)</string>
+ <string name="sync_foreign_files_forgotten_ticker">Certans fichièrs locals son estats doblidats</string>
+ <string name="sync_foreign_files_forgotten_content">%1$d fichièrs del dorsièr %2$s an pas pogut èsser copiats dins</string>
+ <string name="sync_foreign_files_forgotten_explanation">Dempuèi la version 1.3.16, los fichièrs mandats dempuèi aqueste aparelh son copiats dins lo dorsièr local %1$s per evitar una pèrda de donadas quand un meteis fichièr es sincronizat amb mantun compte.
+
+En rason d\'aquesta modificacion, totes los fichièrs mandats amb de versions anterioras d\'aquesta aplicacion son estats copiats dins lo dorsièr %2$s. Pasmens, una error a empachat l\'acabament d\'aquesta operacion pendent la sincronizacion del compte. Podètz siá daissar los fichièrs tals coma son e suprimir lo ligam cap a %3$s, siá desplaçar los fichièrs dins lo dorsièr %1$s e gardar lo ligam cap a %4$s.
+
+Çaijós la lista dels fichièrs locals, e los fichièrs distants dins %5$s als quals èran ligats.</string>
+ <string name="sync_current_folder_was_removed">Lo dorsièr %1$s existís pas mai</string>
+ <string name="foreign_files_move">Desplaçar tot</string>
+ <string name="foreign_files_success">Totes los fichièrs son estats desplaçats</string>
+ <string name="foreign_files_fail">Certans fichièrs an pas pogut èsser desplaçats</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">I a pas pro de plaça disponibla per copiar los fichièrs seleccionats dins lo dorsièr %1$s. Volètz los desplaçar a la plaça ?</string>
+ <string name="pass_code_enter_pass_code">Sasissètz vòstre còde de seguretat</string>
+ <string name="pass_code_configure_your_pass_code">Sasissètz vòstre còde de seguretat</string>
+ <string name="pass_code_configure_your_pass_code_explanation">Lo còde de seguretat serà demandat a cada dobertura de l\'aplicacion</string>
+ <string name="pass_code_reenter_your_pass_code">Sasissètz tornamai vòstre còde de seguretat</string>
+ <string name="pass_code_remove_your_pass_code">Suprimir vòstre còde de seguretat</string>
+ <string name="pass_code_mismatch">Los còdes de seguretat son pas identics</string>
+ <string name="pass_code_wrong">Còde de seguretat incorrècte</string>
+ <string name="pass_code_removed">Còde de seguretat suprimit</string>
+ <string name="pass_code_stored">Còde de seguretat enregistrat</string>
+ <string name="media_notif_ticker">%1$s lector de musica</string>
+ <string name="media_state_playing">%1$s (lectura)</string>
+ <string name="media_state_loading">%1$s (cargament)</string>
+ <string name="media_event_done">Lectura de %1$s acabada</string>
+ <string name="media_err_nothing_to_play">Fichièr mèdia introbable </string>
+ <string name="media_err_no_account">Cap de compte es pas estat trobat</string>
+ <string name="media_err_not_in_owncloud">Lo fichièr es pas dins un compte valid</string>
+ <string name="media_err_unsupported">Lo codec d\'aqueste mèdia es pas pres en carga </string>
+ <string name="media_err_io">Lo fichièr mèdia pòt pas èsser legit</string>
+ <string name="media_err_malformed">Lo fichièr mèdia es pas corrèctament encodat</string>
+ <string name="media_err_timeout">Relambi depassat per la lectura del tròç</string>
+ <string name="media_err_invalid_progressive_playback">Lo fichièr mèdia pòt pas èsser difusat</string>
+ <string name="media_err_unknown">Lo fichièr mèdia pòt pas èsser jogat amb lo lector estandard</string>
+ <string name="media_err_security_ex">Error de seguretat a la lectura de %1$s</string>
+ <string name="media_err_io_ex">Error de lectura de fichièr a la lectura de %1$s</string>
+ <string name="media_err_unexpected">Error imprevista a la lectura de %1$s </string>
+ <string name="media_rewind_description">Boton de rembobinatge</string>
+ <string name="media_play_pause_description">Boton de lectura o de pausa</string>
+ <string name="media_forward_description">Boton d\'avança rapida</string>
+ <string name="auth_getting_authorization">Demanda d\'autorizacion…</string>
+ <string name="auth_trying_to_login">Temptativa de connexion…</string>
+ <string name="auth_no_net_conn_title">Pas de connexion ret</string>
+ <string name="auth_nossl_plain_ok_title">Connexion securizada pas disponibla</string>
+ <string name="auth_connection_established">Connexion establida</string>
+ <string name="auth_testing_connection">Tèst de connexion</string>
+ <string name="auth_not_configured_title">Configuracion del servidor erronèa</string>
+ <string name="auth_account_not_new">Un compte pels meteisses utilizaire e servidor existís ja sus aqueste aparelh</string>
+ <string name="auth_account_not_the_same">L\'utilizaire entrat correspond pas a l\'utilizaire d\'aqueste compte</string>
+ <string name="auth_unknown_error_title">Una error desconeguda s\'es produsida.</string>
+ <string name="auth_unknown_host_title">Impossible de trobar l\'òste</string>
+ <string name="auth_incorrect_path_title">Cap d\'instància del servidor es pas estada trobada</string>
+ <string name="auth_timeout_title">Lo servidor a pres tròp de temps a respondre</string>
+ <string name="auth_incorrect_address_title">Adreça invalida</string>
+ <string name="auth_ssl_general_error_title">Fracàs de l\'inicializacion SSL</string>
+ <string name="auth_ssl_unverified_server_title">Impossible de verificar l\'identitat del servidor SSL</string>
+ <string name="auth_bad_oc_version_title">La version del servidor es pas reconeguda</string>
+ <string name="auth_wrong_connection_title">Impossible d\'establir la connexion</string>
+ <string name="auth_secure_connection">Connexion securizada establida</string>
+ <string name="auth_unauthorized">Nom d\'utilizaire o senhal incorrècte</string>
+ <string name="auth_oauth_error">Fracàs d\'autorizacion</string>
+ <string name="auth_oauth_error_access_denied">Accès refusat pel servidor d\'autorizacion</string>
+ <string name="auth_wtf_reenter_URL">Estat imprevist ; sasissètz tornamai l\'URL del servidor</string>
+ <string name="auth_expired_oauth_token_toast">Vòstra autorizacion a expirat. Mercé de vos autentificar tornamai</string>
+ <string name="auth_expired_basic_auth_toast">Sasissètz lo senhal corrent</string>
+ <string name="auth_expired_saml_sso_token_toast">Vòstra session a expirat. Mercé de vos reconnectar</string>
+ <string name="auth_connecting_auth_server">Connexion al servidor d\'autentificacion…</string>
+ <string name="auth_unsupported_auth_method">Lo servidor pren pas en carga pas aqueste metòde d\'autentificacion</string>
+ <string name="auth_unsupported_multiaccount">%1$s pren pas en carga los comptes multiples</string>
+ <string name="auth_fail_get_user_name">Vòstre servidor a tornat un identificant d\'utilizaire incorrècte. Prenètz contacte amb vòstre administrator
+</string>
+ <string name="auth_can_not_auth_against_server">Impossible de s\'autentificar sus aqueste servidor</string>
+ <string name="auth_account_does_not_exist">Lo compte existís pas encara sus aqueste periferic</string>
<string name="favorite">Apondre als favorits</string>
- <string name="common_rename">Torna nomenar</string>
+ <string name="unfavorite">Suprimir dels favorits</string>
+ <string name="common_rename">Renomenar</string>
<string name="common_remove">Suprimir</string>
+ <string name="confirmation_remove_file_alert">Sètz segur que volètz suprimir %1$s ?</string>
+ <string name="confirmation_remove_folder_alert">Sètz segur que volètz suprimir %1$s e son contengut ?</string>
+ <string name="confirmation_remove_local">Local solament</string>
+ <string name="confirmation_remove_folder_local">Local solament</string>
+ <string name="confirmation_remove_file_remote">Dempuèi lo servidor</string>
+ <string name="confirmation_remove_remote_and_local">Distant & local</string>
+ <string name="remove_success_msg">Supression efectuada amb succès</string>
+ <string name="remove_fail_msg">Supression impossibla</string>
+ <string name="rename_dialog_title">Entratz un nom novèl</string>
+ <string name="rename_local_fail_msg">La version locala pòt pas èsser renomenada, reensajatz amb un nom diferent</string>
+ <string name="rename_server_fail_msg">Cambiament de nom impossible</string>
+ <string name="sync_file_fail_msg">Lo fichièr distant a pas pogut èsser verificat</string>
+ <string name="sync_file_nothing_to_do_msg">Lo contengut del fichièr es ja sincronizat</string>
+ <string name="create_dir_fail_msg">Lo dorsièr a pas pogut èsser creat</string>
+ <string name="filename_forbidden_characters">Caractèrs interdiches : / \\ < > : \" | ? *</string>
+ <string name="filename_forbidden_charaters_from_server">Lo nom de fichièr conten al mens un caractèr invalid</string>
+ <string name="filename_empty">Lo nom del fichièr pòt pas èsser void</string>
+ <string name="wait_a_moment">Pacientatz</string>
+ <string name="filedisplay_unexpected_bad_get_content">Problèma imprevist. Ensajatz una autra aplicacion per la seleccion del fichièr</string>
+ <string name="filedisplay_no_file_selected">Cap de fichièr pas seleccionat</string>
+ <string name="activity_chooser_title">Mandar lo ligam cap a…</string>
+ <string name="wait_for_tmp_copy_from_private_storage">Còpia del fichièr dempuèi l\'emmagazinatge privat</string>
+ <string name="oauth_check_onoff">Connexion amb oAuth2</string>
+ <string name="oauth_login_connection">Connexion al servidor oAuth2…</string>
+ <string name="ssl_validator_header">L\'identitat del site pòt pas èsser verificada</string>
+ <string name="ssl_validator_reason_cert_not_trusted">- Lo certificat del servidor es pas segur</string>
+ <string name="ssl_validator_reason_cert_expired">- Lo certificat del servidor a expirat</string>
+ <string name="ssl_validator_reason_cert_not_yet_valid">- Lo certificat del servidor es pas encara valid</string>
+ <string name="ssl_validator_reason_hostname_not_verified">- L\'URL correspond pas al nom d\'òste del certificat</string>
+ <string name="ssl_validator_question">Vos volètz fisaz d\'aqueste certificat malgrat tot ?</string>
+ <string name="ssl_validator_not_saved">Impossible de salvar lo certificat</string>
+ <string name="ssl_validator_btn_details_see">Detalhs</string>
+ <string name="ssl_validator_btn_details_hide">Amagar</string>
+ <string name="ssl_validator_label_subject">Desliurat a :</string>
+ <string name="ssl_validator_label_issuer">Desliurat per :</string>
+ <string name="ssl_validator_label_CN">Nom d\'usatge :</string>
+ <string name="ssl_validator_label_O">Organizacion :</string>
+ <string name="ssl_validator_label_OU">Unitat organizacionala :</string>
<string name="ssl_validator_label_C">País :</string>
+ <string name="ssl_validator_label_ST">Region :</string>
+ <string name="ssl_validator_label_L">Localizacion :</string>
+ <string name="ssl_validator_label_validity">Validitat :</string>
+ <string name="ssl_validator_label_validity_from">Del :</string>
+ <string name="ssl_validator_label_validity_to">Al :</string>
+ <string name="ssl_validator_label_signature">Signatura :</string>
+ <string name="ssl_validator_label_signature_algorithm">Algoritme :</string>
+ <string name="ssl_validator_null_cert">Impossible d\'afichar lo certificat.</string>
+ <string name="ssl_validator_no_info_about_error">- Pas cap d\'informacion sus l\'error</string>
+ <string name="placeholder_sentence">Aquò es un espaci reservat</string>
+ <string name="placeholder_filename">placeholder.txt</string>
+ <string name="placeholder_filetype">Imatge PNG</string>
+ <string name="placeholder_filesize">389 Ko</string>
+ <string name="placeholder_timestamp">18/05/2012 12:23</string>
+ <string name="placeholder_media_time">12:23:45</string>
+ <string name="instant_upload_on_wifi">Mandar los imatges via una connexion WiFi unicament</string>
+ <string name="instant_video_upload_on_wifi">Mandar las vidèos via una connexion WiFi unicament</string>
+ <string name="instant_upload_path">/InstantUpload</string>
+ <string name="conflict_title">Conflicte de fichièrs</string>
+ <string name="conflict_message">Quin(s) fichièr(s) volètz gardar ? Se seleccionatz los dos, una chifra serà aponduda al nom del fichièr local.</string>
+ <string name="conflict_keep_both">Gardar las doas versions</string>
+ <string name="conflict_use_local_version">version locala</string>
+ <string name="conflict_use_server_version">version servidor</string>
+ <string name="preview_image_description">Previsualizacion de l\'imatge</string>
+ <string name="preview_image_error_unknown_format">Aqueste imatge pòt pas èsser afichada</string>
+ <string name="error__upload__local_file_not_copied">%1$s a pas pogut èsser copiat dins lo dorsièr local %2$s</string>
+ <string name="prefs_instant_upload_path_title">Repertòri de mandadís</string>
+ <string name="share_link_no_support_share_api">O planhèm, lo partiment es pas disponible sus vòstre servidor. Contactatz vòstre administrator.</string>
+ <string name="share_link_file_no_exist">Impossible de partejar. Verificatz que lo fichièr es plan present</string>
+ <string name="share_link_file_error">Una error s\'es produsida al moment de la tentative de partiment d\'aqueste fichièr o repertòri</string>
+ <string name="unshare_link_file_no_exist">Impossible de suprimir lo partiment. Verificatz que lo fichièr es ben present</string>
+ <string name="unshare_link_file_error">Una error s\'es produsida al moment de la temptativa d’anullacion del partiment d\'aqueste fichièr o repertòri</string>
+ <string name="share_link_password_title">Sasissètz un senhal</string>
+ <string name="share_link_empty_password">Vos cal sasir un senhal</string>
<string name="activity_chooser_send_file_title">Mandar</string>
+ <string name="copy_link">Copiar lo ligam</string>
<string name="clipboard_text_copied">Copiat dins lo quichapapièrs</string>
+ <string name="error_cant_bind_to_operations_service">Error critica : impossible de realizar d\'operacions</string>
+ <string name="network_error_socket_exception">Una error s\'es produsida pendent la connexion al servidor.</string>
+ <string name="network_error_socket_timeout_exception">Una error s\'es produsida pendent l\'espèra del servidor. L\'operacion a pas pogut èsser efectuada</string>
+ <string name="network_error_connect_timeout_exception">Una error s\'es produsida pendent l\'espèra del servidor. L\'operacion a pas pogut èsser efectuada</string>
+ <string name="network_host_not_available">L\'operacion a pas pogut èsser acabada, lo servidor es pas disponible</string>
<string name="empty"></string>
+ <string name="forbidden_permissions">Avètz pas la permission %s</string>
+ <string name="forbidden_permissions_rename">de renomenar aqueste fichièr</string>
+ <string name="forbidden_permissions_delete">d’escafar aqueste fichièr</string>
+ <string name="share_link_forbidden_permissions">per fin de partejar aqueste fichièr</string>
+ <string name="unshare_link_forbidden_permissions">per fin de partejar pas mai aqueste fichièr</string>
+ <string name="forbidden_permissions_create">de crear aqueste fichièr</string>
+ <string name="uploader_upload_forbidden_permissions">per fin d’importar dins aqueste repertòri</string>
+ <string name="downloader_download_file_not_found">Aqueste fichièr es pas mai disponible sul servidor</string>
<string name="prefs_category_accounts">Comptes</string>
+ <string name="prefs_add_account">Apondre un compte</string>
+ <string name="auth_redirect_non_secure_connection_title">La connexion securizada es redirigida cap a una rota non-securizada.</string>
+ <string name="actionbar_logger">Jornals</string>
+ <string name="log_send_history_button">Mandar l\'istoric</string>
+ <string name="log_send_no_mail_app">Cap d\'aplicacion pas trobada pel mandadís de jornals. Installar una aplicacion de corrièl !</string>
+ <string name="log_send_mail_subject">Jornals de l\'aplicacion Android %1$s</string>
+ <string name="log_progress_dialog_text">Cargament de las donadas…</string>
<string name="saml_authentication_required_text">Autentificacion requesida</string>
<string name="saml_authentication_wrong_pass">Senhal incorrècte</string>
- <string name="folder_picker_choose_button_text">Causís</string>
+ <string name="actionbar_move">Desplaçar</string>
+ <string name="file_list_empty_moving">I a pas res aicí. Podètz apondre un dorsièr !</string>
+ <string name="folder_picker_choose_button_text">Causir</string>
+ <string name="move_file_not_found">Impossible de desplaçar. Verificatz que lo fichièr existís</string>
+ <string name="move_file_invalid_into_descendent">Es pas possible de desplaçar un dorsièr cap a un de sos descendents</string>
+ <string name="move_file_invalid_overwrite">Lo fichièr existís ja dins lo dorsièr de destinacion</string>
+ <string name="move_file_error">Una error s\'es produsida al moment de la temptativa de desplaçament d\'aqueste fichièr o dorsièr</string>
+ <string name="forbidden_permissions_move">de desplaçar aqueste fichièr</string>
+ <string name="copy_file_not_found">Impossible de copiar. Verificatz que lo fichièr existís</string>
+ <string name="copy_file_invalid_into_descendent">Es pas possible de copiar un dorsièr cap a un de sos descendents</string>
+ <string name="copy_file_invalid_overwrite">Fichièr ja existent dins lo dorsièr de destinacion</string>
+ <string name="copy_file_error">Una error s\'es produsida al moment de la còpia d\'aqueste fichièr o dorsièr</string>
+ <string name="forbidden_permissions_copy">de copiar aqueste fichièr</string>
+ <string name="prefs_category_instant_uploading">Mandadís immediat</string>
+ <string name="prefs_category_security">Seguretat</string>
+ <string name="prefs_instant_video_upload_path_title">Repertòri de mandadís de las vidèos</string>
+ <string name="download_folder_failed_content">Lo telecargament del dorsièr %1$s a pas pogut èsser acabat</string>
+ <string name="shared_subject_header">a partejat</string>
+ <string name="with_you_subject_header">amb vos</string>
+ <string name="subject_token">%1$s a partejat \"%2$s\" amb vos</string>
+ <string name="saml_subject_token">\"%1$s\" es estat partejat amb vos</string>
+ <string name="auth_refresh_button">Actualizar la connexion</string>
<string name="auth_host_address">Adreça del servidor</string>
+ <string name="common_error_out_memory">Memòria insufisenta</string>
<string name="username">Nom d\'utilizaire</string>
+ <string name="file_list__footer__folder">1 dorsièr</string>
+ <string name="file_list__footer__folders">%1$d dorsièrs</string>
+ <string name="file_list__footer__file">1 fichièr</string>
+ <string name="file_list__footer__file_and_folder">1 fichièr, 1 dorsièr</string>
+ <string name="file_list__footer__file_and_folders">1 fichièr, %1$d dorsièrs</string>
+ <string name="file_list__footer__files">%1$d fichièrs</string>
+ <string name="file_list__footer__files_and_folder">%1$d fichièrs, 1 dorsièr</string>
+ <string name="file_list__footer__files_and_folders">%1$d fichièrs, %2$d dorsièrs</string>
</resources>
<string name="unfavorite">Usuń z ulubionych</string>
<string name="common_rename">Zmień nazwę</string>
<string name="common_remove">Usuń</string>
- <string name="confirmation_remove_alert">Czy naprawdę chcesz usunąć %1$s?</string>
+ <string name="confirmation_remove_file_alert">Czy naprawdę chcesz usunąć %1$s?</string>
<string name="confirmation_remove_folder_alert">Czy naprawdę chcesz usunąć %1$s i jego zawartość?</string>
<string name="confirmation_remove_local">Tylko lokalnie</string>
<string name="confirmation_remove_folder_local">Tylko lokalnie</string>
- <string name="confirmation_remove_remote">Z serwera</string>
+ <string name="confirmation_remove_file_remote">Z serwera</string>
<string name="remove_success_msg">Usunięto</string>
<string name="remove_fail_msg">Nie można usunąć</string>
<string name="rename_dialog_title">Wprowadź nową nazwę</string>
<string name="unfavorite">Nãofavorito</string>
<string name="common_rename">Renomear</string>
<string name="common_remove">Remover</string>
- <string name="confirmation_remove_alert">Você realmente deseja remover %1$s?</string>
+ <string name="confirmation_remove_file_alert">Você realmente deseja remover %1$s?</string>
<string name="confirmation_remove_folder_alert">Você realmente deseja remover %1$s e seus conteúdos?</string>
<string name="confirmation_remove_local">Somente local</string>
<string name="confirmation_remove_folder_local">Somente local</string>
- <string name="confirmation_remove_remote">Do servidor</string>
+ <string name="confirmation_remove_file_remote">Do servidor</string>
<string name="confirmation_remove_remote_and_local">Remoto & local</string>
<string name="remove_success_msg">Removido com sucesso</string>
<string name="remove_fail_msg">Erro ao remover</string>
<string name="unfavorite">Retirar Favorito</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_file_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">Apenas localmente</string>
- <string name="confirmation_remove_remote">Do servidor</string>
+ <string name="confirmation_remove_file_remote">Do servidor</string>
<string name="confirmation_remove_remote_and_local">Remoto & local</string>
<string name="remove_success_msg">Removido com sucesso</string>
<string name="remove_fail_msg">Não foi possível remover</string>
<string name="move_file_invalid_overwrite">O ficheiro já existe na pasta de destino</string>
<string name="move_file_error">Ocorreu um ocorreu quando tentava mover este ficheiro ou pasta</string>
<string name="forbidden_permissions_move">para mover este ficheiro</string>
+ <string name="copy_file_not_found">Não é possível copiar. Por favor, verifique se o ficheiro existe</string>
+ <string name="copy_file_invalid_into_descendent">Não é possível copiar esta pasta para a descendente</string>
<string name="copy_file_invalid_overwrite">O ficheiro já existe na pasta de destino</string>
+ <string name="copy_file_error">Ocorreu um ocorreu quando tentava copiar este ficheiro ou pasta</string>
+ <string name="forbidden_permissions_copy">para copiar este ficheiro</string>
<string name="prefs_category_instant_uploading">Envios Instantâneos</string>
<string name="prefs_category_security">Segurança</string>
<string name="prefs_instant_video_upload_path_title">Envio do Caminho do Vídeo</string>
--- /dev/null
+<?xml version='1.0' encoding='UTF-8'?>
+<resources>
+ <!--TODO re-enable when server-side folder size calculation is available
+ <item>Biggest - Smallest</item>-->
+ <!--TODO re-enable when "Accounts" is available in Navigation Drawer-->
+ <!--<string name="drawer_item_accounts">Accounts</string>-->
+ <!--TODO re-enable when "On Device" is available
+ <string name="drawer_item_on_device">On device</string>-->
+ <string name="empty"></string>
+</resources>
<string name="unfavorite">Defavoritați</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_file_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 local</string>
- <string name="confirmation_remove_remote">De pe server</string>
+ <string name="confirmation_remove_file_remote">De pe server</string>
<string name="confirmation_remove_remote_and_local">Ambele</string>
<string name="remove_success_msg">Eliminat cu succes</string>
<string name="remove_fail_msg">Eliminarea nu a reușit</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_file_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="confirmation_remove_file_remote">Удалить с сервера</string>
<string name="confirmation_remove_remote_and_local">Оба, удаленный и локальный</string>
<string name="remove_success_msg">Успешное удаление</string>
<string name="remove_fail_msg">Удаление не может быть завершено</string>
<string name="unfavorite">Убрать из избранного</string>
<string name="common_rename">Переименовать</string>
<string name="common_remove">Удалить</string>
- <string name="confirmation_remove_alert">Вы действительно хотите удалить %1$s?</string>
+ <string name="confirmation_remove_file_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="prefs_category_more">Viac</string>
<string name="prefs_accounts">Účty</string>
<string name="prefs_manage_accounts">Správa účtov</string>
+ <string name="prefs_passcode">Heslo</string>
<string name="prefs_instant_upload">Okamžité nahratie obrázka</string>
<string name="prefs_instant_upload_summary">Okamžite nahrať obrázok zaznamenaný fotoaparátom</string>
<string name="prefs_instant_video_upload">Okamžité nahranie videa</string>
<string name="uploader_info_uploading">Nahrávanie</string>
<string name="file_list_seconds_ago">pred sekundami</string>
<string name="file_list_empty">Žiadny súbor. Nahrajte niečo!</string>
+ <string name="file_list_loading">Načítavam...</string>
<string name="local_file_list_empty">V tomto priečinku nie sú žiadne súbory.</string>
<string name="filedetails_select_file">Viac informácií získate kliknutím na súbor.</string>
<string name="filedetails_size">Veľkosť:</string>
<string name="filedetails_download">Stiahnuť</string>
<string name="filedetails_sync_file">Obnoviť súbor</string>
<string name="filedetails_renamed_in_upload_msg">Súbor bol premenovaný na %1$s počas nahrávania</string>
+ <string name="list_layout">Rozvrhnutie zoznamu</string>
<string name="action_share_file">Zdieľať linku</string>
<string name="action_unshare_file">Zrušiť zdieľanie odkazu</string>
<string name="common_yes">Áno</string>
<string name="upload_query_move_foreign_files">Nie je dostatok miesta na skopírovanie vybraných súborov do priečinka %1$s. Želáte si ich namiesto toho presunúť?</string>
<string name="pass_code_enter_pass_code">Prosím, vložte svoje heslo:</string>
<string name="pass_code_configure_your_pass_code">Vložte svoje heslo</string>
+ <string name="pass_code_configure_your_pass_code_explanation">Heslo bude nutné zadať vždy po štarte aplikácie</string>
<string name="pass_code_reenter_your_pass_code">Prosím, vložte znovu svoje heslo:</string>
<string name="pass_code_remove_your_pass_code">Zmazať svoje heslo</string>
+ <string name="pass_code_mismatch">Heslá sa nezhodujú</string>
+ <string name="pass_code_wrong">Nesprávne heslo</string>
<string name="pass_code_removed">Bezpečnostný kód odstránený</string>
<string name="pass_code_stored">Bezpečnostný kód uložený</string>
<string name="media_notif_ticker">Prehrávač hudby %1$s</string>
<string name="unfavorite">Odobrať z obľúbených</string>
<string name="common_rename">Premenuj</string>
<string name="common_remove">Odober</string>
- <string name="confirmation_remove_alert">Naozaj chcete odstrániť %1$s?</string>
+ <string name="confirmation_remove_file_alert">Naozaj chcete odstrániť %1$s?</string>
<string name="confirmation_remove_folder_alert">Naozaj chcete odstrániť %1$s a jeho obsah?</string>
<string name="confirmation_remove_local">Iba lokálne</string>
<string name="confirmation_remove_folder_local">Iba lokálne</string>
+ <string name="confirmation_remove_file_remote">Zo servera</string>
+ <string name="confirmation_remove_remote_and_local">Vzdialene aj lokálne</string>
<string name="remove_success_msg">Úspešne odstránené</string>
<string name="remove_fail_msg">Odstránenie zlyhalo</string>
<string name="rename_dialog_title">Zadajte nové meno</string>
<string name="sync_file_nothing_to_do_msg">Obsah súboru je zosynchronizovaný</string>
<string name="create_dir_fail_msg">Priečinok nie je možné vytvoriť</string>
<string name="filename_forbidden_characters">Zakázané znaky: / \\ < > : \" | ? *</string>
+ <string name="filename_forbidden_charaters_from_server">Názov súboru obsahuje nevhodný znak</string>
<string name="filename_empty">Názov súboru nemôže byť prázdny</string>
<string name="wait_a_moment">Počkať chvíľu</string>
<string name="filedisplay_unexpected_bad_get_content">Neočakávaný problém; skúste vybrať súbor inou aplikáciou</string>
<string name="filedisplay_no_file_selected">Nebol vybraný súbor</string>
<string name="activity_chooser_title">Odošli link do ...</string>
+ <string name="wait_for_tmp_copy_from_private_storage">Kopírovanie súboru z privátneho úložiska</string>
<string name="oauth_check_onoff">Prihlásiť sa z oAuth2</string>
<string name="oauth_login_connection">Pripájam sa na oAuth2 server…</string>
<string name="ssl_validator_header">Identitu stránky nemožno overiť</string>
<string name="instant_upload_on_wifi">Odoslať fotografie iba cez WiFi</string>
<string name="instant_video_upload_on_wifi">Nahrávať videá len cez WiFi</string>
<string name="instant_upload_path">/InstantUpload</string>
+ <string name="conflict_title">Konflikt súborov</string>
+ <string name="conflict_message">Ktoré súbory si prajate ponachať? Pokiaľ to budú obe verzie, lokálnej pribudne k názvu číslo.</string>
<string name="conflict_keep_both">Ponechať oba</string>
+ <string name="conflict_use_local_version">lokálnu verziu</string>
+ <string name="conflict_use_server_version">serverovú verziu</string>
<string name="preview_image_description">Ukážka obrazu</string>
<string name="preview_image_error_unknown_format">Obrázok nemožno zobraziť</string>
<string name="error__upload__local_file_not_copied">%1$s nemožno skopírovať do lokálneho priečinka %2$s</string>
<string name="move_file_invalid_overwrite">Súbor už v cieľovom priečinku existuje</string>
<string name="move_file_error">Pri pokuse o presun tohoto súboru alebo priečinka nastala chyba</string>
<string name="forbidden_permissions_move">pre presun tohoto súboru</string>
+ <string name="copy_file_not_found">Nemožno kopírovať. Overte či súbor ešte existuje</string>
+ <string name="copy_file_invalid_into_descendent">Nemožno kopírovať priečinok do jeho podpriečinka</string>
<string name="copy_file_invalid_overwrite">Súbor už v cieľovom priečinku existuje</string>
+ <string name="copy_file_error">Počas kopírovania súboru alebo zložky sa vyskytla chyba</string>
+ <string name="forbidden_permissions_copy">kopírovať súbor</string>
<string name="prefs_category_instant_uploading">Okamžité nahratie</string>
<string name="prefs_category_security">Zabezpečenie</string>
<string name="prefs_instant_video_upload_path_title">Cesta pre nahrávanie videí</string>
<string name="shared_subject_header">zdieľané</string>
<string name="with_you_subject_header">s vami</string>
<string name="subject_token">%1$s vám zdieľal \"%2$s\"</string>
+ <string name="saml_subject_token">\"%1$s\" bol s vami nazdieľaný</string>
<string name="auth_refresh_button">Obnoviť pripojenie</string>
<string name="auth_host_address">Adresa servera</string>
<string name="common_error_out_memory">Nedostatok pamäte</string>
<string name="username">Používateľské meno</string>
+ <string name="file_list__footer__folder">1 priečinok</string>
+ <string name="file_list__footer__folders">%1$d prieč.</string>
+ <string name="file_list__footer__file">1 súbor</string>
+ <string name="file_list__footer__file_and_folder">1 súbor, 1 priečinok</string>
+ <string name="file_list__footer__file_and_folders">1 súbor, %1$d prieč.</string>
+ <string name="file_list__footer__files">%1$d súb.</string>
+ <string name="file_list__footer__files_and_folder">%1$d súb., 1 priečinok</string>
+ <string name="file_list__footer__files_and_folders">%1$d súb., %2$d prieč.</string>
</resources>
<string name="unfavorite">Odstrani priljubljeno</string>
<string name="common_rename">Preimenuj</string>
<string name="common_remove">Odstrani</string>
- <string name="confirmation_remove_alert">Ali res želite odstraniti %1$s?</string>
+ <string name="confirmation_remove_file_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</string>
- <string name="confirmation_remove_remote">S strežnika</string>
+ <string name="confirmation_remove_file_remote">S strežnika</string>
<string name="confirmation_remove_remote_and_local">Oddaljeno & krajevno</string>
<string name="remove_success_msg">Odstranitev je uspešno končana</string>
<string name="remove_fail_msg">Odstranjevanje je spodletelo</string>
<string name="unfavorite">Неомиљени</string>
<string name="common_rename">Преименуј</string>
<string name="common_remove">Уклони</string>
- <string name="confirmation_remove_alert">Желите да уклоните %1$s?</string>
+ <string name="confirmation_remove_file_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="unfavorite">Avfavoritisera</string>
<string name="common_rename">Byt namn</string>
<string name="common_remove">Radera</string>
- <string name="confirmation_remove_alert">Vill du verkligen ta bort %1$s?</string>
+ <string name="confirmation_remove_file_alert">Vill du verkligen ta bort %1$s?</string>
<string name="confirmation_remove_folder_alert">Vill du verkligen ta bort %1$s och dess innehåll?</string>
<string name="confirmation_remove_local">Endast lokalt</string>
<string name="confirmation_remove_folder_local">Endast lokalt</string>
<string name="unfavorite">ออกจากรายการโปรด</string>
<string name="common_rename">เปลี่ยนชื่อ</string>
<string name="common_remove">ลบออก</string>
- <string name="confirmation_remove_alert">คุณต้องการที่จะลบ %1$s?</string>
+ <string name="confirmation_remove_file_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="confirmation_remove_file_remote">จากเซิฟเวอร์</string>
<string name="confirmation_remove_remote_and_local">รีโมท & ต้นทาง</string>
<string name="remove_success_msg">ลบเรียบร้อยแล้ว</string>
<string name="remove_fail_msg">ไม่สามารถลบได้</string>
<string name="unfavorite">Favoriden kaldır</string>
<string name="common_rename">Yeniden adlandır</string>
<string name="common_remove">Kaldır</string>
- <string name="confirmation_remove_alert">Gerçekten %1$s dosyasını kaldırmak istiyor musunuz?</string>
+ <string name="confirmation_remove_file_alert">Gerçekten %1$s dosyasını kaldırmak istiyor musunuz?</string>
<string name="confirmation_remove_folder_alert">Gerçekten %1$s ve içeriğini kaldırmak istediğinizden emin misiniz?</string>
<string name="confirmation_remove_local">Sadece yerel</string>
<string name="confirmation_remove_folder_local">Sadece yerel</string>
- <string name="confirmation_remove_remote">Sunucudan</string>
+ <string name="confirmation_remove_file_remote">Sunucudan</string>
<string name="confirmation_remove_remote_and_local">Uzak ve yerel</string>
<string name="remove_success_msg">Kaldırma başarılı</string>
<string name="remove_fail_msg">Kaldırma başarısız</string>
<string name="favorite">Улюблений</string>
<string name="common_rename">Перейменувати</string>
<string name="common_remove">Видалити</string>
- <string name="confirmation_remove_alert">Ви дійсно бажаєте видалити %1$s?</string>
+ <string name="confirmation_remove_file_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="unfavorite">取消收藏</string>
<string name="common_rename">重命名</string>
<string name="common_remove">删除</string>
- <string name="confirmation_remove_alert">你确定要删除 %1$s 吗?</string>
+ <string name="confirmation_remove_file_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="confirmation_remove_file_remote">来自服务器</string>
<string name="confirmation_remove_remote_and_local">远程 & 本地</string>
<string name="remove_success_msg">成功删除</string>
<string name="remove_fail_msg">无法完成删除</string>
<string name="unfavorite">不喜愛的</string>
<string name="common_rename">重新命名</string>
<string name="common_remove">移除</string>
- <string name="confirmation_remove_alert">您真的要移除 %1$s ?</string>
+ <string name="confirmation_remove_file_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="confirmation_remove_file_remote">來自伺服器</string>
<string name="confirmation_remove_remote_and_local">遠端 & 本地</string>
<string name="remove_success_msg">成功地移除</string>
<string name="remove_fail_msg">刪除失敗</string>
<string name="unfavorite">Unfavorite</string>
<string name="common_rename">Rename</string>
<string name="common_remove">Remove</string>
- <string name="confirmation_remove_alert">"Do you really want to remove %1$s?"</string>
+ <string name="confirmation_remove_file_alert">"Do you really want to remove %1$s?"</string>
<string name="confirmation_remove_folder_alert">"Do you really want to remove %1$s and its contents?"</string>
<string name="confirmation_remove_local">Local only</string>
<string name="confirmation_remove_folder_local">Local only</string>
- <string name="confirmation_remove_remote">From server</string>
+ <string name="confirmation_remove_file_remote">From server</string>
<string name="confirmation_remove_remote_and_local">Remote & local</string>
<string name="remove_success_msg">"Removal succeeded"</string>
<string name="remove_fail_msg">"Removal failed"</string>
<string name="file_list__footer__files">%1$d files</string>
<string name="file_list__footer__files_and_folder">%1$d files, 1 folder</string>
<string name="file_list__footer__files_and_folders">%1$d files, %2$d folders</string>
+ <string name="confirmation_remove_files_alert">Do you really want to remove selected items?</string>
+ <string name="confirmation_remove_folders_alert">Do you really want to remove a folder and its content?</string>
+ <string name="confirmation_remove_files">selected items</string>
</resources>
public void onAuthenticatorTaskCallback(RemoteOperationResult result) {\r
mWaitingForOpId = Long.MAX_VALUE;\r
dismissDialog(WAIT_DIALOG_TAG);\r
+ mAsyncTask = null;\r
\r
if (result.isSuccess()) {\r
Log_OC.d(TAG, "Successful access - time to save the account");\r
import com.owncloud.android.lib.common.utils.Log_OC;
import java.io.File;
+import java.io.Serializable;
import third_parties.daveKoeller.AlphanumComparator;
public class OCFile implements Parcelable, Comparable<OCFile> {
- public static final Parcelable.Creator<OCFile> CREATOR = new Parcelable.Creator<OCFile>() {
- @Override
+ public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
public OCFile createFromParcel(Parcel source) {
return new OCFile(source);
}
- @Override
public OCFile[] newArray(int size) {
return new OCFile[size];
}
}
protected void onPostExecute(Bitmap bitmap){
- if (isCancelled()) {
- bitmap = null;
- }
-
if (bitmap != null) {
final ImageView imageView = mImageViewReference.get();
final ThumbnailGenerationTask bitmapWorkerTask = getBitmapWorkerTask(imageView);
if (bitmapData == null || bitmapData != file) {
// Cancel previous task
bitmapWorkerTask.cancel(true);
+ Log_OC.v(TAG, "Cancelled generation of thumbnail for a reused imageView");
} else {
// The same work is already in progress
return false;
import org.apache.http.protocol.HTTP;
+import java.util.ArrayList;
+
/**
*
*/
}
}
+ public void syncFiles(ArrayList<OCFile> files) {
+ for (OCFile file: files) {
+ syncFile(file);
+ }
+ }
public void syncFile(OCFile file) {
-
- if (!file.isFolder()){
+ if (!file.isFolder()) {
Intent intent = new Intent(mFileActivity, OperationsService.class);
intent.setAction(OperationsService.ACTION_SYNC_FILE);
intent.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
intent.putExtra(OperationsService.EXTRA_SYNC_FILE_CONTENTS, true);
mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(intent);
mFileActivity.showLoadingDialog();
-
+
} else {
Intent intent = new Intent(mFileActivity, OperationsService.class);
intent.setAction(OperationsService.ACTION_SYNC_FOLDER);
}
}
+ public void toggleFavorites(ArrayList<OCFile> files, boolean isFavorite){
+ for (OCFile file: files) {
+ toggleFavorite(file, isFavorite);
+ }
+ }
+
public void toggleFavorite(OCFile file, boolean isFavorite) {
file.setFavorite(isFavorite);
mFileActivity.getStorageManager().saveFile(file);
service.putExtra(OperationsService.EXTRA_ACCOUNT, mFileActivity.getAccount());
mWaitingForOpId = mFileActivity.getOperationsServiceBinder().queueNewOperation(service);
- mFileActivity.showLoadingDialog();
+ // TODO Tobi loading dialog?
+ // mFileActivity.showLoadingDialog();
}
/**
if (c != null && c.moveToFirst()) {
remoteId = c.getString(c.getColumnIndex(ProviderTableMeta.FILE_REMOTE_ID));
//ThumbnailsCacheManager.removeFileFromCache(remoteId);
+ c.close();
}
Log_OC.d(TAG, "Removing FILE " + remoteId);
+ uri.getPathSegments().get(1)
+ (!TextUtils.isEmpty(where) ? " AND (" + where
+ ")" : ""), whereArgs);
- /* just for log
- if (c!=null) {
- c.close();
- }
- */
break;
case DIRECTORY:
// deletion of folder is recursive
// ugly patch; serious refactorization is needed to reduce work in
// FileDataStorageManager and bring it to FileContentProvider
if (doubleCheck == null || !doubleCheck.moveToFirst()) {
+ if (doubleCheck != null) {
+ doubleCheck.close();
+ }
long rowId = db.insert(ProviderTableMeta.FILE_TABLE_NAME, null, values);
if (rowId > 0) {
Uri insertedFileUri =
// ugly patch; serious refactorization is needed to reduce work in
// FileDataStorageManager and bring it to FileContentProvider
if (doubleCheckShare == null || !doubleCheckShare.moveToFirst()) {
+ if (doubleCheckShare != null) {
+ doubleCheckShare.close();
+ }
long rowId = db.insert(ProviderTableMeta.OCSHARES_TABLE_NAME, null, values);
if (rowId >0) {
insertedShareUri =
*/
public void showLoadingDialog() {
// Construct dialog
- LoadingDialog loading = new LoadingDialog(getResources().getString(R.string.wait_a_moment));
- FragmentManager fm = getSupportFragmentManager();
- FragmentTransaction ft = fm.beginTransaction();
- loading.show(ft, DIALOG_WAIT_TAG);
-
+ Fragment frag = getSupportFragmentManager().findFragmentByTag(DIALOG_WAIT_TAG);
+ if (frag == null) {
+ Log_OC.d(TAG, "show loading dialog");
+ LoadingDialog loading = new LoadingDialog(getResources().getString(R.string.wait_a_moment));
+ FragmentManager fm = getSupportFragmentManager();
+ FragmentTransaction ft = fm.beginTransaction();
+ loading.show(ft, DIALOG_WAIT_TAG);
+ fm.executePendingTransactions();
+ }
}
public void dismissLoadingDialog() {
Fragment frag = getSupportFragmentManager().findFragmentByTag(DIALOG_WAIT_TAG);
if (frag != null) {
+ Log_OC.d(TAG, "dismiss loading dialog");
LoadingDialog loading = (LoadingDialog) frag;
loading.dismiss();
}
import android.accounts.AccountManager;
import android.accounts.AuthenticatorException;
import android.annotation.TargetApi;
+import android.os.Parcelable;
import android.support.v7.app.AlertDialog;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import com.owncloud.android.utils.UriUtils;
import java.io.File;
+import java.util.ArrayList;
+import java.util.Iterator;
/**
* Displays, what files the user has available in his ownCloud.
*/
private void requestMoveOperation(Intent data, int resultCode) {
OCFile folderToMoveAt = (OCFile) data.getParcelableExtra(FolderPickerActivity.EXTRA_FOLDER);
- OCFile targetFile = (OCFile) data.getParcelableExtra(FolderPickerActivity.EXTRA_FILE);
- getFileOperationsHelper().moveFile(folderToMoveAt, targetFile);
+
+ ArrayList<OCFile> files = data.getParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES);
+
+ for (Parcelable file : files) {
+ getFileOperationsHelper().moveFile(folderToMoveAt, (OCFile) file);
+ }
}
/**
*/
private void requestCopyOperation(Intent data, int resultCode) {
OCFile folderToMoveAt = data.getParcelableExtra(FolderPickerActivity.EXTRA_FOLDER);
- OCFile targetFile = data.getParcelableExtra(FolderPickerActivity.EXTRA_FILE);
- getFileOperationsHelper().copyFile(folderToMoveAt, targetFile);
+
+ ArrayList<OCFile> files = data.getParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES);
+
+ for (Parcelable file : files) {
+ getFileOperationsHelper().copyFile(folderToMoveAt, (OCFile) file);
+ }
}
@Override
import com.owncloud.android.ui.fragment.OCFileListFragment;
import com.owncloud.android.utils.ErrorMessageAdapter;
+import java.util.ArrayList;
+
public class FolderPickerActivity extends FileActivity implements FileFragment.ContainerActivity,
OnClickListener, OnEnforceableRefreshListener {
+ ".EXTRA_FOLDER";
public static final String EXTRA_FILE = UploadFilesActivity.class.getCanonicalName()
+ ".EXTRA_FILE";
+ public static final String EXTRA_FILES = UploadFilesActivity.class.getCanonicalName()
+ + ".EXTRA_FILES";
//TODO: Think something better
private SyncBroadcastReceiver mSyncBroadcastReceiver;
} else if (v == mChooseBtn) {
Intent i = getIntent();
Parcelable targetFile = i.getParcelableExtra(FolderPickerActivity.EXTRA_FILE);
+ ArrayList<Parcelable> targetFiles = i.getParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES);
Intent data = new Intent();
data.putExtra(EXTRA_FOLDER, getCurrentFolder());
if (targetFile != null) {
data.putExtra(EXTRA_FILE, targetFile);
}
+ if (targetFiles != null){
+ data.putParcelableArrayListExtra(EXTRA_FILES, targetFiles);
+ }
setResult(RESULT_OK, data);
finish();
}
}\r
return ids;\r
}\r
+\r
+ public ArrayList<OCFile> getCheckedItems() {\r
+ ArrayList<OCFile> files = new ArrayList<OCFile>();\r
+\r
+ for (Map.Entry<Integer, Boolean> entry : mSelection.entrySet()){\r
+ if (entry.getValue()){\r
+ files.add((OCFile) getItem(entry.getKey()));\r
+ }\r
+ }\r
+ return files;\r
+ }\r
}\r
import com.owncloud.android.R;
import com.owncloud.android.datamodel.ThumbnailsCacheManager;
+import com.owncloud.android.lib.common.utils.Log_OC;
import com.owncloud.android.utils.BitmapUtils;
import com.owncloud.android.utils.DisplayUtils;
import com.owncloud.android.utils.MimetypeIconUtil;
* in a local directory
*/
public class LocalFileListAdapter extends BaseAdapter implements ListAdapter {
-
+
+ private static final String TAG = LocalFileListAdapter.class.getSimpleName();
+
private Context mContext;
private File mDirectory;
private File[] mFiles = null;
fileName.setText(name);
ImageView fileIcon = (ImageView) view.findViewById(R.id.thumbnail);
+
+ /** Cancellation needs do be checked and done before changing the drawable in fileIcon, or
+ * {@link ThumbnailsCacheManager#cancelPotentialWork} will NEVER cancel any task.
+ **/
+ boolean allowedToCreateNewThumbnail = (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon));
+
if (!file.isDirectory()) {
fileIcon.setImageResource(R.drawable.file);
} else {
} else {
// generate new Thumbnail
- if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) {
+ if (allowedToCreateNewThumbnail) {
final ThumbnailsCacheManager.ThumbnailGenerationTask task =
new ThumbnailsCacheManager.ThumbnailGenerationTask(fileIcon);
if (thumbnail == null) {
);
fileIcon.setImageDrawable(asyncDrawable);
task.execute(file);
- }
+ Log_OC.v(TAG, "Executing task to generate a new thumbnail");
+
+ } // else, already being generated, don't restart it
}
} else {
fileIcon.setImageResource(MimetypeIconUtil.getFileTypeIconId(null, file.getName()));
RemoveFileDialogFragment frag = new RemoveFileDialogFragment();
Bundle args = new Bundle();
- int messageStringId = R.string.confirmation_remove_alert;
+ int messageStringId = R.string.confirmation_remove_file_alert;
- int posBtn = R.string.confirmation_remove_remote;
+ int posBtn = R.string.confirmation_remove_file_remote;
int negBtn = -1;
if (file.isFolder()) {
messageStringId = R.string.confirmation_remove_folder_alert;
--- /dev/null
+/**
+ * ownCloud Android client application
+ *
+ * @author David A. Velasco
+ * Copyright (C) 2015 ownCloud Inc.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+package com.owncloud.android.ui.dialog;
+
+/**
+ * Dialog requiring confirmation before removing a given OCFile.
+ *
+ * Triggers the removal according to the user response.
+ */
+
+import android.app.Dialog;
+import android.content.res.Resources;
+import android.os.Bundle;
+
+import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+import com.owncloud.android.datamodel.FileDataStorageManager;
+import com.owncloud.android.datamodel.OCFile;
+import com.owncloud.android.ui.activity.ComponentsGetter;
+import com.owncloud.android.ui.dialog.ConfirmationDialogFragment.ConfirmationDialogFragmentListener;
+
+import java.util.ArrayList;
+import java.util.Vector;
+
+public class RemoveFilesDialogFragment extends ConfirmationDialogFragment
+implements ConfirmationDialogFragmentListener {
+
+ private ArrayList<OCFile> mTargetFiles;
+
+ private static final String ARG_TARGET_FILES = "TARGET_FILES";
+
+ /**
+ * Public factory method to create new RemoveFileDialogFragment instances.
+ *
+ * @param files Files to remove.
+ * @return Dialog ready to show.
+ */
+ public static RemoveFilesDialogFragment newInstance(ArrayList<OCFile> files) {
+ RemoveFilesDialogFragment frag = new RemoveFilesDialogFragment();
+ Bundle args = new Bundle();
+
+ int messageStringId = R.string.confirmation_remove_files_alert;
+
+ int posBtn = R.string.confirmation_remove_file_remote;
+ int negBtn = -1;
+
+ boolean containsFolder = false;
+ boolean containsDown = false;
+ for (OCFile file: files) {
+ if (file.isFolder()) containsFolder = true;
+ if (file.isDown()) containsDown = true;
+ }
+
+ if (containsFolder) {
+ messageStringId = R.string.confirmation_remove_folders_alert;
+ posBtn = R.string.confirmation_remove_remote_and_local;
+ negBtn = R.string.confirmation_remove_local;
+ } else if (containsDown) {
+ posBtn = R.string.confirmation_remove_remote_and_local;
+ negBtn = R.string.confirmation_remove_local;
+ }
+
+ args.putInt(ARG_CONF_RESOURCE_ID, messageStringId);
+ args.putStringArray(ARG_CONF_ARGUMENTS, new String[]{MainApp.getAppContext().getString(R.string.confirmation_remove_files)});
+ args.putInt(ARG_POSITIVE_BTN_RES, posBtn);
+ args.putInt(ARG_NEUTRAL_BTN_RES, R.string.common_no);
+ args.putInt(ARG_NEGATIVE_BTN_RES, negBtn);
+ args.putParcelableArrayList(ARG_TARGET_FILES, files);
+ frag.setArguments(args);
+
+ return frag;
+ }
+
+ @Override
+ public Dialog onCreateDialog(Bundle savedInstanceState) {
+ Dialog dialog = super.onCreateDialog(savedInstanceState);
+ mTargetFiles = getArguments().getParcelableArrayList(ARG_TARGET_FILES);
+
+ setOnConfirmationListener(this);
+
+ return dialog;
+ }
+
+ /**
+ * Performs the removal of the target file, both locally and in the server.
+ */
+ @Override
+ public void onConfirmation(String callerTag) {
+ ComponentsGetter cg = (ComponentsGetter) getActivity();
+ FileDataStorageManager storageManager = cg.getStorageManager();
+ for (OCFile targetFile : mTargetFiles) {
+ if (storageManager.getFileById(targetFile.getFileId()) != null) {
+ cg.getFileOperationsHelper().removeFile(targetFile, false);
+ }
+ }
+ }
+
+ /**
+ * Performs the removal of the local copy of the target file
+ */
+ @Override
+ public void onCancel(String callerTag) {
+ ComponentsGetter cg = (ComponentsGetter) getActivity();
+
+ for (OCFile targetFile : mTargetFiles) {
+ cg.getFileOperationsHelper().removeFile(targetFile, true);
+
+ FileDataStorageManager storageManager = cg.getStorageManager();
+
+ boolean containsFavorite = false;
+ if (targetFile.isFolder()) {
+ // TODO Enable when "On Device" is recovered ?
+ Vector<OCFile> files = storageManager.getFolderContent(targetFile/*, false*/);
+ for (OCFile file : files) {
+ containsFavorite = file.isFavorite() || containsFavorite;
+
+ if (containsFavorite)
+ break;
+ }
+ }
+
+ // Remove etag for parent, if file is a favorite
+ // or is a folder and contains favorite
+ if (targetFile.isFavorite() || containsFavorite) {
+ OCFile folder = null;
+ if (targetFile.isFolder()) {
+ folder = targetFile;
+ } else {
+ folder = storageManager.getFileById(targetFile.getParentId());
+ }
+
+ folder.setEtag("");
+ storageManager.saveFile(folder);
+ }
+ }
+ }
+
+ @Override
+ public void onNeutral(String callerTag) {
+ // nothing to do here
+ }
+}
\ No newline at end of file
mGridView = (GridViewWithHeaderAndFooter) (v.findViewById(R.id.grid_root));
mGridView.setNumColumns(GridView.AUTO_FIT);
- // mGridView.setOnItemClickListener(this);
+ mGridView.setOnItemClickListener(this);
mGridView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
// mGridView.setMultiChoiceModeListener(listener);
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.ActionMode;
-import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
import com.owncloud.android.ui.dialog.FileActionsDialogFragment;
import com.owncloud.android.ui.dialog.RemoveFileDialogFragment;
+import com.owncloud.android.ui.dialog.RemoveFilesDialogFragment;
import com.owncloud.android.ui.dialog.RenameFileDialogFragment;
import com.owncloud.android.ui.preview.PreviewImageFragment;
import com.owncloud.android.ui.preview.PreviewMediaFragment;
import com.owncloud.android.ui.preview.PreviewTextFragment;
import java.io.File;
+import java.util.ArrayList;
/**
* A Fragment that lists all files and folders in a given path.
*
* TODO refactor to get rid of direct dependency on FileDisplayActivity
*/
-public class OCFileListFragment extends ExtendedListFragment implements FileActionsDialogFragment.FileActionsDialogFragmentListener {
+public class OCFileListFragment extends ExtendedListFragment {
private static final String TAG = OCFileListFragment.class.getSimpleName();
private OCFile mFile = null;
private FileListListAdapter mAdapter;
private boolean mJustFolders;
-
- private OCFile mTargetFile;
-
-
-
+
/**
* {@inheritDoc}
*/
private void registerLongClickListener() {
getListView().setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
+ private Menu menu;
+
@Override
public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
- // Capture total checked items
final int checkedCount = getListView().getCheckedItemCount();
- // Set the CAB title according to total checked items
- mode.setTitle(checkedCount + " Selected");
+ // TODO Tobi extract to values
+ mode.setTitle(checkedCount + " selected");
- if (checked){
- mAdapter.setNewSelection(position,checked);
+ if (checked) {
+ mAdapter.setNewSelection(position, checked);
} else {
mAdapter.removeSelection(position);
}
+
+ // TODO maybe change: only recreate menu if count changes
+ menu.clear();
+ if (checkedCount == 1) {
+ createContextMenu(menu);
+ } else {
+ // download, move, copy, delete
+ getActivity().getMenuInflater().inflate(R.menu.multiple_file_actions_menu, menu);
+ }
+
}
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
-
-// Bundle args = getArguments();
-// boolean allowContextualActions =
-// (args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true);
-// if (allowContextualActions) {
-// MenuInflater inflater = getActivity().getMenuInflater();
-// inflater.inflate(R.menu.file_actions_menu, menu);
-// AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
-// OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
-//
-// if (mContainerActivity.getStorageManager() != null) {
-// FileMenuFilter mf = new FileMenuFilter(
-// targetFile,
-// mContainerActivity.getStorageManager().getAccount(),
-// mContainerActivity,
-// getActivity()
-// );
-// mf.filter(menu);
-// }
-//
-// /// TODO break this direct dependency on FileDisplayActivity... if possible
-// MenuItem item = menu.findItem(R.id.action_open_file_with);
-// FileFragment frag = ((FileDisplayActivity)getActivity()).getSecondFragment();
-// if (frag != null && frag instanceof FileDetailFragment &&
-// frag.getFile().getFileId() == targetFile.getFileId()) {
-// item = menu.findItem(R.id.action_see_details);
-// if (item != null) {
-// item.setVisible(false);
-// item.setEnabled(false);
-// }
-// }
-// }
-
- mode.getMenuInflater().inflate(R.menu.file_actions_menu, menu);
+ this.menu = menu;
return true;
}
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- if (mAdapter.getCheckedItemPositions().size() == 1) {
- return onFileActionChosen(item.getItemId(), mAdapter.getCheckedItemPositions().get(0));
- } else if (mAdapter.getCheckedItemPositions().size() > 1){
- return false;
- }
- return false;
+ return onFileActionChosen(item.getItemId());
}
@Override
* {@inheritDoc}
*/
// TODO Tobi needed?
- @Override
- public void onCreateContextMenu(
- ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+ public void createContextMenu(Menu menu) {
Bundle args = getArguments();
boolean allowContextualActions =
(args == null) ? true : args.getBoolean(ARG_ALLOW_CONTEXTUAL_ACTIONS, true);
if (allowContextualActions) {
MenuInflater inflater = getActivity().getMenuInflater();
inflater.inflate(R.menu.file_actions_menu, menu);
- AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo;
- OCFile targetFile = (OCFile) mAdapter.getItem(info.position);
+ OCFile targetFile = null;
+ if (mAdapter.getCheckedItems().size() == 1){
+ targetFile = mAdapter.getCheckedItems().get(0);
+ }
if (mContainerActivity.getStorageManager() != null) {
FileMenuFilter mf = new FileMenuFilter(
}
}
- /**
- * {@inheritDoc}
- */
- @Override
- public boolean onFileActionChosen(int menuId, int filePosition) {
- mTargetFile = (OCFile) mAdapter.getItem(filePosition);
- switch (menuId) {
- case R.id.action_share_file: {
- mContainerActivity.getFileOperationsHelper().shareFileWithLink(mTargetFile);
- return true;
- }
- case R.id.action_open_file_with: {
- mContainerActivity.getFileOperationsHelper().openFile(mTargetFile);
- return true;
- }
- case R.id.action_unshare_file: {
- mContainerActivity.getFileOperationsHelper().unshareFileWithLink(mTargetFile);
- return true;
- }
- case R.id.action_rename_file: {
- RenameFileDialogFragment dialog = RenameFileDialogFragment.newInstance(mTargetFile);
- dialog.show(getFragmentManager(), FileDetailFragment.FTAG_RENAME_FILE);
- return true;
- }
- case R.id.action_remove_file: {
- RemoveFileDialogFragment dialog = RemoveFileDialogFragment.newInstance(mTargetFile);
- dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
- return true;
- }
- case R.id.action_download_file:
- case R.id.action_sync_file: {
- mContainerActivity.getFileOperationsHelper().syncFile(mTargetFile);
- return true;
- }
- case R.id.action_cancel_download:
- case R.id.action_cancel_upload: {
- ((FileDisplayActivity) mContainerActivity).cancelTransference(mTargetFile);
- return true;
- }
- case R.id.action_see_details: {
- mContainerActivity.showDetails(mTargetFile);
- return true;
- }
- case R.id.action_send_file: {
- // Obtain the file
- if (!mTargetFile.isDown()) { // Download the file
- Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
- ((FileDisplayActivity) mContainerActivity).startDownloadForSending(mTargetFile);
+ public boolean onFileActionChosen(int menuId) {
+ if (mAdapter.getCheckedItems().size() == 1){
+ OCFile mTargetFile = mAdapter.getCheckedItems().get(0);
- } else {
- mContainerActivity.getFileOperationsHelper().sendDownloadedFile(mTargetFile);
+ switch (menuId) {
+ case R.id.action_share_file: {
+ mContainerActivity.getFileOperationsHelper().shareFileWithLink(mTargetFile);
+ return true;
}
- return true;
- }
- case R.id.action_move: {
- Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+ case R.id.action_open_file_with: {
+ mContainerActivity.getFileOperationsHelper().openFile(mTargetFile);
+ return true;
+ }
+ case R.id.action_unshare_file: {
+ mContainerActivity.getFileOperationsHelper().unshareFileWithLink(mTargetFile);
+ return true;
+ }
+ case R.id.action_rename_file: {
+ RenameFileDialogFragment dialog = RenameFileDialogFragment.newInstance(mTargetFile);
+ dialog.show(getFragmentManager(), FileDetailFragment.FTAG_RENAME_FILE);
+ return true;
+ }
+ case R.id.action_remove_file: {
+ RemoveFileDialogFragment dialog = RemoveFileDialogFragment.newInstance(mTargetFile);
+ dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
+ return true;
+ }
+ case R.id.action_download_file:
+ case R.id.action_sync_file: {
+ mContainerActivity.getFileOperationsHelper().syncFile(mTargetFile);
+ return true;
+ }
+ case R.id.action_cancel_download:
+ case R.id.action_cancel_upload: {
+ ((FileDisplayActivity) mContainerActivity).cancelTransference(mTargetFile);
+ return true;
+ }
+ case R.id.action_see_details: {
+ mContainerActivity.showDetails(mTargetFile);
+ return true;
+ }
+ case R.id.action_send_file: {
+ // Obtain the file
+ if (!mTargetFile.isDown()) { // Download the file
+ Log_OC.d(TAG, mTargetFile.getRemotePath() + " : File must be downloaded");
+ ((FileDisplayActivity) mContainerActivity).startDownloadForSending(mTargetFile);
- // Pass mTargetFile that contains info of selected file/folder
- action.putExtra(FolderPickerActivity.EXTRA_FILE, mTargetFile);
- getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
- return true;
- }
- case R.id.action_favorite_file: {
- mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, true);
- return true;
- }
- case R.id.action_unfavorite_file: {
- mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, false);
- return true;
+ } else {
+ mContainerActivity.getFileOperationsHelper().sendDownloadedFile(mTargetFile);
+ }
+ return true;
+ }
+ case R.id.action_move: {
+ Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+ ArrayList files = new ArrayList();
+ files.add(mTargetFile);
+ action.putParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES, files);
+ getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
+ return true;
+ }
+ case R.id.action_favorite_file: {
+ mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, true);
+ return true;
+ }
+ case R.id.action_unfavorite_file: {
+ mContainerActivity.getFileOperationsHelper().toggleFavorite(mTargetFile, false);
+ return true;
+ }
+ case R.id.action_copy:
+ Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+
+ // Pass mTargetFile that contains info of selected file/folder
+ action.putExtra(FolderPickerActivity.EXTRA_FILE, mTargetFile);
+ getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_COPY_FILES);
+ return true;
+ default:
+ return false;
}
- case R.id.action_copy:
- Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+ } else {
+ ArrayList<OCFile> mTargetFiles = mAdapter.getCheckedItems();
- // Pass mTargetFile that contains info of selected file/folder
- action.putExtra(FolderPickerActivity.EXTRA_FILE, mTargetFile);
- getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_COPY_FILES);
- return true;
- default:
- return false;
+ switch (menuId) {
+ case R.id.action_remove_file: {
+ RemoveFilesDialogFragment dialog = RemoveFilesDialogFragment.newInstance(mTargetFiles);
+ dialog.show(getFragmentManager(), ConfirmationDialogFragment.FTAG_CONFIRMATION);
+ return true;
+ }
+ case R.id.action_download_file:
+ case R.id.action_sync_file: {
+ mContainerActivity.getFileOperationsHelper().syncFiles(mTargetFiles);
+ return true;
+ }
+ case R.id.action_move: {
+ Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+ action.putParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES, mTargetFiles);
+ getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_MOVE_FILES);
+ return true;
+ }
+ case R.id.action_favorite_file: {
+ mContainerActivity.getFileOperationsHelper().toggleFavorites(mTargetFiles, true);
+ return true;
+ }
+ case R.id.action_unfavorite_file: {
+ mContainerActivity.getFileOperationsHelper().toggleFavorites(mTargetFiles, false);
+ return true;
+ }
+ case R.id.action_copy:
+ Intent action = new Intent(getActivity(), FolderPickerActivity.class);
+ action.putParcelableArrayListExtra(FolderPickerActivity.EXTRA_FILES, mTargetFiles);
+ getActivity().startActivityForResult(action, FileDisplayActivity.ACTION_COPY_FILES);
+ return true;
+ default:
+ return false;
+ }
}
+
}
/**
@Override
public boolean onContextItemSelected (MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
- boolean matched = onFileActionChosen(item.getItemId(), ((AdapterContextMenuInfo) item.getMenuInfo()).position);
+ boolean matched = onFileActionChosen(item.getItemId());
if(!matched) {
return super.onContextItemSelected(item);
} else {
@Override
protected void onCancelled(LoadImage result) {
- if (result.bitmap != null) {
+ if (result != null && result.bitmap != null) {
result.bitmap.recycle();
}
}
* Static methods to help in access to local file system.
*/
public class FileStorageUtils {
- public static Integer mSortOrder;
- public static Boolean mSortAscending;
public static final Integer SORT_NAME = 0;
public static final Integer SORT_DATE = 1;
public static final Integer SORT_SIZE = 2;
-
+ public static Integer mSortOrder = SORT_NAME;
+ public static Boolean mSortAscending = true;
+
//private static final String LOG_TAG = "FileStorageUtils";