From: tobiasKaminsky Date: Wed, 5 Nov 2014 20:45:08 +0000 (+0100) Subject: Merge remote-tracking branch 'upstream/develop' into rotateImage X-Git-Tag: oc-android-1.7.0_signed~81^2~5 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/c105861d0fa27912a19a85f39fed7950de5a3d9a?hp=3b3d3e05bc9c9a8e261c8e2b60fe4e879b20035d Merge remote-tracking branch 'upstream/develop' into rotateImage Conflicts: src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java --- diff --git a/res/layout/list_item.xml b/res/layout/list_item.xml index a4113de7..c6c7b92f 100644 --- a/res/layout/list_item.xml +++ b/res/layout/list_item.xml @@ -32,16 +32,16 @@ diff --git a/res/menu/file_select_all.xml b/res/menu/file_select_all.xml new file mode 100644 index 00000000..a8097aae --- /dev/null +++ b/res/menu/file_select_all.xml @@ -0,0 +1,11 @@ + + + + + + diff --git a/res/values-af-rZA/strings.xml b/res/values-af-rZA/strings.xml index 6ea41913..17d68853 100644 --- a/res/values-af-rZA/strings.xml +++ b/res/values-af-rZA/strings.xml @@ -1,6 +1,8 @@ Instellings + Hulp Gebruikersnaam Wagwoord diff --git a/res/values-ak/strings.xml b/res/values-ak/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-ak/strings.xml +++ b/res/values-ak/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-am-rET/strings.xml b/res/values-am-rET/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-am-rET/strings.xml +++ b/res/values-am-rET/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml index 4d89b576..266507d5 100644 --- a/res/values-ar/strings.xml +++ b/res/values-ar/strings.xml @@ -11,6 +11,8 @@ إعدادات تفاصيل أرسل + عام المزيد حسابات diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml index b037311c..d3a9060b 100644 --- a/res/values-az/strings.xml +++ b/res/values-az/strings.xml @@ -11,6 +11,8 @@ Quraşdırmalar Detallar Göndər + Ümumi Daha da Hesablar diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml index 42e20789..0e52b53f 100644 --- a/res/values-be/strings.xml +++ b/res/values-be/strings.xml @@ -1,6 +1,8 @@ Налады + Так Не Добра diff --git a/res/values-bg-rBG/strings.xml b/res/values-bg-rBG/strings.xml index 47d243cf..5497ee5a 100644 --- a/res/values-bg-rBG/strings.xml +++ b/res/values-bg-rBG/strings.xml @@ -11,6 +11,14 @@ Настройки Детайли Изпращане + Сортиране + Сортирай по + + А-Я + Нови - Стари + + Общи Още Профили @@ -238,6 +246,7 @@ Преглед на изображението Изображението не може да бъде показано %1$s не може да бъде копиран в локалната папка %2$s + Местоположение на качване За съжаление споделянето не е включено на сървъра ви. Моля, свържете се с администратора. Неуспешен опит за споделяне. Моля, провери дали файла съществува. @@ -263,6 +272,7 @@ Файлът вече не се намира на този сървър Профили Добавяне на профил + Сигурна връзка е пренасочена по несигурен път. Доклади Изпрати История ownCloud Android доклади @@ -277,5 +287,6 @@ Файлът вече съществува в отдалечената папка. Настъпи грешка при опита за преместване на този файл или папка. за да преместиш този файл + Незабавно качване Сигурност diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml index cae19b70..a5cf5425 100644 --- a/res/values-bn-rBD/strings.xml +++ b/res/values-bn-rBD/strings.xml @@ -11,6 +11,8 @@ নিয়ামকসমূহ বিস্তারিত পাঠাও + সাধারণ বেশী একাউন্ট diff --git a/res/values-bn-rIN/strings.xml b/res/values-bn-rIN/strings.xml index a49555a8..3b69168f 100644 --- a/res/values-bn-rIN/strings.xml +++ b/res/values-bn-rIN/strings.xml @@ -5,6 +5,8 @@ ফাইলস নতুন ফোল্ডার সেটিংস + অঙ্কিত করা ইউজারনেম ফাইলস diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml index 30f5ce22..4c2f8692 100644 --- a/res/values-bs/strings.xml +++ b/res/values-bs/strings.xml @@ -1,5 +1,7 @@ Nova fascikla + diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml index d0b98a1d..c5d91d54 100644 --- a/res/values-ca/strings.xml +++ b/res/values-ca/strings.xml @@ -11,6 +11,8 @@ Configuració Detalls Envia + General Més Comptes diff --git a/res/values-cs-rCZ/strings.xml b/res/values-cs-rCZ/strings.xml index 6b8b96c6..a9db9c5b 100644 --- a/res/values-cs-rCZ/strings.xml +++ b/res/values-cs-rCZ/strings.xml @@ -11,6 +11,14 @@ Nastavení Podrobnosti Odeslat + Seřadit + Seřadit podle + + A-Z + Nejnovější - nejstarší + + Obecné Více Účty diff --git a/res/values-cy-rGB/strings.xml b/res/values-cy-rGB/strings.xml index daace9cd..80cc3c93 100644 --- a/res/values-cy-rGB/strings.xml +++ b/res/values-cy-rGB/strings.xml @@ -5,6 +5,8 @@ Ffeiliau Gosodiadau Anfon + Cyffredinol Cyfrifon Rheoli Cyfrifon diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml index 54449009..9a275407 100644 --- a/res/values-da/strings.xml +++ b/res/values-da/strings.xml @@ -11,6 +11,14 @@ Indstillinger Detaljer Send + Sortér + Sortér efter + + A-Å + Nyeste - ældste + + Generel Mere Konti diff --git a/res/values-de-rAT/strings.xml b/res/values-de-rAT/strings.xml index f2c13bf6..8a65cc16 100644 --- a/res/values-de-rAT/strings.xml +++ b/res/values-de-rAT/strings.xml @@ -2,6 +2,8 @@ Dateien Einstellungen + Allgemein Hilfe Passwort diff --git a/res/values-de-rCH/strings.xml b/res/values-de-rCH/strings.xml index 7a5b9e91..20392974 100644 --- a/res/values-de-rCH/strings.xml +++ b/res/values-de-rCH/strings.xml @@ -11,6 +11,8 @@ Einstellungen Details Senden + Allgemein Mehr Konten diff --git a/res/values-de-rDE/strings.xml b/res/values-de-rDE/strings.xml index 70bd98fa..9f0ebcf9 100644 --- a/res/values-de-rDE/strings.xml +++ b/res/values-de-rDE/strings.xml @@ -11,6 +11,14 @@ Einstellungen Details Senden + Sortieren + Sortieren nach + + A-Z + Neueste - Älteste + + Allgemein Mehr Konten diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 028b6bc6..2bd365c1 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -11,6 +11,14 @@ Einstellungen Details Senden + Sortieren + Sortieren nach + + A-Z + Neueste - Älteste + + Allgemein Mehr Konten diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml index 94e35a6b..67b16e2a 100644 --- a/res/values-el/strings.xml +++ b/res/values-el/strings.xml @@ -11,6 +11,8 @@ Ρυθμίσεις Λεπτομέρειες Αποστολή + Γενικά Περισσότερα Λογαριασμοί diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml index 320d1e67..4ef373d2 100644 --- a/res/values-en-rGB/strings.xml +++ b/res/values-en-rGB/strings.xml @@ -11,6 +11,14 @@ Settings Details Send + Sort + Sort by + + A-Z + Newest - Oldest + + General More Accounts diff --git a/res/values-en-rNZ/strings.xml b/res/values-en-rNZ/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-en-rNZ/strings.xml +++ b/res/values-en-rNZ/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-eo/strings.xml b/res/values-eo/strings.xml index 2b4413ce..dd653401 100644 --- a/res/values-eo/strings.xml +++ b/res/values-eo/strings.xml @@ -10,6 +10,8 @@ Agordo Detaloj Sendi + Ĝeneralo Pli Kontoj diff --git a/res/values-es-rAR/strings.xml b/res/values-es-rAR/strings.xml index 780a6043..74e2f64a 100644 --- a/res/values-es-rAR/strings.xml +++ b/res/values-es-rAR/strings.xml @@ -11,6 +11,8 @@ Configuración Detalles Mandar + General Más Cuentas diff --git a/res/values-es-rBO/strings.xml b/res/values-es-rBO/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rBO/strings.xml +++ b/res/values-es-rBO/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rCL/strings.xml b/res/values-es-rCL/strings.xml index c9510725..f3ad1805 100644 --- a/res/values-es-rCL/strings.xml +++ b/res/values-es-rCL/strings.xml @@ -7,6 +7,8 @@ Nuevo directorio Configuración detalles + General Cuentas Administrar Cuentas diff --git a/res/values-es-rCO/strings.xml b/res/values-es-rCO/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rCO/strings.xml +++ b/res/values-es-rCO/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rCR/strings.xml b/res/values-es-rCR/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rCR/strings.xml +++ b/res/values-es-rCR/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rEC/strings.xml b/res/values-es-rEC/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rEC/strings.xml +++ b/res/values-es-rEC/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rMX/strings.xml b/res/values-es-rMX/strings.xml index ef91bc63..78ee8b40 100644 --- a/res/values-es-rMX/strings.xml +++ b/res/values-es-rMX/strings.xml @@ -11,6 +11,8 @@ Ajustes Detalles Enviar + General Más Cuentas diff --git a/res/values-es-rPE/strings.xml b/res/values-es-rPE/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rPE/strings.xml +++ b/res/values-es-rPE/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rPY/strings.xml b/res/values-es-rPY/strings.xml index 56fe6665..26dde5f1 100644 --- a/res/values-es-rPY/strings.xml +++ b/res/values-es-rPY/strings.xml @@ -1,6 +1,8 @@ Archivos + Archivos diff --git a/res/values-es-rUS/strings.xml b/res/values-es-rUS/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rUS/strings.xml +++ b/res/values-es-rUS/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es-rUY/strings.xml b/res/values-es-rUY/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-es-rUY/strings.xml +++ b/res/values-es-rUY/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 7f661730..d78ff809 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -11,6 +11,14 @@ Configuración Detalles Enviar + Ordenar + Ordenar por + + A-Z + Más nuevo - Más viejo + + General Más Cuentas diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml index daba47f4..2a23f187 100644 --- a/res/values-et-rEE/strings.xml +++ b/res/values-et-rEE/strings.xml @@ -11,6 +11,8 @@ Seaded Üksikasjad Saada + Üldine Rohkem Kontod diff --git a/res/values-eu-rES/strings.xml b/res/values-eu-rES/strings.xml index a9461fc0..4afe2756 100644 --- a/res/values-eu-rES/strings.xml +++ b/res/values-eu-rES/strings.xml @@ -1,5 +1,7 @@ + Deskargatu Ezeztatu diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml index fec7404d..78d39f1c 100644 --- a/res/values-eu/strings.xml +++ b/res/values-eu/strings.xml @@ -11,6 +11,13 @@ Ezarpenak Xehetasunak Bidali + Ordenatu + + A-Z + Berrienak - Zaharrenak + + Orokorra Gehiago Kontuak @@ -236,6 +243,7 @@ Mesedez, baimendu berriz Irudi aurreikuspena Ezin da irudi hau erakutsi %1$s ezin da %2$s karpeta lokalera kopiatu + Igotzetarako Bidea Sentitzen dut, partekatzea ez dago zure zerbitzarian gaituta. Mesedez jarri harremanetan zure administratzailearekin. Errore bat egon da fitxategaia edo karpeta partekatzerakoan Errore bat egon da fitxategaia edo karpeta partekatzeari uzterakoan @@ -258,8 +266,12 @@ Mesedez, baimendu berriz Fitxategia jadanik ez dago eskuragarri zerbitzarian Kontuak Gehitu kontua + ownCloud Android programaren egunerokoak + Datuak kargatzen... Autentikazioa beharrezkoa Pasahitz okerra + Mugitu Aukeratu + Berehalako Igoerak Segurtasuna diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml index 6a22f893..80348366 100644 --- a/res/values-fa/strings.xml +++ b/res/values-fa/strings.xml @@ -11,6 +11,8 @@ تنظیمات جزئیات ارسال + عمومی بیش‌تر حساب‌ها diff --git a/res/values-fi-rFI/strings.xml b/res/values-fi-rFI/strings.xml index 6f02e4bc..18e972fb 100644 --- a/res/values-fi-rFI/strings.xml +++ b/res/values-fi-rFI/strings.xml @@ -11,6 +11,14 @@ Asetukset Tiedot Lähetä + Lajittele + Lajittelujärjestys + + A-Ö + Uusimmasta vanhimpaan + + Yleiset Enemmän Tilit diff --git a/res/values-fr-rCA/strings.xml b/res/values-fr-rCA/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-fr-rCA/strings.xml +++ b/res/values-fr-rCA/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml index 17da4a97..90c54a90 100644 --- a/res/values-fr/strings.xml +++ b/res/values-fr/strings.xml @@ -4,13 +4,21 @@ version %1$s Actualiser le compte Téléverser - Contenu d\'une autre application + Contenu d\'autres applications Fichiers Ouvrir avec Nouveau dossier Paramètres Détails Envoyer + Trier + Trier par + + A-Z + Plus récent - Plus ancien + + Général Plus Comptes @@ -165,7 +173,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Impossible d\'établir la connexion Connexion sécurisée établie Nom d\'utilisateur ou mot de passe incorrect - Echec d\'autorisation + Échec d\'autorisation Accès refusé par le serveur d\'autorisation État inattendu ; veuillez entrer à nouveau l\'URL du serveur Votre autorisation a expiré. Merci de vous authentifier à nouveau @@ -243,6 +251,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Prévisualisation de l\'image Cette image ne peut pas être affichée %1$s n\'a pas pu être copié dans le dossier local %2$s + Chemin d\'accès pour le téléversement Désolé, le partage n\'est pas disponible sur votre serveur. Contactez votre administrateur, s\'il vous plait. Impossible de partager. Vérifiez que le fichier est bien présent Une erreur est survenue lors de la tentative de partage de ce fichier ou répertoire @@ -267,6 +276,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Ce fichier n’est plus disponible sur le serveur Comptes Ajouter un compte + La connexion sécurisée est redirigée via une route non-sécurisée. Journaux Envoyer l\'historique Journaux de l\'application Android ownCloud @@ -281,5 +291,6 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq Le fichier existe déjà dans le dossier de destination Une erreur est survenue lors de la tentative de déplacement de ce fichier ou dossier de déplacer ce fichier + Téléchargements instantanés Sécurité diff --git a/res/values-fy-rNL/strings.xml b/res/values-fy-rNL/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-fy-rNL/strings.xml +++ b/res/values-fy-rNL/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml index c169179c..3479d359 100644 --- a/res/values-gl/strings.xml +++ b/res/values-gl/strings.xml @@ -11,6 +11,8 @@ Preferencias Detalles Enviar + Xeral Máis Contas diff --git a/res/values-gu/strings.xml b/res/values-gu/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-gu/strings.xml +++ b/res/values-gu/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-he/strings.xml b/res/values-he/strings.xml index 4ae0072d..9bc427b6 100644 --- a/res/values-he/strings.xml +++ b/res/values-he/strings.xml @@ -11,6 +11,8 @@ הגדרות פרטים שליחה + כללי יותר חשבונות diff --git a/res/values-hi/strings.xml b/res/values-hi/strings.xml index 6d0355c7..06c5d2b9 100644 --- a/res/values-hi/strings.xml +++ b/res/values-hi/strings.xml @@ -11,6 +11,8 @@ सेटिंग्स विवरण भेजें + सामान्य और अधिक खाते diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml index b8dcfc5b..2c986dd5 100644 --- a/res/values-hr/strings.xml +++ b/res/values-hr/strings.xml @@ -5,6 +5,8 @@ Nova mapa Postavke Pošaljite + Općenito više Korisnićki računi diff --git a/res/values-hu-rHU/strings.xml b/res/values-hu-rHU/strings.xml index f5900060..18f000c9 100644 --- a/res/values-hu-rHU/strings.xml +++ b/res/values-hu-rHU/strings.xml @@ -11,6 +11,8 @@ Beállítások Részletek Küldjük el + Általános Több Fiókok diff --git a/res/values-hy/strings.xml b/res/values-hy/strings.xml index eeb78fe8..7994bf47 100644 --- a/res/values-hy/strings.xml +++ b/res/values-hy/strings.xml @@ -1,5 +1,7 @@ + Բեռնել diff --git a/res/values-ia/strings.xml b/res/values-ia/strings.xml index 0d79fbde..9bcfedfd 100644 --- a/res/values-ia/strings.xml +++ b/res/values-ia/strings.xml @@ -5,6 +5,8 @@ Nove dossier Configurationes Invia + General Plus Adjuta diff --git a/res/values-id/strings.xml b/res/values-id/strings.xml index be93270a..1ed5c03a 100644 --- a/res/values-id/strings.xml +++ b/res/values-id/strings.xml @@ -11,6 +11,14 @@ Pengaturan Rincian Kirim + Urutkan + Urutan + + A-Z + Terbaru - Terlawas + + Umum Lainnya Akun @@ -84,6 +92,7 @@ %1$s berhasil diunggah Gagal mengunggah Unggah %1$s tidak selesai + Unggah gagal, Anda perlu masuk ulang Mengunduh... %1$d%% Mengunduh %2$s Berhasil mengunduh @@ -168,6 +177,8 @@ Menyambungkan ke server otentikasi... Server tidak mendukung medote otentikasi ini %1$s tidak mendukung banyak akun + Server Anda tidak membalas id pengguna dengan banar, Sialakn hubungi Administrator + Tidak dapat mengotentikasi pada server ini Biarkan berkas tetap terbaru Ubah nama @@ -234,12 +245,48 @@ Jangan mengunggah Pratilik gambar Gambar ini tidak dapat ditampilkan + %1$s tidak dapat disalin ke folder lokal %2$s + Jalur Lokasi Unggah + Maaf, berbagi tidak diaktifkan pada server Anda. Silakan hubungi + administrator Anda. + Tidak dapat berbagi. Mohon periksa apakah berkas ada + Terjadi kesalahan saat mencoba membagikan berkas atau folder ini + Tidak dapat menghapus berbagi. Mohon periksa apakah berkas ada + Terjadi kesalahan saat mencoba menghapus berbagi berkas dan folder ini Kirim + Salin tautan Disalin ke papan klip + Kesalahan fatal: tidak dapat melakukan operasi + Terjadi kesalahan saat menghubungkan dengan server. + Terjadi kesalahan saat menunggu balasan server, operasi tidak dapat diselesaikan + Terjadi kesalahan saat menunggu balasan server, operasi tidak dapat diselesaikan + Operasi tidak dapat diselesaikan, server tidak tersedia + Anda tidak memiliki izin %s + untuk mengubah nama berkas ini + untuk menghapus berkas ini + untuk membagikan berkas ini + untuk batal membagikan berkas ini + untuk membuat berkas + untuk mengunggah kedalam folder ini + Berkas tidak lagi tersedia pada server Akun + Tambah akun + Sambungan aman dialihkan ke rute yang tidak aman. + Log + Kirim Riwayat + Log apl ownCloud Android + Memuat data... Diperlukan otentikasi Sandi salah + Pindah + Tdak ada apapun disini. Anda dapat menambahkan sebuah folder! Pilih + Tidak dapat memindahkan. Silakan periksa apakah berkas ada + Tidak mungkin untuk memindahkan folder kedalam turunannya + Berkas sudah ada didalam folder tujuan + Terjadi kesalahan saat mencoba memindahkan berkas atau folder ini + untuk memindahkan berkas ini + Unggah Cepat Keamanan diff --git a/res/values-io/strings.xml b/res/values-io/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-io/strings.xml +++ b/res/values-io/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml index d6eaedad..81109d51 100644 --- a/res/values-is/strings.xml +++ b/res/values-is/strings.xml @@ -4,6 +4,8 @@ Skrár Stillingar Senda + Meira Hjálp Notendanafn diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml index ffa01f31..4a1c5bda 100644 --- a/res/values-it/strings.xml +++ b/res/values-it/strings.xml @@ -11,6 +11,14 @@ Impostazioni Dettagli Invia + Ordina + Ordina per + + A-Z + Più recente - Più datato + + Generale Altro Account diff --git a/res/values-ja-rJP/strings.xml b/res/values-ja-rJP/strings.xml index b6d8ffb4..f57402ef 100644 --- a/res/values-ja-rJP/strings.xml +++ b/res/values-ja-rJP/strings.xml @@ -11,6 +11,14 @@ 設定 詳細 送信 + ソート + ソート: + + A-Z + 最新 - 最古 + + 一般 もっと見る アカウント @@ -239,6 +247,7 @@ イメージプレビュー この画像は表示できません %1$s は、ローカルフォルダー %2$s にコピーできませんでした。 + アップロードパス 申し訳ございません。共有がサーバー上で有効になっていません。 管理者に ご連絡ください。 共有できません。ファイルがあるか確認してください。 @@ -264,6 +273,7 @@ ファイルはサーバー上で利用できません アカウント アカウントを追加 + 暗号化接続は非暗号化接続にリダイレクトされました。 ログ ログを送信 ownCloud Android アプリログ @@ -278,5 +288,6 @@ そのファイルは、宛先フォルダに既に存在しています。 このファイルまたはフォルダーを移動する際にエラーが発生しました このファイルを移動 + 自動アップロード セキュリティ diff --git a/res/values-jv/strings.xml b/res/values-jv/strings.xml index 084a4e3e..0eaa7454 100644 --- a/res/values-jv/strings.xml +++ b/res/values-jv/strings.xml @@ -1,5 +1,7 @@ + Njipuk diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml index 43b1a456..51ce611f 100644 --- a/res/values-ka-rGE/strings.xml +++ b/res/values-ka-rGE/strings.xml @@ -6,6 +6,8 @@ ახალი ფოლდერი პარამეტრები გაგზავნა + ზოგადი უფრო მეტი ანგარიში diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml index 752985c3..b31d4831 100644 --- a/res/values-km/strings.xml +++ b/res/values-km/strings.xml @@ -6,6 +6,8 @@ ការកំណត់ ព័ត៌មាន​លម្អិត ផ្ញើ + ទូទៅ ច្រើន​ទៀត គណនី diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-kn/strings.xml +++ b/res/values-kn/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml index 4a0df83f..726c4d52 100644 --- a/res/values-ko/strings.xml +++ b/res/values-ko/strings.xml @@ -11,6 +11,8 @@ 설정 세부내용 보내기 + 일반 더 중요함 계정 diff --git a/res/values-ku-rIQ/strings.xml b/res/values-ku-rIQ/strings.xml index 2e843f2d..c342c643 100644 --- a/res/values-ku-rIQ/strings.xml +++ b/res/values-ku-rIQ/strings.xml @@ -3,6 +3,8 @@ بارکردن په‌ڕگەکان ده‌ستكاری + گشتی هەژمارەکان یارمەتی diff --git a/res/values-lb/strings.xml b/res/values-lb/strings.xml index 19b003ec..cde6e1a7 100644 --- a/res/values-lb/strings.xml +++ b/res/values-lb/strings.xml @@ -7,6 +7,8 @@ Astellungen Detailer Schécken + Allgemeng Méi Accounten diff --git a/res/values-lt-rLT/strings.xml b/res/values-lt-rLT/strings.xml index 70bc85d5..c9ac6e35 100644 --- a/res/values-lt-rLT/strings.xml +++ b/res/values-lt-rLT/strings.xml @@ -11,6 +11,8 @@ Nustatymai Informacija Siųsti + Bendras Daugiau Paskyros diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml index 88df8292..581b79cd 100644 --- a/res/values-lv/strings.xml +++ b/res/values-lv/strings.xml @@ -6,6 +6,8 @@ Jauna mape Iestatījumi Sūtīt + Vispārīgi Vairāk Konti diff --git a/res/values-mg/strings.xml b/res/values-mg/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-mg/strings.xml +++ b/res/values-mg/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml index e7b4906e..d8edec41 100644 --- a/res/values-mk/strings.xml +++ b/res/values-mk/strings.xml @@ -7,6 +7,8 @@ Параметри Детали: Прати + Општо Повеќе Сметки diff --git a/res/values-ml-rIN/strings.xml b/res/values-ml-rIN/strings.xml index 75c6f22f..3ee64f03 100644 --- a/res/values-ml-rIN/strings.xml +++ b/res/values-ml-rIN/strings.xml @@ -1,6 +1,8 @@ ഫയലുകൾ + ഫയലുകൾ diff --git a/res/values-ml/strings.xml b/res/values-ml/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-ml/strings.xml +++ b/res/values-ml/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-mn/strings.xml +++ b/res/values-mn/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml index af534d2e..808ab65d 100644 --- a/res/values-ms-rMY/strings.xml +++ b/res/values-ms-rMY/strings.xml @@ -3,6 +3,8 @@ Muat naik Fail-fail Set + Umum Lanjutan Akaun diff --git a/res/values-mt-rMT/strings.xml b/res/values-mt-rMT/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-mt-rMT/strings.xml +++ b/res/values-mt-rMT/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml index 7f998bf3..2d882a6b 100644 --- a/res/values-my/strings.xml +++ b/res/values-my/strings.xml @@ -1,6 +1,8 @@ ဖိုင်များ + အကူအညီ သုံးစွဲသူအမည် စကားဝှက် diff --git a/res/values-nb-rNO/strings.xml b/res/values-nb-rNO/strings.xml index 55e2bb4c..2ad2386e 100644 --- a/res/values-nb-rNO/strings.xml +++ b/res/values-nb-rNO/strings.xml @@ -11,6 +11,8 @@ Innstillinger Detaljer Send + Generelt Mer Kontoer diff --git a/res/values-ne/strings.xml b/res/values-ne/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-ne/strings.xml +++ b/res/values-ne/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml index f79d9331..ee3f87db 100644 --- a/res/values-nl/strings.xml +++ b/res/values-nl/strings.xml @@ -11,6 +11,14 @@ Instellingen Details Versturen + Sorteren + Sorteer op + + A-Z + Nieuwste - Oudste + + Algemeen Meer Accounts diff --git a/res/values-nn-rNO/strings.xml b/res/values-nn-rNO/strings.xml index 528bff4f..d9a37a83 100644 --- a/res/values-nn-rNO/strings.xml +++ b/res/values-nn-rNO/strings.xml @@ -11,6 +11,8 @@ Innstillingar Detaljar Send + Generelt Meir Kontoar diff --git a/res/values-oc/strings.xml b/res/values-oc/strings.xml index 84ca4981..0d3a45ba 100644 --- a/res/values-oc/strings.xml +++ b/res/values-oc/strings.xml @@ -3,6 +3,8 @@ Amontcarga Fichièrs Configuracion + General Mai d\'aquò Comptes diff --git a/res/values-or-rIN/strings.xml b/res/values-or-rIN/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-or-rIN/strings.xml +++ b/res/values-or-rIN/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml index dc0b9e78..b84b0576 100644 --- a/res/values-pa/strings.xml +++ b/res/values-pa/strings.xml @@ -10,6 +10,8 @@ ਸੈਟਿੰਗ ਵੇਰਵ ਭੇਜੋ + ਆਮ ਅਕਾਊਂਟ ਲਾਗ ਰੱਖਣਾ ਚਾਲੂ diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml index 8c0a9878..0e84c681 100644 --- a/res/values-pl/strings.xml +++ b/res/values-pl/strings.xml @@ -11,6 +11,14 @@ Ustawienia Szczegóły Wyślij + Sortuj + Sortuj według + + A-Z + Nowsze - Starsze + + Ogólne Więcej Konta @@ -238,6 +246,7 @@ Podgląd Ten obrazek nie może zostać wyświetlony %1$s nie może zostać skopiowany do lokalnego folderu %2$s + Katalog wysyłania Przepraszamy, ale współdzielenie nie jest włączone na Twoim serwerze. Proszę skontaktuj się z administratorem. Nie można udostępnić. Proszę sprawdzić, czy plik istnieje @@ -263,8 +272,10 @@ Ten plik nie jest już dostępny na serwerze Konta Dodaj konto + Bezpieczne połączenie jest przekierowywane przez niezabezpieczone trasy. Logi Wyślij historię + Logi aplikacji ownCloud Android Ładuję dane... Wymagana autoryzacja Złe hasło @@ -276,5 +287,6 @@ Plik istnieje już w folderze docelowym Pojawił się błąd podczas próby przeniesienia tego pliku lub folderu aby przenieść ten plik + Automatyczne wysyłanie Bezpieczeństwo diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml index 3ffb84b8..ea2e5971 100644 --- a/res/values-pt-rBR/strings.xml +++ b/res/values-pt-rBR/strings.xml @@ -11,6 +11,14 @@ Configurações Detalhes Enviar + Classificar + Classificar por + + A-Z + Mais Recente - Mais Antigo + + Geral Mais Contas diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml index 6c4aab17..1012a167 100644 --- a/res/values-pt-rPT/strings.xml +++ b/res/values-pt-rPT/strings.xml @@ -11,6 +11,14 @@ Definições Detalhes Enviar + Ordenar + Ordenar por + + A-Z + Mais Recente - Mais Antigo + + Geral Mais Contas diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml index b3ea7256..2b052012 100644 --- a/res/values-ro/strings.xml +++ b/res/values-ro/strings.xml @@ -11,6 +11,10 @@ Setări Detalii Expediază + Sortare + Sortare după + General Mai mult Conturi @@ -257,7 +261,13 @@ pentru a încărca în acest folder Fișierul nu mai este disponibil pe server Conturi + Adaugă cont + Se încarcă datele... + Autentificare necesară Parolă greșită + Mutare + Nu este nimic aici. Poți adăuga un director! Alege + pentru a muta acest fișier Securitate diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 66ad7ad0..76f388b9 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -11,6 +11,14 @@ Настройки Подробно Отправить + Упорядочить + Упорядочить по + + А-Я + Новые - Старые + + Основные Больше Учётные записи @@ -239,6 +247,7 @@ Предпросмотр Это изображение не может быть отображено %1$s не возможно скопировать в локальною папку %2$s + Путь для загрузки К сожалению, на вашем сервере отключен совместный доступ. Пожалуйста, свяжитесь с вашим администратором. Невозможно добавить в общий доступ. Пожалуйста, проверьте, существует ли файл Ошибка предоставления общего доступа к этому файлу или каталогу @@ -263,6 +272,7 @@ Этот файл больше недоступен на сервере Учётные записи Добавить учетную запись + Защищённое соединение перенаправлено по незащищённому маршруту Журналы История Отправлений Журналы Андроид-приложения ownCloud @@ -277,5 +287,6 @@ Файл уже существует в папке назначения Произошла ошибка при попытке перемещения этого файла или папки переместить этот файл + Мгновенные загрузки Безопасность diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml index e64f5775..4a3e9e81 100644 --- a/res/values-si-rLK/strings.xml +++ b/res/values-si-rLK/strings.xml @@ -3,6 +3,8 @@ උඩුගත කිරීම ගොනු සිටුවම් + සාමාන්‍යයෙන් වැඩි ගිණුම් diff --git a/res/values-sk-rSK/strings.xml b/res/values-sk-rSK/strings.xml index 76860435..2ab0c280 100644 --- a/res/values-sk-rSK/strings.xml +++ b/res/values-sk-rSK/strings.xml @@ -11,6 +11,8 @@ Nastavenia Podrobnosti Odoslať + Všeobecné Viac Účty diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml index dcdf6038..b4d46663 100644 --- a/res/values-sl/strings.xml +++ b/res/values-sl/strings.xml @@ -11,6 +11,14 @@ Nastavitve Podrobnosti Pošlji + Razvrsti + Razvrsti po + + Naraščajoče A – Z + Novejše – Starejše + + Splošno Več Računi @@ -238,6 +246,7 @@ Predogled slike Te slike ni mogoče prikazati Datoteke %1$s ni mogoče kopirati v krajevno mapo %2$s + Pot za pošiljanje Souporaba je na strežniku onemogočena. Možnost lahko spreminjajo le uporabniki s skrbniškimi dovoljenji. Souporaba ni mogoča. Preverite, ali datoteka obstaja. @@ -263,6 +272,7 @@ Datoteka na strežniku ni več na voljo. Računi Dodaj račun + Varna povezava je preusmerjena preko ne-varne poti. Dnevnik Pošlji zgodovino Dnevnik programa ownCloud @@ -277,5 +287,6 @@ Datoteka v ciljni mapi že obstaja. Prišlo je do napake med premikanjem datoteke v mapo med premikanjem datoteke + Takojšnje pošiljanje v oblak Varnost diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml index adeb3e99..798c4b39 100644 --- a/res/values-sq/strings.xml +++ b/res/values-sq/strings.xml @@ -5,6 +5,8 @@ Dosje e\'re Parametrat Dërgo + Përgjithshme Më tepër Llogarit diff --git a/res/values-sr-rSP/strings.xml b/res/values-sr-rSP/strings.xml index 973a5489..daac3e01 100644 --- a/res/values-sr-rSP/strings.xml +++ b/res/values-sr-rSP/strings.xml @@ -5,6 +5,8 @@ Podešavanja Detaljnije Pošalji + Opšte Nalozi Upravljaj nalozima diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml index 2ef13736..5aadabb9 100644 --- a/res/values-sr/strings.xml +++ b/res/values-sr/strings.xml @@ -5,6 +5,8 @@ Датотеке Поставке Пошаљи + Опште Више Налози diff --git a/res/values-su/strings.xml b/res/values-su/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-su/strings.xml +++ b/res/values-su/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml index c077786f..a649518b 100644 --- a/res/values-sv/strings.xml +++ b/res/values-sv/strings.xml @@ -11,6 +11,8 @@ Inställningar Detaljer Skicka + Allmänt Mer Konton diff --git a/res/values-sw-rKE/strings.xml b/res/values-sw-rKE/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-sw-rKE/strings.xml +++ b/res/values-sw-rKE/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-ta-rIN/strings.xml b/res/values-ta-rIN/strings.xml index 9cce7aeb..5a27ffd0 100644 --- a/res/values-ta-rIN/strings.xml +++ b/res/values-ta-rIN/strings.xml @@ -11,6 +11,8 @@ அமைப்புகள் விவரங்கள் அனுப்பவும் + பொது மேலும் கணக்குகள் diff --git a/res/values-ta-rLK/strings.xml b/res/values-ta-rLK/strings.xml index 8dd0c780..3c3e167a 100644 --- a/res/values-ta-rLK/strings.xml +++ b/res/values-ta-rLK/strings.xml @@ -5,6 +5,8 @@ கோப்புகள் அமைப்புகள் விவரங்கள் + பொதுவான மேலதிக கணக்குகள் diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml index ac049826..834de750 100644 --- a/res/values-te/strings.xml +++ b/res/values-te/strings.xml @@ -3,6 +3,8 @@ కొత్త సంచయం అమరికలు పంపించు + మరిన్ని సహాయం వాడుకరి పేరు diff --git a/res/values-tg-rTJ/strings.xml b/res/values-tg-rTJ/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-tg-rTJ/strings.xml +++ b/res/values-tg-rTJ/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-th-rTH/strings.xml b/res/values-th-rTH/strings.xml index 0b141a18..6ed3f19c 100644 --- a/res/values-th-rTH/strings.xml +++ b/res/values-th-rTH/strings.xml @@ -7,6 +7,8 @@ ตั้งค่า รายละเอียด ส่ง + ทั่วไป มาก บัญชี diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index e5bfe93d..656397b7 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -11,6 +11,14 @@ Ayarlar Ayrıntılar Gönder + Sırala + Şuna göre sırala + + A-Z + Yeniden - Eskiye + + Genel Daha fazla Hesaplar diff --git a/res/values-ug/strings.xml b/res/values-ug/strings.xml index e1140f87..12a54928 100644 --- a/res/values-ug/strings.xml +++ b/res/values-ug/strings.xml @@ -5,6 +5,8 @@ يېڭى قىسقۇچ تەڭشەكلەر يوللا + ئادەتتىكى تېخىمۇ كۆپ ھېساباتلار diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml index d927e39f..22ab60a4 100644 --- a/res/values-uk/strings.xml +++ b/res/values-uk/strings.xml @@ -11,6 +11,14 @@ Налаштування Деталі Надіслати + Сортувати + Сортувати за + + А-Я + Новіші-Старіші + + Основне Більше Облікові записи diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml index 1532b7ac..a90a3021 100644 --- a/res/values-ur-rPK/strings.xml +++ b/res/values-ur-rPK/strings.xml @@ -2,6 +2,8 @@ سیٹینگز بھجیں + مزید مدد یوزر نیم diff --git a/res/values-uz/strings.xml b/res/values-uz/strings.xml index 56e55a1d..69623e19 100644 --- a/res/values-uz/strings.xml +++ b/res/values-uz/strings.xml @@ -1,4 +1,6 @@ + diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml index 122092d1..7e5fe75a 100644 --- a/res/values-vi/strings.xml +++ b/res/values-vi/strings.xml @@ -11,6 +11,8 @@ Cài đặt Chi tiết Gởi + Tổng hợp hơn Tài khoản diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml index 79255f8d..1b6eab69 100644 --- a/res/values-zh-rCN/strings.xml +++ b/res/values-zh-rCN/strings.xml @@ -11,6 +11,8 @@ 设置 详细信息 发送 + 常规 更多 账号 diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml index bd5f2e13..7e5ae525 100644 --- a/res/values-zh-rHK/strings.xml +++ b/res/values-zh-rHK/strings.xml @@ -7,6 +7,8 @@ 新資料夾 設定 傳送 + 一般 更多 帳號 diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml index 91041380..04938d38 100644 --- a/res/values-zh-rTW/strings.xml +++ b/res/values-zh-rTW/strings.xml @@ -11,6 +11,8 @@ 設定 詳細資料 寄出 + 一般 更多 帳號 diff --git a/res/values/dims.xml b/res/values/dims.xml new file mode 100644 index 00000000..d433cba3 --- /dev/null +++ b/res/values/dims.xml @@ -0,0 +1,21 @@ + + + + 32dp + diff --git a/res/values/strings.xml b/res/values/strings.xml index af5a684d..2655e29f 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -39,7 +39,9 @@ Recommend to a friend Feedback Imprint - + Remember share location + Remember last share upload location + "Try %1$s on your smartphone!" "I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s" @@ -279,6 +281,7 @@ An error occurred while waiting for the server, the operation couldn\'t have been done An error occurred while waiting for the server, the operation couldn\'t have been done The operation couldn\'t be completed, server is unavailable + You do not have permission %s @@ -313,5 +316,4 @@ Instant Uploads Security - diff --git a/src/com/owncloud/android/MainApp.java b/src/com/owncloud/android/MainApp.java index e04239df..c2a4c68b 100644 --- a/src/com/owncloud/android/MainApp.java +++ b/src/com/owncloud/android/MainApp.java @@ -55,7 +55,7 @@ public class MainApp extends Application { } else { OwnCloudClientManagerFactory.setDefaultPolicy(Policy.ALWAYS_NEW_CLIENT); } - + // initialise thumbnails cache on background thread new ThumbnailsCacheManager.InitDiskCacheTask().execute(); diff --git a/src/com/owncloud/android/authentication/AuthenticatorActivity.java b/src/com/owncloud/android/authentication/AuthenticatorActivity.java index 97dcfde8..0f7892ee 100644 --- a/src/com/owncloud/android/authentication/AuthenticatorActivity.java +++ b/src/com/owncloud/android/authentication/AuthenticatorActivity.java @@ -85,6 +85,7 @@ import com.owncloud.android.ui.dialog.IndeterminateProgressDialog; import com.owncloud.android.ui.dialog.SamlWebViewDialog; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog; import com.owncloud.android.ui.dialog.SslUntrustedCertDialog.OnSslUntrustedCertListener; +import com.owncloud.android.utils.DisplayUtils; /** * This Activity is used to add an ownCloud account to the App @@ -356,7 +357,8 @@ SsoWebViewClientListener, OnSslUntrustedCertListener { /// step 2 - set properties of UI elements (text, visibility, enabled...) mHostUrlInput = (EditText) findViewById(R.id.hostUrlInput); - mHostUrlInput.setText(mServerInfo.mBaseUrl); + // Convert IDN to Unicode + mHostUrlInput.setText(DisplayUtils.convertIdn(mServerInfo.mBaseUrl, false)); if (mAction != ACTION_CREATE) { /// lock things that should not change mHostUrlInput.setEnabled(false); @@ -737,6 +739,8 @@ SsoWebViewClientListener, OnSslUntrustedCertListener { showRefreshButton(false); if (uri.length() != 0) { + // Handle internationalized domain names + uri = DisplayUtils.convertIdn(uri, true); mServerStatusText = R.string.auth_testing_connection; mServerStatusIcon = R.drawable.progress_small; showServerStatus(); diff --git a/src/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/com/owncloud/android/datamodel/FileDataStorageManager.java index 5b1bef1b..41a51063 100644 --- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java +++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java @@ -300,6 +300,7 @@ public class FileDataStorageManager { 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())) { diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java index 54727775..ce53c444 100644 --- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java +++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java @@ -20,21 +20,32 @@ package com.owncloud.android.datamodel; 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.Bitmap.CompressFormat; import android.graphics.BitmapFactory; import android.graphics.Matrix; -import android.graphics.Bitmap.CompressFormat; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.media.ExifInterface; 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; @@ -49,7 +60,8 @@ public class ThumbnailsCacheManager { 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; @@ -58,7 +70,9 @@ public class ThumbnailsCacheManager { 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(), @@ -67,10 +81,12 @@ public class ThumbnailsCacheManager { public static class InitDiskCacheTask extends AsyncTask { + @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, @@ -155,15 +171,17 @@ public class ThumbnailsCacheManager { public static class ThumbnailGenerationTask extends AsyncTask { private final WeakReference 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); if (storageManager == null) throw new IllegalArgumentException("storageManager must not be NULL"); mStorageManager = storageManager; + mAccount = account; } // Decode image in background. @@ -172,6 +190,15 @@ public class ThumbnailsCacheManager { 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()); @@ -182,9 +209,8 @@ public class ThumbnailsCacheManager { 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( @@ -203,6 +229,36 @@ public class ThumbnailsCacheManager { 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"); + } + } } } diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java index cdf12823..d61e6784 100644 --- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java +++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java @@ -33,6 +33,7 @@ import org.apache.http.HttpStatus; 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; @@ -325,7 +326,7 @@ public class SynchronizeFolderOperation extends RemoteOperation { private void synchronizeData(ArrayList 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()); @@ -372,6 +373,10 @@ public class SynchronizeFolderOperation extends RemoteOperation { 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()); diff --git a/src/com/owncloud/android/ui/activity/Preferences.java b/src/com/owncloud/android/ui/activity/Preferences.java index d078b1e2..20330931 100644 --- a/src/com/owncloud/android/ui/activity/Preferences.java +++ b/src/com/owncloud/android/ui/activity/Preferences.java @@ -104,7 +104,7 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa if (obj != null && obj instanceof LongClickableCheckBoxPreference) { mShowContextMenu = true; - mAccountName = obj.toString(); + mAccountName = ((LongClickableCheckBoxPreference) obj).getKey(); Preferences.this.openContextMenu(listView); @@ -406,7 +406,8 @@ public class Preferences extends SherlockPreferenceActivity implements AccountMa for (Account a : accounts) { LongClickableCheckBoxPreference accountPreference = new LongClickableCheckBoxPreference(this); accountPreference.setKey(a.name); - accountPreference.setTitle(a.name); + // Handle internationalized domain names + accountPreference.setTitle(DisplayUtils.convertIdn(a.name, false)); mAccountsPrefCategory.addPreference(accountPreference); // Check the current account that is being used diff --git a/src/com/owncloud/android/ui/activity/UploadFilesActivity.java b/src/com/owncloud/android/ui/activity/UploadFilesActivity.java index 09185726..83e7bc07 100644 --- a/src/com/owncloud/android/ui/activity/UploadFilesActivity.java +++ b/src/com/owncloud/android/ui/activity/UploadFilesActivity.java @@ -34,6 +34,9 @@ import android.widget.TextView; 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; @@ -73,6 +76,8 @@ public class UploadFilesActivity extends FileActivity implements 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) { @@ -119,6 +124,7 @@ public class UploadFilesActivity extends FileActivity implements actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST); actionBar.setListNavigationCallbacks(mDirectories, this); + // wait dialog if (mCurrentDialog != null) { mCurrentDialog.dismiss(); @@ -127,8 +133,15 @@ public class UploadFilesActivity extends FileActivity implements 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; @@ -139,12 +152,33 @@ public class UploadFilesActivity extends FileActivity implements } 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) { @@ -175,6 +209,7 @@ public class UploadFilesActivity extends FileActivity implements ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(false); } + toggleOffSelectAll(); } @@ -242,10 +277,11 @@ public class UploadFilesActivity extends FileActivity implements * {@inheritDoc} */ @Override - public void onDirectoryClick(File directory) { + public void onDirectoryClick(File directory) { pushDirname(directory); ActionBar actionBar = getSupportActionBar(); actionBar.setDisplayHomeAsUpEnabled(true); + toggleOffSelectAll(); } diff --git a/src/com/owncloud/android/ui/activity/Uploader.java b/src/com/owncloud/android/ui/activity/Uploader.java index 62ad44a4..66359f3d 100644 --- a/src/com/owncloud/android/ui/activity/Uploader.java +++ b/src/com/owncloud/android/ui/activity/Uploader.java @@ -39,22 +39,22 @@ import android.accounts.AccountManager; 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; @@ -62,6 +62,10 @@ import android.widget.EditText; 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. @@ -69,7 +73,7 @@ import android.widget.Toast; * @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; @@ -91,9 +95,11 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - getWindow().requestFeature(Window.FEATURE_NO_TITLE); mParents = new Stack(); - mParents.add(""); + + ActionBar actionBar = getSupportActionBar(); + actionBar.setIcon(DisplayUtils.getSeasonalIconId()); + if (prepareStreamsToUpload()) { mAccountManager = (AccountManager) getSystemService(Context.ACCOUNT_SERVICE); Account[] accounts = mAccountManager.getAccountsByType(MainApp.getAccountType()); @@ -106,8 +112,11 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro } else { mAccount = accounts[0]; mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); + initTargetFolder(); populateDirectoryList(); + } + } else { showDialog(DIALOG_NO_STREAM); } @@ -169,6 +178,7 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro public void onClick(DialogInterface dialog, int which) { mAccount = mAccountManager.getAccountsByType(MainApp.getAccountType())[which]; mStorageManager = new FileDataStorageManager(mAccount, getContentResolver()); + initTargetFolder(); populateDirectoryList(); } }); @@ -288,12 +298,22 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro 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 files = mStorageManager.getFolderContent(mFile); @@ -317,6 +337,14 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro } } + private String generatePath(Stack 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(); @@ -408,6 +436,13 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro 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(); } @@ -416,5 +451,52 @@ public class Uploader extends ListActivity implements OnItemClickListener, andro 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; + } + } diff --git a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java index 9a2a0d3a..e002efb7 100644 --- a/src/com/owncloud/android/ui/adapter/FileListListAdapter.java +++ b/src/com/owncloud/android/ui/adapter/FileListListAdapter.java @@ -82,10 +82,11 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { Context context, ComponentsGetter transferServiceGetter ) { - + mJustFolders = justFolders; mContext = context; mAccount = AccountUtils.getCurrentOwnCloudAccount(mContext); + mTransferServiceGetter = transferServiceGetter; mAppPreferences = PreferenceManager @@ -98,6 +99,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { // initialise thumbnails cache on background thread new ThumbnailsCacheManager.InitDiskCacheTask().execute(); + } @Override @@ -217,7 +219,7 @@ public class FileListListAdapter extends BaseAdapter implements ListAdapter { if (ThumbnailsCacheManager.cancelPotentialWork(file, fileIcon)) { final ThumbnailsCacheManager.ThumbnailGenerationTask task = new ThumbnailsCacheManager.ThumbnailGenerationTask( - fileIcon, mStorageManager + fileIcon, mStorageManager, mAccount ); if (thumbnail == null) { thumbnail = ThumbnailsCacheManager.mDefaultImg; diff --git a/src/com/owncloud/android/ui/fragment/LocalFileListFragment.java b/src/com/owncloud/android/ui/fragment/LocalFileListFragment.java index a9b6ad2c..62b41a3e 100644 --- a/src/com/owncloud/android/ui/fragment/LocalFileListFragment.java +++ b/src/com/owncloud/android/ui/fragment/LocalFileListFragment.java @@ -18,6 +18,7 @@ package com.owncloud.android.ui.fragment; import java.io.File; +import java.util.ArrayList; import android.app.Activity; import android.os.Bundle; @@ -97,13 +98,33 @@ public class LocalFileListFragment extends ExtendedListFragment { 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()) { @@ -209,16 +230,18 @@ public class LocalFileListFragment extends ExtendedListFragment { * @return File paths to the files checked by the user. */ public String[] getCheckedFilePaths() { - String [] result = null; + ArrayList result = new ArrayList(); 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= 354) { + if (Calendar.getInstance().get(Calendar.DAY_OF_YEAR) >= 354 && + MainApp.getAppContext().getString(R.string.app_name).equals(OWNCLOUD_APP_NAME)) { return R.drawable.winter_holidays_icon; } else { return R.drawable.icon; } } + + /** + * Converts an internationalized domain name (IDN) in an URL to and from ASCII/Unicode. + * @param url the URL where the domain name should be converted + * @param toASCII if true converts from Unicode to ASCII, if false converts from ASCII to Unicode + * @return the URL containing the converted domain name + */ + @TargetApi(Build.VERSION_CODES.GINGERBREAD) + public static String convertIdn(String url, boolean toASCII) { + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.GINGERBREAD) { + // Find host name after '//' or '@' + int hostStart = 0; + if (url.indexOf("//") != -1) { + hostStart = url.indexOf("//") + "//".length(); + } else if (url.indexOf("@") != -1) { + hostStart = url.indexOf("@") + "@".length(); + } + + int hostEnd = url.substring(hostStart).indexOf("/"); + // Handle URL which doesn't have a path (path is implicitly '/') + hostEnd = (hostEnd == -1 ? url.length() : hostStart + hostEnd); + + String host = url.substring(hostStart, hostEnd); + host = (toASCII ? IDN.toASCII(host) : IDN.toUnicode(host)); + + return url.substring(0, hostStart) + host + url.substring(hostEnd); + } else { + return url; + } + } } diff --git a/tests/.classpath b/tests/.classpath index 9b141f6f..26d8fe48 100644 --- a/tests/.classpath +++ b/tests/.classpath @@ -1,10 +1,10 @@ - - + +