Merge remote-tracking branch 'remotes/upstream/multiSelect' into beta
authortobiasKaminsky <tobias@kaminsky.me>
Thu, 29 Oct 2015 17:53:05 +0000 (18:53 +0100)
committertobiasKaminsky <tobias@kaminsky.me>
Thu, 29 Oct 2015 17:53:05 +0000 (18:53 +0100)
33 files changed:
1  2 
res/values-cs-rCZ/strings.xml
res/values-de/strings.xml
res/values-el/strings.xml
res/values-eo/strings.xml
res/values-es/strings.xml
res/values-fi-rFI/strings.xml
res/values-fr/strings.xml
res/values-hu-rHU/strings.xml
res/values-id/strings.xml
res/values-it/strings.xml
res/values-ko/strings.xml
res/values-lt-rLT/strings.xml
res/values-nb-rNO/strings.xml
res/values-nl/strings.xml
res/values-oc/strings.xml
res/values-pt-rBR/strings.xml
res/values-ru/strings.xml
res/values-sr/strings.xml
res/values-th-rTH/strings.xml
res/values-tr/strings.xml
res/values-uk/strings.xml
res/values-zh-rCN/strings.xml
res/values/setup.xml
res/values/strings.xml
src/com/owncloud/android/datamodel/OCFile.java
src/com/owncloud/android/files/FileOperationsHelper.java
src/com/owncloud/android/ui/activity/FileActivity.java
src/com/owncloud/android/ui/activity/FileDisplayActivity.java
src/com/owncloud/android/ui/activity/FolderPickerActivity.java
src/com/owncloud/android/ui/adapter/FileListListAdapter.java
src/com/owncloud/android/ui/dialog/RemoveFileDialogFragment.java
src/com/owncloud/android/ui/fragment/ExtendedListFragment.java
src/com/owncloud/android/ui/fragment/OCFileListFragment.java

@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">před pár sekundami</string>
    <string name="file_list_empty">Žádný obsah. Nahrajte něco!</string>
    <string name="file_list_loading">Načítání...</string>
 +  <string name="file_list_no_app_for_file_type">Nebyla nalezena aplikace pro tento typ souboru!</string>
    <string name="local_file_list_empty">V tomto adresáři nejsou žádné soubory.</string>
    <string name="filedetails_select_file">Více informací získáte klepnutím na soubor.</string>
    <string name="filedetails_size">Velikost:</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ý &amp; místní</string>
    <string name="remove_success_msg">Úspěšně odstraněno</string>
    <string name="remove_fail_msg">Odstranění nelze dokončit</string>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">Gerade eben</string>
    <string name="file_list_empty">Alles leer. Lade etwas hoch!</string>
    <string name="file_list_loading">Lade…</string>
 +  <string name="file_list_no_app_for_file_type">Es wurden keine Apps für den Dateityp gefunden!</string>
    <string name="local_file_list_empty">Es befinden sich keine Dateien in diesem Ordner.</string>
    <string name="filedetails_select_file">Klicken Sie auf eine Datei für weitere Informationen.</string>
    <string name="filedetails_size">Größe:</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="confirmation_remove_remote">Vom Server</string>
 +  <string name="confirmation_remove_remote_and_local">Remote &amp; lokal</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="rename_dialog_title">Gib einen neuen Namen ein</string>
    <string name="conflict_title">Dateikonfilikt</string>
    <string name="conflict_message">Welche Datei möchtest du behalten? Wenn du beide Versionen auswählst, wird der lokalen Datei eine Zahl am Ende Ihres Dateiname angehangen.</string>
    <string name="conflict_keep_both">Beide behalten</string>
 +  <string name="conflict_use_local_version">Lokale Version</string>
 +  <string name="conflict_use_server_version">Serverversion</string>
    <string name="preview_image_description">Bildvorschau</string>
    <string name="preview_image_error_unknown_format">Dieses Bild kann nicht angezeigt werden</string>
    <string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
    <string name="move_file_invalid_overwrite">Die Datei ist bereits im Zielordner vorhanden</string>
    <string name="move_file_error">Es ist ein Fehler beim Verschieben der Datei oder des Ordners aufgetreten.</string>
    <string name="forbidden_permissions_move">um diese Datei zu verschieben</string>
 +  <string name="copy_file_not_found">Kopieren nicht möglich. Prüfe, dass die Datei existiert</string>
 +  <string name="copy_file_invalid_into_descendent">Es ist nicht möglich, einen Ordner in einen seiner Unterordner zu kopieren</string>
    <string name="copy_file_invalid_overwrite">Die Datei existiert bereits im Zielverzeichnis</string>
 +  <string name="copy_file_error">Es ist ein Fehler beim Kopieren der Datei oder des Ordners aufgetreten.</string>
 +  <string name="forbidden_permissions_copy">diese Datei zu kopieren</string>
    <string name="prefs_category_instant_uploading">Sofortiges Hochladen</string>
    <string name="prefs_category_security">Sicherheit</string>
    <string name="prefs_instant_video_upload_path_title">Verzeichnis zum Hochladen der Videos</string>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">δευτερόλεπτα πριν</string>
    <string name="file_list_empty">Δεν υπάρχει τίποτα εδώ. Μεταφορτώστε κάτι!</string>
    <string name="file_list_loading">Φόρτωση...</string>
 +  <string name="file_list_no_app_for_file_type">Δεν βρέθηκε εφαρμογή για αυτόν τον τύπο αρχείου</string>
    <string name="local_file_list_empty">Δεν υπάρχουν αρχεία σε αυτό τον φάκελο.</string>
    <string name="filedetails_select_file">Αγγίξτε κάποιο αρχείο για να προβάλετε περισσότερες πληροφορίες.</string>
    <string name="filedetails_size">Μέγεθος:</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">Απομακρυσμένα &amp; τοπικά</string>
    <string name="remove_success_msg">Αφαίρεση επιτυχής</string>
    <string name="remove_fail_msg">Η αφαίρεση απέτυχε</string>
    <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="copy_file_invalid_overwrite">La dosiero jam ekzistas en la cela dosierujo</string>
    <string name="prefs_category_security">Sekuro</string>
    <string name="auth_host_address">Servila adreso</string>
 +  <string name="file_list__footer__file">1 dosiero</string>
 +  <string name="file_list__footer__files">%1$d dosieroj</string>
  </resources>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">hace segundos</string>
    <string name="file_list_empty">No hay nada aquí. ¡Suba algo!</string>
    <string name="file_list_loading">Cargando...</string>
 +  <string name="file_list_no_app_for_file_type">¡No se encontró una aplicación para el tipo de archivo!</string>
    <string name="local_file_list_empty">No hay archivos en esta carpeta.</string>
    <string name="filedetails_select_file">Pulsa sobre un archivo para mostrar información adicional.</string>
    <string name="filedetails_size">Tamaño:</string>
    <string name="pass_code_configure_your_pass_code_explanation">La contraseña será requerida cada vez que la aplicación sea iniciada</string>
    <string name="pass_code_reenter_your_pass_code">Reintroduzca la contraseña, por favor.</string>
    <string name="pass_code_remove_your_pass_code">Borre su contraseña</string>
 -  <string name="pass_code_mismatch">Las contraseñas no son identicas</string>
 -  <string name="pass_code_wrong">Contraseña incorrecta</string>
 -  <string name="pass_code_removed">Contraseña borrada</string>
 +  <string name="pass_code_mismatch">Los códigos de acceso no son idénticos</string>
 +  <string name="pass_code_wrong">Código de acceso incorrecto</string>
 +  <string name="pass_code_removed">Código de acceso borrado</string>
    <string name="pass_code_stored">Contraseña almacenada</string>
    <string name="media_notif_ticker">Reproductor de música %1$s</string>
    <string name="media_state_playing">%1$s (reproduciendo)</string>
    <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 &amp; local</string>
    <string name="remove_success_msg">Borrado correctamente</string>
    <string name="remove_fail_msg">El borrado no pudo ser completado</string>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">sekuntia sitten</string>
    <string name="file_list_empty">Täällä ei ole mitään. Lähetä tänne jotakin!</string>
    <string name="file_list_loading">Ladataan…</string>
 +  <string name="file_list_no_app_for_file_type">Tälle tiedostotyypille ei löytynyt sovellusta!</string>
    <string name="local_file_list_empty">Tässä kansiossa ei ole tiedostoja</string>
    <string name="filedetails_select_file">Napauta tiedostoa nähdäksesi lisätietoja.</string>
    <string name="filedetails_size">Koko:</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>
@@@ -72,9 -72,8 +72,9 @@@ Téléchargez-le ici : %2$s</string
    <string name="file_list_seconds_ago">il y a quelques secondes</string>
    <string name="file_list_empty">Il n\'y a rien ici ! Envoyez donc quelque chose :)</string>
    <string name="file_list_loading">Chargement...</string>
 +  <string name="file_list_no_app_for_file_type">Aucune app trouvée pour ce type de fichier !</string>
    <string name="local_file_list_empty">Aucun fichier n\'est présent dans ce dossier.</string>
 -  <string name="filedetails_select_file">Appuyez sur un fichier pour afficher les informations supplémentaires</string>
 +  <string name="filedetails_select_file">Appuyez sur un fichier pour afficher des informations supplémentaires</string>
    <string name="filedetails_size">Taille :</string>
    <string name="filedetails_type">Type :</string>
    <string name="filedetails_created">Créé le :</string>
@@@ -201,14 -200,14 +201,14 @@@ Ci-dessous la liste des fichiers locaux
    <string name="auth_can_not_auth_against_server">Impossible de s\'authentifier sur ce serveur</string>
    <string name="auth_account_does_not_exist">Le compte n\'existe pas encore sur ce périphérique</string>
    <string name="favorite">Ajouter aux favoris</string>
 -  <string name="unfavorite">Supprimer des favoris</string>
 +  <string name="unfavorite">Retirer 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 &amp; local</string>
    <string name="remove_success_msg">Suppression effectuée avec succès</string>
    <string name="remove_fail_msg">Suppression impossible</string>
    <string name="activity_chooser_send_file_title">Envoyer</string>
    <string name="copy_link">Copier le lien</string>
    <string name="clipboard_text_copied">Copié dans le presse-papier</string>
 -  <string name="error_cant_bind_to_operations_service">Erreur critique : impossible de réaliser des opérations</string>
 +  <string name="error_cant_bind_to_operations_service">Erreur critique : impossible de réaliser les opérations</string>
    <string name="network_error_socket_exception">Une erreur est survenue pendant la connexion au serveur.</string>
    <string name="network_error_socket_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_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="auth_redirect_non_secure_connection_title">Le connexion sécurisée est redirigée vers une route non-sécurisée.</string>
    <string name="actionbar_logger">Journaux</string>
    <string name="log_send_history_button">Envoyer l\'historique</string>
 -  <string name="log_send_no_mail_app">Aucune application trouvée pour l\'envoi de journaux. Installer une application de courriel !</string>
 +  <string name="log_send_no_mail_app">Aucune application trouvée pour l\'envoi de logs. Installer une application de courriel !</string>
    <string name="log_send_mail_subject">Journaux de l\'application Android %1$s</string>
    <string name="log_progress_dialog_text">Chargement des données…</string>
    <string name="saml_authentication_required_text">Authentification requise</string>
    <string name="actionbar_settings">Beállítások</string>
    <string name="actionbar_see_details">Részletek</string>
    <string name="actionbar_send_file">Küldjük el</string>
 +  <string name="actionbar_sort">Rendezés</string>
 +  <string name="actionbar_sort_title">Rendezés elve</string>
 +  <string-array name="actionbar_sortby">
 +    <item>A-Z</item>
 +    <item>Újabb - régebbi</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">Összes fájl</string>
    <!--TODO re-enable when "On Device" is available
      <string name="drawer_item_on_device">On device</string>-->
    <string name="drawer_item_settings">Beállítások</string>
 +  <string name="drawer_item_logs">Naplófájlok</string>
 +  <string name="drawer_close">Bezárás</string>
    <string name="drawer_open">Megnyitás</string>
    <string name="prefs_category_general">Általános</string>
    <string name="prefs_category_more">Több</string>
@@@ -66,7 -57,6 +66,7 @@@
    <string name="uploader_info_uploading">Feltöltés</string>
    <string name="file_list_seconds_ago">pár másodperce</string>
    <string name="file_list_empty">Itt nincs semmi. Töltsön fel valamit!</string>
 +  <string name="file_list_loading">Betöltés...</string>
    <string name="local_file_list_empty">Nincs fájl ebben a mappában.</string>
    <string name="filedetails_select_file">Érintsen meg egy fájlt a további információkért.</string>
    <string name="filedetails_size">Méret:</string>
    <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="instant_video_upload_on_wifi">Videó feltöltés csak WIFI-vel</string>
    <string name="instant_upload_path">/InstantUpload</string>
    <string name="conflict_keep_both">Mindkettő megtartása</string>
 +  <string name="conflict_use_local_version">helyi verzió</string>
 +  <string name="conflict_use_server_version">szerver verzió</string>
    <string name="preview_image_description">Előnézeti kép</string>
    <string name="preview_image_error_unknown_format">Ez a kép nem jeleníthető meg</string>
    <string name="error__upload__local_file_not_copied">%1$s nem lehet másolni a %2$s helyi könyvtárba</string>
    <string name="share_link_file_error">Hiba lépett fel a mappa megosztásakor</string>
    <string name="unshare_link_file_error">Hiba lépett fel a mappa megosztásának visszavonásakor</string>
 +  <string name="share_link_password_title">Jelszó beírása</string>
    <string name="activity_chooser_send_file_title">Küldjük el</string>
    <string name="copy_link">Link másolása</string>
    <string name="clipboard_text_copied">Bemásolva a vágólapra</string>
    <string name="actionbar_move">Mozgatás</string>
    <string name="folder_picker_choose_button_text">Válasszon</string>
    <string name="prefs_category_security">Biztonság</string>
 +  <string name="shared_subject_header">megosztva</string>
 +  <string name="with_you_subject_header">veled</string>
    <string name="auth_host_address">A kiszolgáló címe</string>
 +  <string name="common_error_out_memory">Nincs elég memória</string>
 +  <string name="username">Felhasználónév</string>
 +  <string name="file_list__footer__folder">1 könyvtár</string>
 +  <string name="file_list__footer__folders">%1$d könyvtár</string>
 +  <string name="file_list__footer__file">1 fájl</string>
 +  <string name="file_list__footer__file_and_folder">1 fájl, 1 könyvtár</string>
 +  <string name="file_list__footer__file_and_folders">1 fájl, %1$d könyvtár</string>
 +  <string name="file_list__footer__files">%1$d fájl</string>
 +  <string name="file_list__footer__files_and_folder">%1$d fájl, 1 könyvtár</string>
 +  <string name="file_list__footer__files_and_folders">%1$d fájl, %2$d könyvtár</string>
  </resources>
