-Subproject commit 99f8c869702a3261d9868207968700277e208507
+Subproject commit d7097983594347167b5bde3fa5b2b4ad1d843392
\r
<ImageView\r
android:id="@+id/imageView2"\r
- android:layout_width="32dp"\r
- android:layout_height="32dp"\r
+ android:layout_width="@dimen/file_icon_size"\r
+ android:layout_height="@dimen/file_icon_size"\r
android:layout_gravity="center_vertical"\r
android:layout_marginLeft="22dp"\r
android:src="@drawable/local_file_indicator" />\r
\r
<ImageView\r
android:id="@+id/imageView1"\r
- android:layout_width="32dp"\r
- android:layout_height="32dp"\r
+ android:layout_width="@dimen/file_icon_size"\r
+ android:layout_height="@dimen/file_icon_size"\r
android:layout_gravity="center_vertical"\r
android:layout_marginLeft="9dp"\r
android:src="@drawable/ic_menu_archive" />\r
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<menu xmlns:android="http://schemas.android.com/apk/res/android" >
+ <item
+ android:id="@+id/actionbar_select_all"
+ android:icon="@android:drawable/checkbox_off_background"
+ android:orderInCategory="1"
+ android:showAsAction="always"
+ android:title="actionbar_select_all"/>
+
+
+</menu>
<string name="prefs_recommend">Препоръчай на приятел</string>
<string name="prefs_feedback">Обратна Връзка</string>
<string name="prefs_imprint">Imprint</string>
+ <string name="prefs_remember_last_share_location">Запомни мястото за споделяне</string>
+ <string name="prefs_remember_last_upload_location_summary">Запомни мястото на последната споделена папка</string>
<string name="recommend_subject">Опитай %1$s на смартфона си!</string>
<string name="recommend_text">Бих желал да те поканя да ползваш %1$s на своя смартфон!\nИзтеглия я от тук:%2$s</string>
<string name="auth_check_server">Проверка на сървъра</string>
<string name="prefs_recommend">Doporučit přátelům</string>
<string name="prefs_feedback">Odezva</string>
<string name="prefs_imprint">Imprint</string>
+ <string name="prefs_remember_last_share_location">Zapamatovat umístění sdílení</string>
+ <string name="prefs_remember_last_upload_location_summary">Zapamatovat poslední umístění pro nahrání sdílených souborů</string>
<string name="recommend_subject">Zkuste %1$s na vašem smartphonu!</string>
<string name="recommend_text">Chtěl bych vás pozvat k používání %1$s na vašem chytrém telefonu!\nKe stažení zde: %2$s</string>
<string name="auth_check_server">Zkontrolovat server</string>
<string name="prefs_recommend">Anbefal til en ven</string>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">Imprint</string>
+ <string name="prefs_remember_last_share_location">Husk delt placering</string>
+ <string name="prefs_remember_last_upload_location_summary">Husk seneste delte placering for overførsel</string>
<string name="recommend_subject">Prøv %1$s på din smartphone!</string>
<string name="recommend_text">Jeg ønsker at invitere dig til at bruge %1$s på din smartphone!\nHent den her: %2$s</string>
<string name="auth_check_server">Tjek server</string>
<string name="prefs_recommend">Dieses einem Freund empfehlen</string>
<string name="prefs_feedback">Rückmeldungen</string>
<string name="prefs_imprint">Impressum</string>
+ <string name="prefs_remember_last_share_location">Geteilten Speicherort merken</string>
+ <string name="prefs_remember_last_upload_location_summary">Geteilten Upload-Speicherort merken</string>
<string name="recommend_subject">%1$s auf Ihrem Smartphone ausprobieren!</string>
<string name="recommend_text">Ich möchte Sie zum Benutzen von %1$s auf Ihrem Smartphone einladen!\nHier herunterladen: %2$s</string>
<string name="auth_check_server">Server überprüfen</string>
<string name="prefs_recommend">Empfehle dies einem Freund</string>
<string name="prefs_feedback">Rückmeldungen</string>
<string name="prefs_imprint">Impressum</string>
+ <string name="prefs_remember_last_share_location">Geteilten Speicherort merken</string>
+ <string name="prefs_remember_last_upload_location_summary">Geteilten Upload-Speicherort merken</string>
<string name="recommend_subject">Probiere %1$s auf Deinem Smartphone!</string>
<string name="recommend_text">Ich möchte Dich zum Benutzen von %1$s auf Deinem Smartphone einladen!\nLade es hier herunter: %2$s</string>
<string name="auth_check_server">Überprüfe den Server</string>
<string name="actionbar_settings">Ρυθμίσεις</string>
<string name="actionbar_see_details">Λεπτομέρειες</string>
<string name="actionbar_send_file">Αποστολή</string>
+ <string-array name="actionbar_sortby">
+ <item>A-Z</item>
+ <item>Νεότερο - Παλαιότερο</item>
+ </string-array>
<!--TODO re-enable when server-side folder size calculation is available
<item>Biggest - Smallest</item>-->
<string name="prefs_category_general">Γενικά</string>
<string name="prefs_recommend">Recommend to a friend</string>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">Imprint</string>
+ <string name="prefs_remember_last_share_location">Remember share location</string>
+ <string name="prefs_remember_last_upload_location_summary">Remember last share upload location</string>
<string name="recommend_subject">Try %1$s on your smartphone!</string>
<string name="recommend_text">I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s</string>
<string name="auth_check_server">Check Server</string>
<string name="prefs_recommend">Recomendar a un amigo</string>
<string name="prefs_feedback">Mensajes de retroalimentación</string>
<string name="prefs_imprint">pie de imprenta</string>
+ <string name="prefs_remember_last_share_location">Recordar la ubicación de los archivos compartidos</string>
+ <string name="prefs_remember_last_upload_location_summary">Recordar la ubicación de los últimos archivos compartidos subidos</string>
<string name="recommend_subject">Prueba %1$s en tu smarthphone!</string>
<string name="recommend_text">¡Quiero invitarle a usar %1$s en su smartphone!\nDescárguelo aquí: %2$s</string>
<string name="auth_check_server">Compruebe el servidor.</string>
<string name="actionbar_settings">Seaded</string>
<string name="actionbar_see_details">Üksikasjad</string>
<string name="actionbar_send_file">Saada</string>
+ <string name="actionbar_sort">Sorteeri</string>
+ <string name="actionbar_sort_title">Sorteeri</string>
+ <string-array name="actionbar_sortby">
+ <item>A-Z</item>
+ <item>Uuem - vanem</item>
+ </string-array>
<!--TODO re-enable when server-side folder size calculation is available
<item>Biggest - Smallest</item>-->
<string name="prefs_category_general">Üldine</string>
<string name="actionbar_settings">Ezarpenak</string>
<string name="actionbar_see_details">Xehetasunak</string>
<string name="actionbar_send_file">Bidali</string>
+ <string name="actionbar_sort">Ordenatu</string>
+ <string-array name="actionbar_sortby">
+ <item>A-Z</item>
+ <item>Berrienak - Zaharrenak</item>
+ </string-array>
<!--TODO re-enable when server-side folder size calculation is available
<item>Biggest - Smallest</item>-->
<string name="prefs_category_general">Orokorra</string>
<string name="preview_image_description">Irudi aurreikuspena</string>
<string name="preview_image_error_unknown_format">Ezin da irudi hau erakutsi</string>
<string name="error__upload__local_file_not_copied">%1$s ezin da %2$s karpeta lokalera kopiatu</string>
+ <string name="prefs_instant_upload_path_title">Igotzetarako Bidea</string>
<string name="share_link_no_support_share_api">Sentitzen dut, partekatzea ez dago zure zerbitzarian gaituta. Mesedez jarri harremanetan zure administratzailearekin.</string>
<string name="share_link_file_error">Errore bat egon da fitxategaia edo karpeta partekatzerakoan</string>
<string name="unshare_link_file_error">Errore bat egon da fitxategaia edo karpeta partekatzeari uzterakoan</string>
<string name="downloader_download_file_not_found">Fitxategia jadanik ez dago eskuragarri zerbitzarian</string>
<string name="prefs_category_accounts">Kontuak</string>
<string name="prefs_add_account">Gehitu kontua</string>
+ <string name="log_mail_subject">ownCloud Android programaren egunerokoak</string>
+ <string name="log_progress_dialog_text">Datuak kargatzen...</string>
<string name="saml_authentication_required_text">Autentikazioa beharrezkoa</string>
<string name="saml_authentication_wrong_pass">Pasahitz okerra</string>
+ <string name="actionbar_move">Mugitu</string>
<string name="move_choose_button_text">Aukeratu</string>
+ <string name="prefs_category_instant_uploading">Berehalako Igoerak</string>
<string name="prefs_category_security">Segurtasuna</string>
</resources>
<string name="prefs_help">Ohje</string>
<string name="prefs_recommend">Suosittele kaverille</string>
<string name="prefs_feedback">Palaute</string>
+ <string name="prefs_remember_last_share_location">Muista jaon sijainti</string>
+ <string name="prefs_remember_last_upload_location_summary">Muista viimeisin jaon lähetyssijainti</string>
<string name="recommend_subject">Kokeile %1$sia älypuhelimellasi!</string>
<string name="recommend_text">Kutsun sinut käyttämään %1$sia älypuhelimellasi!\nLataa se tästä: %2$s</string>
<string name="auth_check_server">Tarkista palvelin</string>
<string name="downloader_download_file_not_found">Tämä tiedosto ei ole enää palvelimella käytettävissä</string>
<string name="prefs_category_accounts">Tilit</string>
<string name="prefs_add_account">Lisää tili</string>
+ <string name="auth_redirect_non_secure_connection_title">Salattu yhteys on ohjattu uudelleen salaamatonta reittiä pitkin.</string>
<string name="actionbar_logger">Lokit</string>
<string name="log_send_history_button">Lähetä historia</string>
<string name="log_mail_subject">ownCloudin Android-sovelluksen lokit</string>
<string name="prefs_recommend">Recommander à un ami</string>
<string name="prefs_feedback">Commentaires</string>
<string name="prefs_imprint">Empreinte</string>
+ <string name="prefs_remember_last_share_location">Mémoriser l\'emplacement de partage</string>
+ <string name="prefs_remember_last_upload_location_summary">Mémoriser le dernier emplacement d\'upload</string>
<string name="recommend_subject">Essayez %1$s sur votre smartphone !</string>
<string name="recommend_text">J\'aimerais vous inviter à utiliser %1$s sur votre smartphone !
Téléchargez-le ici : %2$s</string>
<string name="upload_chooser_title">Téléverser un fichier depuis…</string>
<string name="uploader_info_dirname">Nom du dossier</string>
<string name="uploader_upload_in_progress_ticker">Téléversement…</string>
- <string name="uploader_upload_in_progress_content">Envoi du fichier %2$s en cours, %1$d%% effectués</string>
+ <string name="uploader_upload_in_progress_content">Envoi du fichier %2$s : %1$d%% effectués</string>
<string name="uploader_upload_succeeded_ticker">Téléversement réussi</string>
<string name="uploader_upload_succeeded_content_single">Le fichier %1$s a été envoyé avec succès</string>
<string name="uploader_upload_failed_ticker">Échec de l\'envoi</string>
<string name="foreign_files_success">Tous les fichiers ont été déplacés</string>
<string name="foreign_files_fail">Certains fichiers n\'ont pu être déplacés</string>
<string name="foreign_files_local_text">Local: %1$s</string>
- <string name="foreign_files_remote_text">Distant: %1$s</string>
+ <string name="foreign_files_remote_text">Distant : %1$s</string>
<string name="upload_query_move_foreign_files">Il n\'y a pas assez de place disponible pour copier les fichiers sélectionnés dans le dossier %1$s. Voulez-vous quand même les déplacer ?</string>
<string name="pincode_enter_pin_code">Veuillez saisir votre code de sécurité</string>
<string name="pincode_configure_your_pin">Veuillez saisir votre code de sécurité </string>
<string name="filename_forbidden_characters">Caractères interdits : / \\ < > : \" | ? *</string>
<string name="filename_empty">Le nom du fichier ne peut pas être vide</string>
<string name="wait_a_moment">Veuillez patienter</string>
- <string name="filedisplay_unexpected_bad_get_content">Problème inattendu ; veuillez essayer une autre app pour la sélection du fichier</string>
+ <string name="filedisplay_unexpected_bad_get_content">Problème inattendu. Veuillez essayer une autre app pour la sélection du fichier</string>
<string name="filedisplay_no_file_selected">Aucun fichier sélectionné</string>
<string name="activity_chooser_title">Envoyer un lien à…</string>
<string name="oauth_check_onoff">Connexion avec aAuth2.</string>
<string name="prefs_recommend">Rekomendasikan ke teman</string>
<string name="prefs_feedback">Umpan balik</string>
<string name="prefs_imprint">Jejak</string>
+ <string name="prefs_remember_last_share_location">Ingat lokasi berbagi</string>
+ <string name="prefs_remember_last_upload_location_summary">Ingat lokasi unggahan berbagi terakhir</string>
<string name="recommend_subject">Cobalah %1$s pada ponsel cerdas Anda!</string>
- <string name="recommend_text">Saya ingin mengajak Anda untuk menggunakan %1$s di ponsel cerdas Anda!\nUnduh gratis disini: %2$s</string>
+ <string name="recommend_text">Saya mengajak Anda untuk menggunakan %1$s di ponsel cerdas Anda!\nUnduh gratis disini: %2$s</string>
<string name="auth_check_server">Periksa Server</string>
<string name="auth_host_url">Alamat server https://…</string>
<string name="auth_username">Nama Pengguna</string>
<string name="sync_fail_in_favourites_content">Konten berkas %1$d tidak dapat disinkronasikan (%2$d konflik)</string>
<string name="sync_foreign_files_forgotten_ticker">Beberapa berkas lokal terlupakan</string>
<string name="sync_foreign_files_forgotten_content">%1$d berkas diluar folder %2$s tidak dapat disalin kedalamnya</string>
- <string name="sync_foreign_files_forgotten_explanation">Sejak versi 1.3.16, berkas-berkas yang diunggah dari piranti ini akan disalin kedalam folder %1$s lokal untuk mencagah kehilangan data ketika berkas tunggal disinkronkan dengan akun lebih dari satu.\n\nAkibat perubahan ini, semua berkas yang diunggah di versi aplikasi sebelumnya disalin kedalam folder %2$s. Namun, sebuah kesalahan mencegah penyelesaian operasi ini saat sinkronisasi berlangsung akun. Anda boleh meninggalkan berkas seperti ini dan menghapus tautan ke %3$s atau memindahkan berkas kedalam folder %1$s dan membiarkan tautan ke %4$s.\n\nYang tampak dibawah adalah berkas lokal, dan berkas remote didalam %5$s yang dihubungkan dengannya.</string>
+ <string name="sync_foreign_files_forgotten_explanation">Sejak versi 1.3.16, berkas-berkas yang diunggah dari piranti ini akan disalin kedalam folder %1$s lokal untuk mencagah kehilangan data saat berkas tunggal disinkronkan dengan akun lebih dari satu.\n\nAkibat perubahan ini, semua berkas yang diunggah di versi aplikasi sebelumnya disalin kedalam folder %2$s. Namun, sebuah kesalahan mencegah penyelesaian operasi ini saat sinkronisasi akun. Anda boleh meninggalkan berkas seperti ini dan menghapus tautan ke %3$s atau memindahkan berkas kedalam folder %1$s dan membiarkan tautan ke %4$s.\n\nYang tampak dibawah adalah berkas lokal, dan berkas remote didalam %5$s yang dihubungkan dengannya.</string>
<string name="sync_current_folder_was_removed">Folder %1$s tidak ada lagi</string>
<string name="foreign_files_move">Pindahkan semua</string>
<string name="foreign_files_success">Semua berkas sudah dipindahkan</string>
<string name="ssl_validator_label_signature">Tanda tangan:</string>
<string name="ssl_validator_label_signature_algorithm">Algoritma:</string>
<string name="ssl_validator_null_cert">Sertifikat tidak dapat ditampilkan.</string>
- <string name="ssl_validator_no_info_about_error">- Tidak ada informasi tantang terror</string>
+ <string name="ssl_validator_no_info_about_error">- Tidak ada informasi tantang error</string>
<string name="placeholder_sentence">Ini adalah placeholder</string>
<string name="placeholder_filename">placeholder.txt</string>
<string name="placeholder_filetype">Gambar PNG</string>
<string name="prefs_recommend">Consiglia ad un amico</string>
<string name="prefs_feedback">Segnalazioni</string>
<string name="prefs_imprint">Imprint</string>
+ <string name="prefs_remember_last_share_location">Ricorda la posizione della condivisione</string>
+ <string name="prefs_remember_last_upload_location_summary">Ricorda l\'ultima posizione di caricamento della condivisione</string>
<string name="recommend_subject">Prova %1$s sul tuo smartphone!</string>
<string name="recommend_text">Vorrei invitarti a usare %1$s sul tuo smartphone!\nScarica qui: %2$s</string>
<string name="auth_check_server">Verifica server</string>
<string name="actionbar_send_file">送信</string>
<string name="actionbar_sort">ソート</string>
<string name="actionbar_sort_title">ソート: </string>
+ <string-array name="actionbar_sortby">
+ <item>A-Z</item>
+ <item>最新 - 最古</item>
+ </string-array>
<!--TODO re-enable when server-side folder size calculation is available
<item>Biggest - Smallest</item>-->
<string name="prefs_category_general">一般</string>
<string name="prefs_recommend">友達に推薦</string>
<string name="prefs_feedback">フィードバック</string>
<string name="prefs_imprint">インプリント</string>
+ <string name="prefs_remember_last_share_location">共有場所を記憶する</string>
+ <string name="prefs_remember_last_upload_location_summary">最後に共有アップロードした場所を記憶する</string>
<string name="recommend_subject">スマートフォンで %1$s を試してください!</string>
<string name="recommend_text">スマートフォンで %1$s を利用してみませんか!
ここからダウンロードしてください: %2$s</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="prefs_instant_upload_path_title">アップロードパス</string>
<string name="share_link_no_support_share_api">申し訳ございません。共有がサーバー上で有効になっていません。 管理者に
ご連絡ください。</string>
<string name="share_link_file_no_exist">共有できません。ファイルがあるか確認してください。</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_mail_subject">ownCloud Android アプリログ</string>
<string name="move_file_invalid_overwrite">そのファイルは、宛先フォルダに既に存在しています。</string>
<string name="move_file_error">このファイルまたはフォルダーを移動する際にエラーが発生しました</string>
<string name="forbidden_permissions_move">このファイルを移動</string>
+ <string name="prefs_category_instant_uploading">自動アップロード</string>
<string name="prefs_category_security">セキュリティ</string>
</resources>
<string name="prefs_recommend">Aanbevelen bij een vriend</string>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">afdruk</string>
+ <string name="prefs_remember_last_share_location">Onthoud de share locatie</string>
+ <string name="prefs_remember_last_upload_location_summary">Onthoud de laatste upload locatie</string>
<string name="recommend_subject">Probeer %1$s op uw smartphone!</string>
<string name="recommend_text">Uitnodiging om %1$s op uw smartphone uit te proberen!
Download hier: %2$s</string>
<string name="filedetails_modified">Aangepast:</string>
<string name="filedetails_download">Download</string>
<string name="filedetails_sync_file">Bestand verversen</string>
- <string name="filedetails_renamed_in_upload_msg">Bestand was hernoemt naar %1$s tijdens het uploaden</string>
+ <string name="filedetails_renamed_in_upload_msg">Bestand is tijdens het uploaden hernoemd naar %1$s</string>
<string name="action_share_file">Deel link</string>
<string name="action_unshare_file">Link niet meer delen</string>
<string name="common_yes">Ja</string>
Door deze aanpassing werden alle bestanden die met een eerdere versie zijn ge-uploaded gekopieerd naar de %2$s map. Maar een fout voorkwam het succesvol afronden van deze actie tijdens het synchroniseren. U kunt de/het bestand(en) laten staan zoals ze nu zijn en de link naar %3$s verwijderen, of u kunt de bestanden verplaatsen naar de %1$s map en de link naar %4$s laten staan.
Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar verwezen.</string>
<string name="sync_current_folder_was_removed">Map %1$s bestaat niet meer</string>
- <string name="foreign_files_move">Alle verplaatsen</string>
+ <string name="foreign_files_move">Alles verplaatsen</string>
<string name="foreign_files_success">Alle bestanden zijn verplaatst</string>
<string name="foreign_files_fail">Een paar bestanden konden niet worden verplaatst</string>
<string name="foreign_files_local_text">Lokaal: %1$s</string>
<string name="prefs_recommend">Recomendar a um amigo</string>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">Imprint</string>
+ <string name="prefs_remember_last_share_location">Lembre-se do local de compartilhamento</string>
+ <string name="prefs_remember_last_upload_location_summary">Lembrar do último local de envio de compartilhamento</string>
<string name="recommend_subject">Tentar %1$s em seu smartfone!</string>
<string name="recommend_text">Gostaria de convida-lo a usar %1$s em seu smartphone!\nBaixe aqui: %2$s</string>
<string name="auth_check_server">Verificar Servidor</string>
<resources>
<string name="about_android">%1$s Aplicação(ões) Android</string>
<string name="about_version">versão %1$s</string>
- <string name="actionbar_sync">Actualizar</string>
+ <string name="actionbar_sync">Atualizar conta</string>
<string name="actionbar_upload">Enviar</string>
- <string name="actionbar_upload_from_apps">Conteúdo das outras apps</string>
+ <string name="actionbar_upload_from_apps">Conteúdo de outras apps</string>
<string name="actionbar_upload_files">Ficheiros</string>
<string name="actionbar_open_with">Abrir com</string>
<string name="actionbar_mkdir">Nova Pasta</string>
<string name="prefs_category_general">Geral</string>
<string name="prefs_category_more">Mais</string>
<string name="prefs_accounts">Contas</string>
- <string name="prefs_manage_accounts">Gerir contas</string>
- <string name="prefs_pincode">App PIN</string>
+ <string name="prefs_manage_accounts">Gerir Contas</string>
+ <string name="prefs_pincode">PIN da App</string>
<string name="prefs_pincode_summary">Proteja o seu cliente</string>
- <string name="prefs_instant_upload">Transferência instantânea de imagens</string>
- <string name="prefs_instant_upload_summary">Transferência instantânea de imagens tiradas com câmara</string>
+ <string name="prefs_instant_upload">Envios instantâneos de imagens</string>
+ <string name="prefs_instant_upload_summary">Envio instantâneo de imagens tiradas com a câmara</string>
<string name="prefs_instant_video_upload">Envios instantâneos dos vídeos</string>
- <string name="prefs_instant_video_upload_summary">Carregamento instantâneo de vídeos registados com a camera </string>
- <string name="prefs_log_title">Ativar Rastreio</string>
- <string name="prefs_log_summary">Isto é usado para registar problemas</string>
- <string name="prefs_log_title_history">Historico do rastreio</string>
+ <string name="prefs_instant_video_upload_summary">Envio instantâneo de vídeos gravados com a câmara </string>
+ <string name="prefs_log_title">Ativar Registo de Eventos</string>
+ <string name="prefs_log_summary">Isto é utilizado para registar problemas</string>
+ <string name="prefs_log_title_history">Histórico dos Registos</string>
<string name="prefs_log_summary_history">Isto mostra os registos guardados</string>
- <string name="prefs_log_delete_history_button">Eliminar Histórico</string>
+ <string name="prefs_log_delete_history_button">Apagar Histórico</string>
<string name="prefs_help">Ajuda</string>
<string name="prefs_recommend">Recomendar a um amigo</string>
- <string name="prefs_feedback">Resposta</string>
+ <string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">Imprint</string>
+ <string name="prefs_remember_last_share_location">Lembrar localização de partilha</string>
+ <string name="prefs_remember_last_upload_location_summary">Lembrar da última localização de envio de partilha</string>
<string name="recommend_subject">Experimente %1$s no seu smartphone!</string>
<string name="recommend_text">Quero convidar-te a usares %1$s no teu smartphone!\nFaz download aqui: %2$s</string>
<string name="auth_check_server">Verificar Servidor</string>
<string name="uploader_error_forbidden_content">O %1$s não está autorizado a aceder aos ficheiro partilhados.</string>
<string name="uploader_info_uploading">A enviar</string>
<string name="file_list_empty">Vazio. Envie alguma coisa!</string>
- <string name="file_list_loading">A carregar...</string>
+ <string name="file_list_loading">A carregar ...</string>
<string name="local_file_list_empty">Não existem ficheiros nesta pasta.</string>
<string name="filedetails_select_file">Clique no ficheiro para visualizar informação adicional.</string>
<string name="filedetails_size">Tamanho:</string>
<string name="filedetails_type">Tipo:</string>
<string name="filedetails_created">Criado:</string>
<string name="filedetails_modified">Modificado:</string>
- <string name="filedetails_download">Descarregar</string>
+ <string name="filedetails_download">Transferir</string>
<string name="filedetails_sync_file">Atualizar ficheiro</string>
<string name="filedetails_renamed_in_upload_msg">O nome do ficheiro foi alterado para %1$s durante o envio.</string>
- <string name="action_share_file">Partilhar o link</string>
+ <string name="action_share_file">Partilhar a hiperligação</string>
<string name="action_unshare_file">Deixar de partilhar a ligação</string>
<string name="common_yes">Sim</string>
<string name="common_no">Não</string>
<string name="common_ok">OK</string>
<string name="common_cancel_download">Cancelar a transferência</string>
- <string name="common_cancel_upload">Cancelar envio</string>
+ <string name="common_cancel_upload">Cancelar o envio</string>
<string name="common_cancel">Cancelar</string>
<string name="common_save_exit">Guardar & Sair</string>
<string name="common_error">Erro</string>
- <string name="common_loading">A carregar...</string>
+ <string name="common_loading">A carregar ...</string>
<string name="common_error_unknown">Erro Desconhecido</string>
<string name="about_title">Sobre</string>
- <string name="change_password">Alterar palavra-chave</string>
+ <string name="change_password">Alterar senha</string>
<string name="delete_account">Apagar conta</string>
<string name="create_account">Criar conta</string>
- <string name="upload_chooser_title">Carregar de...</string>
+ <string name="upload_chooser_title">Enviar de ...</string>
<string name="uploader_info_dirname">Nome da pasta</string>
- <string name="uploader_upload_in_progress_ticker">A carregar...</string>
+ <string name="uploader_upload_in_progress_ticker">A enviar ...</string>
<string name="uploader_upload_in_progress_content">A enviar %1$d%% , %2$s completo.</string>
<string name="uploader_upload_succeeded_ticker">Carregado com sucesso</string>
<string name="uploader_upload_succeeded_content_single">%1$s foi carregado com sucesso</string>
<string name="uploader_upload_failed_ticker">Carregamento falhou</string>
<string name="uploader_upload_failed_content_single">O envio do ficheiro %1$s não foi concluído.</string>
<string name="uploader_upload_failed_credentials_error">Falha no carregamento, é necessário fazer novo login</string>
- <string name="downloader_download_in_progress_ticker">A descarregar...</string>
+ <string name="downloader_download_in_progress_ticker">A transferir ...</string>
<string name="downloader_download_in_progress_content">%1$d%% A decarregar %2$s</string>
<string name="downloader_download_succeeded_ticker">Descarga com sucesso</string>
<string name="downloader_download_succeeded_content">%1$s foi descarregado com sucesso</string>
<string name="sync_fail_ticker">Falhou a sincronização</string>
<string name="sync_fail_ticker_unauthorized">Falhou a sincronização, necessita fazer um novo login</string>
<string name="sync_fail_content">Não foi possível sincronizar %1$s</string>
- <string name="sync_fail_content_unauthorized">Password inválida para %1$s</string>
+ <string name="sync_fail_content_unauthorized">Senha inválida para %1$s</string>
<string name="sync_conflicts_in_favourites_ticker">Foram encontrados conflitos</string>
<string name="sync_conflicts_in_favourites_content">Não foi possível sincronizar o ficheiro %1$d</string>
<string name="sync_fail_in_favourites_ticker">Falhou a operação de manter os ficheiros sincronizados</string>
<string name="actionbar_settings">Setări</string>
<string name="actionbar_see_details">Detalii</string>
<string name="actionbar_send_file">Expediază</string>
+ <string name="actionbar_sort">Sortare</string>
+ <string name="actionbar_sort_title">Sortare după</string>
<!--TODO re-enable when server-side folder size calculation is available
<item>Biggest - Smallest</item>-->
<string name="prefs_category_general">General</string>
<string name="uploader_upload_forbidden_permissions">pentru a încărca în acest folder</string>
<string name="downloader_download_file_not_found">Fișierul nu mai este disponibil pe server</string>
<string name="prefs_category_accounts">Conturi</string>
+ <string name="prefs_add_account">Adaugă cont</string>
+ <string name="log_progress_dialog_text">Se încarcă datele...</string>
+ <string name="saml_authentication_required_text">Autentificare necesară</string>
<string name="saml_authentication_wrong_pass">Parolă greșită</string>
+ <string name="actionbar_move">Mutare</string>
+ <string name="file_list_empty_moving">Nu este nimic aici. Poți adăuga un director!</string>
<string name="move_choose_button_text">Alege</string>
+ <string name="forbidden_permissions_move">pentru a muta acest fișier</string>
<string name="prefs_category_security">Securitate</string>
</resources>
<string name="actionbar_settings">Настройки</string>
<string name="actionbar_see_details">Подробно</string>
<string name="actionbar_send_file">Отправить</string>
+ <string name="actionbar_sort">Упорядочить</string>
+ <string name="actionbar_sort_title">Упорядочить по</string>
+ <string-array name="actionbar_sortby">
+ <item>А-Я</item>
+ <item>Новые - Старые</item>
+ </string-array>
<!--TODO re-enable when server-side folder size calculation is available
<item>Biggest - Smallest</item>-->
<string name="prefs_category_general">Основные</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="prefs_instant_upload_path_title">Путь для загрузки</string>
<string name="share_link_no_support_share_api">К сожалению, на вашем сервере отключен совместный доступ. Пожалуйста, свяжитесь с вашим администратором.</string>
<string name="share_link_file_no_exist">Невозможно добавить в общий доступ. Пожалуйста, проверьте, существует ли файл</string>
<string name="share_link_file_error">Ошибка предоставления общего доступа к этому файлу или каталогу</string>
<string name="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_mail_subject">Журналы Андроид-приложения ownCloud</string>
<string name="move_file_invalid_overwrite">Файл уже существует в папке назначения</string>
<string name="move_file_error">Произошла ошибка при попытке перемещения этого файла или папки</string>
<string name="forbidden_permissions_move">переместить этот файл</string>
+ <string name="prefs_category_instant_uploading">Мгновенные загрузки</string>
<string name="prefs_category_security">Безопасность</string>
</resources>
<string name="prefs_recommend">Priporoči prijateljem</string>
<string name="prefs_feedback">Odziv</string>
<string name="prefs_imprint">Natis</string>
+ <string name="prefs_remember_last_share_location">Zapomni si mesto souporabe</string>
+ <string name="prefs_remember_last_upload_location_summary">Zapomni si zadnje mesto za pošiljanje v oblak</string>
<string name="recommend_subject">Preizkusi %1$s na pametnem telefonu!</string>
<string name="recommend_text">Želim ti predstaviti %1$s na pametnem telefonu!\nPrejmeš ga lahko na: %2$s</string>
<string name="auth_check_server">Preveri strežnik</string>
<string name="prefs_recommend">Bir arkadaşa öner</string>
<string name="prefs_feedback">Geribildirim</string>
<string name="prefs_imprint">İzlenim</string>
+ <string name="prefs_remember_last_share_location">Konum paylaşmayı hatırla</string>
+ <string name="prefs_remember_last_upload_location_summary">Son paylaşma yükleme konumunu hatırla</string>
<string name="recommend_subject">%1$s uygulamasını akıllı telefonunda dene!</string>
<string name="recommend_text">Seni, akıllı telefonunda %1$s kullanmaya davet ediyorum!\nBuradan indirebilirsin: %2$s</string>
<string name="auth_check_server">Sunucuyu Denetle</string>
--- /dev/null
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ownCloud Android client application
+
+ Copyright (C) 2014 ownCloud Inc.
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License version 2,
+ as published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>.
+-->
+<resources>
+ <dimen name="file_icon_size">32dp</dimen>
+</resources>
<string name="prefs_recommend">Recommend to a friend</string>
<string name="prefs_feedback">Feedback</string>
<string name="prefs_imprint">Imprint</string>
-
+ <string name="prefs_remember_last_share_location">Remember share location</string>
+ <string name="prefs_remember_last_upload_location_summary">Remember last share upload location</string>
+
<string name="recommend_subject">"Try %1$s on your smartphone!"</string>
<string name="recommend_text">"I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s"</string>
<string name="network_error_socket_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
<string name="network_error_connect_timeout_exception">An error occurred while waiting for the server, the operation couldn\'t have been done</string>
<string name="network_host_not_available">The operation couldn\'t be completed, server is unavailable</string>
+
<string name="empty"></string>
<string name="forbidden_permissions">You do not have permission %s</string>
<string name="prefs_category_instant_uploading">Instant Uploads</string>
<string name="prefs_category_security">Security</string>
-
</resources>
} else {
OwnCloudClientManagerFactory.setDefaultPolicy(Policy.ALWAYS_NEW_CLIENT);
}
-
+
// initialise thumbnails cache on background thread
new ThumbnailsCacheManager.InitDiskCacheTask().execute();
cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
+ cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail());
boolean existsByPath = fileExists(file.getRemotePath());
if (existsByPath || fileExists(file.getFileId())) {
import java.io.File;
import java.lang.ref.WeakReference;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.GetMethod;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
import android.content.res.Resources;
import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
import android.graphics.Bitmap.CompressFormat;
+import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.media.ThumbnailUtils;
+import android.net.Uri;
import android.os.AsyncTask;
-import android.util.TypedValue;
import android.widget.ImageView;
import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+import com.owncloud.android.lib.common.OwnCloudAccount;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
+import com.owncloud.android.lib.common.accounts.AccountUtils.Constants;
import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.status.OwnCloudVersion;
import com.owncloud.android.ui.adapter.DiskLruImageCache;
import com.owncloud.android.utils.BitmapUtils;
import com.owncloud.android.utils.DisplayUtils;
private static final String TAG = ThumbnailsCacheManager.class.getSimpleName();
- private static final String CACHE_FOLDER = "thumbnailCache";
+ private static final String CACHE_FOLDER = "thumbnailCache";
+ private static final String MINOR_SERVER_VERSION_FOR_THUMBS = "7.8.0";
private static final Object mThumbnailsDiskCacheLock = new Object();
private static DiskLruImageCache mThumbnailCache = null;
private static final int DISK_CACHE_SIZE = 1024 * 1024 * 10; // 10MB
private static final CompressFormat mCompressFormat = CompressFormat.JPEG;
private static final int mCompressQuality = 70;
-
+ private static OwnCloudClient mClient = null;
+ private static String mServerVersion = null;
+
public static Bitmap mDefaultImg =
BitmapFactory.decodeResource(
MainApp.getAppContext().getResources(),
public static class InitDiskCacheTask extends AsyncTask<File, Void, Void> {
+
@Override
protected Void doInBackground(File... params) {
synchronized (mThumbnailsDiskCacheLock) {
mThumbnailCacheStarting = true;
+
if (mThumbnailCache == null) {
try {
// Check if media is mounted or storage is built-in, if so,
public static class ThumbnailGenerationTask extends AsyncTask<OCFile, Void, Bitmap> {
private final WeakReference<ImageView> mImageViewReference;
+ private static Account mAccount;
private OCFile mFile;
private FileDataStorageManager mStorageManager;
- public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager) {
+ public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager, Account account) {
// Use a WeakReference to ensure the ImageView can be garbage collected
mImageViewReference = new WeakReference<ImageView>(imageView);
if (storageManager == null)
throw new IllegalArgumentException("storageManager must not be NULL");
mStorageManager = storageManager;
+ mAccount = account;
}
// Decode image in background.
Bitmap thumbnail = null;
try {
+ if (mAccount != null) {
+ AccountManager accountMgr = AccountManager.get(MainApp.getAppContext());
+
+ mServerVersion = accountMgr.getUserData(mAccount, Constants.KEY_OC_VERSION);
+ OwnCloudAccount ocAccount = new OwnCloudAccount(mAccount, MainApp.getAppContext());
+ mClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+ getClientFor(ocAccount, MainApp.getAppContext());
+ }
+
mFile = params[0];
final String imageKey = String.valueOf(mFile.getRemoteId());
if (thumbnail == null || mFile.needsUpdateThumbnail()) {
// Converts dp to pixel
Resources r = MainApp.getAppContext().getResources();
- int px = (int) Math.round(TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_DIP, 150, r.getDisplayMetrics()
- ));
+
+ int px = (int) Math.round(r.getDimension(R.dimen.file_icon_size));
if (mFile.isDown()){
Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromFile(
mStorageManager.saveFile(mFile);
}
+ } else {
+ // Download thumbnail from server
+ if (mClient != null && mServerVersion != null) {
+ OwnCloudVersion serverOCVersion = new OwnCloudVersion(mServerVersion);
+ if (serverOCVersion.compareTo(new OwnCloudVersion(MINOR_SERVER_VERSION_FOR_THUMBS)) >= 0) {
+ try {
+ int status = -1;
+
+ String uri = mClient.getBaseUri() + "/index.php/apps/files/api/v1/thumbnail/" +
+ px + "/" + px + Uri.encode(mFile.getRemotePath(), "/");
+ Log_OC.d("Thumbnail", "URI: " + uri);
+ GetMethod get = new GetMethod(uri);
+ status = mClient.executeMethod(get);
+ if (status == HttpStatus.SC_OK) {
+ byte[] bytes = get.getResponseBody();
+ Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
+ thumbnail = ThumbnailUtils.extractThumbnail(bitmap, px, px);
+
+ // Add thumbnail to cache
+ if (thumbnail != null) {
+ addBitmapToCache(imageKey, thumbnail);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {
+ Log_OC.d(TAG, "Server too old");
+ }
+ }
}
}
import android.accounts.Account;
import android.content.Context;
import android.content.Intent;
+import android.util.Log;
//import android.support.v4.content.LocalBroadcastManager;
import com.owncloud.android.datamodel.FileDataStorageManager;
private void synchronizeData(ArrayList<Object> folderAndFiles, OwnCloudClient client) {
// get 'fresh data' from the database
mLocalFolder = mStorageManager.getFileByPath(mLocalFolder.getRemotePath());
-
+
// parse data from remote folder
OCFile remoteFolder = fillOCFile((RemoteFile)folderAndFiles.get(0));
remoteFolder.setParentId(mLocalFolder.getParentId());
if (remoteFile.isFolder()) {
remoteFile.setFileLength(localFile.getFileLength());
// TODO move operations about size of folders to FileContentProvider
+ } else if (mRemoteFolderChanged && remoteFile.isImage() &&
+ remoteFile.getModificationTimestamp() != localFile.getModificationTimestamp()) {
+ remoteFile.setNeedsUpdateThumbnail(true);
+ Log.d(TAG, "Image " + remoteFile.getFileName() + " updated on the server");
}
remoteFile.setPublicLink(localFile.getPublicLink());
remoteFile.setShareByLink(localFile.isShareByLink());
} else if (item == 1) {
Intent action = new Intent(Intent.ACTION_GET_CONTENT);
action = action.setType("*/*").addCategory(Intent.CATEGORY_OPENABLE);
- //putExtra is only supported on api level 18+
+ //Intent.EXTRA_ALLOW_MULTIPLE is only supported on api level 18+
if(Build.VERSION.SDK_INT >= 18) {
action.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
}
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.OnNavigationListener;
+import com.actionbarsherlock.internal.view.menu.ActionMenuItemView;
+import com.actionbarsherlock.view.Menu;
+import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.MenuItem;
import com.owncloud.android.R;
import com.owncloud.android.lib.common.utils.Log_OC;
private static final String WAIT_DIALOG_TAG = "WAIT";
private static final String QUERY_TO_MOVE_DIALOG_TAG = "QUERY_TO_MOVE";
+ private boolean selectAllToggled = false;
+ private Menu menu;
@Override
public void onCreate(Bundle savedInstanceState) {
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
actionBar.setListNavigationCallbacks(mDirectories, this);
+
// wait dialog
if (mCurrentDialog != null) {
mCurrentDialog.dismiss();
Log_OC.d(TAG, "onCreate() end");
}
-
-
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Inflate the menu items for use in the action bar
+ MenuInflater inflater = getSherlock().getMenuInflater();
+ inflater.inflate(R.menu.file_select_all, menu);
+ this.menu = menu;
+ return true;
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
boolean retval = true;
}
break;
}
+ case R.id.actionbar_select_all:{
+ if(selectAllToggled){
+ toggleOffSelectAll();
+ }else{
+ toggleOnSelectAll(item);
+ }
+ break;
+ }
default:
retval = super.onOptionsItemSelected(item);
}
return retval;
}
-
+ public void toggleOffSelectAll(MenuItem item){
+ selectAllToggled = false;
+ item.setIcon(android.R.drawable.checkbox_off_background);
+ mFileListFragment.deselectAll();
+ }
+ public void toggleOffSelectAll(){
+ MenuItem item = menu.findItem(R.id.actionbar_select_all);
+ toggleOffSelectAll(item);
+ }
+ public void toggleOnSelectAll(MenuItem item){
+ selectAllToggled = true;
+ item.setIcon(android.R.drawable.checkbox_on_background);
+ mFileListFragment.selectAll();
+ }
@Override
public boolean onNavigationItemSelected(int itemPosition, long itemId) {
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(false);
}
+ toggleOffSelectAll();
}
* {@inheritDoc}
*/
@Override
- public void onDirectoryClick(File directory) {
+ public void onDirectoryClick(File directory) {
pushDirname(directory);
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
+ toggleOffSelectAll();
}
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.Dialog;
-import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
+import android.preference.PreferenceManager;
import android.provider.MediaStore.Audio;
import android.provider.MediaStore.Images;
import android.provider.MediaStore.Video;
import android.view.View;
-import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.SimpleAdapter;
import android.widget.Toast;
+import com.actionbarsherlock.app.ActionBar;
+import com.actionbarsherlock.app.SherlockListActivity;
+import com.actionbarsherlock.view.MenuItem;
+import com.owncloud.android.utils.DisplayUtils;
/**
* This can be used to upload things to an ownCloud instance.
* @author Bartek Przybylski
*
*/
-public class Uploader extends ListActivity implements OnItemClickListener, android.view.View.OnClickListener {
+public class Uploader extends SherlockListActivity implements OnItemClickListener, android.view.View.OnClickListener {
private static final String TAG = "ownCloudUploader";
private Account mAccount;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- getWindow().requestFeature(Window.FEATURE_NO_TITLE);
mParents = new Stack<String>();
- mParents.add("");
+
+ ActionBar actionBar = getSupportActionBar();
+ actionBar.setIcon(DisplayUtils.getSeasonalIconId());
+
if (prepareStreamsToUpload()) {
mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE);
Account[] accounts = mAccountManager.getAccountsByType(MainApp.getAccountType());
} else {
mAccount = accounts[0];
mStorageManager = new FileDataStorageManager(mAccount, getContentResolver());
+ initTargetFolder();
populateDirectoryList();
+
}
+
} else {
showDialog(DIALOG_NO_STREAM);
}
public void onClick(DialogInterface dialog, int which) {
mAccount = mAccountManager.getAccountsByType(MainApp.getAccountType())[which];
mStorageManager = new FileDataStorageManager(mAccount, getContentResolver());
+ initTargetFolder();
populateDirectoryList();
}
});
private void populateDirectoryList() {
setContentView(R.layout.uploader_layout);
- String full_path = "";
- for (String a : mParents)
- full_path += a + "/";
+ String current_dir = mParents.peek();
+ if(current_dir.equals("")){
+ getSupportActionBar().setTitle(getString(R.string.default_display_name_for_root_folder));
+ }
+ else{
+ getSupportActionBar().setTitle(current_dir);
+ }
+ boolean notRoot = (mParents.size() > 1);
+ ActionBar actionBar = getSupportActionBar();
+ actionBar.setDisplayHomeAsUpEnabled(notRoot);
+ actionBar.setHomeButtonEnabled(notRoot);
+
+ String full_path = generatePath(mParents);
Log_OC.d(TAG, "Populating view with content of : " + full_path);
-
+
mFile = mStorageManager.getFileByPath(full_path);
if (mFile != null) {
Vector<OCFile> files = mStorageManager.getFolderContent(mFile);
}
}
+ private String generatePath(Stack<String> dirs) {
+ String full_path = "";
+
+ for (String a : dirs)
+ full_path += a + "/";
+ return full_path;
+ }
+
private boolean prepareStreamsToUpload() {
if (getIntent().getAction().equals(Intent.ACTION_SEND)) {
mStreamsToUpload = new ArrayList<Parcelable>();
intent.putExtra(FileUploader.KEY_REMOTE_FILE, remote.toArray(new String[remote.size()]));
intent.putExtra(FileUploader.KEY_ACCOUNT, mAccount);
startService(intent);
+
+ //Save the path to shared preferences
+ SharedPreferences.Editor appPrefs = PreferenceManager
+ .getDefaultSharedPreferences(getApplicationContext()).edit();
+ appPrefs.putString("last_upload_path", mUploadPath);
+ appPrefs.apply();
+
finish();
}
Toast.makeText(this, message, Toast.LENGTH_LONG).show();
}
}
+
+ /**
+ * Loads the target folder initialize shown to the user.
+ *
+ * The target account has to be chosen before this method is called.
+ */
+ private void initTargetFolder() {
+ if (mStorageManager == null) {
+ throw new IllegalStateException("Do not call this method before initializing mStorageManager");
+ }
+
+ SharedPreferences appPreferences = PreferenceManager
+ .getDefaultSharedPreferences(getApplicationContext());
+
+ String last_path = appPreferences.getString("last_upload_path", "");
+ // "/" equals root-directory
+ if(last_path.equals("/")) {
+ mParents.add("");
+ }
+ else{
+ String[] dir_names = last_path.split("/");
+ for (String dir : dir_names)
+ mParents.add(dir);
+ }
+ //Make sure that path still exists, if it doesn't pop the stack and try the previous path
+ while(!mStorageManager.fileExists(generatePath(mParents)) && mParents.size() > 1){
+ mParents.pop();
+ }
+ }
+
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ boolean retval = true;
+ switch (item.getItemId()) {
+ case android.R.id.home: {
+ if((mParents.size() > 1)) {
+ onBackPressed();
+ }
+ break;
+ }
+ default:
+ retval = super.onOptionsItemSelected(item);
+ }
+ return retval;
+ }
+
}
Context context, \r
ComponentsGetter transferServiceGetter\r
) {\r
- \r
+\r
mJustFolders = justFolders;\r
mContext = context;\r
mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext);\r
+
mTransferServiceGetter = transferServiceGetter;
\r
mAppPreferences = PreferenceManager\r
\r
// initialise thumbnails cache on background thread\r
new ThumbnailsCacheManager.InitDiskCacheTask().execute();\r
+\r
}\r
@Override\r
if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) {\r
final ThumbnailsCacheManager.ThumbnailGenerationTask task = \r
new ThumbnailsCacheManager.ThumbnailGenerationTask(\r
- fileIcon, mStorageManager\r
+ fileIcon, mStorageManager, mAccount\r
);\r
if (thumbnail == null) {\r
thumbnail = ThumbnailsCacheManager.mDefaultImg;\r
package com.owncloud.android.ui.fragment;
import java.io.File;
+import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
Log_OC.i(TAG, "onActivityCreated() stop");
}
+ public void selectAll(){
+ int numberOfFiles = mAdapter.getCount();
+ for(int i = 0; i < numberOfFiles; i++){
+ File file = (File) mAdapter.getItem(i);
+ if (file != null) {
+ if (!file.isDirectory()) {
+ /// Click on a file
+ getListView().setItemChecked(i, true);
+ // notify the change to the container Activity
+ mContainerActivity.onFileClick(file);
+ }
+ }
+ }
+ }
+
+ public void deselectAll(){
+ mAdapter = new LocalFileListAdapter(mContainerActivity.getInitialDirectory(), getActivity());
+ setListAdapter(mAdapter);
+ }
/**
* Checks the file clicked over. Browses inside if it is a directory. Notifies the container activity in any case.
*/
@Override
public void onItemClick(AdapterView<?> l, View v, int position, long id) {
- File file = (File) mAdapter.getItem(position);
+ File file = (File) mAdapter.getItem(position);
+
if (file != null) {
/// Click on a directory
if (file.isDirectory()) {
* @return File paths to the files checked by the user.
*/
public String[] getCheckedFilePaths() {
- String [] result = null;
+ ArrayList<String> result = new ArrayList<String>();
SparseBooleanArray positions = mList.getCheckedItemPositions();
if (positions.size() > 0) {
- Log_OC.d(TAG, "Returning " + positions.size() + " selected files");
- result = new String[positions.size()];
- for (int i=0; i<positions.size(); i++) {
- result[i] = ((File) mList.getItemAtPosition(positions.keyAt(i))).getAbsolutePath();
+ for (int i = 0; i < positions.size(); i++) {
+ if (positions.get(positions.keyAt(i)) == true) {
+ result.add(((File) mList.getItemAtPosition(positions.keyAt(i))).getAbsolutePath());
+ }
}
+
+ Log_OC.d(TAG, "Returning " + result.size() + " selected files");
}
- return result;
+ return result.toArray(new String[result.size()]);
}
import android.annotation.TargetApi;\r
import android.os.Build;\r
\r
+import com.owncloud.android.MainApp;\r
import com.owncloud.android.R;\r
\r
/**\r
*/\r
public class DisplayUtils {\r
\r
+ private static final String OWNCLOUD_APP_NAME = "ownCloud";\r
+\r
//private static String TAG = DisplayUtils.class.getSimpleName(); \r
\r
private static final String[] sizeSuffixes = { "B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB" };\r
\r
\r
public static int getSeasonalIconId() {\r
- if (Calendar.getInstance().get(Calendar.DAY_OF_YEAR) >= 354) {\r
+ if (Calendar.getInstance().get(Calendar.DAY_OF_YEAR) >= 354 &&\r
+ MainApp.getAppContext().getString(R.string.app_name).equals(OWNCLOUD_APP_NAME)) {\r
return R.drawable.winter_holidays_icon;\r
} else {\r
return R.drawable.icon;\r