@@@ -4,7 -4,7 +4,7 @@@
    <string name="about_version">versi %1$s</string>
    <string name="actionbar_sync">Segarkan akun</string>
    <string name="actionbar_upload">Unggah</string>
 -  <string name="actionbar_upload_from_apps">Konten dari apl lain</string>
 +  <string name="actionbar_upload_from_apps">Konten dari aplikasi lain</string>
    <string name="actionbar_upload_files">Berkas</string>
    <string name="actionbar_open_with">Buka dengan</string>
    <string name="actionbar_mkdir">Folder baru</string>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">beberapa detik yang lalu</string>
    <string name="file_list_empty">Tidak ada apa-apa di sini. Unggah sesuatu!</string>
    <string name="file_list_loading">Memuat...</string>
 +  <string name="file_list_no_app_for_file_type">Aplikasi tidak ditemukan untuk tipe berkas ini!</string>
    <string name="local_file_list_empty">Tidak ada satupun berkas dalam folder ini.</string>
    <string name="filedetails_select_file">Sentuh pada berkas untuk menampilkan informasi tambahan</string>
    <string name="filedetails_size">Ukuran:</string>
@@@ -93,7 -92,7 +93,7 @@@
    <string name="common_save_exit">Simpan &amp; Keluar</string>
    <string name="common_error">Kesalahan</string>
    <string name="common_loading">Memuat ...</string>
 -  <string name="common_error_unknown">Galat tidak diketahui</string>
 +  <string name="common_error_unknown">Kesalahan tidak diketahui</string>
    <string name="about_title">Tentang</string>
    <string name="change_password">Ubah sandi</string>
    <string name="delete_account">Hapus akun</string>
    <string name="foreign_files_success">Semua berkas sudah dipindahkan</string>
    <string name="foreign_files_fail">Beberapa berkas tidak dapat dipindahkan</string>
    <string name="foreign_files_local_text">Lokal: %1$s</string>
 -  <string name="foreign_files_remote_text">Jauh: %1$s</string>
 +  <string name="foreign_files_remote_text">Remote: %1$s</string>
    <string name="upload_query_move_foreign_files">Ruang tidak cukup untuk menyalin berkas terpilih kedalam folder %1$s. Apakah Anda ingin memindahkannya saja?</string>
    <string name="pass_code_enter_pass_code">Silakan masukkan kode sandi Anda</string>
    <string name="pass_code_configure_your_pass_code">Masukkan kode sandi Anda</string>
    <string name="media_event_done">%1$s pemutaran selesai</string>
    <string name="media_err_nothing_to_play">Tidak ditemukan berkas media</string>
    <string name="media_err_no_account">Tidak ada akun yang diberikan</string>
 -  <string name="media_err_not_in_owncloud">Brkas tidak didalam akun yang sah</string>
 +  <string name="media_err_not_in_owncloud">Berkas tidak didalam akun yang sah</string>
    <string name="media_err_unsupported">Kodek media tidak didukung</string>
    <string name="media_err_io">Berkas media tidak dapat dibaca</string>
    <string name="media_err_malformed">Berkas media tidak di enkode dengan benar</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 &amp; lokal</string>
    <string name="remove_success_msg">Penghapusan berhasil</string>
    <string name="remove_fail_msg">Penghapusan gagal</string>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">secondi fa</string>
    <string name="file_list_empty">Non c\'è niente qui. Carica qualcosa!</string>
    <string name="file_list_loading">Caricamento in corso...</string>
 +  <string name="file_list_no_app_for_file_type">Nessuna applicazione trovata per il tipo di file.</string>
    <string name="local_file_list_empty">Non ci sono file in questa cartella.</string>
    <string name="filedetails_select_file">Tocca un file per visualizzare informazioni aggiuntive.</string>
    <string name="filedetails_size">Dimensione:</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>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">초 지남</string>
    <string name="file_list_empty">내용이 없습니다. 업로드할 수 있습니다!</string>
    <string name="file_list_loading">불러오는 중...</string>
 +  <string name="file_list_no_app_for_file_type">파일 형식을 열 수 있는 앱이 없습니다!</string>
    <string name="local_file_list_empty">이 폴더에 파일이 없습니다.</string>
    <string name="filedetails_select_file">파일을 누르면 추가 정보가 표시됩니다.</string>
    <string name="filedetails_size">크기:</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_remote_and_local">서버와 로컬 모두</string>
    <string name="remove_success_msg">성공적으로 삭제함</string>
    <string name="remove_fail_msg">삭제할 수 없음</string>
    <string name="rename_dialog_title">새 이름 입력</string>
    <string name="placeholder_sentence">이것은 자리 비움자입니다</string>
    <string name="placeholder_filename">placeholder.txt</string>
    <string name="placeholder_filetype">PNG 그림</string>
 -  <string name="placeholder_filesize">389 KB</string>
 -  <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
 +  <string name="placeholder_filesize">389KB</string>
 +  <string name="placeholder_timestamp">2012년 05월 18일 오후 12:23</string>
    <string name="placeholder_media_time">12:23:45</string>
    <string name="instant_upload_on_wifi">Wi-Fi 사용 중일때만 사진 업로드</string>
    <string name="instant_video_upload_on_wifi">Wi-Fi 사용 중일때만 동영상 업로드</string>
    <string name="instant_upload_path">/InstantUpload</string>
 +  <string name="conflict_title">파일 충돌</string>
 +  <string name="conflict_message">어떤 파일을 유지하시겠습니까? 두 버전을 모두 선택하면 로컬 파일 이름 뒤에 번호가 추가됩니다.</string>
    <string name="conflict_keep_both">모두 저장</string>
 +  <string name="conflict_use_local_version">로컬 버전</string>
 +  <string name="conflict_use_server_version">서버 버전</string>
    <string name="preview_image_description">사진 미리 보기</string>
    <string name="preview_image_error_unknown_format">이 사진을 미리 볼 수 없습니다</string>
    <string name="error__upload__local_file_not_copied">%1$s을(를) 로컬 폴더 %2$s(으)로 복사할 수 없습니다</string>
    <string name="downloader_download_file_not_found">이 파일을 서버에서 더 이상 사용할 수 없습니다</string>
    <string name="prefs_category_accounts">계정</string>
    <string name="prefs_add_account">계정 추가</string>
 +  <string name="auth_redirect_non_secure_connection_title">보안 연결이 보안되지 않는 연결로 전환되었습니다.</string>
    <string name="actionbar_logger">로그</string>
    <string name="log_send_history_button">과거 기록 보내기</string>
    <string name="log_send_no_mail_app">로그를 보낼 앱이 없습니다. 메일 앱을 설치하십시오!</string>
    <string name="move_file_invalid_overwrite">파일이 이미 대상 폴더에 존재합니다</string>
    <string name="move_file_error">이 파일이나 폴더를 이동하는 중 오류가 발생하였습니다</string>
    <string name="forbidden_permissions_move">이 파일을 이동할</string>
 +  <string name="copy_file_not_found">복사할 수 없습니다. 파일이 존재하는 지 확인하십시오</string>
 +  <string name="copy_file_invalid_into_descendent">폴더를 하위 폴더 아래로 복사할 수 없습니다</string>
    <string name="copy_file_invalid_overwrite">파일이 이미 대상 폴더에 존재합니다</string>
 +  <string name="copy_file_error">이 파일이나 폴더를 복사할 수 없습니다.</string>
 +  <string name="forbidden_permissions_copy">이 파일을 복사할</string>
    <string name="prefs_category_instant_uploading">즉시 업로드</string>
    <string name="prefs_category_security">보안</string>
    <string name="prefs_instant_video_upload_path_title">동영상 업로드 경로</string>
    <string name="shared_subject_header">공유됨</string>
    <string name="with_you_subject_header">여러분과</string>
    <string name="subject_token">%1$s 님이 \"%2$s\" 항목을 여러분과 공유하였습니다</string>
 +  <string name="saml_subject_token">\"%1$s\"을(를) 여러분과 공유하였습니다</string>
    <string name="auth_refresh_button">연결 새로 고침</string>
    <string name="auth_host_address">서버 주소</string>
    <string name="common_error_out_memory">메모리 부족</string>
        <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">Visi failai</string>
    <!--TODO re-enable when "On Device" is available
      <string name="drawer_item_on_device">On device</string>-->
    <string name="drawer_item_settings">Parinktys</string>
 +  <string name="drawer_item_logs">Žurnalai</string>
 +  <string name="drawer_close">Užverti</string>
    <string name="drawer_open">Atverti</string>
    <string name="prefs_category_general">Bendras</string>
    <string name="prefs_category_more">Daugiau</string>
    <string name="prefs_accounts">Paskyros</string>
    <string name="prefs_manage_accounts">Tvarkyti paskyras</string>
 +  <string name="prefs_passcode">Užrakto kodas</string>
    <string name="prefs_instant_upload">Momentiniai nuotraukų įkėlimai</string>
    <string name="prefs_instant_upload_summary">Iš karto nusiųsti nufotografuotas nuotraukas</string>
    <string name="prefs_instant_video_upload">Momentiniai video įkėlimai</string>
@@@ -49,7 -45,6 +49,7 @@@
    <string name="prefs_remember_last_share_location">Prisiminti bendrinimo vietą</string>
    <string name="prefs_remember_last_upload_location_summary">Prisiminti paskutinio bendrinimo įkėlimo vietą</string>
    <string name="recommend_subject">Išbandykite %1$s savo išmaniajame telefone!</string>
 +  <string name="recommend_text">Noriu pakviesti tave naudotis %1$s išmaniajame telefone!\nParsisiųks čia: %2$s</string>
    <string name="auth_check_server">Patikrinti Serverį</string>
    <string name="auth_host_url">Serverio adresas </string>
    <string name="auth_username">Prisijungimo vardas</string>
@@@ -70,8 -65,6 +70,8 @@@
    <string name="uploader_info_uploading">Išsiunčiama</string>
    <string name="file_list_seconds_ago">prieš sekundę</string>
    <string name="file_list_empty">Čia tuščia. Įkelkite ką nors!</string>
 +  <string name="file_list_loading">Įkeliama...</string>
 +  <string name="file_list_no_app_for_file_type">Nėra programėlės šiam failo tipui!</string>
    <string name="local_file_list_empty">Šiame aplanke nėra failų.</string>
    <string name="filedetails_select_file">Palieskite failą, kad parodyti papildomą informaciją.</string>
    <string name="filedetails_size">Dydis:</string>
@@@ -81,7 -74,6 +81,7 @@@
    <string name="filedetails_download">Atsisiųsti</string>
    <string name="filedetails_sync_file">Atnaujinti failą</string>
    <string name="filedetails_renamed_in_upload_msg">Įkėlimo metu failas buvo pervadintas į %1$s</string>
 +  <string name="list_layout">Sąrašo išdėstymas</string>
    <string name="action_share_file">Dalintis nuoroda</string>
    <string name="action_unshare_file">Nebesidalinti nuoroda</string>
    <string name="common_yes">Taip</string>
    <string name="sync_fail_content">%1$s sinchronizacija nepavyko</string>
    <string name="sync_fail_content_unauthorized">Netinkamas slaptažodis %1$s</string>
    <string name="sync_conflicts_in_favourites_ticker">Rastas konfliktas</string>
 +  <string name="sync_conflicts_in_favourites_content">%1$d sinchronizuojami failai nebuvo susinchronizuoti</string>
 +  <string name="sync_fail_in_favourites_ticker">Sinchronizuojamų failų klaida</string>
    <string name="sync_fail_in_favourites_content">Nepavyko sinchronizuoti %1$d failų turinio (%2$d konfliktų)</string>
    <string name="sync_foreign_files_forgotten_ticker">Keli vietiniai failai buvo užmiršti</string>
 +  <string name="sync_foreign_files_forgotten_content">%1$d failai iš %2$s aplanko negali būti nukopijuoti</string>
    <string name="sync_current_folder_was_removed">Aplankas %1$s nebeegzistuoja</string>
    <string name="foreign_files_move">Perkelti visus</string>
    <string name="foreign_files_success">Visi failai buvo perkelti</string>
    <string name="foreign_files_fail">Kai kurių failų negalima perkelti</string>
    <string name="foreign_files_local_text">Vietinis: %1$s</string>
    <string name="foreign_files_remote_text">Nuotolinis: %1$s</string>
 +  <string name="upload_query_move_foreign_files">Pasirinktiems failams nepakanka vietos %1$s aplanke. Gal juos perkelti?</string>
 +  <string name="pass_code_enter_pass_code">Prašau įterpti užraktą</string>
 +  <string name="pass_code_configure_your_pass_code">Įveskite užraktą</string>
 +  <string name="pass_code_configure_your_pass_code_explanation">Kiekvieną kartą paleidus programėle bus reikalaujamas užraktas</string>
 +  <string name="pass_code_reenter_your_pass_code">Prašau pakartoti užraką</string>
 +  <string name="pass_code_remove_your_pass_code">Užrakto pašalinimas</string>
 +  <string name="pass_code_mismatch">Nesutampa užraktas</string>
 +  <string name="pass_code_wrong">Neteisingas užraktas</string>
 +  <string name="pass_code_removed">Užraktas pašalintas</string>
 +  <string name="pass_code_stored">Užraktas išsaugotas</string>
    <string name="media_notif_ticker">%1$s muzikos grotuvas</string>
    <string name="media_state_playing">%1$s (grojama)</string>
    <string name="media_state_loading">%1$s (įkeliama)</string>
    <string name="auth_no_net_conn_title">Nėra tinklo ryšio</string>
    <string name="auth_nossl_plain_ok_title">Saugus prisijungimas negalimas.</string>
    <string name="auth_connection_established">Ryšys užmegztas</string>
 +  <string name="auth_testing_connection">Bandomas sujungimas</string>
    <string name="auth_not_configured_title">Sugadinta serverio konfigūracija</string>
    <string name="auth_account_not_new">To paties vartotojo ir serverio paskyra jau egzistuoja šiame įrenginyje</string>
 +  <string name="auth_account_not_the_same">Įvestas vartotojas neatitinka šios paskyros vartotojo</string>
    <string name="auth_unknown_error_title">Įvyko nežinoma klaida!</string>
    <string name="auth_unknown_host_title">Nepavyko rasti mazgo</string>
    <string name="auth_incorrect_path_title">Šis serveris netinkamas</string>
    <string name="auth_connecting_auth_server">Jungiamasi prie autentikacijos serverio...</string>
    <string name="auth_unsupported_auth_method">Serveris nepalaiko šio autentikacijos metodo</string>
    <string name="auth_unsupported_multiaccount">%1$s nepalaiko kelių paskyrų iš karto</string>
 +  <string name="auth_fail_get_user_name">Serveris negražina tinkamo vartotojo ID, susisiekite su administratoriumi</string>
    <string name="auth_can_not_auth_against_server">Jungiamasi prie autentikacijos serverio...</string>
 +  <string name="auth_account_does_not_exist">Paskyra neegzistuoja įrenginyje</string>
    <string name="favorite">Mėgiamas</string>
 +  <string name="unfavorite">Nebemėgti</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="confirmation_remove_remote">Iš serverio</string>
 +  <string name="confirmation_remove_remote_and_local">Išorinis &amp; vietinis</string>
    <string name="remove_success_msg">Pašalinta sėkmingai</string>
    <string name="remove_fail_msg">Pašalinti nepavyko</string>
    <string name="rename_dialog_title">Įveskite naują pavadinimą</string>
    <string name="sync_file_nothing_to_do_msg">Failo turinys jau sunchronizuotas</string>
    <string name="create_dir_fail_msg">Aplanko sukurti nepavyko</string>
    <string name="filename_forbidden_characters">Neleistini simboliai: / \\ &lt; &gt; : \" | ? *</string>
 +  <string name="filename_forbidden_charaters_from_server">Failo vardas sudarytas iš neleistinų simbolių</string>
    <string name="filename_empty">Failo pavadinimas negali būti tuščias</string>
    <string name="wait_a_moment">Truputį palaukite</string>
    <string name="filedisplay_unexpected_bad_get_content">Netikėta problema ; prašome pasirinkti failą iš kitos programėlės</string>
    <string name="filedisplay_no_file_selected">Joks failas nebuvo pasirinktas</string>
    <string name="activity_chooser_title">Siųsti nuorodą asmeniui ...</string>
 +  <string name="wait_for_tmp_copy_from_private_storage">Kopijuoti failą iš privačios talpyklos</string>
    <string name="oauth_check_onoff">Prisijungti naudojant oAuth2</string>
    <string name="oauth_login_connection">Jungiamasi prie oAuth2 serverio...</string>
    <string name="ssl_validator_header">Serverio tapatybė negali būti patikrinta</string>
    <string name="ssl_validator_label_signature_algorithm">Algoritmas:</string>
    <string name="ssl_validator_null_cert">Sertifikatas negali būti parodytas.</string>
    <string name="ssl_validator_no_info_about_error">- Nėra informacijos apie klaidą</string>
 +  <string name="placeholder_sentence">Rezervas</string>
 +  <string name="placeholder_filename">rezervas.txt</string>
    <string name="placeholder_filetype">PNG paveikslėlis</string>
    <string name="placeholder_filesize">389 KB</string>
    <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
    <string name="placeholder_media_time">12:23:45</string>
    <string name="instant_upload_on_wifi">Įkelti nuotraukas tik kai prisijungiama per WiFi</string>
    <string name="instant_video_upload_on_wifi">Įkelti video tik per WiFi</string>
 +  <string name="instant_upload_path">/InstantUpload</string>
 +  <string name="conflict_title">Failų konfliktas</string>
 +  <string name="conflict_message">Kuriuos failus palikti? Jei pažymėsite abi versijas, vietinis failas bus pervadintas, pridedant skaičių prie pavadinimo.</string>
    <string name="conflict_keep_both">Palikti abu</string>
 +  <string name="conflict_use_local_version">Vietinė versija</string>
 +  <string name="conflict_use_server_version">Versija serveryje</string>
    <string name="preview_image_description">Paveikslėlio peržiūra</string>
    <string name="preview_image_error_unknown_format">Neįmanoma parodyti šio paveikslėlio</string>
 +  <string name="error__upload__local_file_not_copied">%1$s negali būti nukopijuota į %2$s vietinį katalogą</string>
 +  <string name="prefs_instant_upload_path_title">Įkėlimo kelias</string>
 +  <string name="share_link_no_support_share_api">Atsiprašome, bet serveris nepalaiko dalijimosi. Susisiekite su administratoriumi.</string>
 +  <string name="share_link_file_no_exist">Nepavyko pasidalinti. Patikrinkite ar failas egzistuoja</string>
    <string name="share_link_file_error">Įvyko klaida bandant dalinti šį failą ar aplanką</string>
 +  <string name="unshare_link_file_no_exist">Nepavyksta nebedalinti. Patikrinkite ar failas egzistuoja</string>
    <string name="unshare_link_file_error">Įvyko klaida bandant nebedalinti šio failu ar aplanku</string>
 +  <string name="share_link_password_title">Įveskite slaptažodį</string>
 +  <string name="share_link_empty_password">Slaptažodis privalomas</string>
    <string name="activity_chooser_send_file_title">Siųsti</string>
    <string name="copy_link">Kopijuoti nuorodą</string>
    <string name="clipboard_text_copied">Nukopijuota į talpyklę</string>
 +  <string name="error_cant_bind_to_operations_service">Kritinė klaida: negalima įvykdyti operacijos</string>
 +  <string name="network_error_socket_exception">Klaida prisijungiant prie serverio.</string>
 +  <string name="network_error_socket_timeout_exception">Klaida prisijungiant prie serverio, operacija neįvykdyta</string>
 +  <string name="network_error_connect_timeout_exception">Klaida prisijungiant prie serverio, operacija neįvykdyta</string>
 +  <string name="network_host_not_available">Serveris nepasiekiamas, operacija negali būti atlikta</string>
    <string name="empty"></string>
 +  <string name="forbidden_permissions">Neturite leidimo %s</string>
 +  <string name="forbidden_permissions_rename">pervadinti failo</string>
 +  <string name="forbidden_permissions_delete">ištrinti failo</string>
 +  <string name="share_link_forbidden_permissions">dalintis failu</string>
 +  <string name="unshare_link_forbidden_permissions">nebesidalinti failu</string>
 +  <string name="forbidden_permissions_create">sukurti failą</string>
 +  <string name="uploader_upload_forbidden_permissions">įkelti į aplanką</string>
 +  <string name="downloader_download_file_not_found">Failas neegzistuoja serveryje</string>
    <string name="prefs_category_accounts">Paskyros</string>
 +  <string name="prefs_add_account">Pridėti paskyrą</string>
 +  <string name="auth_redirect_non_secure_connection_title">Saugus sujungimas nukreiptas per nesaugų kelią</string>
 +  <string name="actionbar_logger">Žurnalai</string>
 +  <string name="log_send_history_button">Siųsti istoriją</string>
 +  <string name="log_send_no_mail_app">Žurnalų siuntimui nėra programėlės. Įdiekite pašto programėlę!</string>
 +  <string name="log_send_mail_subject">%1$s Android žurnalai</string>
 +  <string name="log_progress_dialog_text">Įkeliama...</string>
 +  <string name="saml_authentication_required_text">Reikalinga autentikacija</string>
    <string name="saml_authentication_wrong_pass">Neteisingas slaptažodis</string>
 +  <string name="actionbar_move">perkelti</string>
 +  <string name="file_list_empty_moving">Nieko nėra. Galite pridėti aplanką!</string>
    <string name="folder_picker_choose_button_text">Pasirinkite</string>
 +  <string name="move_file_not_found">Negalima perkelti. Prašau patikrinti ar failas egzistuoja</string>
 +  <string name="move_file_invalid_into_descendent">Neįmanoma perkelti aplanko į poaplankį</string>
 +  <string name="move_file_invalid_overwrite">Failas aplanke jau egzistuoja</string>
 +  <string name="move_file_error">Klaida perkeliant failą ar aplanką</string>
 +  <string name="forbidden_permissions_move">perkelti šį failą</string>
 +  <string name="copy_file_not_found">Nepavyko nukopijuoti. Patikrinkite ar failas egzistuoja</string>
 +  <string name="copy_file_invalid_into_descendent">Neįmanoma nukopijuoti aplanko į poaplankį</string>
 +  <string name="copy_file_invalid_overwrite">Failas aplanke jau egzistuoja</string>
 +  <string name="copy_file_error">Klaida kopijuojant failą ar aplanką</string>
 +  <string name="forbidden_permissions_copy">kopijuoti failo</string>
 +  <string name="prefs_category_instant_uploading">Momentinis įkėlimas</string>
    <string name="prefs_category_security">Saugumas</string>
 +  <string name="prefs_instant_video_upload_path_title">Vaizdo įrašų įkėlimo kelias</string>
 +  <string name="download_folder_failed_content">Nepavyko baigti %1$s atsiuntimo</string>
 +  <string name="shared_subject_header">Dalinamasi</string>
 +  <string name="with_you_subject_header">su jumis</string>
 +  <string name="subject_token">%1$s dalinamasi \"%2$s\" su jumis</string>
 +  <string name="saml_subject_token">\"%1$s\" dalinamasi su jumis</string>
 +  <string name="auth_refresh_button">Atnaujinti sujungimą</string>
    <string name="auth_host_address">Serverio adresas</string>
 +  <string name="common_error_out_memory">Nepakanka atminties</string>
 +  <string name="username">Prisijungimo vardas</string>
 +  <string name="file_list__footer__folder">1 aplankalas</string>
 +  <string name="file_list__footer__folders">%1$d aplankalai</string>
 +  <string name="file_list__footer__file">1 failas</string>
 +  <string name="file_list__footer__file_and_folder">1 failas, 1 aplankalas</string>
 +  <string name="file_list__footer__file_and_folders">1 failas, %1$d aplankai</string>
 +  <string name="file_list__footer__files">%1$d failai</string>
 +  <string name="file_list__footer__files_and_folder">%1$d failai, 1 aplankas</string>
 +  <string name="file_list__footer__files_and_folders">%1$d failai, %2$d aplankai</string>
  </resources>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">for få sekunder siden</string>
    <string name="file_list_empty">Ingenting her. Last opp noe!</string>
    <string name="file_list_loading">Laster...</string>
 +  <string name="file_list_no_app_for_file_type">Ingen app funnet for filtypen!</string>
    <string name="local_file_list_empty">Det er ingen filer i denne mappen.</string>
    <string name="filedetails_select_file">Trykk på en fil for å vise ekstra informasjon.</string>
    <string name="filedetails_size">Størrelse:</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 &amp; lokal</string>
    <string name="remove_success_msg">Fjerning var vellykket</string>
    <string name="remove_fail_msg">Fjerning mislyktes</string>
@@@ -72,7 -72,6 +72,7 @@@ Download hier: %2$s</string
    <string name="file_list_seconds_ago">seconden geleden</string>
    <string name="file_list_empty">Er bevindt zich hier niets. Upload een bestand!</string>
    <string name="file_list_loading">Laden...</string>
 +  <string name="file_list_no_app_for_file_type">Geen app gevonden voor het bestandstype!</string>
    <string name="local_file_list_empty">Er staan geen bestanden in deze map.</string>
    <string name="filedetails_select_file">Druk op een bestand om extra informatie weer te geven</string>
    <string name="filedetails_size">Grootte:</string>
@@@ -202,11 -201,11 +202,11 @@@ Hieronder staan de lokale bestanden en 
    <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 &amp; lokaal</string>
    <string name="remove_success_msg">Succesvol verwijderd</string>
    <string name="remove_fail_msg">Verwijdering kon niet voltooid worden</string>
@@@ -72,7 -72,6 +72,7 @@@ Telecargatz-lo aicí : %2$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="file_list_no_app_for_file_type">Cap d\'aplicacion pas trobada per aqueste tipe de fichièr !</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>
@@@ -204,11 -203,11 +204,11 @@@ En rason d\'aquesta modificacion, tote
    <string name="unfavorite">Suprimir dels favorits</string>
    <string name="common_rename">Renomenar</string>
    <string name="common_remove">Suprimir</string>
-   <string name="confirmation_remove_alert">Sètz segur que volètz suprimir %1$s ?</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_remote">Dempuèi lo servidor</string>
+   <string name="confirmation_remove_file_remote">Dempuèi lo servidor</string>
    <string name="confirmation_remove_remote_and_local">Distant &amp; local</string>
    <string name="remove_success_msg">Supression efectuada amb succès</string>
    <string name="remove_fail_msg">Supression impossibla</string>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">segundos atrás</string>
    <string name="file_list_empty">Nada aqui. Envie alguma coisa!</string>
    <string name="file_list_loading">Carregando...</string>
 +  <string name="file_list_no_app_for_file_type">Nenhum aplicativo encontrado por tipo de arquivo!</string>
    <string name="local_file_list_empty">Não existe nenhum arquivo nesta pasta.</string>
    <string name="filedetails_select_file">Toque em um arquivo para mostrar informações adicionais.</string>
    <string name="filedetails_size">Tamanho:</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 &amp; local</string>
    <string name="remove_success_msg">Removido com sucesso</string>
    <string name="remove_fail_msg">Erro ao remover</string>
@@@ -72,7 -72,6 +72,7 @@@
    <string name="file_list_seconds_ago">несколько секунд назад</string>
    <string name="file_list_empty">Здесь ничего нет. Загрузите что-нибудь!</string>
    <string name="file_list_loading">Загрузка...</string>
 +  <string name="file_list_no_app_for_file_type">Не найдено приложений для этого типа файла.</string>
    <string name="local_file_list_empty">В этом каталоге нет файлов.</string>
    <string name="filedetails_select_file">Нажмите на файл для отображения дополнительной информации.</string>
    <string name="filedetails_size">Размер:</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_remote_and_local">Удаленно и локально</string>
    <string name="remove_success_msg">Удаление завершено</string>
    <string name="remove_fail_msg">Ошибка удаления</string>
    <string name="rename_dialog_title">Введите новое имя</string>
    <string name="conflict_title">Конфликт файлов</string>
    <string name="conflict_message">Какие файлы Вы хотите сохранить? При выборе обеих версий, к названию локального файла будет добавлена цифра</string>
    <string name="conflict_keep_both">Сохранить оба</string>
 +  <string name="conflict_use_local_version">локальная версия</string>
 +  <string name="conflict_use_server_version">удаленная версия</string>
    <string name="preview_image_description">Предпросмотр</string>
    <string name="preview_image_error_unknown_format">Это изображение не может быть отображено</string>
    <string name="error__upload__local_file_not_copied">%1$s невозможно скопировать в локальный каталог %2$s </string>
    <string name="move_file_invalid_overwrite">Файл уже существует в каталоге назначения</string>
    <string name="move_file_error">Произошла ошибка при попытке перемещения этого файла или каталога</string>
    <string name="forbidden_permissions_move">для перемещения этого файла</string>
 +  <string name="copy_file_not_found">Не удалось произвести копирование. Пожалуйста проверьте существование файла</string>
 +  <string name="copy_file_invalid_into_descendent">Нельзя произвести копирование папки в унаследованную папку</string>
    <string name="copy_file_invalid_overwrite">Файл уже существует в каталоге назначения</string>
 +  <string name="copy_file_error">Произошла ошибка во время копирования этого файла или папки</string>
 +  <string name="forbidden_permissions_copy">для копирования этого файла</string>
    <string name="prefs_category_instant_uploading">Мгновенные загрузки</string>
    <string name="prefs_category_security">Безопасность</string>
    <string name="prefs_instant_video_upload_path_title">Путь для загрузки Видео</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="move_file_error">Дошло је до грешке при премештању фајла или фасцикле</string>
    <string name="forbidden_permissions_move">да преместите овај фајл</string>
    <string name="copy_file_invalid_overwrite">Фајл већ постоји у одредишној фасцикли</string>
 +  <string name="forbidden_permissions_copy">да копирате овај фајл</string>
    <string name="prefs_category_instant_uploading">Тренутна отпремања</string>
    <string name="prefs_category_security">Безбедност</string>
    <string name="prefs_instant_video_upload_path_title">Путања отпремања видеа</string>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">วินาที ก่อนหน้านี้</string>
    <string name="file_list_empty">ยังไม่มีไฟล์ใดๆเลย ลองอัพโหลดดูสิ!</string>
    <string name="file_list_loading">กำลังโหลด...</string>
 +  <string name="file_list_no_app_for_file_type">ไม่พบแอพฯ ที่จะใช้เปิดไฟล์ประเภทนี้!</string>
    <string name="local_file_list_empty">ยังไม่มีไฟล์ในโฟลเดอร์นี้</string>
    <string name="filedetails_select_file">แตะที่ไฟล์ เพื่อแสดงข้อมูลเพิ่มเติม</string>
    <string name="filedetails_size">ขนาด:</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">รีโมท &amp; ต้นทาง</string>
    <string name="remove_success_msg">ลบเรียบร้อยแล้ว</string>
    <string name="remove_fail_msg">ไม่สามารถลบได้</string>
          </string>
    <string name="auth_can_not_auth_against_server">Bu sunucuya karşı kimlik doğrulama yapılamaz</string>
    <string name="auth_account_does_not_exist">Hesap henüz cihazda mevcut değil</string>
 -  <string name="favorite">Sık kullanılan</string>
 +  <string name="favorite">Favorilere ekle</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="move_file_invalid_overwrite">Dosya zaten hedef klasörde mevcut</string>
    <string name="move_file_error">Bu dosya veya klasörü taşımaya çalışılırken bir hata oluştu</string>
    <string name="forbidden_permissions_move">bu dosyayı taşımak için</string>
 +  <string name="copy_file_not_found">Kopyalama başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
 +  <string name="copy_file_invalid_into_descendent">Klasörü, kendi alt klasörüne kopyalamak mümkün değil</string>
    <string name="copy_file_invalid_overwrite">Dosya zaten hedef klasörde mevcut</string>
 +  <string name="copy_file_error">Bu dosya veya klasörü kopyalamaya çalışılırken bir hata oluştu</string>
 +  <string name="forbidden_permissions_copy">bu dosyayı kopyalamak için</string>
    <string name="prefs_category_instant_uploading">Anında Yüklemeler</string>
    <string name="prefs_category_security">Güvenlik</string>
    <string name="prefs_instant_video_upload_path_title">Video Yükleme Yolu</string>
@@@ -1,6 -1,6 +1,6 @@@
  <?xml version='1.0' encoding='UTF-8'?>
  <resources>
 -  <string name="about_android">%1$s Android App</string>
 +  <string name="about_android">%1$s Android Додаток</string>
    <string name="about_version">версія %1$s</string>
    <string name="actionbar_sync">Оновити account</string>
    <string name="actionbar_upload">Відвантажити</string>
@@@ -32,7 -32,6 +32,7 @@@
    <string name="prefs_category_more">Більше</string>
    <string name="prefs_accounts">Облікові записи</string>
    <string name="prefs_manage_accounts">Управління обліковими записами</string>
 +  <string name="prefs_passcode">Захистити паролем</string>
    <string name="prefs_instant_upload">Миттєві зображення</string>
    <string name="prefs_instant_upload_summary">Миттєві зображення з камери</string>
    <string name="prefs_instant_video_upload">Миттєві відео</string>
@@@ -71,7 -70,6 +71,7 @@@
    <string name="file_list_seconds_ago">секунди тому</string>
    <string name="file_list_empty">Тут нічого немає. Відвантажте що-небудь!</string>
    <string name="file_list_loading">Завантаження…</string>
 +  <string name="file_list_no_app_for_file_type">Застосунку для цього типу файла не знайдено!</string>
    <string name="local_file_list_empty">В цій теці немає файлів.</string>
    <string name="filedetails_select_file">Натисніть на файлі для відображення додаткової інформації</string>
    <string name="filedetails_size">Розмір:</string>
@@@ -81,7 -79,6 +81,7 @@@
    <string name="filedetails_download">Завантажити</string>
    <string name="filedetails_sync_file">Оновити файл</string>
    <string name="filedetails_renamed_in_upload_msg">Файл був переіменований в %1$s протягом вивантаження</string>
 +  <string name="list_layout">Вигляд списку</string>
    <string name="action_share_file">Опублікувати посилання</string>
    <string name="action_unshare_file">Видалити посилання</string>
    <string name="common_yes">Так</string>
    <string name="foreign_files_local_text">Локально: %1$s</string>
    <string name="foreign_files_remote_text">Віддалено: %1$s</string>
    <string name="upload_query_move_foreign_files">Недостатньо місця для копіювання обраних файлів у теку %1$s. Чи бажаєте ви перемістити їх замість копіювання?</string>
 +  <string name="pass_code_enter_pass_code">Будь ласка, введіть Ваш код доступу</string>
 +  <string name="pass_code_configure_your_pass_code">Введіть Ваш код доступу</string>
 +  <string name="pass_code_configure_your_pass_code_explanation">Код доступу буде запрошено кожного разу після завантаження додатку</string>
 +  <string name="pass_code_reenter_your_pass_code">Будь ласка, введіть код доступу повторно</string>
 +  <string name="pass_code_remove_your_pass_code">Видалити пароль</string>
 +  <string name="pass_code_mismatch">Коди доступу не співпадають</string>
 +  <string name="pass_code_wrong">Невірний код доступу</string>
 +  <string name="pass_code_removed">Код доступу знято</string>
 +  <string name="pass_code_stored">Код доступу збережено</string>
    <string name="media_notif_ticker">%1$s музичний плеєр</string>
    <string name="media_state_playing">%1$s (відтворення)</string>
    <string name="media_state_loading">%1$s (завантаження)</string>
    <string name="auth_can_not_auth_against_server">Аутентифікація на цьому сервері неможлива</string>
    <string name="auth_account_does_not_exist">Користвача в пристрої не існуе</string>
    <string name="favorite">Улюблений</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_remote_and_local">Видалити &amp; локальний</string>
    <string name="remove_success_msg">Успішно видалено</string>
    <string name="remove_fail_msg">Видалення не вдалось</string>
    <string name="rename_dialog_title">Введіть нове ім\'я</string>
    <string name="instant_upload_on_wifi">Завантажувати зображення тільки через WiFi</string>
    <string name="instant_video_upload_on_wifi">Завантажувати відео тільки через WiFi</string>
    <string name="instant_upload_path">/InstantUpload</string>
 +  <string name="conflict_title">Конфлікт файлу</string>
 +  <string name="conflict_message">Які файли Ви хочете зберегти? Якщо Ви оберете обидві версії, локальний файл матиме номер, що додається до його імені.</string>
    <string name="conflict_keep_both">Залишити обидва</string>
 +  <string name="conflict_use_local_version">Локальна версія</string>
 +  <string name="conflict_use_server_version">Версія сервера</string>
    <string name="preview_image_description">Попередній перегляд зображення</string>
    <string name="preview_image_error_unknown_format">Не вдалося показати зображення</string>
    <string name="error__upload__local_file_not_copied">%1$s неможливо скопіювати до %2$s</string>
    <string name="move_file_invalid_overwrite">Файл вже існує в теці призначення</string>
    <string name="move_file_error">Виникла помилка при спробі перемістити файл або теку</string>
    <string name="forbidden_permissions_move">перемістити цей файл</string>
 +  <string name="copy_file_not_found">Неможливо скопіювати. Будь ласка, перевірте, чи існує файл</string>
 +  <string name="copy_file_invalid_into_descendent">Неможливо копіювати теку до підтеки</string>
    <string name="copy_file_invalid_overwrite">Файл вже існує в теці призначення</string>
 +  <string name="copy_file_error">Виникла помилка під час спроби скопіювати даний файл чи папку</string>
 +  <string name="forbidden_permissions_copy">скопіювати даний файл</string>
    <string name="prefs_category_instant_uploading">Миттєво завантаження</string>
    <string name="prefs_category_security">Безпека</string>
    <string name="prefs_instant_video_upload_path_title">Шлях завантаження відео</string>
    <string name="download_folder_failed_content">Скачування теки %1$s не може бути завершено</string>
 +  <string name="shared_subject_header">поширений</string>
    <string name="with_you_subject_header">з Вами</string>
    <string name="subject_token">%1$s поділився \"%2$s\" з вами</string>
 +  <string name="saml_subject_token">З Вами поділилися \"%1$s\"</string>
    <string name="auth_refresh_button">Оновити з\'єднання</string>
    <string name="auth_host_address">Ареса серверу</string>
    <string name="common_error_out_memory">Недостатньо пам\'яті</string>
@@@ -71,7 -71,6 +71,7 @@@
    <string name="file_list_seconds_ago">几秒前</string>
    <string name="file_list_empty">这里还什么都没有。上传些东西吧!</string>
    <string name="file_list_loading">加载中...</string>
 +  <string name="file_list_no_app_for_file_type">找不到用于打开此类型文件的应用</string>
    <string name="local_file_list_empty">在该文件夹中不存在文件。</string>
    <string name="filedetails_select_file">点击一个文件可以显示额外的信息。</string>
    <string name="filedetails_size">大小:</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">远程 &amp; 本地</string>
    <string name="remove_success_msg">成功删除</string>
    <string name="remove_fail_msg">无法完成删除</string>
    <string name="move_file_invalid_overwrite">该文件已经存在在目标文件夹</string>
    <string name="move_file_error">尝试移动该文件或文件夹时发生错误</string>
    <string name="forbidden_permissions_move">移动该文件</string>
 +  <string name="copy_file_not_found">无法复制文件。请检查文件是否存在</string>
 +  <string name="copy_file_invalid_into_descendent">将一个目录移动到它的子目录是不可能的</string>
    <string name="copy_file_invalid_overwrite">该文件已经存在在目标文件夹</string>
 +  <string name="copy_file_error">尝试复制这个文件或文件夹时发生了错误</string>
 +  <string name="forbidden_permissions_copy">复制这个文件</string>
    <string name="prefs_category_instant_uploading">即时上传</string>
    <string name="prefs_category_security">安全</string>
    <string name="prefs_instant_video_upload_path_title">视频上传路径</string>
diff --combined res/values/setup.xml
@@@ -1,12 -1,12 +1,12 @@@
  <?xml version="1.0" encoding="utf-8"?>
  <resources>
      <!-- App name  and other strings-->
 -    <string name="app_name">ownCloud</string>
 +    <string name="app_name">Owncloud Beta</string>
      <string name="account_type">owncloud</string>     <!-- better if was a domain name; but changing it now would require migrate accounts when the app is updated -->
      <string name="authority">org.owncloud</string>    <!-- better if was the app package with ".provider" appended ; it identifies the provider -->
 -    <string name ="db_file">owncloud.db</string>
 +    <string name ="db_file">owncloud-beta.db</string>
      <string name ="db_name">ownCloud</string>
 -    <string name ="data_folder">owncloud</string>
 +    <string name ="data_folder">owncloud-beta</string>
      <string name ="log_name">Owncloud_</string>
      <string name ="default_display_name_for_root_folder">ownCloud</string>
      <string name ="user_agent">Mozilla/5.0 (Android) ownCloud-android/%1$s</string>
@@@ -30,7 -30,7 +30,7 @@@
      <!-- Colors -->
      <color name="login_background_color">#FFFFFF</color>
      <color name="login_logo_background_color">#FFFFFF</color>
-     <color name="background_color">#F7F7F7</color>
+     <color name="background_color">#FFFFFF</color>
      <color name="actionbar_start_color">#1D2D44</color>
      <color name="actionbar_end_color">#1D2D44</color>
      
diff --combined res/values/strings.xml
@@@ -23,7 -23,8 +23,7 @@@
      <!-- TODO re-enable when "Accounts" is available in Navigation Drawer -->
      <!--<string name="drawer_item_accounts">Accounts</string>-->
      <string name="drawer_item_all_files">All files</string>
 -    <!-- TODO re-enable when "On Device" is available
 -    <string name="drawer_item_on_device">On device</string>-->
 +    <string name="drawer_item_on_device">On device</string>
      <string name="drawer_item_settings">Settings</string>
      <string name="drawer_item_logs">Logs</string>
        <string name="drawer_close">Close</string>
@@@ -73,7 -74,6 +73,7 @@@
      <string name="file_list_seconds_ago">seconds ago</string>
      <string name="file_list_empty">Nothing in here. Upload something!</string>
      <string name="file_list_loading">Loading&#8230;</string>
 +    <string name="file_list_no_app_for_file_type">No App found for file type!</string>
      <string name="local_file_list_empty">There are no files in this folder.</string>
      <string name="filedetails_select_file">Tap on a file to display additional information.</string>
      <string name="filedetails_size">Size:</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 &amp; local</string>
      <string name="remove_success_msg">"Removal succeeded"</string>
      <string name="remove_fail_msg">"Removal failed"</string>
      <string name="placeholder_filesize">389 KB</string>
      <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
      <string name="placeholder_media_time">12:23:45</string>
 -
 -    <string name="instant_upload_on_wifi">Upload pictures via WiFi only</string>
 -    <string name="instant_video_upload_on_wifi">Upload videos via WiFi only</string>
 +    
 +    <string name="instant_upload_on_wifi">Upload pictures via wifi only</string>
 +    <string name="instant_upload_on_charging">Upload when charging only</string>
 +    <string name="instant_video_upload_on_wifi">Upload videos via wifi only</string>
 +    <string name="instant_video_upload_on_charging">Upload when charging only</string>
      <string name="instant_upload_path">/InstantUpload</string>
      <string name="conflict_title">File conflict</string>
      <string name="conflict_message">Which files do you want to keep? If you select both versions, the local file will have a number added to its name.</string>
      <string name="preview_image_error_unknown_format">This image cannot be shown</string>
  
      <string name="error__upload__local_file_not_copied">%1$s could not be copied to %2$s local folder</string>
 -    <string name="prefs_instant_upload_path_title">Upload Path</string>
 +    <string name="prefs_instant_upload_path_title">Upload path</string>
  
        <string name="share_link_no_support_share_api">Sorry, sharing is not enabled on your server. Please contact your
                administrator.</string>
      <string name="prefs_category_instant_uploading">Instant Uploads</string>
        <string name="prefs_category_security">Security</string>
  
 -      <string name="prefs_instant_video_upload_path_title">Upload Video Path</string>
 +      <string name="prefs_instant_video_upload_path_title">Upload video path</string>
      <string name="download_folder_failed_content">Download of %1$s folder could not be completed</string>
  
        <string name="shared_subject_header">shared</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="action_switch_grid_view">Switch to grid view</string>
 +    <string name="action_switch_list_view">Switch to list view</string>
 +    <string name="common_category">Common</string>
 +    <string name="pref_cache_size">Cache size</string>
 +    <string name="prefs_instant_behaviour_dialogTitle">Upload file to server and ...</string>
 +    <string name="prefs_instant_behaviour_title">Behaviour</string>
 +    <string name="upload_copy_files">Copy file</string>
 +    <string name="upload_move_files">Move file</string>
 +
 +    <string name="pref_behaviour_entries_do_nothing">do nothing</string>
 +    <string name="pref_behaviour_entries_copy">copy file to OC folder</string>
 +    <string name="pref_behaviour_entries_move">move file to OC folder</string>
 +    <string name="pref_behaviour_entries_delete">delete origin file</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>
@@@ -27,18 -27,16 +27,15 @@@ import android.webkit.MimeTypeMap
  import com.owncloud.android.lib.common.utils.Log_OC;
  
  import java.io.File;
- import java.util.Enumeration;
 -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];
          }
@@@ -75,8 -73,6 +72,8 @@@
  
      private boolean mIsDownloading;
  
 +    private boolean mShowGridView;
 +
  
      /**
       * Create new {@link OCFile} with given path.
  package com.owncloud.android.files;
  
  import android.accounts.Account;
 +import android.content.ActivityNotFoundException;
 +import android.content.Context;
  import android.content.Intent;
 +import android.content.pm.PackageManager;
 +import android.content.pm.ResolveInfo;
 +import android.graphics.Bitmap;
  import android.net.Uri;
  import android.support.v4.app.DialogFragment;
  import android.webkit.MimeTypeMap;
  import android.widget.Toast;
  
 +import com.owncloud.android.MainApp;
  import com.owncloud.android.R;
  import com.owncloud.android.authentication.AccountUtils;
  import com.owncloud.android.datamodel.OCFile;
 +import com.owncloud.android.datamodel.ThumbnailsCacheManager;
  import com.owncloud.android.files.services.FileDownloader.FileDownloaderBinder;
  import com.owncloud.android.files.services.FileUploader.FileUploaderBinder;
  import com.owncloud.android.lib.common.network.WebdavUtils;
@@@ -46,19 -39,12 +46,21 @@@ import com.owncloud.android.lib.resourc
  import com.owncloud.android.services.OperationsService;
  import com.owncloud.android.services.observer.FileObserverService;
  import com.owncloud.android.ui.activity.FileActivity;
 +import com.owncloud.android.ui.adapter.DiskLruImageCacheFileProvider;
  import com.owncloud.android.ui.dialog.ShareLinkToDialog;
  
  import org.apache.http.protocol.HTTP;
  
 +import java.util.List;
 +
 +import java.io.ByteArrayOutputStream;
 +import java.io.File;
 +import java.io.FileNotFoundException;
 +import java.io.FileOutputStream;
 +import java.io.IOException;
 +
+ import java.util.ArrayList;
  /**
   *
   */
@@@ -102,46 -88,21 +104,46 @@@ public class FileOperationsHelper 
                      );
                  }
              }
 -            
 -            Intent chooserIntent;
 +
 +            Intent openFileWithIntent;
              if (intentForGuessedMimeType != null) {
 -                chooserIntent = Intent.createChooser(intentForGuessedMimeType, mFileActivity.getString(R.string.actionbar_open_with));
 +                openFileWithIntent = intentForGuessedMimeType;
              } else {
 -                chooserIntent = Intent.createChooser(intentForSavedMimeType, mFileActivity.getString(R.string.actionbar_open_with));
 +                openFileWithIntent = intentForSavedMimeType;
              }
  
 -            mFileActivity.startActivity(chooserIntent);
 +            List<ResolveInfo> launchables = mFileActivity.getPackageManager().
 +                    queryIntentActivities(openFileWithIntent, PackageManager.GET_INTENT_FILTERS);
 +
 +            if(launchables != null && launchables.size() > 0) {
 +                try {
 +                    mFileActivity.startActivity(
 +                            Intent.createChooser(
 +                                    openFileWithIntent, mFileActivity.getString(R.string.actionbar_open_with)
 +                            )
 +                    );
 +                } catch (ActivityNotFoundException anfe) {
 +                    showNoAppForFileTypeToast(mFileActivity.getApplicationContext());
 +                }
 +            } else {
 +                showNoAppForFileTypeToast(mFileActivity.getApplicationContext());
 +            }
  
          } else {
              Log_OC.wtf(TAG, "Trying to open a NULL OCFile");
          }
      }
  
 +    /**
 +     * Displays a toast stating that no application could be found to open the file.
 +     *
 +     * @param context the context to be able to show a toast.
 +     */
 +    private void showNoAppForFileTypeToast(Context context) {
 +        Toast.makeText(context,
 +                R.string.file_list_no_app_for_file_type, Toast.LENGTH_SHORT)
 +                .show();
 +    }
  
      public void shareFileWithLink(OCFile file) {
  
          }
      }
  
 +    public void sendCachedImage(OCFile file) {
 +        if (file != null) {
 +            Intent sendIntent = new Intent(android.content.Intent.ACTION_SEND);
 +            // set MimeType
 +            sendIntent.setType(file.getMimetype());
 +//            sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + DiskLruImageCacheFileProvider.AUTHORITY + "/#" + file.getRemoteId() + "#" + file.getFileName()));
 +            sendIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://" + DiskLruImageCacheFileProvider.AUTHORITY + file.getRemotePath()));
 +            sendIntent.putExtra(Intent.ACTION_SEND, true);      // Send Action
 +
 +            // Show dialog, without the own app
 +            String[] packagesToExclude = new String[] { mFileActivity.getPackageName() };
 +            DialogFragment chooserDialog = ShareLinkToDialog.newInstance(sendIntent, packagesToExclude, file);
 +            chooserDialog.show(mFileActivity.getSupportFragmentManager(), FTAG_CHOOSER_DIALOG);
 +        } else {
 +            Log_OC.wtf(TAG, "Trying to send a NULL OCFile");
 +        }
 +    }
 +
+     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();
      }
  
      /**
@@@ -363,7 -363,12 +363,7 @@@ public class FileActivity extends AppCo
  //        }
  
          // Display username in drawer
 -        Account account = AccountUtils.getCurrentOwnCloudAccount(getApplicationContext());
 -        if (account != null) {
 -            TextView username = (TextView) navigationDrawerLayout.findViewById(R.id.drawer_username);
 -            int lastAtPos = account.name.lastIndexOf("@");
 -            username.setText(account.name.substring(0, lastAtPos));
 -        }
 +        setUsernameInDrawer(navigationDrawerLayout, AccountUtils.getCurrentOwnCloudAccount(getApplicationContext()));
  
          // load slide menu items
          mDrawerTitles = getResources().getStringArray(R.array.drawer_items);
          mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[0], mDrawerContentDescriptions[0],
                  R.drawable.ic_folder_open));
  
 -        // TODO Enable when "On Device" is recovered
          // On Device
 -        //mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[2],
 -        //        mDrawerContentDescriptions[2]));
 +        mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[1], mDrawerContentDescriptions[1],
 +                R.drawable.ic_action_download_grey));
  
          // Settings
 -        mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[1], mDrawerContentDescriptions[1],
 -                R.drawable.ic_settings));
 +        mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[2], mDrawerContentDescriptions[2],
 +                R.drawable.ic_action_settings));
          // Logs
          if (BuildConfig.DEBUG) {
 -            mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[2],
 -                    mDrawerContentDescriptions[2],R.drawable.ic_log));
 +            mDrawerItems.add(new NavigationDrawerItem(mDrawerTitles[3],
 +                    mDrawerContentDescriptions[3],R.drawable.ic_log));
          }
  
          // setting the nav drawer list adapter
      }
  
      /**
 +     * sets the given account name in the drawer in case the drawer is available. The account name
 +     * is shortened beginning from the @-sign in the username.
 +     *
 +     * @param navigationDrawerLayout the drawer layout to be used
 +     * @param account                the account to be set in the drawer
 +     */
 +    protected void setUsernameInDrawer(RelativeLayout navigationDrawerLayout, Account account) {
 +        if (navigationDrawerLayout != null && getAccount() != null) {
 +            TextView username = (TextView) navigationDrawerLayout.findViewById(R.id.drawer_username);
 +            int lastAtPos = account.name.lastIndexOf("@");
 +            username.setText(account.name.substring(0, lastAtPos));
 +        }
 +    }
 +
 +    /**
       * Updates title bar and home buttons (state and icon).
       *
       * Assumes that navigation drawer is NOT visible.
       */
      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();
          }
          startActivity(i);
      }
  
 +    public void refresh(){
 +        Intent i = new Intent(this, FileDisplayActivity.class);
 +        i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 +        startActivity(i);
 +    }
 +
  //    TODO re-enable when "Accounts" is available in Navigation Drawer
  //    public void closeDrawer() {
  //        mDrawerLayout.closeDrawers();
          restart();
      }
  
 +    public void refreshDirectory(){
 +        // overridden by FileDisplayActivity
 +    }
 +
      private class DrawerItemClickListener implements ListView.OnItemClickListener {
          @Override
          public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
  //                    break;
  
                  case 0: // All Files
 -                    allFilesOption();
 +                    MainApp.showOnlyFilesOnDevice(false);
 +                    refreshDirectory();
                      mDrawerLayout.closeDrawers();
                      break;
  
 -                // TODO Enable when "On Device" is recovered ?
 -//                case 2:
 -//                    MainApp.showOnlyFilesOnDevice(true);
 -//                    mDrawerLayout.closeDrawers();
 -//                    break;
 +                case 1: // On Device
 +                    MainApp.showOnlyFilesOnDevice(true);
 +                    refreshDirectory();
 +                    mDrawerLayout.closeDrawers();
 +                    break;
  
 -                case 1: // Settings
 +                case 2: // Settings
                      Intent settingsIntent = new Intent(getApplicationContext(),
                              Preferences.class);
                      startActivity(settingsIntent);
                      mDrawerLayout.closeDrawers();
                      break;
  
 -                case 2: // Logs
 +                case 3: // Logs
                      Intent loggerIntent = new Intent(getApplicationContext(),
                              LogHistoryActivity.class);
                      startActivity(loggerIntent);
@@@ -26,6 -26,7 +26,7 @@@ import android.accounts.Account
  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;
@@@ -107,6 -108,8 +108,8 @@@ import com.owncloud.android.utils.FileS
  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.
@@@ -149,14 -152,13 +152,14 @@@ public class FileDisplayActivity extend
      private boolean mSyncInProgress = false;
  
      private static String DIALOG_UNTRUSTED_CERT = "DIALOG_UNTRUSTED_CERT";
 -    private static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER";
 +    public static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER";
      private static String DIALOG_UPLOAD_SOURCE = "DIALOG_UPLOAD_SOURCE";
      private static String DIALOG_CERT_NOT_SAVED = "DIALOG_CERT_NOT_SAVED";
  
      private OCFile mWaitingToSend;
 +    private Menu mOptionsMenu;
 +
  
 -    
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          Log_OC.v(TAG, "onCreate() start");
              setFile(file);
  
              if (mAccountWasSet) {
 -                RelativeLayout navigationDrawerLayout = (RelativeLayout) findViewById(R.id.left_drawer);
 -                if (navigationDrawerLayout != null && getAccount() != null) {
 -                    TextView username = (TextView) navigationDrawerLayout.findViewById(R.id.drawer_username);
 -                    int lastAtPos = getAccount().name.lastIndexOf("@");
 -                    username.setText(getAccount().name.substring(0, lastAtPos));
 -                }
 +                setUsernameInDrawer((RelativeLayout) findViewById(R.id.left_drawer), getAccount());
              }
  
              if (!stateWasRecovered) {
              /// First fragment
              OCFileListFragment listOfFiles = getListOfFilesFragment();
              if (listOfFiles != null) {
 -                listOfFiles.listDirectory(getCurrentDir());
 -                // TODO Enable when "On Device" is recovered
 -                // listOfFiles.listDirectory(getCurrentDir(), MainApp.getOnlyOnDevice());
 -
 +                listOfFiles.listDirectory(getCurrentDir(), MainApp.getOnlyOnDevice());
              } else {
                  Log_OC.e(TAG, "Still have a chance to lose the initializacion of list fragment >(");
              }
                      startTextPreview(file);
              }
  
 +            if (DisplayUtils.isGridView(getFile(), getStorageManager())){
 +                switchToGridView();
 +            } else {
 +                switchToListView();
 +            }
 +
          } else {
              Log_OC.wtf(TAG, "initFragments() called with invalid NULLs!");
              if (getAccount() == null) {
      protected void refreshListOfFilesFragment() {
          OCFileListFragment fileListFragment = getListOfFilesFragment();
          if (fileListFragment != null) {
 -            fileListFragment.listDirectory();
 -            // TODO Enable when "On Device" is recovered ?
 -            // fileListFragment.listDirectory(MainApp.getOnlyOnDevice());
 +            fileListFragment.listDirectory(MainApp.getOnlyOnDevice());
          }
      }
  
      @Override
      public boolean onPrepareOptionsMenu(Menu menu) {
          boolean drawerOpen = mDrawerLayout.isDrawerOpen(GravityCompat.START);
 -        menu.findItem(R.id.action_upload).setVisible(!drawerOpen);
 -        menu.findItem(R.id.action_create_dir).setVisible(!drawerOpen);
          menu.findItem(R.id.action_sort).setVisible(!drawerOpen);
          menu.findItem(R.id.action_sync_account).setVisible(!drawerOpen);
 +        menu.findItem(R.id.action_switch_view).setVisible(!drawerOpen);
          
          return super.onPrepareOptionsMenu(menu);
      }
      public boolean onCreateOptionsMenu(Menu menu) {
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.main_menu, menu);
 +        menu.findItem(R.id.action_create_dir).setVisible(false);
 +        mOptionsMenu = menu;
 +
 +        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
 +
 +        changeGridIcon();
 +
          return true;
      }
      
      public boolean onOptionsItemSelected(MenuItem item) {
          boolean retval = true;
          switch (item.getItemId()) {
 -            case R.id.action_create_dir: {
 -                CreateFolderDialogFragment dialog =
 -                        CreateFolderDialogFragment.newInstance(getCurrentDir());
 -                dialog.show(getSupportFragmentManager(), DIALOG_CREATE_FOLDER);
 -                break;
 -            }
 -
              case R.id.action_sync_account: {
                  startSynchronization();
                  break;
              }
 -            case R.id.action_upload: {
 -                UploadSourceDialogFragment dialog =
 -                        UploadSourceDialogFragment.newInstance(getAccount());
 -                dialog.show(getSupportFragmentManager(), DIALOG_UPLOAD_SOURCE);
 -                break;
 -            }
              case android.R.id.home: {
                  FileFragment second = getSecondFragment();
                  OCFile currentDir = getCurrentDir();
                  builder.create().show();
                  break;
              }
 +            case R.id.action_switch_view:{
 +                if (isGridView()){
 +                    item.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
 +                    item.setIcon(ContextCompat.getDrawable(getApplicationContext(),
 +                            R.drawable.ic_view_module));
 +                    DisplayUtils.setViewMode(getFile(), false);
 +                    switchToListView();
 +                } else {
 +                    item.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
 +                    item.setIcon(ContextCompat.getDrawable(getApplicationContext(),
 +                            R.drawable.ic_view_list));
 +                    DisplayUtils.setViewMode(getFile(), true);
 +                    switchToGridView();
 +                }
 +
 +                return true;
 +            }
          default:
              retval = super.onOptionsItemSelected(item);
          }
          return retval;
      }
  
 +    public void createFolder() {
 +        CreateFolderDialogFragment dialog =
 +                CreateFolderDialogFragment.newInstance(getCurrentDir());
 +        dialog.show(getSupportFragmentManager(), DIALOG_CREATE_FOLDER);
 +    }
 +
 +    public void uploadLocalFilesSelected() {
 +        Intent action = new Intent(this, UploadFilesActivity.class);
 +        action.putExtra(
 +                UploadFilesActivity.EXTRA_ACCOUNT,
 +                getAccount()
 +        );
 +        startActivityForResult(action, ACTION_SELECT_MULTIPLE_FILES);
 +    }
 +
 +    public void uploadFromOtherAppsSelected() {
 +        Intent action = new Intent(Intent.ACTION_GET_CONTENT);
 +        action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE);
 +        //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+, Jelly Bean
 +        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
 +            action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
 +        }
 +        startActivityForResult(
 +                Intent.createChooser(action, getString(R.string.upload_chooser_title)),
 +                ACTION_SELECT_CONTENT_FROM_APPS
 +        );
 +    }
 +
      private void startSynchronization() {
          Log_OC.d(TAG, "Got to start sync");
          if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.KITKAT) {
       */
      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
      public void onBackPressed() {
 -        if (!isDrawerOpen()){
 +        boolean isFabOpen = isFabOpen();
 +        boolean isDrawerOpen = isDrawerOpen();
 +
 +        /*
 +         * BackPressed priority/hierarchy:
 +         *    1. close drawer if opened
 +         *    2. close FAB if open (only if drawer isn't open)
 +         *    3. navigate up (only if drawer and FAB aren't open)
 +         */
 +        if(isDrawerOpen && isFabOpen) {
 +            // close drawer first
 +            super.onBackPressed();
 +        } else if(isDrawerOpen && !isFabOpen) {
 +            // close drawer
 +            super.onBackPressed();
 +        } else if (!isDrawerOpen && isFabOpen) {
 +            // close fab
 +            getListOfFilesFragment().getFabMain().collapse();
 +        } else {
 +            // all closed
              OCFileListFragment listOfFiles = getListOfFilesFragment();
              if (mDualPane || getSecondFragment() == null) {
                  OCFile currentDir = getCurrentDir();
                  setFile(listOfFiles.getCurrentFile());
              }
              cleanSecondFragment();
 +            changeGridIcon();
 +        }
 +    }
 +
 +    private void changeGridIcon(){
 +        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
 +        if (DisplayUtils.isGridView(getFile(), getStorageManager())){
 +            menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_list_view));
 +            menuItem.setIcon(ContextCompat.getDrawable(getApplicationContext(),
 +                    R.drawable.ic_view_list));
          } else {
 -            super.onBackPressed();
 +            menuItem.setTitle(getApplicationContext().getString(R.string.action_switch_grid_view));
 +            menuItem.setIcon(ContextCompat.getDrawable(getApplicationContext(),
 +                    R.drawable.ic_view_module));
          }
      }
  
          Log_OC.v(TAG, "onPause() end");
      }
  
 +    public boolean isFabOpen() {
 +        if(getListOfFilesFragment() != null && getListOfFilesFragment().getFabMain() != null && getListOfFilesFragment().getFabMain().isExpanded()) {
 +            return true;
 +        } else {
 +            return false;
 +        }
 +    }
 +
  
      private class SyncBroadcastReceiver extends BroadcastReceiver {
  
                                      currentDir.getRemotePath().equals(synchFolderRemotePath)) {
                                  OCFileListFragment fileListFragment = getListOfFilesFragment();
                                  if (fileListFragment != null) {
 -                                    fileListFragment.listDirectory();
 -                                    // TODO Enable when "On Device" is recovered ?
 -                                    // fileListFragment.listDirectory(currentDir,
 -                                    // MainApp.getOnlyOnDevice());
 +                                    fileListFragment.listDirectory(currentDir,
 +                                    MainApp.getOnlyOnDevice());
                                  }
                              }
                              setFile(currentFile);
          OCFileListFragment listOfFiles = getListOfFilesFragment();
          if (listOfFiles != null) {  // should never be null, indeed
              OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
 -            listOfFiles.listDirectory(root);
 -            // TODO Enable when "On Device" is recovered ?
 -            // listOfFiles.listDirectory(root, MainApp.getOnlyOnDevice());
 +            listOfFiles.listDirectory(root, MainApp.getOnlyOnDevice());
              setFile(listOfFiles.getCurrentFile());
              startSyncFolderOperation(root, false);
          }
          cleanSecondFragment();
          // Sync Folder
          startSyncFolderOperation(directory, false);
 +
 +        MenuItem menuItem = mOptionsMenu.findItem(R.id.action_switch_view);
 +
 +        changeGridIcon();
 +        if (DisplayUtils.isGridView(directory, getStorageManager())){
 +            switchToGridView();
 +        } else {
 +            switchToListView();
 +        }
      }
  
      /**
              // getFileDownloadBinder() - THIS IS A MESS
              OCFileListFragment listOfFiles = getListOfFilesFragment();
              if (listOfFiles != null) {
 -                listOfFiles.listDirectory();
 -                // TODO Enable when "On Device" is recovered ?
 -                // listOfFiles.listDirectory(MainApp.getOnlyOnDevice());
 +                listOfFiles.listDirectory(MainApp.getOnlyOnDevice());
              }
              FileFragment secondFragment = getSecondFragment();
              if (secondFragment != null && secondFragment instanceof FileDetailFragment) {
                  OCFile syncedFile = operation.getLocalFile();
                  onTransferStateChanged(syncedFile, true, true);
                  invalidateOptionsMenu();
 +                refreshShowDetails();
              }
          }
      }
      private void sortByName(boolean ascending) {
          getListOfFilesFragment().sortByName(ascending);
      }
 +    private boolean isGridView(){ return getListOfFilesFragment().isGridView(); }
 +    private void switchToGridView() {
 +        getListOfFilesFragment().switchToGridView();
 +    }
 +    private void switchToListView() {
 +        getListOfFilesFragment().switchToListView();
 +    }
  
     public void allFilesOption() {
         browseToRoot();
     }
 +
 +    public void refreshDirectory(){
 +        getListOfFilesFragment().refreshDirectory();
 +    }
  }
@@@ -62,6 -62,8 +62,8 @@@ import com.owncloud.android.ui.fragment
  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 {
  
@@@ -69,6 -71,8 +71,8 @@@
                                                              + ".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;
              
              if (!stateWasRecovered) {
                  OCFileListFragment listOfFolders = getListOfFilesFragment(); 
 -                listOfFolders.listDirectory(folder/*, false*/);
 +                listOfFolders.listDirectory(folder, false);
                  
                  startSyncFolderOperation(folder, false);
              }
          Bundle args = new Bundle();
          args.putBoolean(OCFileListFragment.ARG_JUST_FOLDERS, true);
          args.putBoolean(OCFileListFragment.ARG_ALLOW_CONTEXTUAL_ACTIONS, false);
 +        args.putBoolean(OCFileListFragment.ARG_HIDE_FAB, true);
          listOfFiles.setArguments(args);
          FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
          transaction.add(R.id.fragment_container, listOfFiles, TAG_LIST_OF_FOLDERS);
      public boolean onCreateOptionsMenu(Menu menu) {
          MenuInflater inflater = getMenuInflater();
          inflater.inflate(R.menu.main_menu, menu);
 -        menu.findItem(R.id.action_upload).setVisible(false);
          menu.findItem(R.id.action_sort).setVisible(false);
          return true;
      }
      protected void refreshListOfFilesFragment() {
          OCFileListFragment fileListFragment = getListOfFilesFragment();
          if (fileListFragment != null) {
 -            fileListFragment.listDirectory();
 -            // TODO Enable when "On Device" is recovered ?
 -            // fileListFragment.listDirectory(false);
 +            fileListFragment.listDirectory(false);
          }
      }
  
          OCFileListFragment listOfFiles = getListOfFilesFragment(); 
          if (listOfFiles != null) {  // should never be null, indeed
              OCFile root = getStorageManager().getFileByPath(OCFile.ROOT_PATH);
 -            listOfFiles.listDirectory(root);
 -            // TODO Enable when "On Device" is recovered ?
 -            // listOfFiles.listDirectory(root, false);
 +            listOfFiles.listDirectory(root, false);
              setFile(listOfFiles.getCurrentFile());
              updateNavigationElementsInActionBar();
              startSyncFolderOperation(root, false);
          } 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();
          }
                                      equals(synchFolderRemotePath)) {
                                  OCFileListFragment fileListFragment = getListOfFilesFragment();
                                  if (fileListFragment != null) {
 -                                    fileListFragment.listDirectory(currentDir);
 -                                    // TODO Enable when "On Device" is recovered ?
 -                                    // fileListFragment.listDirectory(currentDir, false);
 +                                    fileListFragment.listDirectory(currentDir, false);
                                  }
                              }
                              setFile(currentFile);
@@@ -25,12 -25,16 +25,16 @@@ package com.owncloud.android.ui.adapter
  \r
  \r
  import java.io.File;\r
+ import java.util.ArrayList;\r
+ import java.util.HashMap;\r
+ import java.util.Map;\r
  import java.util.Vector;\r
  \r
  import android.accounts.Account;\r
  import android.content.Context;\r
  import android.content.SharedPreferences;\r
  import android.graphics.Bitmap;\r
+ import android.graphics.Color;\r
  import android.os.Build;\r
  import android.preference.PreferenceManager;\r
  import android.text.format.DateUtils;\r
@@@ -79,6 -83,8 +83,8 @@@ public class FileListListAdapter extend
      private enum ViewType {LIST_ITEM, GRID_IMAGE, GRID_ITEM };\r
  \r
      private SharedPreferences mAppPreferences;\r
\r
+     private HashMap<Integer, Boolean> mSelection = new HashMap<Integer, Boolean>();\r
      \r
      public FileListListAdapter(\r
              boolean justFolders, \r
          ViewType viewType;\r
          if (!mGridMode){\r
              viewType = ViewType.LIST_ITEM;\r
 -        } else if (file.isImage()){\r
 +        } else if (file.isImage() || file.isVideo()){\r
              viewType = ViewType.GRID_IMAGE;\r
          } else {\r
              viewType = ViewType.GRID_ITEM;\r
              switch (viewType){\r
                  case LIST_ITEM:\r
                      TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);\r
 +                    TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator);\r
                      TextView lastModV = (TextView) view.findViewById(R.id.last_mod);\r
-                     ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
\r
  \r
                      lastModV.setVisibility(View.VISIBLE);\r
                      lastModV.setText(showRelativeTimestamp(file));\r
  \r
-                     checkBoxV.setVisibility(View.GONE);\r
  \r
 -\r
 +                    fileSizeSeparatorV.setVisibility(View.VISIBLE);\r
                      fileSizeV.setVisibility(View.VISIBLE);\r
                      fileSizeV.setText(DisplayUtils.bytesToHumanReadable(file.getFileLength()));\r
  \r
                      if (!file.isFolder()) {\r
 -//                        AbsListView parentList = (AbsListView)parent;\r
 -//                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {\r
 -//                            if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {\r
 -//                                checkBoxV.setVisibility(View.GONE);\r
 -//                            } else {\r
 -//                                if (parentList.isItemChecked(position)) {\r
 -//                                    checkBoxV.setImageResource(\r
 -//                                            android.R.drawable.checkbox_on_background);\r
 -//                                } else {\r
 -//                                    checkBoxV.setImageResource(\r
 -//                                            android.R.drawable.checkbox_off_background);\r
 -//                                }\r
 -//                                checkBoxV.setVisibility(View.VISIBLE);\r
 -//                            }\r
 -//                        }\r
 +                        AbsListView parentList = (AbsListView)parent;\r
 +                        if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {\r
 +                            if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {\r
 +                                checkBoxV.setVisibility(View.GONE);\r
 +                            } else {\r
 +                                if (parentList.isItemChecked(position)) {\r
 +                                    checkBoxV.setImageResource(\r
 +                                            R.drawable.ic_checkbox_marked);\r
 +                                } else {\r
 +                                    checkBoxV.setImageResource(\r
 +                                            R.drawable.ic_checkbox_blank_outline);\r
 +                                }\r
 +                                checkBoxV.setVisibility(View.VISIBLE);\r
 +                            }\r
 +                        }\r
  \r
                      } else { //Folder\r
 +                        fileSizeSeparatorV.setVisibility(View.INVISIBLE);\r
                          fileSizeV.setVisibility(View.INVISIBLE);\r
                      }\r
  \r
  \r
                      break;\r
              }\r
\r
+             ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);\r
+             checkBoxV.setVisibility(View.GONE);\r
\r
+             AbsListView parentList = (AbsListView)parent;\r
+             if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {\r
+                 if (parentList.getChoiceMode() == AbsListView.CHOICE_MODE_NONE) {\r
+                     checkBoxV.setVisibility(View.GONE);\r
+                 } else if (parentList.getCheckedItemCount() > 0){\r
+                     if (parentList.isItemChecked(position)) {\r
+                         checkBoxV.setImageResource(\r
+                                 android.R.drawable.checkbox_on_background);\r
+                     } else {\r
+                         checkBoxV.setImageResource(\r
+                                 android.R.drawable.checkbox_off_background);\r
+                     }\r
+                     checkBoxV.setVisibility(View.VISIBLE);\r
+                 }\r
+             }\r
              \r
              // For all Views\r
              \r
                                      task\r
                                      );\r
                              fileIcon.setImageDrawable(asyncDrawable);\r
 -                            task.execute(file);\r
 +                            task.execute(file, true);\r
                          }\r
                      }\r
  \r
              }\r
          }\r
  \r
+         if (mSelection.get(position) != null) {\r
+             view.setBackgroundColor(Color.rgb(248, 248, 248));\r
+         } else {\r
+             view.setBackgroundColor(Color.WHITE);\r
+         }\r
\r
          return view;\r
      }\r
  \r
       *                                  mStorageManager if is different (and not NULL)\r
       */\r
      public void swapDirectory(OCFile directory, FileDataStorageManager updatedStorageManager\r
 -            /*, boolean onlyOnDevice*/) {\r
 +            , boolean onlyOnDevice) {\r
          mFile = directory;\r
          if (updatedStorageManager != null && updatedStorageManager != mStorageManager) {\r
              mStorageManager = updatedStorageManager;\r
              mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
          }\r
          if (mStorageManager != null) {\r
 -            // TODO Enable when "On Device" is recovered ?\r
 -            mFiles = mStorageManager.getFolderContent(mFile/*, onlyOnDevice*/);\r
 +            mFiles = mStorageManager.getFolderContent(mFile, onlyOnDevice);\r
              mFilesOrig.clear();\r
              mFilesOrig.addAll(mFiles);\r
              \r
              mFiles = null;\r
          }\r
  \r
 -        mFiles = FileStorageUtils.sortFolder(mFiles);\r
 +        mFiles = FileStorageUtils.sortOcFolder(mFiles);\r
          notifyDataSetChanged();\r
      }\r
      \r
          FileStorageUtils.mSortAscending = ascending;\r
          \r
  \r
 -        mFiles = FileStorageUtils.sortFolder(mFiles);\r
 +        mFiles = FileStorageUtils.sortOcFolder(mFiles);\r
          notifyDataSetChanged();\r
  \r
      }\r
          mGridMode = gridMode;\r
      }\r
  \r
 +    public boolean isGridMode() {\r
 +        return mGridMode;\r
 +    }\r
++\r
+     public void setNewSelection(int position, boolean checked) {\r
+         mSelection.put(position, checked);\r
+         notifyDataSetChanged();\r
+     }\r
\r
+     public void removeSelection(int position) {\r
+         mSelection.remove(position);\r
+         notifyDataSetChanged();\r
+     }\r
\r
+     public void removeSelection(){\r
+          mSelection.clear();\r
+         notifyDataSetChanged();\r
+     }\r
\r
+     public ArrayList<Integer> getCheckedItemPositions() {\r
+         ArrayList<Integer> ids = new ArrayList<Integer>();\r
\r
+         for (Map.Entry<Integer, Boolean> entry : mSelection.entrySet()){\r
+             if (entry.getValue()){\r
+                 ids.add(entry.getKey());\r
+             }\r
+         }\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
@@@ -53,9 -53,9 +53,9 @@@ implements ConfirmationDialogFragmentLi
          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;
          
          boolean containsFavorite = false;
          if (mTargetFile.isFolder()) {
 -            // TODO Enable when "On Device" is recovered ?
 -            Vector<OCFile> files = storageManager.getFolderContent(mTargetFile/*, false*/);
 +            Vector<OCFile> files = storageManager.getFolderContent(mTargetFile, false);
              for(OCFile file: files) {
                  containsFavorite = file.isFavorite() || containsFavorite;
  
@@@ -22,12 -22,14 +22,15 @@@ package com.owncloud.android.ui.fragmen
  
  import java.util.ArrayList;
  
 +import android.app.Activity;
  import android.os.Build;
  import android.os.Bundle;
  import android.support.v4.app.Fragment;
  import android.support.v4.widget.SwipeRefreshLayout;
+ import android.view.ActionMode;
  import android.view.LayoutInflater;
+ import android.view.Menu;
+ import android.view.MenuItem;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.AbsListView;
@@@ -37,16 -39,12 +40,16 @@@ import android.widget.GridView
  import android.widget.ListAdapter;
  import android.widget.ListView;
  import android.widget.TextView;
 +import android.widget.Toast;
  
 +import com.getbase.floatingactionbutton.FloatingActionButton;
 +import com.getbase.floatingactionbutton.FloatingActionsMenu;
  import com.owncloud.android.R;
  import com.owncloud.android.lib.common.utils.Log_OC;
  import com.owncloud.android.ui.ExtendedListView;
  import com.owncloud.android.ui.activity.OnEnforceableRefreshListener;
  import com.owncloud.android.ui.adapter.FileListListAdapter;
 +import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
  
  import third_parties.in.srain.cube.GridViewWithHeaderAndFooter;
  
@@@ -69,11 -67,6 +72,11 @@@ public class ExtendedListFragment exten
      private SwipeRefreshLayout mRefreshGridLayout;
      private SwipeRefreshLayout mRefreshEmptyLayout;
      private TextView mEmptyListMessage;
 +
 +    private FloatingActionsMenu fabMain;
 +    private FloatingActionButton fabUpload;
 +    private FloatingActionButton fabMkdir;
 +    private FloatingActionButton fabUploadFromApp;
      
      // Save the state of the scroll in browsing
      private ArrayList<Integer> mIndexes;
          return mCurrentListView;
      }
  
 +    public FloatingActionButton getFabUpload() {
 +        return fabUpload;
 +    }
 +
 +    public FloatingActionButton getFabUploadFromApp() {
 +        return fabUploadFromApp;
 +    }
 +
 +    public FloatingActionButton getFabMkdir() {
 +        return fabMkdir;
 +    }
 +
 +    public FloatingActionsMenu getFabMain() {
 +        return fabMain;
 +    }
  
 -    protected void switchToGridView() {
 +    public void switchToGridView() {
          if ((mCurrentListView == mListView)) {
  
              mListView.setAdapter(null);
              mCurrentListView = mGridView;
          }
      }
 -    
 -    protected void switchToListView() {
 +
 +    public void switchToListView() {
          if (mCurrentListView == mGridView) {
              mGridView.setAdapter(null);
              mRefreshGridLayout.setVisibility(View.GONE);
              mCurrentListView = mListView;
          }
      }
 +
 +    public boolean isGridView(){
 +        if (mAdapter instanceof FileListListAdapter) {
 +            return ((FileListListAdapter) mAdapter).isGridMode();
 +        }
 +        return false;
 +    }
      
      
      @Override
                               Bundle savedInstanceState) {
          Log_OC.d(TAG, "onCreateView");
  
+         // TODO Tobi remove
+ //         AbsListView.MultiChoiceModeListener listener = new AbsListView.MultiChoiceModeListener() {
+ //            @Override
+ //            public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
+ //                // Capture total checked items
+ //                final int checkedCount = mListView.getCheckedItemCount();
+ //                // Set the CAB title according to total checked items
+ //                mode.setTitle(checkedCount + " Selected");
+ //                // Calls toggleSelection method from ListViewAdapter Class
+ //                 // mAdapter.toggleSelection(position);
+ //
+ //                if (checked){
+ //                    mAdapter.setNewSelection(position,checked);
+ //                } else {
+ //                    mAdapter.removeSelection(position);
+ //                }
+ //            }
+ //
+ //            @Override
+ //            public boolean onCreateActionMode(ActionMode mode, Menu menu) {
+ //                mode.getMenuInflater().inflate(R.menu.context, menu);
+ //                return true;
+ //            }
+ //
+ //            @Override
+ //            public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+ //                return false;
+ //            }
+ //
+ //            @Override
+ //            public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
+ //                return false;
+ //            }
+ //
+ //            @Override
+ //            public void onDestroyActionMode(ActionMode mode) {
+ //                // mAdapter.removeSelection();
+ //            }
+ //        };
          View v = inflater.inflate(R.layout.list_fragment, null);
  
          mListView = (ExtendedListView)(v.findViewById(R.id.list_root));
          mListView.setOnItemClickListener(this);
+         mListView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
+         // mListView.setMultiChoiceModeListener(listener);
          mListFooterView = inflater.inflate(R.layout.list_footer, null, false);
  
          mGridView = (GridViewWithHeaderAndFooter) (v.findViewById(R.id.grid_root));
          mGridView.setNumColumns(GridView.AUTO_FIT);
          mGridView.setOnItemClickListener(this);
+         mGridView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL);
+         // mGridView.setMultiChoiceModeListener(listener);
          mGridFooterView = inflater.inflate(R.layout.list_footer, null, false);
  
          if (savedInstanceState != null) {
  
          mCurrentListView = mListView;   // list as default
  
 +        fabMain = (FloatingActionsMenu) v.findViewById(R.id.fab_main);
 +        fabUpload = (FloatingActionButton) v.findViewById(R.id.fab_upload);
 +        fabMkdir = (FloatingActionButton) v.findViewById(R.id.fab_mkdir);
 +        fabUploadFromApp = (FloatingActionButton) v.findViewById(R.id.fab_upload_from_app);
 +
          return v;
      }
  
      }
  
      /**
 +     * Disables FAB.
 +     *
 +     * Sets the 'visibility' state of the FAB contained in the fragment.
 +     *
 +     * When 'false' is set, FAB visibility is set to View.GONE programatically,
 +     *
 +     * @param   enabled     Desired visibility for the FAB.
 +     */
 +    public void setFabEnabled(boolean enabled) {
 +        if(enabled) {
 +            fabMain.setVisibility(View.VISIBLE);
 +        } else {
 +            fabMain.setVisibility(View.GONE);
 +        }
 +    }
 +
 +    /**
       * Set message for empty list view
       */
      public void setMessageForEmptyList(String message) {
@@@ -24,23 -24,18 +24,24 @@@ package com.owncloud.android.ui.fragmen
  
  import android.app.Activity;
  import android.content.Intent;
 +import android.content.SharedPreferences;
 +import android.os.Build;
  import android.os.Bundle;
 +import android.preference.PreferenceManager;
  import android.support.v4.widget.SwipeRefreshLayout;
- import android.view.ContextMenu;
+ import android.view.ActionMode;
  import android.view.Menu;
  import android.view.MenuInflater;
  import android.view.MenuItem;
  import android.view.View;
+ import android.widget.AbsListView;
  import android.widget.AdapterView;
  import android.widget.AdapterView.AdapterContextMenuInfo;
  import android.widget.PopupMenu;
 +import android.widget.TextView;
 +import android.widget.Toast;
  
 +import com.owncloud.android.MainApp;
  import com.owncloud.android.R;
  import com.owncloud.android.authentication.AccountUtils;
  import com.owncloud.android.datamodel.FileDataStorageManager;
@@@ -52,28 -47,26 +53,30 @@@ import com.owncloud.android.ui.activity
  import com.owncloud.android.ui.activity.FileDisplayActivity;
  import com.owncloud.android.ui.activity.FolderPickerActivity;
  import com.owncloud.android.ui.activity.OnEnforceableRefreshListener;
 +import com.owncloud.android.ui.activity.UploadFilesActivity;
  import com.owncloud.android.ui.adapter.FileListListAdapter;
  import com.owncloud.android.ui.dialog.ConfirmationDialogFragment;
 +import com.owncloud.android.ui.dialog.CreateFolderDialogFragment;
  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.dialog.UploadSourceDialogFragment;
  import com.owncloud.android.ui.preview.PreviewImageFragment;
  import com.owncloud.android.ui.preview.PreviewMediaFragment;
 +import com.owncloud.android.utils.DisplayUtils;
  import com.owncloud.android.utils.FileStorageUtils;
  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();
  
  
      public final static String ARG_JUST_FOLDERS = MY_PACKAGE + ".JUST_FOLDERS";
      public final static String ARG_ALLOW_CONTEXTUAL_ACTIONS = MY_PACKAGE + ".ALLOW_CONTEXTUAL";
 +    public final static String ARG_HIDE_FAB = MY_PACKAGE + ".HIDE_FAB";
  
      private static final String KEY_FILE = MY_PACKAGE + ".extra.FILE";
 +    private static final String KEY_FAB_EVER_CLICKED = "FAB_EVER_CLICKED";
 +
 +    private static String DIALOG_CREATE_FOLDER = "DIALOG_CREATE_FOLDER";
  
      private FileFragment.ContainerActivity mContainerActivity;
  
      private OCFile mFile = null;
      private FileListListAdapter mAdapter;
      private boolean mJustFolders;
 +    
 +    private OCFile mTargetFile;
  
 +    private boolean miniFabClicked = false;
 +    
      /**
       * {@inheritDoc}
       */
          setListAdapter(mAdapter);
  
          registerLongClickListener();
 +
 +        boolean hideFab = (args != null) && args.getBoolean(ARG_HIDE_FAB, false);
 +        if (hideFab) {
 +            setFabEnabled(false);
 +        } else {
 +            setFabEnabled(true);
 +            registerFabListeners();
 +
 +            // detect if a mini FAB has ever been clicked
 +            final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
 +            if(prefs.getLong(KEY_FAB_EVER_CLICKED, 0) > 0) {
 +                miniFabClicked = true;
 +            }
 +
 +            // add labels to the min FABs when none of them has ever been clicked on
 +            if(!miniFabClicked) {
 +                setFabLabels();
 +            } else {
 +                removeFabLabels();
 +            }
 +        }
    }
  
 +    /**
 +     * adds labels to all mini FABs.
 +     */
 +    private void setFabLabels() {
 +        getFabUpload().setTitle(getResources().getString(R.string.actionbar_upload));
 +        getFabMkdir().setTitle(getResources().getString(R.string.actionbar_mkdir));
 +        getFabUploadFromApp().setTitle(getResources().getString(R.string.actionbar_upload_from_apps));
 +    }
 +
 +    /**
 +     * registers all listeners on all mini FABs.
 +     */
 +    private void registerFabListeners() {
 +        registerFabUploadListeners();
 +        registerFabMkDirListeners();
 +        registerFabUploadFromAppListeners();
 +    }
 +
 +    /**
 +     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
 +     * on the Upload mini FAB for the linked action and {@link Toast} showing the underlying action.
 +     */
 +    private void registerFabUploadListeners() {
 +        getFabUpload().setOnClickListener(new View.OnClickListener() {
 +            @Override
 +            public void onClick(View v) {
 +                Intent action = new Intent(getActivity(), UploadFilesActivity.class);
 +                action.putExtra(
 +                        UploadFilesActivity.EXTRA_ACCOUNT,
 +                        ((FileActivity) getActivity()).getAccount()
 +                );
 +                getActivity().startActivityForResult(action, UploadSourceDialogFragment.ACTION_SELECT_MULTIPLE_FILES);
 +                getFabMain().collapse();
 +                recordMiniFabClick();
 +            }
 +        });
 +
 +        getFabUpload().setOnLongClickListener(new View.OnLongClickListener() {
 +            @Override
 +            public boolean onLongClick(View v) {
 +                Toast.makeText(getActivity(), R.string.actionbar_upload, Toast.LENGTH_SHORT).show();
 +                return true;
 +            }
 +        });
 +    }
 +
 +    /**
 +     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
 +     * on the 'Create Dir' mini FAB for the linked action and {@link Toast} showing the underlying action.
 +     */
 +    private void registerFabMkDirListeners() {
 +        getFabMkdir().setOnClickListener(new View.OnClickListener() {
 +            @Override
 +            public void onClick(View v) {
 +                CreateFolderDialogFragment dialog =
 +                        CreateFolderDialogFragment.newInstance(mFile);
 +                dialog.show(getActivity().getSupportFragmentManager(), FileDisplayActivity.DIALOG_CREATE_FOLDER);
 +                getFabMain().collapse();
 +                recordMiniFabClick();
 +            }
 +        });
 +
 +        getFabMkdir().setOnLongClickListener(new View.OnLongClickListener() {
 +            @Override
 +            public boolean onLongClick(View v) {
 +                Toast.makeText(getActivity(), R.string.actionbar_mkdir, Toast.LENGTH_SHORT).show();
 +                return true;
 +            }
 +        });
 +    }
 +
 +    /**
 +     * registers {@link android.view.View.OnClickListener} and {@link android.view.View.OnLongClickListener}
 +     * on the Upload from App mini FAB for the linked action and {@link Toast} showing the underlying action.
 +     */
 +    private void registerFabUploadFromAppListeners() {
 +        getFabUploadFromApp().setOnClickListener(new View.OnClickListener() {
 +            @Override
 +            public void onClick(View v) {
 +                Intent action = new Intent(Intent.ACTION_GET_CONTENT);
 +                action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE);
 +
 +                //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+, Jelly Bean
 +                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
 +                    action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
 +                }
 +
 +                getActivity().startActivityForResult(
 +                        Intent.createChooser(action, getString(R.string.upload_chooser_title)),
 +                        UploadSourceDialogFragment.ACTION_SELECT_CONTENT_FROM_APPS
 +                );
 +                getFabMain().collapse();
 +                recordMiniFabClick();
 +            }
 +        });
 +
 +        getFabUploadFromApp().setOnLongClickListener(new View.OnLongClickListener() {
 +            @Override
 +            public boolean onLongClick(View v) {
 +                Toast.makeText(getActivity(),
 +                        R.string.actionbar_upload_from_apps,
 +                        Toast.LENGTH_SHORT).show();
 +                return true;
 +            }
 +        });
 +    }
 +
 +    /**
 +     * records a click on a mini FAB and thus:
 +     * <ol>
 +     *     <li>persists the click fact</li>
 +     *     <li>removes the mini FAB labels</li>
 +     * </ol>
 +     */
 +    private void recordMiniFabClick() {
 +        // only record if it hasn't been done already at some other time
 +        if(!miniFabClicked) {
 +            final SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
 +            sp.edit().putLong(KEY_FAB_EVER_CLICKED, 1).commit();
 +            miniFabClicked = true;
 +        }
 +    }
 +
 +    /**
 +     * removes the labels on all known min FABs.
 +     */
 +    private void removeFabLabels() {
 +        getFabUpload().setTitle(null);
 +        getFabMkdir().setTitle(null);
 +        getFabUploadFromApp().setTitle(null);
 +        ((TextView) getFabUpload().getTag(com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
 +        ((TextView) getFabMkdir().getTag(com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
 +        ((TextView) getFabUploadFromApp().getTag(com.getbase.floatingactionbutton.R.id.fab_label)).setVisibility(View.GONE);
 +    }
 +
      private void registerLongClickListener() {
-         getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
-             public boolean onItemLongClick(AdapterView<?> arg0, View v,
-                                            int index, long arg3) {
-                 showFileAction(index);
+         getListView().setMultiChoiceModeListener(new AbsListView.MultiChoiceModeListener() {
+             private Menu menu;
+             @Override
+             public void onItemCheckedStateChanged(ActionMode mode, int position, long id, boolean checked) {
+                 final int checkedCount = getListView().getCheckedItemCount();
+                 // TODO Tobi extract to values
+                 mode.setTitle(checkedCount + " selected");
+                 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) {
+                 this.menu = menu;
                  return true;
              }
+             @Override
+             public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+                 return false;
+             }
+             @Override
+             public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
+                 return onFileActionChosen(item.getItemId());
+             }
+             @Override
+             public void onDestroyActionMode(ActionMode mode) {
+                 mAdapter.removeSelection();
+             }
          });
      }
  
 -    // TODO Tobi needed?
++
      private void showFileAction(int fileIndex) {
          Bundle args = getArguments();
          PopupMenu pm = new PopupMenu(getActivity(),null);
  
      /**
       * Call this, when the user presses the up button.
 -     *
 -     * Tries to move up the current folder one level. If the parent folder was removed from the
 -     * database, it continues browsing up until finding an existing folders.
 -     * <p/>
 -     * return       Count of folder levels browsed up.
 +     * <p>
 +     *     Tries to move up the current folder one level. If the parent folder was removed from the
 +     *     database, it continues browsing up until finding an existing folders.
 +     * </p>
 +     * @return Count of folder levels browsed up.
       */
      public int onBrowseUp() {
          OCFile parentDir = null;
              }   // exit is granted because storageManager.getFileByPath("/") never returns null
              mFile = parentDir;
  
 -            // TODO Enable when "On Device" is recovered ?
 -            listDirectory(mFile /*, MainApp.getOnlyOnDevice()*/);
 +            listDirectory(mFile, MainApp.getOnlyOnDevice());
  
              onRefresh(false);
  
          if (file != null) {
              if (file.isFolder()) {
                  // update state and view of this fragment
 -                // TODO Enable when "On Device" is recovered ?
 -                listDirectory(file/*, MainApp.getOnlyOnDevice()*/);
 +                listDirectory(file, MainApp.getOnlyOnDevice());
                  // then, notify parent activity to let it update its state and view
                  mContainerActivity.onBrowsedDownTo(file);
                  // save index and top position
                      } else {
                          mContainerActivity.getFileOperationsHelper().openFile(file);
                      }
 -
 -                } else {
 -                    // automatic download, preview on finish
 -                    ((FileDisplayActivity) mContainerActivity).startDownloadForPreview(file);
 +                    
                  }
 -
              }
  
          } else {
      /**
       * {@inheritDoc}
       */
-     @Override
-     public void onCreateContextMenu(
-             ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
+     // TODO Tobi needed?
+     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(
                      item.setEnabled(false);
                  }
              }
 +
 +//            String.format(mContext.getString(R.string.subject_token),
 +//                    getClient().getCredentials().getUsername(), file.getFileName()));
          }
      }
  
-     /**
-      * {@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 {
      }
  
      /**
 -     * Calls {@link OCFileListFragment#listDirectory(OCFile)} with a null parameter
 +     * Calls {@link OCFileListFragment#listDirectory(OCFile, boolean)} with a null parameter
       */
 -    public void listDirectory(/*boolean onlyOnDevice*/){
 -        listDirectory(null);
 -        // TODO Enable when "On Device" is recovered ?
 -        // listDirectory(null, onlyOnDevice);
 +    public void listDirectory(boolean onlyOnDevice){
 +        listDirectory(null, onlyOnDevice);
      }
      
      public void refreshDirectory(){
 -        // TODO Enable when "On Device" is recovered ?
 -        listDirectory(getCurrentFile()/*, MainApp.getOnlyOnDevice()*/);
 +        listDirectory(getCurrentFile(), MainApp.getOnlyOnDevice());
      }
  
      /**
       *
       * @param directory File to be listed
       */
 -    public void listDirectory(OCFile directory/*, boolean onlyOnDevice*/) {
 +    public void listDirectory(OCFile directory, boolean onlyOnDevice) {
          FileDataStorageManager storageManager = mContainerActivity.getStorageManager();
          if (storageManager != null) {
  
                  directory = storageManager.getFileById(directory.getParentId());
              }
  
 -            // TODO Enable when "On Device" is recovered ?
 -            mAdapter.swapDirectory(directory, storageManager/*, onlyOnDevice*/);
 +            mAdapter.swapDirectory(directory, storageManager, onlyOnDevice);
              if (mFile == null || !mFile.equals(directory)) {
                  mCurrentListView.setSelection(0);
              }
              OwnCloudVersion version = AccountUtils.getServerVersion(
                      ((FileActivity)mContainerActivity).getAccount());
              if (version != null && version.supportsRemoteThumbnails() &&
 -                imagesCount > 0 && imagesCount == filesCount) {
 +                    DisplayUtils.isGridView(mFile, mContainerActivity.getStorageManager())) {
                  switchToGridView();
                  registerLongClickListener();
              } else {