Ver Fonte

Merge branch 'master' into NotificationActivity

Tobias Kaminsky há 7 anos atrás
pai
commit
38d6706ea6
100 ficheiros alterados com 1008 adições e 261 exclusões
  1. 5 2
      build.gradle
  2. 2 0
      fastlane/Appfile
  3. 6 0
      fastlane/Fastfile
  4. 11 0
      fastlane/Screengrabfile
  5. 0 1
      fastlane/metadata/android/de-DE/full_description.txt
  6. 0 1
      fastlane/metadata/android/de-DE/short_description.txt
  7. 0 1
      fastlane/metadata/android/de-DE/title.txt
  8. 0 1
      fastlane/metadata/android/en-GB/full_description.txt
  9. 0 1
      fastlane/metadata/android/en-GB/short_description.txt
  10. 0 1
      fastlane/metadata/android/en-GB/title.txt
  11. 0 1
      fastlane/metadata/android/en-US/full_description.txt
  12. 0 1
      fastlane/metadata/android/en-US/short_description.txt
  13. 0 1
      fastlane/metadata/android/en-US/title.txt
  14. 0 1
      fastlane/metadata/android/es-ES/full_description.txt
  15. 0 1
      fastlane/metadata/android/es-ES/short_description.txt
  16. 0 1
      fastlane/metadata/android/es-ES/title.txt
  17. 0 1
      fastlane/metadata/android/fr-FR/full_description.txt
  18. 0 1
      fastlane/metadata/android/fr-FR/short_description.txt
  19. 0 1
      fastlane/metadata/android/fr-FR/title.txt
  20. 0 1
      fastlane/metadata/android/is-IS/full_description.txt
  21. 0 1
      fastlane/metadata/android/is-IS/short_description.txt
  22. 0 1
      fastlane/metadata/android/is-IS/title.txt
  23. 0 1
      fastlane/metadata/android/it-IT/full_description.txt
  24. 0 1
      fastlane/metadata/android/it-IT/title.txt
  25. 0 1
      fastlane/metadata/android/nl-NL/full_description.txt
  26. 0 1
      fastlane/metadata/android/nl-NL/short_description.txt
  27. 0 1
      fastlane/metadata/android/nl-NL/title.txt
  28. 0 1
      fastlane/metadata/android/pl-PL/full_description.txt
  29. 0 1
      fastlane/metadata/android/pl-PL/short_description.txt
  30. 0 1
      fastlane/metadata/android/pl-PL/title.txt
  31. 0 1
      fastlane/metadata/android/pt-BR/full_description.txt
  32. 0 1
      fastlane/metadata/android/pt-BR/short_description.txt
  33. 0 1
      fastlane/metadata/android/pt-BR/title.txt
  34. 0 1
      fastlane/metadata/android/sr-SR/full_description.txt
  35. 0 1
      fastlane/metadata/android/sr-SR/short_description.txt
  36. 0 1
      fastlane/metadata/android/sr-SR/title.txt
  37. 0 1
      fastlane/metadata/android/tr-TR/full_description.txt
  38. 0 1
      fastlane/metadata/android/tr-TR/short_description.txt
  39. 0 1
      fastlane/metadata/android/tr-TR/title.txt
  40. 2 0
      lint.xml
  41. 21 12
      scripts/metadata/generate_metadata.py
  42. 40 0
      scripts/screenshots/addMockDevice.sh
  43. BIN
      scripts/screenshots/phone.png
  44. 175 0
      scripts/screenshots/phone.svg
  45. 175 0
      scripts/screenshots/sevenInch.svg
  46. BIN
      scripts/screenshots/tablet.png
  47. 0 0
      src/androidTest/AndroidManifest.xml
  48. 131 0
      src/androidTest/java/com/owncloud/android/screenshots/ScreenshotsIT.java
  49. 18 0
      src/debug/AndroidManifest.xml
  50. 19 0
      src/generic/fastlane/metadata/android/de-DE/full_description.txt
  51. 1 0
      src/generic/fastlane/metadata/android/de-DE/title.txt
  52. 19 0
      src/generic/fastlane/metadata/android/en-US/full_description.txt
  53. 1 0
      src/generic/fastlane/metadata/android/en-US/short_description.txt
  54. 1 0
      src/generic/fastlane/metadata/android/en-US/title.txt
  55. 19 0
      src/generic/fastlane/metadata/android/es-ES/full_description.txt
  56. 1 0
      src/generic/fastlane/metadata/android/es-ES/title.txt
  57. 19 0
      src/generic/fastlane/metadata/android/fr-FR/full_description.txt
  58. 1 0
      src/generic/fastlane/metadata/android/fr-FR/short_description.txt
  59. 1 0
      src/generic/fastlane/metadata/android/fr-FR/title.txt
  60. 19 0
      src/generic/fastlane/metadata/android/it-IT/full_description.txt
  61. 1 1
      src/generic/fastlane/metadata/android/it-IT/short_description.txt
  62. 1 0
      src/generic/fastlane/metadata/android/it-IT/title.txt
  63. 19 0
      src/generic/fastlane/metadata/android/ko-KR/full_description.txt
  64. 1 0
      src/generic/fastlane/metadata/android/ko-KR/short_description.txt
  65. 1 0
      src/generic/fastlane/metadata/android/ko-KR/title.txt
  66. 19 0
      src/generic/fastlane/metadata/android/nl-NL/full_description.txt
  67. 1 0
      src/generic/fastlane/metadata/android/nl-NL/title.txt
  68. 14 0
      src/generic/fastlane/metadata/android/pl-PL/full_description.txt
  69. 1 0
      src/generic/fastlane/metadata/android/pl-PL/title.txt
  70. 19 0
      src/generic/fastlane/metadata/android/pt-BR/full_description.txt
  71. 1 0
      src/generic/fastlane/metadata/android/pt-BR/short_description.txt
  72. 1 0
      src/generic/fastlane/metadata/android/pt-BR/title.txt
  73. 18 0
      src/generic/fastlane/metadata/android/sr-SR/full_description.txt
  74. 1 0
      src/generic/fastlane/metadata/android/sr-SR/short_description.txt
  75. 1 0
      src/generic/fastlane/metadata/android/sr-SR/title.txt
  76. 13 0
      src/generic/fastlane/metadata/android/tr-TR/full_description.txt
  77. 1 0
      src/generic/fastlane/metadata/android/tr-TR/title.txt
  78. 5 5
      src/main/java/com/owncloud/android/MainApp.java
  79. 25 34
      src/main/java/com/owncloud/android/datamodel/MediaProvider.java
  80. 98 123
      src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java
  81. 9 9
      src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java
  82. 17 17
      src/main/java/com/owncloud/android/ui/adapter/FileListListAdapter.java
  83. 0 1
      src/main/res/values-b+en+001/strings.xml
  84. 0 1
      src/main/res/values-b+es+419/strings.xml
  85. 47 1
      src/main/res/values-ca/strings.xml
  86. 0 1
      src/main/res/values-cs-rCZ/strings.xml
  87. 6 6
      src/main/res/values-de-rDE/strings.xml
  88. 0 1
      src/main/res/values-de/strings.xml
  89. 0 1
      src/main/res/values-es-rCL/strings.xml
  90. 0 1
      src/main/res/values-es-rCO/strings.xml
  91. 0 1
      src/main/res/values-es-rCR/strings.xml
  92. 0 1
      src/main/res/values-es-rDO/strings.xml
  93. 0 1
      src/main/res/values-es-rEC/strings.xml
  94. 0 1
      src/main/res/values-es-rGT/strings.xml
  95. 0 1
      src/main/res/values-es-rHN/strings.xml
  96. 1 1
      src/main/res/values-es-rMX/strings.xml
  97. 0 1
      src/main/res/values-es-rNI/strings.xml
  98. 0 1
      src/main/res/values-es-rPA/strings.xml
  99. 0 1
      src/main/res/values-es-rPE/strings.xml
  100. 0 1
      src/main/res/values-es-rPR/strings.xml

+ 5 - 2
build.gradle

@@ -107,8 +107,8 @@ android {
             versionDev {
             versionDev {
                 applicationId "com.nextcloud.android.beta"
                 applicationId "com.nextcloud.android.beta"
                 dimension "default"
                 dimension "default"
-                versionCode 20171230
-                versionName "20171230"
+                versionCode 20180105
+                versionName "20180105"
             }
             }
         }
         }
 
 
@@ -231,11 +231,14 @@ dependencies {
 
 
     // Espresso core
     // Espresso core
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
     androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-contrib:3.0.1'
     // UIAutomator - for cross-app UI tests, and to grant screen is turned on in Espresso tests
     // UIAutomator - for cross-app UI tests, and to grant screen is turned on in Espresso tests
     //androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
     //androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2'
     // fix conflict in dependencies; see http://g.co/androidstudio/app-test-app-conflict for details
     // fix conflict in dependencies; see http://g.co/androidstudio/app-test-app-conflict for details
     //androidTestImplementation "com.android.support:support-annotations:${supportLibraryVersion}"
     //androidTestImplementation "com.android.support:support-annotations:${supportLibraryVersion}"
     implementation 'org.jetbrains:annotations:15.0'
     implementation 'org.jetbrains:annotations:15.0'
+
+    androidTestCompile 'tools.fastlane:screengrab:1.0.0'
 }
 }
 
 
 configurations.all {
 configurations.all {

+ 2 - 0
fastlane/Appfile

@@ -0,0 +1,2 @@
+json_key_file "~/.gradle/Google\ Play\ Android\ Developer-Fastlane.json"
+package_name "com.nextcloud.client"

+ 6 - 0
fastlane/Fastfile

@@ -0,0 +1,6 @@
+# This is the minimum version number required.
+fastlane_version "2.58.0"
+
+lane :screenshots do
+  screengrab
+end

+ 11 - 0
fastlane/Screengrabfile

@@ -0,0 +1,11 @@
+app_package_name 'com.nextcloud.client'
+use_tests_in_packages ['com.owncloud.android.screenshots']
+
+app_apk_path 'build/outputs/apk/generic/debug/android2-generic-debug.apk'
+tests_apk_path 'build/outputs/apk/androidTest/generic/debug/android2-generic-debug-androidTest.apk'
+
+# locales ['en-US']
+locales ['en-US', 'de-DE', 'en-GB', 'fr-FR', 'it-IT', 'pt-BR', 'pt-PT', 'sv-SE', 'sq-AL', 'sq-MK', 'iw-IL', 'ar-AR', 'bg-BG', 'da-DK', 'fi-FI', 'gl-ES', 'hu-HU', 'tr-TR', 'uk-UK', 'vi-VI', 'ro-RO', 'ru-RU', 'sr-SR', 'pl-PL', 'el-GR', 'ko-KR', 'nl-NL', 'ja-JP', 'no-NO', 'eu-ES', 'lt-LT', 'es-ES', 'es-419', 'zh-HK', 'zk-CN', 'is-IS', 'sr-SR', 'id-ID', 'cs-CZ', 'sl-SL', 'fa-FA' ]
+
+# clear all previously generated screenshots in your local output directory before creating new ones
+clear_previous_screenshots true

+ 0 - 1
fastlane/metadata/android/de-DE/full_description.txt

@@ -1 +0,0 @@
-Die Open Source Nextcloud Android App ermöglicht Dir Zugriff auf alle Dateien in Deiner Nextcloud.\n\nFunktionen:\n* Einfache, moderne Oberfläche, volles Theming entsprechend Deiner Servereinstellungen\n* Lade Deine Dateien auf Deinen Nextcloud Server\n* Teile Deine Dateien mit anderen\n* Wichtige Dateien und Verzeichnisse können aktuell gehalten werden\n* Suche über alle Ordner auf deinem Server\n* Auto Upload für Fotos und Videos die auf deinem Gerät aufgenommen wurden\n* Bleibe auf dem aktuellen Stand durch Benachrichtigungen\n* Multi-Konten Unterstützung\n* Gesicherter Zugriff auf deine Daten mittels Fingerabdruck oder PIN\n* Integration mit DAVdroid für eine einfache Kalender & Kontakte Synchronisierung\n\nBitte berichte alle Probleme unter https://github.com/nextcloud/android/issues oder diskutiere über die App auf https://help.nextcloud.com/c/clients/android\n\nWas ist die Nextcloud? Die Nextcloud ist ein privater Dateiaustausch Server. Nextcloud ist Open Source und kann auf einem eigenen Server installiert werden. So behältst Du die Kontrolle über Deine Fotos, Deine Kalender und Kontakte, Deine Dokumente und alle anderen Daten. \n\nSieh Dir Nextcloud unter https://nextcloud.com an.

+ 0 - 1
fastlane/metadata/android/de-DE/short_description.txt

@@ -1 +0,0 @@
-Die Nextcloud App erlaubt Dir Zugriff auf alle Dateien in Deiner Nextcloud 

+ 0 - 1
fastlane/metadata/android/de-DE/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/en-GB/full_description.txt

@@ -1 +0,0 @@
-The copyleft libre software Nextcloud Android app, gives you access to all the files in your Nextcloud.\n\nFeatures:\n* Easy, modern interface, suited to the theme of your server\n* Upload files to your Nextcloud server\n* Share them with others\n* Keep your favourite files and folders synced\n* Search across all folders on your server\n* Auto Upload for photos and videos taken by your device\n* Keep up to date with notifications\n* Multi-account support\n* Secure access to your data with fingerprint or PIN\n* Integration with DAVdroid for easy setup of calendar & Contacts synchronisation\n\nPlease report all issues at https://github.com/nextcloud/android/issues and discuss this app at https://help.nextcloud.com/c/clients/android\n\nNew to Nextcloud? Nextcloud is a private file sync & share and communication server. It is libre software, and you can host it yourself or pay a company to do it for you. That way, you are in control of your photos, your calendar and contact data, your documents and everything else.\n\nCheck out Nextcloud at https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/en-GB/short_description.txt

@@ -1 +0,0 @@
-The Nextcloud Android app gives you access to all your files in your Nextcloud

+ 0 - 1
fastlane/metadata/android/en-GB/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/en-US/full_description.txt

@@ -1 +0,0 @@
-The copyleft libre software Nextcloud Android app, gives you access to all the files in your Nextcloud.\n\nFeatures:\n* Easy, modern interface, suited to the theme of your server\n* Upload files to your Nextcloud server\n* Share them with others\n* Keep your favorite files and folders synced\n* Search across all folders on your server\n* Auto Upload for photos and videos taken by your device\n* Keep up to date with notifications\n* Multi-account support\n* Secure access to your data with fingerprint or PIN\n* Integration with DAVdroid for easy setup of calendar & Contacts synchronization\n\nPlease report all issues at https://github.com/nextcloud/android/issues and discuss this app at https://help.nextcloud.com/c/clients/android\n\nNew to Nextcloud? Nextcloud is a private file sync & share and communication server. It is libre software, and you can host it yourself or pay a company to do it for you. That way, you are in control of your photos, your calendar and contact data, your documents and everything else.\n\nCheck out Nextcloud at https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/en-US/short_description.txt

@@ -1 +0,0 @@
-The Nextcloud Android app gives you access to all your files in your Nextcloud

+ 0 - 1
fastlane/metadata/android/en-US/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/es-ES/full_description.txt

@@ -1 +0,0 @@
-La app copyleft de software libre Nextcloud para Android te permite acceder a todos tus archivos en tu Nextcloud.\n\nCaracterísticas\n*Interfaz sencilla y moderna, adaptada al tema de tu servidor\n* Sube tus archivos a tu servidor Nextcloud\n* Comparte tus archivos con otros\n* Mantén sincronizados tus archivos y carpetas favoritos\n* Busca en todas las carpetas del servidor\n* Subida automática de fotos y vídeos realizados con tu dispositivo\n* Mantente al tanto de todo mediante las notificaciones\n* Soporte de múltiples cuentas\n* Acceso seguro a tus datos con huella digital o PIN\n* Integración con DAVdroid para configurar fácilmente la sincronización de calendarios y contactos\n\nPor favor, informa de todos los problemas en https://github.com/nextcloud/android/issues y discute la app en https://help.nextcloud.com/c/clients/android\n\n¿Eres nuevo en Nextcloud? Nextcloud es un servidor privado para sincronizar, compartir y comunicarte. Es software libre y puedes alojarlo tú mismo o pagar a una compañía para que lo haga por ti. De esta forma, tienes el control de tus fotos, tus calendarios y los datos de contactos, tus documentos y todo lo demás.\n\nConoce Nextcloud en https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/es-ES/short_description.txt

@@ -1 +0,0 @@
-La app de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud

+ 0 - 1
fastlane/metadata/android/es-ES/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/fr-FR/full_description.txt

@@ -1 +0,0 @@
-L'application Open Source Nextcloud Android vous permet d'accéder à tous vos fichiers stockés sur Nextcloud.\n\nFonctionnalités :\n* Interface facile d'utilisation et moderne, personnalisée avec le même thème que celui du serveur\n* Envoyez vos fichiers sur votre serveur Nextcloud\n* Partagez vos fichiers avec d'autres personnes\n* Synchronisez vos fichiers et dossiers favoris\n* Recherchez parmi tous vos dossiers situés sur votre serveur\n* Téléversez automatiquement les photos et vidéos prises avec votre appareil\n* Restez à jour grâce aux notifications\n* Gestion du multi comptes\n* Accès sécurisé à vos données avec votre empreinte digitale ou un code pin\n* Intégration avec DAVdroid pour faciliter l'installation de la synchronisation du Calendrier & des Contacts\n\nMerci de signaler tout problème sur https://github.com/nextcloud/android/issues et venez discuter de cette application sur https://help.nextcloud.com/c/clients/android\n\nVous découvrez Nextcloud ? Nextcloud est un système de synchronisation de fichiers personnels & un serveur de partage. Ce système est entièrement Open Source. Vous pouvez l'héberger vous-même ou payer une entreprise pour ce service. Vous aurez ainsi le contrôle de vos photos, votre calendrier, vos données de contacts, vos documents et de tout le reste.\n\nPour en savoir plus, consultez le site Nextcloud sur https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/fr-FR/short_description.txt

@@ -1 +0,0 @@
-L'application Android Nextcloud vous permet d'accéder à tous vos fichiers et con

+ 0 - 1
fastlane/metadata/android/fr-FR/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/is-IS/full_description.txt

@@ -1 +0,0 @@
-Nextcloud-forritið fyrir Android er opið og frjálst, og gerir þér kleift að nálgast allar skrárnar þínar á Nextcloud-skýinu  þínu.\n\nEiginleikar:\n* Einfalt, nútímalegt viðmót, með þema í samræmi við netþjóninn þinn\n* Sendir skrár inn á Nextcloud-þjóna\n* Deilir skránum þínum með öðrum\n* Heldur eftirlætisskránum og möppunum þínum samstilltum\n* Leitar í öllum möppum á þjóninum þínum\n* Sjálfvirk innsending mynda og myndskeiða sem tekin eru með tækjunum þínum\n* Heldur uppfærðu með tilkynningum\n* Styður við marga notandaaðganga\n* Öruggur aðgangur að gögnunum þínum með fingrafari eða PIN-númeri\n* Samþætting við DAVdroid fyrir auðvelda uppsetningu á samstillingu dagatals og tengiliða\n\nTilkynntu um vandamál á https://github.com/nextcloud/android/issues og ræddu um þetta forrit á https://help.nextcloud.com/c/clients/android\n\nNýr í Nextcloud? Nextcloud er þinn eiginn vefþjónn til samstillingar, samskipta og deilingar á skrám. Kóði hugbúnaðarins er fullkomlega opinn og frjáls til afnota; þú getur hýst hann sjálfur eða borgað fyrirtæki fyrir að gera það fyrir þig. Á þennan máta, hefur þú sjálfur full yfirráð yfir myndunum þínum, dagatalinu, tengiliðaskránum, skjölunum þínum og öllu öðru tilheyrandi.\n\nSkoðaðu fleira um Nextcloud á https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/is-IS/short_description.txt

@@ -1 +0,0 @@
-Nextcloud Android appið gerir þér kleift að nálgast allar skrárnar þínar á Nextc

+ 0 - 1
fastlane/metadata/android/is-IS/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/it-IT/full_description.txt

@@ -1 +0,0 @@
-L'applicazione libera per Android di Nextcloud ti consente di accedere ai file sul tuo Nextcloud.\n\nFunzionalità:\n* Interfaccia semplice e moderna, che si adattaal tema del tuo server\n* Carica i tuoi file sul tuo server Nextcloud\n* Condividili con altri\n* Mantieni i tuoi file e le cartelle preferite sincronizzate\n* Ricerca attraverso tutte le cartelle sul tuo server\n* Caricamento automatico per le foto e i video acquisiti con il tuo dispositivo\n* Tieniti aggiornato con le notifiche\n* Supporto di più account\n* Proteggi l'accesso ai tuoi dati con impronta digitale o PIN\n* Integrazione con DAVdroid per una facile configurazione della sincronizzazione di calendari e contatti\n\nSegnala tutti i problemi su https://github.com/nextcloud/android/issues e discuti questa applicazione su https://help.nextcloud.com/c/clients/android\n\nNuovo di Nextcloud? Nextcloud è un server privato di sincronizzazione e condivisione dei file e un server di comunicazione. È un software libero e puoi ospitarlo a casa tua o pagare una società che lo faccia per conto tuo. In questo modo, avrai il controllo delle tue foto, del tuo calendario e dei tuoi contatti, dei tuoi documenti e di qualsiasi altra cosa.\n\nDai un'occhiata a Nextcloud su https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/it-IT/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/nl-NL/full_description.txt

@@ -1 +0,0 @@
-De Open Source Nextcloud Android app geeft je toegang tot al je bestanden op Nextcloud servers.\n\nFuncties:\n* Simpel & modern uiterlijk, helemaal in dezelfde stijl als jouw server\n* Upload bestanden naar je Nextcloud server\n* Deel bestanden met anderen\n* Hou je favoriete bestanden en mappen gesynchroniseerd\n* Zoek in al je bestanden op de server\n* Automatisch uploaden voor al je foto's en video's\n* Blijf op de hoogte met notificaties\n* Ondersteuning voor meerdere accounts en servers\n* Beveilig toegang tot je gegevens met vingerafdruk of pincode\n* Integratie met DAVdroid voor makkelijk synchroniseren van je kalender & contacten\n\nMeld alsjeblieft alle bugs en problemen op https://github.com/nextcloud/android/issues en doe je zegje over deze app in ons forum https://help.nextcloud.com/c/clients/android\n\nNieuw bij Nextcloud? Nextcloud is je persoonlijke bestanden- en communicatieserver. Het is volledig open source en je kunt het zelf hosten of een bedrijf betalen om dat voor je te doen. Zo heb je volledige controle over je foto's, kalender, adresboek, document en al het andere.\n\nCheck Nextcloud op https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/nl-NL/short_description.txt

@@ -1 +0,0 @@
-De Nextcloud-app voor Android geeft je toegang tot al je Nextcloud bestanden.

+ 0 - 1
fastlane/metadata/android/nl-NL/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/pl-PL/full_description.txt

@@ -1 +0,0 @@
-Oparta na Open Source aplikacja Nexcloud Android umożliwia dostęp do wszystkich twoich plików w Nextcloud.\n\nFunkcje:\n* Prosty i nowoczesny wygląd\n* Wysyłaj swoje pliki na swój serwer Nextcloud* Dawaj innym dostęp do twoich plików\n* Synchronizuj wybrane pliki i katalogi z serwerem\n* Automatycznie wysyłaj zdjęcia i filmy robione urządzeniem\n* Wsparcie dla wielu kont\n\nZgłaszaj błędy na https://github.com/nextcloud/android/issues i dyskutuj na temat tej aplikacji na https://help.nextcloud.com/c/clients/android\n\nNie znasz jeszcze Nextcloud? Nextcloud jest prywatnym serwerem synchronizacji & współdzielenia plików oraz komunikacji. Jego źródła są całkowicie otwarte, więc możesz korzystać z niego na własnym serwerze albo możesz zapłacić za to firmie trzeciej. W ten sposób kontrolujesz swoje zdjęcia, kalendarz, dane kontaktowe, twoje dokumenty i inne dane.\n\nZobacz Nextcloud na https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/pl-PL/short_description.txt

@@ -1 +0,0 @@
-Aplikacja Nextcloud na Androida umożliwia Tobie na dostęp do wszystkich plików n

+ 0 - 1
fastlane/metadata/android/pl-PL/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/pt-BR/full_description.txt

@@ -1 +0,0 @@
-O aplicativo Android de código aberto do Nextcloud lhe dá acesso a todos os arquivos em seu Nextcloud.\n\nFeatures:\n* Interface fácil e moderna, adequada ao tema do seu servidor\n* Envia arquivos para seu servidor Nextcloud\n* Compartilhe arquivo com outros\n* Mantenha seus arquivos e pastas favoritas sincronizadas\n* Pesquise em todas as pastas do seu servidor\n* Envio automático para fotos e vídeos tirados pelo seu dispositivo portátil\n* Mantenha-se atualizado com notificações\n* Suporte à multi-conta\n* Acesso seguro aos seus dados com impressão digital ou PIN\n* Integração com o DAVdroid para facilitar a configuração do calendário e & sincronização de contatos\n\nPor favor, informe qualquer problema em https://github.com/nextcloud/android/issues e discuta sobre este aplicativo em https://help.nextcloud.com/c/clients/android\n\nNovo para o Nextcloud? Nextcloud é um servidor privado de sincronização de arquivos  & compartilhamento e comunicação. É um software livre e você pode hospedá-lo você mesmo ou pagar uma empresa para fazê-lo. Dessa forma, você controla suas fotos, seu calendário e dados de contato, seus documentos e tudo mais.\n\nSaiba mais sobre o Nextcloud em https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/pt-BR/short_description.txt

@@ -1 +0,0 @@
-O aplicativo Android do Nextcloud permite acesso total aos arquivos do Nextcloud

+ 0 - 1
fastlane/metadata/android/pt-BR/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/sr-SR/full_description.txt

@@ -1 +0,0 @@
-Некстклауд андроид апликација отвореног кода омогућава приступ свим фајловима на вашем Некстклауд серверу.\n\nОсобине:\n* Лако и модерно сучеље, потпуно усклађено са темом са сервера\n* Отпремање фајлова на Некстклауд сервер\n* Дељење фајлова са другима\n* Синхронизација омиљених фајлова и фасцикли\n* Претрага кроз све фасцикле на серверу\n* Аутоматско отпремање слика и видео записа са уређаја\n* Обавештења са сервера\n* Подршка за више налога\n* Безбедан приступ свим подацима преко отиска прста или пина\n* Интеграција са ДАВдроидом за брзо подешавање синхронизације календара & контаката\n\nСве проблеме можете да пријавите на https://github.com/nextcloud/android/issues а о апликацији дискутујте на https://help.nextcloud.com/c/clients/android\nНови сте на Некстклауду? Некстклауд је лични сервер за синхронизацију, дељење фајлова & комуникацију. Потпуно је отвореног кода и можете да га сами хостовати или платити компанији да која то већ ради. На овај начин, сами контролишете своје слике, календаре, контакате, документа и све остало.\n\nПогледајте Некстклауд на https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/sr-SR/short_description.txt

@@ -1 +0,0 @@
-Некстклауд Андроид апликација даје приступ свим вашим фајловима на Некстклауд се

+ 0 - 1
fastlane/metadata/android/sr-SR/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 0 - 1
fastlane/metadata/android/tr-TR/full_description.txt

@@ -1 +0,0 @@
-Copyleft Nextcloud Android uygulaması, Nextcloud üzerindeki tüm dosyalarınıza erişmenizi sağlar.\n\nÖzellikleri:\* Kolay kullanılan modern arayüz\n* Dosyalarınızı Nextcloud sunucunuza kolayca yükleyebilme\n* Dosyalarınızı başkalarıyla paylaşabilme\n* Sık kullandığınız dosya ve klasörleri eşitleme\n* Çektiğiniz fotoğraf ve görüntüleri anında yükleme\n* Birden çok hesap desteği\nKullanımda karşılaşabileceğiniz hataları https://github.com/nextcloud/android/issues adresinden bildirebilir, uygulama hakkındaki konuları https://help.nextcloud.com adresinde tartışabilirsiniz ;-)\n\nNextcloud ile yeni mi tanıştınız? Nextcloud özel bir veri depolama ve paylaşma ağıdır. Tamamen açık kaynak kodludur. Dosyalarınızı kendi sunucunuzda saklayabileceğiniz gibi ücretli hizmet olarak da satın alabilirsiniz. Böylece fotoğraflarınız, dosyalarınız, takviminiz, belgeleriniz, kişileriniz ve diğer tüm özel bilgileriniz sizin kontrolünüzde olur. \n\nAyrıntılı bilgi almak için sitemize bakabilirsiniz: https://nextcloud.com

+ 0 - 1
fastlane/metadata/android/tr-TR/short_description.txt

@@ -1 +0,0 @@
-Nextcloud Android uygulaması Nextcloud üzerindeki tüm dosyalarınıza erişmenizi s

+ 0 - 1
fastlane/metadata/android/tr-TR/title.txt

@@ -1 +0,0 @@
-Nextcloud

+ 2 - 0
lint.xml

@@ -7,6 +7,8 @@
     
     
     <issue id="UnusedResources">
     <issue id="UnusedResources">
         <ignore regexp="store_short_desc|store_full_desc|store_short_dev_desc|store_full_dev_desc" />
         <ignore regexp="store_short_desc|store_full_desc|store_short_dev_desc|store_full_dev_desc" />
+        <ignore
+            regexp="screenshot_01_gridView|screenshot_02_listView|screenshot_03_drawer|screenshot_04_accounts|screenshot_05_autoUpload|screenshot_06_davdroid"/>
     </issue>
     </issue>
     
     
     <issue id="MissingQuantity">
     <issue id="MissingQuantity">

+ 21 - 12
scripts/metadata/generate_metadata.py

@@ -5,14 +5,14 @@
 # copied on 2017/11/06 from https://github.com/grote/Transportr/blob/master/fastlane/generate_metadata.py
 # copied on 2017/11/06 from https://github.com/grote/Transportr/blob/master/fastlane/generate_metadata.py
 # adapted by Tobias Kaminsky
 # adapted by Tobias Kaminsky
 
 
+import codecs
 import os
 import os
 import shutil
 import shutil
-import codecs
 from xml.etree import ElementTree
 from xml.etree import ElementTree
 
 
-
 XML_PATH = '../../src/main/res'
 XML_PATH = '../../src/main/res'
-METADATA_PATH = '../../fastlane/metadata/android'
+METADATA_PATH = '../../src/generic/fastlane/metadata/android/'
+METADATA_DEV_PATH = '../../src/versionDev/fastlane/metadata/android/'
 DEFAULT_LANG = 'en-US'
 DEFAULT_LANG = 'en-US'
 LANG_MAP = {
 LANG_MAP = {
     'values': 'en-US',
     'values': 'en-US',
@@ -79,15 +79,24 @@ def main():
         e = ElementTree.parse(strings_file).getroot()
         e = ElementTree.parse(strings_file).getroot()
         short_desc = e.find('.//string[@name="store_short_desc"]')
         short_desc = e.find('.//string[@name="store_short_desc"]')
         full_desc = e.find('.//string[@name="store_full_desc"]')
         full_desc = e.find('.//string[@name="store_full_desc"]')
-        if short_desc is None or full_desc is None:
-            print("Warning: Skipping %s because of incomplete translation" % entry)
-            continue
-        save_file(short_desc.text, LANG_MAP[entry], 'short_description.txt')
-        save_file(full_desc.text, LANG_MAP[entry], 'full_description.txt')
-
+        short_dev_desc = e.find('.//string[@name="store_short_dev_desc"]')
+        full_dev_desc = e.find('.//string[@name="store_full_dev_desc"]')
+        if short_desc is not None:
+            save_file(short_desc.text, LANG_MAP[entry], 'short_description.txt', False)
+        if short_dev_desc is not None:
+            save_file(short_dev_desc.text, LANG_MAP[entry], 'short_description.txt', True)
+        if full_desc is not None:
+            save_file(full_desc.text, LANG_MAP[entry], 'full_description.txt', False)
+        if full_dev_desc is not None:
+            save_file(full_dev_desc.text, LANG_MAP[entry], 'full_description.txt', True)
+
+
+def save_file(text, directory, filename, dev):
+    if dev:
+        directory_path = os.path.join(PATH, METADATA_DEV_PATH, directory)
+    else:
+        directory_path = os.path.join(PATH, METADATA_PATH, directory)
 
 
-def save_file(text, directory, filename):
-    directory_path = os.path.join(PATH, METADATA_PATH, directory)
     if not os.path.exists(directory_path):
     if not os.path.exists(directory_path):
         os.makedirs(directory_path)
         os.makedirs(directory_path)
     if filename == 'short_description.txt':
     if filename == 'short_description.txt':
@@ -103,7 +112,7 @@ def save_file(text, directory, filename):
 
 
 
 
 def clean_text(text, limit=0):
 def clean_text(text, limit=0):
-    text = text.replace('\\\'', '\'')
+    text = text.replace('\\\'', '\'').replace('\\n', '\n')
     if limit != 0 and len(text) > limit:
     if limit != 0 and len(text) > limit:
         print("Warning: Short Description longer than 80 characters, truncating...")
         print("Warning: Short Description longer than 80 characters, truncating...")
         text = text[:limit]
         text = text[:limit]

+ 40 - 0
scripts/screenshots/addMockDevice.sh

@@ -0,0 +1,40 @@
+#!/bin/bash
+
+cd scripts/screenshots/
+for i in $(find ../../fastlane | grep png) ; do 
+    device=$(echo $i | cut -d"/" -f8 | sed s'#Screenshots##')
+    textID=$(echo $i | cut -d"/" -f9 | cut -d"_" -f1,2)
+    locale=$(echo $i | cut -d"/" -f6)
+    
+    # handle some locales different
+    case $locale in
+        "en-US")
+            locale=""
+            ;;
+        "de-DE")
+            locale="-de"
+            ;;
+        *)
+            locale="-"$locale
+    esac
+    
+    if [ -e ../../src/main/res/values$locale/strings.xml ] ; then
+        text=$(grep $textID ../../src/main/res/values$locale/strings.xml | cut -d">" -f2 | cut -d"<" -f1 | sed s'#\&amp;#\\&#')
+    else
+        text=""
+    fi
+    
+    # fallback to english if there is not translation
+    if [ -n $text ]; then
+        text=$(grep $textID ../../src/main/res/values/strings.xml | cut -d">" -f2 | cut -d"<" -f1 | sed s'#\&amp;#\\&#')
+    fi
+    
+
+    sed "s#{image}#$i#;s#{text}#$text#g" $device.svg > temp.svg
+    
+    if [ $textID == "06_davdroid" ] ; then
+        sed "s#display:none#display:visible#" -i temp.svg
+    fi
+    
+    inkscape temp.svg -e $i
+done

BIN
scripts/screenshots/phone.png


+ 175 - 0
scripts/screenshots/phone.svg

@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+    xmlns:dc="http://purl.org/dc/elements/1.1/"
+    xmlns:cc="http://creativecommons.org/ns#"
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns="http://www.w3.org/2000/svg"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+    width="483.30557mm"
+    height="800mm"
+    viewBox="0 0 483.30556 800.00003"
+    version="1.1"
+    id="svg4553"
+    inkscape:version="0.92.1 r"
+    sodipodi:docname="phone.svg">
+    <defs
+        id="defs4547">
+        <linearGradient
+            inkscape:collect="always"
+            id="linearGradient832">
+            <stop
+                style="stop-color:#000000;stop-opacity:1;"
+                offset="0"
+                id="stop828"/>
+            <stop
+                style="stop-color:#000000;stop-opacity:0;"
+                offset="1"
+                id="stop830"/>
+        </linearGradient>
+        <radialGradient
+            inkscape:collect="always"
+            xlink:href="#linearGradient832"
+            id="radialGradient836"
+            cx="2564.2764"
+            cy="7303.2788"
+            fx="2564.2764"
+            fy="7303.2788"
+            r="115.44445"
+            gradientTransform="matrix(1,0,0,0.37896268,0,4535.6086)"
+            gradientUnits="userSpaceOnUse"/>
+        <filter
+            inkscape:collect="always"
+            style="color-interpolation-filters:sRGB"
+            id="filter888"
+            x="-0.016423529"
+            width="1.0328471"
+            y="-0.044553191"
+            height="1.0891064">
+            <feGaussianBlur
+                inkscape:collect="always"
+                stdDeviation="1.5541406"
+                id="feGaussianBlur890"/>
+        </filter>
+    </defs>
+    <sodipodi:namedview
+        id="base"
+        pagecolor="#0082c9"
+        bordercolor="#666666"
+        borderopacity="1.0"
+        inkscape:pageopacity="1"
+        inkscape:pageshadow="2"
+        inkscape:zoom="0.32"
+        inkscape:cx="1173.7175"
+        inkscape:cy="1426.1712"
+        inkscape:document-units="mm"
+        inkscape:current-layer="layer1"
+        showgrid="false"
+        fit-margin-top="80"
+        fit-margin-left="0"
+        fit-margin-right="0"
+        fit-margin-bottom="0"
+        inkscape:window-width="1600"
+        inkscape:window-height="835"
+        inkscape:window-x="1600"
+        inkscape:window-y="0"
+        inkscape:window-maximized="1"
+        inkscape:measure-start="0,0"
+        inkscape:measure-end="0,0"/>
+    <metadata
+        id="metadata4550">
+        <rdf:RDF>
+            <cc:Work
+                rdf:about="">
+                <dc:format>image/svg+xml</dc:format>
+                <dc:type
+                    rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+                <dc:title/>
+            </cc:Work>
+        </rdf:RDF>
+    </metadata>
+    <g
+        inkscape:label="Ebene 1"
+        inkscape:groupmode="layer"
+        id="layer1"
+        transform="translate(-454.12732,1199.2512)">
+        <image
+            sodipodi:absref="/home/tobi/Daten/arbeit/nextcloud/SourceCode/android4/scripts/screenshots/{image}"
+            xlink:href="{image}"
+            width="382.17361"
+            height="679.41968"
+            preserveAspectRatio="none"
+            id="image4495"
+            x="502.9848"
+            y="-928.13586"/>
+        <rect
+            style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.75;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:843.95349121;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+            id="rect4493-5"
+            width="382.17361"
+            height="458.69916"
+            x="502.9848"
+            y="-751.86719"/>
+        <image
+            sodipodi:absref="/home/tobi/Daten/arbeit/nextcloud/SourceCode/android4/scripts/screenshots/phone.png"
+            xlink:href="phone.png"
+            width="483.30557"
+            height="893.9389"
+            preserveAspectRatio="none"
+            id="image10"
+            x="454.12732"
+            y="-1028.6078"/>
+        <flowRoot
+       transform="matrix(0.26458333,0,0,0.26458333,17.310326,-3047.5107)"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952761;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;opacity:0.5;filter:url(#filter888);"
+       id="flowRoot846"
+       xml:space="preserve"><flowRegion
+         style="text-align:center;text-anchor:middle;fill:#000000;stroke-width:3.77952761;stroke-miterlimit:4;stroke-dasharray:none;stroke:none;stroke-opacity:1;fill-opacity:1;"
+         id="flowRegion840"><rect
+           style="text-align:center;text-anchor:middle;fill:#000000;stroke-width:3.77952761;stroke-miterlimit:4;stroke-dasharray:none;stroke:none;stroke-opacity:1;fill-opacity:1;"
+           y="7244.0518"
+           x="1654.2856"
+           height="298.32639"
+           width="1820.0288"
+           id="rect838" /></flowRegion><flowPara
+         style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;stroke-width:3.77952761;stroke-miterlimit:4;stroke-dasharray:none;stroke:none;stroke-opacity:1;fill-opacity:1;"
+         id="flowPara842">{text}</flowPara><flowPara
+         style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;stroke-width:3.77952761;stroke-miterlimit:4;stroke-dasharray:none;stroke:none;stroke-opacity:1;fill-opacity:1;"
+         id="flowPara844" /></flowRoot>    <flowRoot
+       xml:space="preserve"
+       id="flowRoot5145"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       transform="matrix(0.26458333,0,0,0.26458333,17.310326,-3047.5107)"><flowRegion
+         id="flowRegion5147"
+         style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><rect
+           id="rect5149"
+           width="1820.0288"
+           height="298.32639"
+           x="1654.2856"
+           y="7244.0518"
+           style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRegion><flowPara
+         id="flowPara5151"
+         style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">{text}</flowPara><flowPara
+         id="flowPara5153"
+         style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRoot>    <flowRoot
+       xml:space="preserve"
+       id="flowRoot5174"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
+         id="flowRegion5176"><rect
+           id="rect5178"
+           width="5.7142859"
+           height="57.142857"
+           x="177.14285"
+           y="480.14975" /></flowRegion><flowPara
+         id="flowPara5180" /></flowRoot>
+        <rect
+            style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.75;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:430.52496338;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+            id="rect4493"
+            width="382.17358"
+            height="119.36794"
+            x="502.9848"
+            y="-965.70728"/>
+    </g>
+</svg>

+ 175 - 0
scripts/screenshots/sevenInch.svg

@@ -0,0 +1,175 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+    xmlns:dc="http://purl.org/dc/elements/1.1/"
+    xmlns:cc="http://creativecommons.org/ns#"
+    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+    xmlns="http://www.w3.org/2000/svg"
+    xmlns:xlink="http://www.w3.org/1999/xlink"
+    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+    width="939.90002mm"
+    height="519mm"
+    viewBox="0 0 939.9 519.00002"
+    version="1.1"
+    id="svg4553"
+    inkscape:version="0.92.1 r"
+    sodipodi:docname="sevenInch.svg">
+    <defs
+        id="defs4547">
+        <linearGradient
+            inkscape:collect="always"
+            id="linearGradient832">
+            <stop
+                style="stop-color:#000000;stop-opacity:1;"
+                offset="0"
+                id="stop828"/>
+            <stop
+                style="stop-color:#000000;stop-opacity:0;"
+                offset="1"
+                id="stop830"/>
+        </linearGradient>
+        <radialGradient
+            inkscape:collect="always"
+            xlink:href="#linearGradient832"
+            id="radialGradient836"
+            cx="2564.2764"
+            cy="7303.2788"
+            fx="2564.2764"
+            fy="7303.2788"
+            r="115.44445"
+            gradientTransform="matrix(1,0,0,0.37896268,0,4535.6086)"
+            gradientUnits="userSpaceOnUse"/>
+        <filter
+            inkscape:collect="always"
+            style="color-interpolation-filters:sRGB"
+            id="filter888"
+            x="-0.016423529"
+            width="1.032847"
+            y="-0.04455319"
+            height="1.0891064">
+            <feGaussianBlur
+                inkscape:collect="always"
+                stdDeviation="1.5541406"
+                id="feGaussianBlur890"/>
+        </filter>
+    </defs>
+    <sodipodi:namedview
+        id="base"
+        pagecolor="#0082c9"
+        bordercolor="#666666"
+        borderopacity="1.0"
+        inkscape:pageopacity="1"
+        inkscape:pageshadow="2"
+        inkscape:zoom="0.22627418"
+        inkscape:cx="1294.096"
+        inkscape:cy="109.62556"
+        inkscape:document-units="mm"
+        inkscape:current-layer="layer1"
+        showgrid="false"
+        fit-margin-top="80"
+        fit-margin-left="0"
+        fit-margin-right="0"
+        fit-margin-bottom="0"
+        inkscape:window-width="1600"
+        inkscape:window-height="835"
+        inkscape:window-x="0"
+        inkscape:window-y="0"
+        inkscape:window-maximized="1"
+        inkscape:measure-start="0,0"
+        inkscape:measure-end="0,0"/>
+    <metadata
+        id="metadata4550">
+        <rdf:RDF>
+            <cc:Work
+                rdf:about="">
+                <dc:format>image/svg+xml</dc:format>
+                <dc:type
+                    rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+                <dc:title/>
+            </cc:Work>
+        </rdf:RDF>
+    </metadata>
+    <g
+        inkscape:label="Ebene 1"
+        inkscape:groupmode="layer"
+        id="layer1"
+        transform="translate(-205.9464,1011.8911)">
+        <image
+            sodipodi:absref="/home/tobi/Daten/arbeit/nextcloud/SourceCode/android4/scripts/screenshots/{image}"
+            xlink:href="{image}"
+            y="-829.59448"
+            x="335.71039"
+            id="image4525"
+            preserveAspectRatio="none"
+            height="425.23251"
+            width="680.37207"/>
+        <flowRoot
+       transform="matrix(0.26458333,0,0,0.26458333,-2.5683677,-2878.1763)"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;opacity:0.5;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter888)"
+       id="flowRoot846"
+       xml:space="preserve"><flowRegion
+         style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="flowRegion840"><rect
+           style="text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+           y="7244.0518"
+           x="1654.2856"
+           height="298.32639"
+           width="1820.0288"
+           id="rect838" /></flowRegion><flowPara
+         style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="flowPara842">{text}</flowPara><flowPara
+         style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+         id="flowPara844" /></flowRoot>    <flowRoot
+       xml:space="preserve"
+       id="flowRoot5145"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:96px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:center;letter-spacing:0px;word-spacing:0px;text-anchor:middle;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:3.77952766;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       transform="matrix(0.26458333,0,0,0.26458333,-2.5683681,-2878.1763)"><flowRegion
+         id="flowRegion5147"
+         style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"><rect
+           id="rect5149"
+           width="1820.0288"
+           height="298.32639"
+           x="1654.2856"
+           y="7244.0518"
+           style="text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRegion><flowPara
+         id="flowPara5151"
+         style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1">{text}</flowPara><flowPara
+         id="flowPara5153"
+         style="font-style:normal;font-variant:normal;font-weight:300;font-stretch:normal;font-family:'Open Sans';-inkscape-font-specification:'Open Sans Light';text-align:center;text-anchor:middle;fill:#ffffff;stroke:none;stroke-width:3.77952766;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></flowRoot>    <flowRoot
+       xml:space="preserve"
+       id="flowRoot5174"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:20px;line-height:125%;font-family:Helvetica;-inkscape-font-specification:Helvetica;text-align:start;letter-spacing:0px;word-spacing:0px;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
+         id="flowRegion5176"><rect
+           id="rect5178"
+           width="5.7142859"
+           height="57.142857"
+           x="177.14285"
+           y="480.14975" /></flowRegion><flowPara
+         id="flowPara5180" /></flowRoot>
+        <image
+            sodipodi:absref="/home/tobi/Daten/arbeit/nextcloud/SourceCode/android4/scripts/screenshots/tablet.png"
+            xlink:href="tablet.png"
+            width="977.90002"
+            height="521.75836"
+            preserveAspectRatio="none"
+            id="image4514"
+            x="186.9464"
+            y="-871.77393"/>
+        <rect
+            style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.75;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:490.07928467;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+            id="rect4493-2"
+            width="677.90411"
+            height="87.199898"
+            x="335.71039"
+            y="-829.59448"/>
+        <rect
+            style="color:#000000;display:none;overflow:visible;visibility:visible;opacity:0.75;vector-effect:none;fill:#808080;fill-opacity:1;stroke:none;stroke-width:794.79553223;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
+            id="rect4493-2-0"
+            width="677.90411"
+            height="229.34755"
+            x="335.71039"
+            y="-667.80133"/>
+    </g>
+</svg>

BIN
scripts/screenshots/tablet.png


+ 0 - 0
androidTest/AndroidManifest.xml → src/androidTest/AndroidManifest.xml


+ 131 - 0
src/androidTest/java/com/owncloud/android/screenshots/ScreenshotsIT.java

@@ -0,0 +1,131 @@
+package com.owncloud.android.screenshots;
+
+import android.content.Intent;
+import android.support.test.espresso.Espresso;
+import android.support.test.espresso.action.ViewActions;
+import android.support.test.espresso.contrib.DrawerActions;
+import android.support.test.espresso.matcher.PreferenceMatchers;
+import android.support.test.rule.ActivityTestRule;
+
+import com.owncloud.android.R;
+import com.owncloud.android.ui.activity.FileDisplayActivity;
+import com.owncloud.android.ui.activity.Preferences;
+
+import junit.framework.Assert;
+
+import org.junit.BeforeClass;
+import org.junit.ClassRule;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+import tools.fastlane.screengrab.Screengrab;
+import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
+import tools.fastlane.screengrab.locale.LocaleTestRule;
+
+import static android.support.test.espresso.Espresso.onData;
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.action.ViewActions.click;
+import static android.support.test.espresso.matcher.ViewMatchers.withId;
+import static android.support.test.espresso.matcher.ViewMatchers.withText;
+import static org.hamcrest.Matchers.anything;
+import static org.hamcrest.core.AnyOf.anyOf;
+
+@RunWith(JUnit4.class)
+public class ScreenshotsIT {
+    @ClassRule
+    public static final LocaleTestRule localeTestRule = new LocaleTestRule();
+
+    @Rule
+    public ActivityTestRule<FileDisplayActivity> fileDisplayRule = new ActivityTestRule<>(FileDisplayActivity.class);
+
+    @Rule
+    public ActivityTestRule<Preferences> preferencesRule = new ActivityTestRule<>(Preferences.class, true, false);
+
+    @BeforeClass
+    public static void beforeAll() {
+        Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
+    }
+
+    @Test
+    public void gridViewScreenshot() throws InterruptedException {
+        fileDisplayRule.launchActivity(new Intent());
+        
+        Espresso.openContextualActionModeOverflowMenu();
+        onView(anyOf(withText(R.string.action_switch_grid_view), withId(R.id.action_switch_view))).perform(click());
+
+        Thread.sleep(1000);
+
+        Screengrab.screenshot("01_gridView");
+
+        Espresso.openContextualActionModeOverflowMenu();
+        onView(anyOf(withText(R.string.action_switch_list_view), withId(R.id.action_switch_view))).perform(click());
+
+        Assert.assertTrue(true); // if we reach this, everything is ok
+    }
+
+    @Test
+    public void listViewScreenshot() throws InterruptedException {
+        fileDisplayRule.launchActivity(new Intent());
+        
+        // go into work folder
+        onData(anything()).inAdapterView(withId(R.id.list_root)).atPosition(0).perform(click());
+
+        Screengrab.screenshot("02_listView");
+
+        Assert.assertTrue(true); // if we reach this, everything is ok
+    }
+
+    @Test
+    public void drawerScreenshot() throws InterruptedException {
+        fileDisplayRule.launchActivity(new Intent());
+
+        onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
+
+        Screengrab.screenshot("03_drawer");
+
+        onView(withId(R.id.drawer_layout)).perform(DrawerActions.close());
+
+        Assert.assertTrue(true); // if we reach this, everything is ok
+    }
+
+    @Test
+    public void multipleAccountsScreenshot() throws InterruptedException {
+        fileDisplayRule.launchActivity(new Intent());
+
+        onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
+        onView(withId(R.id.drawer_active_user)).perform(click());
+
+        Screengrab.screenshot("04_accounts");
+
+        onView(withId(R.id.drawer_layout)).perform(DrawerActions.close());
+
+        Assert.assertTrue(true); // if we reach this, everything is ok
+    }
+
+    @Test
+    public void autoUploadScreenshot() throws InterruptedException {
+        fileDisplayRule.launchActivity(new Intent());
+
+        onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
+        onView(anyOf(withText(R.string.drawer_synced_folders), withId(R.id.nav_synced_folders))).perform(click());
+
+        Screengrab.screenshot("05_autoUpload");
+
+        Assert.assertTrue(true); // if we reach this, everything is ok
+    }
+
+    @Test
+    public void davdroidScreenshot() throws InterruptedException {
+        preferencesRule.launchActivity(new Intent());
+
+        onData(PreferenceMatchers.withTitle(R.string.prefs_category_more)).perform(ViewActions.scrollTo());
+
+        Thread.sleep(1000);
+        
+        Screengrab.screenshot("06_davdroid");
+
+        Assert.assertTrue(true); // if we reach this, everything is ok
+    }
+}

+ 18 - 0
src/debug/AndroidManifest.xml

@@ -0,0 +1,18 @@
+<manifest xmlns:tools="http://schemas.android.com/tools"
+          xmlns:android="http://schemas.android.com/apk/res/android">
+    <!-- Allows unlocking your device and activating its screen so UI tests can succeed -->
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
+    <uses-permission android:name="android.permission.WAKE_LOCK"/>
+
+    <!-- Allows for storing and retrieving screenshots -->
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+
+    <!-- Allows changing locales -->
+    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
+
+    <application
+        android:testOnly="false"
+        android:allowBackup="false"
+        tools:ignore="GoogleAppIndexingWarning"/>
+</manifest>

+ 19 - 0
src/generic/fastlane/metadata/android/de-DE/full_description.txt

@@ -0,0 +1,19 @@
+Die Open Source Nextcloud Android App ermöglicht Dir Zugriff auf alle Dateien in Deiner Nextcloud.
+
+Funktionen:
+* Einfache, moderne Oberfläche, volles Theming entsprechend Deiner Servereinstellungen
+* Lade Deine Dateien auf Deinen Nextcloud Server
+* Teile Deine Dateien mit anderen
+* Wichtige Dateien und Verzeichnisse können aktuell gehalten werden
+* Suche über alle Ordner auf deinem Server
+* Auto Upload für Fotos und Videos die auf deinem Gerät aufgenommen wurden
+* Bleibe auf dem aktuellen Stand durch Benachrichtigungen
+* Multi-Konten Unterstützung
+* Gesicherter Zugriff auf deine Daten mittels Fingerabdruck oder PIN
+* Integration mit DAVdroid für eine einfache Kalender & Kontakte Synchronisierung
+
+Bitte berichte alle Probleme unter https://github.com/nextcloud/android/issues oder diskutiere über die App auf https://help.nextcloud.com/c/clients/android
+
+Was ist die Nextcloud? Die Nextcloud ist ein privater Dateiaustausch Server. Nextcloud ist Open Source und kann auf einem eigenen Server installiert werden. So behältst Du die Kontrolle über Deine Fotos, Deine Kalender und Kontakte, Deine Dokumente und alle anderen Daten. 
+
+Sieh Dir Nextcloud unter https://nextcloud.com an.

+ 1 - 0
src/generic/fastlane/metadata/android/de-DE/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 19 - 0
src/generic/fastlane/metadata/android/en-US/full_description.txt

@@ -0,0 +1,19 @@
+The copyleft libre software Nextcloud Android app, gives you access to all the files in your Nextcloud.
+
+Features:
+* Easy, modern interface, suited to the theme of your server
+* Upload files to your Nextcloud server
+* Share them with others
+* Keep your favorite files and folders synced
+* Search across all folders on your server
+* Auto Upload for photos and videos taken by your device
+* Keep up to date with notifications
+* Multi-account support
+* Secure access to your data with fingerprint or PIN
+* Integration with DAVdroid for easy setup of calendar & Contacts synchronization
+
+Please report all issues at https://github.com/nextcloud/android/issues and discuss this app at https://help.nextcloud.com/c/clients/android
+
+New to Nextcloud? Nextcloud is a private file sync & share and communication server. It is libre software, and you can host it yourself or pay a company to do it for you. That way, you are in control of your photos, your calendar and contact data, your documents and everything else.
+
+Check out Nextcloud at https://nextcloud.com

+ 1 - 0
src/generic/fastlane/metadata/android/en-US/short_description.txt

@@ -0,0 +1 @@
+The Nextcloud Android app allows access to all files on your Nextcloud instance.

+ 1 - 0
src/generic/fastlane/metadata/android/en-US/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 19 - 0
src/generic/fastlane/metadata/android/es-ES/full_description.txt

@@ -0,0 +1,19 @@
+La app copyleft de software libre Nextcloud para Android te permite acceder a todos tus archivos en tu Nextcloud.
+
+Características
+*Interfaz sencilla y moderna, adaptada al tema de tu servidor
+* Sube tus archivos a tu servidor Nextcloud
+* Comparte tus archivos con otros
+* Mantén sincronizados tus archivos y carpetas favoritos
+* Busca en todas las carpetas del servidor
+* Subida automática de fotos y vídeos realizados con tu dispositivo
+* Mantente al tanto de todo mediante las notificaciones
+* Soporte de múltiples cuentas
+* Acceso seguro a tus datos con huella digital o PIN
+* Integración con DAVdroid para configurar fácilmente la sincronización de calendarios y contactos
+
+Por favor, informa de todos los problemas en https://github.com/nextcloud/android/issues y discute la app en https://help.nextcloud.com/c/clients/android
+
+¿Eres nuevo en Nextcloud? Nextcloud es un servidor privado para sincronizar, compartir y comunicarte. Es software libre y puedes alojarlo tú mismo o pagar a una compañía para que lo haga por ti. De esta forma, tienes el control de tus fotos, tus calendarios y los datos de contactos, tus documentos y todo lo demás.
+
+Conoce Nextcloud en https://nextcloud.com

+ 1 - 0
src/generic/fastlane/metadata/android/es-ES/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 19 - 0
src/generic/fastlane/metadata/android/fr-FR/full_description.txt

@@ -0,0 +1,19 @@
+L'application Open Source Nextcloud Android vous permet d'accéder à tous vos fichiers stockés sur Nextcloud.
+
+Fonctionnalités :
+* Interface facile d'utilisation et moderne, personnalisée avec le même thème que celui du serveur
+* Envoyez vos fichiers sur votre serveur Nextcloud
+* Partagez vos fichiers avec d'autres personnes
+* Synchronisez vos fichiers et dossiers favoris
+* Recherchez parmi tous vos dossiers situés sur votre serveur
+* Téléversez automatiquement les photos et vidéos prises avec votre appareil
+* Restez à jour grâce aux notifications
+* Gestion du multi comptes
+* Accès sécurisé à vos données avec votre empreinte digitale ou un code pin
+* Intégration avec DAVdroid pour faciliter l'installation de la synchronisation du Calendrier & des Contacts
+
+Merci de signaler tout problème sur https://github.com/nextcloud/android/issues et venez discuter de cette application sur https://help.nextcloud.com/c/clients/android
+
+Vous découvrez Nextcloud ? Nextcloud est un système de synchronisation de fichiers personnels & un serveur de partage. Ce système est entièrement Open Source. Vous pouvez l'héberger vous-même ou payer une entreprise pour ce service. Vous aurez ainsi le contrôle de vos photos, votre calendrier, vos données de contacts, vos documents et de tout le reste.
+
+Pour en savoir plus, consultez le site Nextcloud sur https://nextcloud.com

+ 1 - 0
src/generic/fastlane/metadata/android/fr-FR/short_description.txt

@@ -0,0 +1 @@
+L'application Android Nextcloud permet d'accéder à tous les fichiers stockés sur

+ 1 - 0
src/generic/fastlane/metadata/android/fr-FR/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 19 - 0
src/generic/fastlane/metadata/android/it-IT/full_description.txt

@@ -0,0 +1,19 @@
+L'applicazione libera per Android di Nextcloud ti consente di accedere ai file sul tuo Nextcloud.
+
+Funzionalità:
+* Interfaccia semplice e moderna, che si adattaal tema del tuo server
+* Carica i tuoi file sul tuo server Nextcloud
+* Condividili con altri
+* Mantieni i tuoi file e le cartelle preferite sincronizzate
+* Ricerca attraverso tutte le cartelle sul tuo server
+* Caricamento automatico per le foto e i video acquisiti con il tuo dispositivo
+* Tieniti aggiornato con le notifiche
+* Supporto di più account
+* Proteggi l'accesso ai tuoi dati con impronta digitale o PIN
+* Integrazione con DAVdroid per una facile configurazione della sincronizzazione di calendari e contatti
+
+Segnala tutti i problemi su https://github.com/nextcloud/android/issues e discuti questa applicazione su https://help.nextcloud.com/c/clients/android
+
+Nuovo di Nextcloud? Nextcloud è un server privato di sincronizzazione e condivisione dei file e un server di comunicazione. È un software libero e puoi ospitarlo a casa tua o pagare una società che lo faccia per conto tuo. In questo modo, avrai il controllo delle tue foto, del tuo calendario e dei tuoi contatti, dei tuoi documenti e di qualsiasi altra cosa.
+
+Dai un'occhiata a Nextcloud su https://nextcloud.com

+ 1 - 1
fastlane/metadata/android/it-IT/short_description.txt → src/generic/fastlane/metadata/android/it-IT/short_description.txt

@@ -1 +1 @@
-L'applicazione per Android di Nextcloud ti consente di accedere ai file sul tuo 
+L'applicazione per Android di Nextcloud ti consente di accedere ai file sulla tu

+ 1 - 0
src/generic/fastlane/metadata/android/it-IT/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 19 - 0
src/generic/fastlane/metadata/android/ko-KR/full_description.txt

@@ -0,0 +1,19 @@
+자유 소프트웨어 Nextcloud Android 앱으로 내 Nextcloud에 있는 파일에 접근할 수 있습니다.
+
+기능:
+* 쉽고 간결한 인터페이스, 서버의 테마를 따라가는 테마
+* 내 Nextcloud 서버에 파일 업로드
+* 다른 사람과 파일 공유하기
+* 즐겨찾는 파일과 폴더 동기화
+* 서버에 있는 모든 폴더 검색
+* 내 장치로 찍은 사진과 동영상 자동 업로드
+* 최신 알림 유지
+* 다중 계정 지원
+* 지문이나 PIN으로 데이터 접근 보호
+* DAVDroid 통합을 통한 간편한 캘린더 및 연락처 동기화
+
+https://github.com/nextcloud/android/issues 사이트에 버그를 보고해 주십시오. https://help.nextcloud.com/c/clients/android 사이트에서 앱에 대해 토론할 수 있습니다.
+
+Nextcloud를 처음 들어 보셨나요? Nextcloud는 개인 파일 동기화 및 공유 서버입니다. 직접 서버에 설치하거나 호스팅 업체에 설치할 수 있는 자유 오픈 소스 프로젝트입니다. 내 사진, 캘린더, 연락처, 문서 및 모든 것의 통제권을 가질 수 있습니다.
+
+Nextcloud에 대해 더 알아보려면 https://nextcloud.com 사이트를 방문하십시오

+ 1 - 0
src/generic/fastlane/metadata/android/ko-KR/short_description.txt

@@ -0,0 +1 @@
+Nextcloud Android 앱으로 내 Nextcloud에 있는 모든 파일을 사용하십시오.

+ 1 - 0
src/generic/fastlane/metadata/android/ko-KR/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 19 - 0
src/generic/fastlane/metadata/android/nl-NL/full_description.txt

@@ -0,0 +1,19 @@
+De Open Source Nextcloud Android app geeft je toegang tot al je bestanden op Nextcloud servers.
+
+Functies:
+* Simpel & modern uiterlijk, helemaal in dezelfde stijl als jouw server
+* Upload bestanden naar je Nextcloud server
+* Deel bestanden met anderen
+* Hou je favoriete bestanden en mappen gesynchroniseerd
+* Zoek in al je bestanden op de server
+* Automatisch uploaden voor al je foto's en video's
+* Blijf op de hoogte met notificaties
+* Ondersteuning voor meerdere accounts en servers
+* Beveilig toegang tot je gegevens met vingerafdruk of pincode
+* Integratie met DAVdroid voor makkelijk synchroniseren van je kalender & contacten
+
+Meld alsjeblieft alle bugs en problemen op https://github.com/nextcloud/android/issues en doe je zegje over deze app in ons forum https://help.nextcloud.com/c/clients/android
+
+Nieuw bij Nextcloud? Nextcloud is je persoonlijke bestanden- en communicatieserver. Het is volledig open source en je kunt het zelf hosten of een bedrijf betalen om dat voor je te doen. Zo heb je volledige controle over je foto's, kalender, adresboek, document en al het andere.
+
+Check Nextcloud op https://nextcloud.com

+ 1 - 0
src/generic/fastlane/metadata/android/nl-NL/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 14 - 0
src/generic/fastlane/metadata/android/pl-PL/full_description.txt

@@ -0,0 +1,14 @@
+Oparta na Open Source aplikacja Nexcloud Android umożliwia dostęp do wszystkich twoich plików w Nextcloud.
+
+Funkcje:
+* Prosty i nowoczesny wygląd
+* Wysyłaj swoje pliki na swój serwer Nextcloud* Dawaj innym dostęp do twoich plików
+* Synchronizuj wybrane pliki i katalogi z serwerem
+* Automatycznie wysyłaj zdjęcia i filmy robione urządzeniem
+* Wsparcie dla wielu kont
+
+Zgłaszaj błędy na https://github.com/nextcloud/android/issues i dyskutuj na temat tej aplikacji na https://help.nextcloud.com/c/clients/android
+
+Nie znasz jeszcze Nextcloud? Nextcloud jest prywatnym serwerem synchronizacji & współdzielenia plików oraz komunikacji. Jego źródła są całkowicie otwarte, więc możesz korzystać z niego na własnym serwerze albo możesz zapłacić za to firmie trzeciej. W ten sposób kontrolujesz swoje zdjęcia, kalendarz, dane kontaktowe, twoje dokumenty i inne dane.
+
+Zobacz Nextcloud na https://nextcloud.com

+ 1 - 0
src/generic/fastlane/metadata/android/pl-PL/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 19 - 0
src/generic/fastlane/metadata/android/pt-BR/full_description.txt

@@ -0,0 +1,19 @@
+O aplicativo Android de código aberto do Nextcloud lhe dá acesso a todos os arquivos em seu Nextcloud.
+
+Features:
+* Interface fácil e moderna, adequada ao tema do seu servidor
+* Envia arquivos para seu servidor Nextcloud
+* Compartilhe arquivo com outros
+* Mantenha seus arquivos e pastas favoritas sincronizadas
+* Pesquise em todas as pastas do seu servidor
+* Envio automático para fotos e vídeos tirados pelo seu dispositivo portátil
+* Mantenha-se atualizado com notificações
+* Suporte à multi-conta
+* Acesso seguro aos seus dados com impressão digital ou PIN
+* Integração com o DAVdroid para facilitar a configuração do calendário e & sincronização de contatos
+
+Por favor, informe qualquer problema em https://github.com/nextcloud/android/issues e discuta sobre este aplicativo em https://help.nextcloud.com/c/clients/android
+
+Novo para o Nextcloud? Nextcloud é um servidor privado de sincronização de arquivos  & compartilhamento e comunicação. É um software livre e você pode hospedá-lo você mesmo ou pagar uma empresa para fazê-lo. Dessa forma, você controla suas fotos, seu calendário e dados de contato, seus documentos e tudo mais.
+
+Saiba mais sobre o Nextcloud em https://nextcloud.com

+ 1 - 0
src/generic/fastlane/metadata/android/pt-BR/short_description.txt

@@ -0,0 +1 @@
+O aplicativo Nextcloud para Android permite acessar seus arquivos num servidor N

+ 1 - 0
src/generic/fastlane/metadata/android/pt-BR/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 18 - 0
src/generic/fastlane/metadata/android/sr-SR/full_description.txt

@@ -0,0 +1,18 @@
+Некстклауд андроид апликација отвореног кода омогућава приступ свим фајловима на вашем Некстклауд серверу.
+
+Особине:
+* Лако и модерно сучеље, потпуно усклађено са темом са сервера
+* Отпремање фајлова на Некстклауд сервер
+* Дељење фајлова са другима
+* Синхронизација омиљених фајлова и фасцикли
+* Претрага кроз све фасцикле на серверу
+* Аутоматско отпремање слика и видео записа са уређаја
+* Обавештења са сервера
+* Подршка за више налога
+* Безбедан приступ свим подацима преко отиска прста или пина
+* Интеграција са ДАВдроидом за брзо подешавање синхронизације календара & контаката
+
+Све проблеме можете да пријавите на https://github.com/nextcloud/android/issues а о апликацији дискутујте на https://help.nextcloud.com/c/clients/android
+Нови сте на Некстклауду? Некстклауд је лични сервер за синхронизацију, дељење фајлова & комуникацију. Потпуно је отвореног кода и можете да га сами хостовати или платити компанији да која то већ ради. На овај начин, сами контролишете своје слике, календаре, контакате, документа и све остало.
+
+Погледајте Некстклауд на https://nextcloud.com

+ 1 - 0
src/generic/fastlane/metadata/android/sr-SR/short_description.txt

@@ -0,0 +1 @@
+Некстклауд Андроид апликација омогућава приступ свим фајловима на Вашем Нексткла

+ 1 - 0
src/generic/fastlane/metadata/android/sr-SR/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 13 - 0
src/generic/fastlane/metadata/android/tr-TR/full_description.txt

@@ -0,0 +1,13 @@
+Copyleft Nextcloud Android uygulaması, Nextcloud üzerindeki tüm dosyalarınıza erişmenizi sağlar.
+
+Özellikleri:\* Kolay kullanılan modern arayüz
+* Dosyalarınızı Nextcloud sunucunuza kolayca yükleyebilme
+* Dosyalarınızı başkalarıyla paylaşabilme
+* Sık kullandığınız dosya ve klasörleri eşitleme
+* Çektiğiniz fotoğraf ve görüntüleri anında yükleme
+* Birden çok hesap desteği
+Kullanımda karşılaşabileceğiniz hataları https://github.com/nextcloud/android/issues adresinden bildirebilir, uygulama hakkındaki konuları https://help.nextcloud.com adresinde tartışabilirsiniz ;-)
+
+Nextcloud ile yeni mi tanıştınız? Nextcloud özel bir veri depolama ve paylaşma ağıdır. Tamamen açık kaynak kodludur. Dosyalarınızı kendi sunucunuzda saklayabileceğiniz gibi ücretli hizmet olarak da satın alabilirsiniz. Böylece fotoğraflarınız, dosyalarınız, takviminiz, belgeleriniz, kişileriniz ve diğer tüm özel bilgileriniz sizin kontrolünüzde olur. 
+
+Ayrıntılı bilgi almak için sitemize bakabilirsiniz: https://nextcloud.com

+ 1 - 0
src/generic/fastlane/metadata/android/tr-TR/title.txt

@@ -0,0 +1 @@
+Nextcloud

+ 5 - 5
src/main/java/com/owncloud/android/MainApp.java

@@ -1,19 +1,19 @@
-/**
+/*
  * ownCloud Android client application
  * ownCloud Android client application
  *
  *
  * @author masensio
  * @author masensio
  * @author David A. Velasco
  * @author David A. Velasco
  * Copyright (C) 2015 ownCloud Inc.
  * Copyright (C) 2015 ownCloud Inc.
- * <p>
+ * 
  * This program is free software: you can redistribute it and/or modify
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2,
  * it under the terms of the GNU General Public License version 2,
  * as published by the Free Software Foundation.
  * as published by the Free Software Foundation.
- * <p>
+ * 
  * This program is distributed in the hope that it will be useful,
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  * GNU General Public License for more details.
- * <p>
+ * 
  * You should have received a copy of the GNU General Public License
  * You should have received a copy of the GNU General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
  */
@@ -410,7 +410,7 @@ public class MainApp extends MultiDexApplication {
             SyncedFolderProvider syncedFolderProvider = new SyncedFolderProvider(contentResolver);
             SyncedFolderProvider syncedFolderProvider = new SyncedFolderProvider(contentResolver);
 
 
             final List<MediaFolder> imageMediaFolders = MediaProvider.getImageFolders(contentResolver, 1, null);
             final List<MediaFolder> imageMediaFolders = MediaProvider.getImageFolders(contentResolver, 1, null);
-            final List<MediaFolder> videoMediaFolders = MediaProvider.getVideoFolders(contentResolver, 1);
+            final List<MediaFolder> videoMediaFolders = MediaProvider.getVideoFolders(contentResolver, 1, null);
 
 
             ArrayList<Long> idsToDelete = new ArrayList<>();
             ArrayList<Long> idsToDelete = new ArrayList<>();
             List<SyncedFolder> syncedFolders = syncedFolderProvider.getSyncedFolders();
             List<SyncedFolder> syncedFolders = syncedFolderProvider.getSyncedFolders();

+ 25 - 34
src/main/java/com/owncloud/android/datamodel/MediaProvider.java

@@ -29,7 +29,6 @@ import android.net.Uri;
 import android.provider.MediaStore;
 import android.provider.MediaStore;
 import android.support.design.widget.Snackbar;
 import android.support.design.widget.Snackbar;
 import android.util.Log;
 import android.util.Log;
-import android.view.View;
 
 
 import com.owncloud.android.MainApp;
 import com.owncloud.android.MainApp;
 import com.owncloud.android.R;
 import com.owncloud.android.R;
@@ -71,27 +70,14 @@ public class MediaProvider {
         // check permissions
         // check permissions
         checkPermissions(activity);
         checkPermissions(activity);
 
 
-
         // query media/image folders
         // query media/image folders
-        Cursor cursorFolders;
+        Cursor cursorFolders = null;
         if (activity != null && PermissionUtil.checkSelfPermission(activity.getApplicationContext(),
         if (activity != null && PermissionUtil.checkSelfPermission(activity.getApplicationContext(),
                 Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
                 Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
-            cursorFolders = contentResolver.query(
-                    IMAGES_MEDIA_URI,
-                    IMAGES_FOLDER_PROJECTION,
-                    null,
-                    null,
-                    IMAGES_FOLDER_SORT_ORDER
-            );
-        } else {
-            cursorFolders = contentResolver.query(
-                    IMAGES_MEDIA_URI,
-                    IMAGES_FOLDER_PROJECTION,
-                    null,
-                    null,
-                    IMAGES_FOLDER_SORT_ORDER
-            );
+            cursorFolders = contentResolver.query(IMAGES_MEDIA_URI, IMAGES_FOLDER_PROJECTION, null, null,
+                    IMAGES_FOLDER_SORT_ORDER);
         }
         }
+
         List<MediaFolder> mediaFolders = new ArrayList<>();
         List<MediaFolder> mediaFolders = new ArrayList<>();
         String dataPath = MainApp.getStoragePath() + File.separator + MainApp.getDataFolder();
         String dataPath = MainApp.getStoragePath() + File.separator + MainApp.getDataFolder();
 
 
@@ -172,12 +158,7 @@ public class MediaProvider {
                 // Show explanation to the user and then request permission
                 // Show explanation to the user and then request permission
                 Snackbar snackbar = Snackbar.make(activity.findViewById(R.id.ListLayout),
                 Snackbar snackbar = Snackbar.make(activity.findViewById(R.id.ListLayout),
                         R.string.permission_storage_access, Snackbar.LENGTH_INDEFINITE)
                         R.string.permission_storage_access, Snackbar.LENGTH_INDEFINITE)
-                        .setAction(R.string.common_ok, new View.OnClickListener() {
-                            @Override
-                            public void onClick(View v) {
-                                PermissionUtil.requestWriteExternalStoreagePermission(activity);
-                            }
-                        });
+                        .setAction(R.string.common_ok, v -> PermissionUtil.requestWriteExternalStoreagePermission(activity));
 
 
                 ThemeUtils.colorSnackbar(activity.getApplicationContext(), snackbar);
                 ThemeUtils.colorSnackbar(activity.getApplicationContext(), snackbar);
 
 
@@ -189,16 +170,26 @@ public class MediaProvider {
         }
         }
     }
     }
 
 
-    public static List<MediaFolder> getVideoFolders(ContentResolver contentResolver, int itemLimit) {
-        Cursor cursorFolders = contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
-                VIDEOS_FOLDER_PROJECTION, null, null, null);
+    public static List<MediaFolder> getVideoFolders(ContentResolver contentResolver, int itemLimit,
+                                                    @Nullable final Activity activity) {
+        // check permissions
+        checkPermissions(activity);
+
+        // query media/image folders
+        Cursor cursorFolders = null;
+        if (activity != null && PermissionUtil.checkSelfPermission(activity.getApplicationContext(),
+                Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
+            cursorFolders = contentResolver.query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, VIDEOS_FOLDER_PROJECTION,
+                    null, null, null);
+        } 
+        
         List<MediaFolder> mediaFolders = new ArrayList<>();
         List<MediaFolder> mediaFolders = new ArrayList<>();
         String dataPath = MainApp.getStoragePath() + File.separator + MainApp.getDataFolder();
         String dataPath = MainApp.getStoragePath() + File.separator + MainApp.getDataFolder();
 
 
         if (cursorFolders != null) {
         if (cursorFolders != null) {
             String folderName;
             String folderName;
             String fileSortOrder = MediaStore.Video.Media.DATE_TAKEN + " DESC LIMIT " + itemLimit;
             String fileSortOrder = MediaStore.Video.Media.DATE_TAKEN + " DESC LIMIT " + itemLimit;
-            Cursor cursorImages;
+            Cursor cursorVideos;
 
 
             while (cursorFolders.moveToNext()) {
             while (cursorFolders.moveToNext()) {
                 String folderId = cursorFolders.getString(cursorFolders.getColumnIndex(MediaStore.Video.Media
                 String folderId = cursorFolders.getString(cursorFolders.getColumnIndex(MediaStore.Video.Media
@@ -211,8 +202,8 @@ public class MediaProvider {
                 mediaFolder.folderName = folderName;
                 mediaFolder.folderName = folderName;
                 mediaFolder.filePaths = new ArrayList<>();
                 mediaFolder.filePaths = new ArrayList<>();
 
 
-                // query images
-                cursorImages = contentResolver.query(
+                // query videos
+                cursorVideos = contentResolver.query(
                         MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                         MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                         FILE_PROJECTION,
                         FILE_PROJECTION,
                         MediaStore.Video.Media.BUCKET_ID + "=" + folderId,
                         MediaStore.Video.Media.BUCKET_ID + "=" + folderId,
@@ -220,10 +211,10 @@ public class MediaProvider {
                         fileSortOrder);
                         fileSortOrder);
                 Log.d(TAG, "Reading videos for " + mediaFolder.folderName);
                 Log.d(TAG, "Reading videos for " + mediaFolder.folderName);
 
 
-                if (cursorImages != null) {
+                if (cursorVideos != null) {
                     String filePath;
                     String filePath;
-                    while (cursorImages.moveToNext()) {
-                        filePath = cursorImages.getString(cursorImages.getColumnIndexOrThrow(
+                    while (cursorVideos.moveToNext()) {
+                        filePath = cursorVideos.getString(cursorVideos.getColumnIndexOrThrow(
                                 MediaStore.MediaColumns.DATA));
                                 MediaStore.MediaColumns.DATA));
 
 
                         if (filePath != null) {
                         if (filePath != null) {
@@ -231,7 +222,7 @@ public class MediaProvider {
                             mediaFolder.absolutePath = filePath.substring(0, filePath.lastIndexOf("/"));
                             mediaFolder.absolutePath = filePath.substring(0, filePath.lastIndexOf("/"));
                         }
                         }
                     }
                     }
-                    cursorImages.close();
+                    cursorVideos.close();
 
 
                     // only do further work if folder is not within the Nextcloud app itself
                     // only do further work if folder is not within the Nextcloud app itself
                     if (mediaFolder.absolutePath != null && !mediaFolder.absolutePath.startsWith(dataPath)) {
                     if (mediaFolder.absolutePath != null && !mediaFolder.absolutePath.startsWith(dataPath)) {

+ 98 - 123
src/main/java/com/owncloud/android/ui/activity/ReceiveExternalFilesActivity.java

@@ -1,4 +1,4 @@
-/**
+/*
  *  ownCloud Android client application
  *  ownCloud Android client application
  *
  *
  *  @author Bartek Przybylski
  *  @author Bartek Przybylski
@@ -30,8 +30,6 @@ import android.app.Activity;
 import android.app.Dialog;
 import android.app.Dialog;
 import android.content.BroadcastReceiver;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
 import android.content.Intent;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.IntentFilter;
 import android.content.res.Resources.NotFoundException;
 import android.content.res.Resources.NotFoundException;
@@ -105,6 +103,7 @@ import java.io.IOException;
 import java.io.UnsupportedEncodingException;
 import java.io.UnsupportedEncodingException;
 import java.lang.reflect.Method;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Calendar;
 import java.util.Calendar;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.LinkedList;
@@ -244,34 +243,26 @@ public class ReceiveExternalFilesActivity extends FileActivity
     }
     }
 
 
     public static class DialogNoAccount extends DialogFragment {
     public static class DialogNoAccount extends DialogFragment {
+        @NonNull
         @Override
         @Override
         public Dialog onCreateDialog(Bundle savedInstanceState) {
         public Dialog onCreateDialog(Bundle savedInstanceState) {
             AlertDialog.Builder builder = new Builder(getActivity());
             AlertDialog.Builder builder = new Builder(getActivity());
             builder.setIcon(R.drawable.ic_warning);
             builder.setIcon(R.drawable.ic_warning);
             builder.setTitle(R.string.uploader_wrn_no_account_title);
             builder.setTitle(R.string.uploader_wrn_no_account_title);
-            builder.setMessage(String.format(
-                                   getString(R.string.uploader_wrn_no_account_text),
-                                   getString(R.string.app_name)));
+            builder.setMessage(String.format(getString(R.string.uploader_wrn_no_account_text), 
+                    getString(R.string.app_name)));
             builder.setCancelable(false);
             builder.setCancelable(false);
-            builder.setPositiveButton(R.string.uploader_wrn_no_account_setup_btn_text, new OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                    // using string value since in API7 this
-                    // constant is not defined
-                    // in API7 < this constant is defined in
-                    // Settings.ADD_ACCOUNT_SETTINGS
-                    // and Settings.EXTRA_AUTHORITIES
-                    Intent intent = new Intent(android.provider.Settings.ACTION_ADD_ACCOUNT);
-                    intent.putExtra("authorities", new String[]{MainApp.getAuthTokenType()});
-                    startActivityForResult(intent, REQUEST_CODE__SETUP_ACCOUNT);
-                }
-            });
-            builder.setNegativeButton(R.string.uploader_wrn_no_account_quit_btn_text, new OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                    getActivity().finish();
-                }
+            builder.setPositiveButton(R.string.uploader_wrn_no_account_setup_btn_text, (dialog, which) -> {
+                // using string value since in API7 this
+                // constant is not defined
+                // in API7 < this constant is defined in
+                // Settings.ADD_ACCOUNT_SETTINGS
+                // and Settings.EXTRA_AUTHORITIES
+                Intent intent = new Intent(android.provider.Settings.ACTION_ADD_ACCOUNT);
+                intent.putExtra("authorities", new String[]{MainApp.getAuthTokenType()});
+                startActivityForResult(intent, REQUEST_CODE__SETUP_ACCOUNT);
             });
             });
+            builder.setNegativeButton(R.string.uploader_wrn_no_account_quit_btn_text, (dialog, which) -> getActivity().finish());
             return builder.create();
             return builder.create();
         }
         }
     }
     }
@@ -294,14 +285,11 @@ public class ReceiveExternalFilesActivity extends FileActivity
             mAccountListAdapter = new AccountListAdapter(parent, getAccountListItems(parent), mTintedCheck);
             mAccountListAdapter = new AccountListAdapter(parent, getAccountListItems(parent), mTintedCheck);
 
 
             builder.setTitle(R.string.common_choose_account);
             builder.setTitle(R.string.common_choose_account);
-            builder.setAdapter(mAccountListAdapter, new OnClickListener() {
-                @Override
-                public void onClick(DialogInterface dialog, int which) {
-                    final ReceiveExternalFilesActivity parent = (ReceiveExternalFilesActivity) getActivity();
-                    parent.setAccount(parent.mAccountManager.getAccountsByType(MainApp.getAccountType())[which], false);
-                    parent.onAccountSet(parent.mAccountWasRestored);
-                    dialog.dismiss();
-                }
+            builder.setAdapter(mAccountListAdapter, (dialog, which) -> {
+                final ReceiveExternalFilesActivity parent1 = (ReceiveExternalFilesActivity) getActivity();
+                parent1.setAccount(parent1.mAccountManager.getAccountsByType(MainApp.getAccountType())[which], false);
+                parent1.onAccountSet(parent1.mAccountWasRestored);
+                dialog.dismiss();
             });
             });
             builder.setCancelable(true);
             builder.setCancelable(true);
             return builder.create();
             return builder.create();
@@ -391,7 +379,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
 
 
                 selectPos = PreferenceManager.getUploadUrlFileExtensionUrlSelectedPos(getActivity());
                 selectPos = PreferenceManager.getUploadUrlFileExtensionUrlSelectedPos(getActivity());
                 mFileCategory = CATEGORY_URL;
                 mFileCategory = CATEGORY_URL;
-            } else if (isIntentFromGoogleMap(subjectText, extraText)) {
+            } else if (extraText != null && isIntentFromGoogleMap(subjectText, extraText)) {
                 String str = getString(R.string.upload_file_dialog_filetype_googlemap_shortcut);
                 String str = getString(R.string.upload_file_dialog_filetype_googlemap_shortcut);
                 String texts[] = extraText.split("\n");
                 String texts[] = extraText.split("\n");
                 mText.add(internetShortcutUrlText(texts[2]));
                 mText.add(internetShortcutUrlText(texts[2]));
@@ -413,21 +401,23 @@ public class ReceiveExternalFilesActivity extends FileActivity
                 mFileCategory = CATEGORY_MAPS_URL;
                 mFileCategory = CATEGORY_MAPS_URL;
             }
             }
 
 
-            final EditText userInput = (EditText) view.findViewById(R.id.user_input);
+            final EditText userInput = view.findViewById(R.id.user_input);
             setFilename(userInput, selectPos);
             setFilename(userInput, selectPos);
             userInput.requestFocus();
             userInput.requestFocus();
 
 
-            final Spinner spinner = (Spinner) view.findViewById(R.id.file_type);
+            final Spinner spinner = view.findViewById(R.id.file_type);
             setupSpinner(adapter, selectPos, userInput, spinner);
             setupSpinner(adapter, selectPos, userInput, spinner);
             if (adapter.getCount() == 1) {
             if (adapter.getCount() == 1) {
-                TextView label = (TextView) view.findViewById(R.id.label_file_type);
+                TextView label = view.findViewById(R.id.label_file_type);
                 label.setVisibility(View.GONE);
                 label.setVisibility(View.GONE);
                 spinner.setVisibility(View.GONE);
                 spinner.setVisibility(View.GONE);
             }
             }
             mSpinner = spinner;
             mSpinner = spinner;
 
 
             Dialog filenameDialog =  createFilenameDialog(view, userInput, spinner);
             Dialog filenameDialog =  createFilenameDialog(view, userInput, spinner);
-            filenameDialog.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+            if (filenameDialog.getWindow() != null) {
+                filenameDialog.getWindow().setSoftInputMode(LayoutParams.SOFT_INPUT_STATE_VISIBLE);
+            }
             return filenameDialog;
             return filenameDialog;
         }
         }
 
 
@@ -455,31 +445,27 @@ public class ReceiveExternalFilesActivity extends FileActivity
             Builder builder = new Builder(getActivity());
             Builder builder = new Builder(getActivity());
             builder.setView(view);
             builder.setView(view);
             builder.setTitle(R.string.upload_file_dialog_title);
             builder.setTitle(R.string.upload_file_dialog_title);
-            builder.setPositiveButton(R.string.common_ok, new OnClickListener() {
-                public void onClick(DialogInterface dialog,int id) {
-                    int selectPos = spinner.getSelectedItemPosition();
+            builder.setPositiveButton(R.string.common_ok, (dialog, id) -> {
+                int selectPos = spinner.getSelectedItemPosition();
+
+                // verify if file name has suffix
+                String filename = userInput.getText().toString();
+                String suffix = mFilenameSuffix.get(selectPos);
+                if (!filename.endsWith(suffix)) {
+                    filename += suffix;
+                }
 
 
-                    // verify if file name has suffix
-                    String filename = userInput.getText().toString();
-                    String suffix = mFilenameSuffix.get(selectPos);
-                    if (!filename.endsWith(suffix)){
-                        filename += suffix;
-                    }
+                File file = createTempFile(mText.get(selectPos));
 
 
-                    File file = createTempFile("tmp.tmp", mText.get(selectPos));
-                    if (file == null) {
-                        getActivity().finish();
-                    }
-                    String tmpname = file.getAbsolutePath();
+                if (file == null) {
+                    getActivity().finish();
+                } else {
+                    String tmpName = file.getAbsolutePath();
 
 
-                    ((ReceiveExternalFilesActivity)getActivity()).uploadFile(tmpname, filename);
-                }
-            });
-            builder.setNegativeButton(R.string.common_cancel, new OnClickListener() {
-                public void onClick(DialogInterface dialog,int id) {
-                    dialog.cancel();
+                    ((ReceiveExternalFilesActivity) getActivity()).uploadFile(tmpName, filename);
                 }
                 }
             });
             });
+            builder.setNegativeButton(R.string.common_cancel, (dialog, id) -> dialog.cancel());
 
 
             return builder.create();
             return builder.create();
         }
         }
@@ -592,8 +578,8 @@ public class ReceiveExternalFilesActivity extends FileActivity
         }
         }
 
 
         @Nullable
         @Nullable
-        private File createTempFile(String filename, String text) {
-            File file = new File(getActivity().getCacheDir(), filename);
+        private File createTempFile(String text) {
+            File file = new File(getActivity().getCacheDir(), "tmp.tmp");
             FileWriter fw = null;
             FileWriter fw = null;
             try {
             try {
                 fw = new FileWriter(file);
                 fw = new FileWriter(file);
@@ -630,17 +616,16 @@ public class ReceiveExternalFilesActivity extends FileActivity
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
         // click on folder in the list
         // click on folder in the list
         Log_OC.d(TAG, "on item click");
         Log_OC.d(TAG, "on item click");
-        Vector<OCFile> tmpfiles = getStorageManager().getFolderContent(mFile , false);
-        sortFileList(tmpfiles);
+        Vector<OCFile> tmpFiles = getStorageManager().getFolderContent(mFile, false);
+        tmpFiles = sortFileList(tmpFiles);
 
 
-        if (tmpfiles.size() <= 0) {
+        if (tmpFiles.size() <= 0) {
             return;
             return;
         }
         }
         // filter on dirtype
         // filter on dirtype
         Vector<OCFile> files = new Vector<>();
         Vector<OCFile> files = new Vector<>();
-        for (OCFile f : tmpfiles) {
-            files.add(f);
-        }
+        files.addAll(tmpFiles);
+        
         if (files.size() < position) {
         if (files.size() < position) {
             throw new IndexOutOfBoundsException("Incorrect item selected");
             throw new IndexOutOfBoundsException("Incorrect item selected");
         }
         }
@@ -663,7 +648,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
                     mUploadPath += p + OCFile.PATH_SEPARATOR;
                     mUploadPath += p + OCFile.PATH_SEPARATOR;
                 }
                 }
 
 
-                if (mUploadFromTmpFile){
+                if (mUploadFromTmpFile) {
                     DialogInputUploadFilename dialog = DialogInputUploadFilename.newInstance(mSubjectText, mExtraText);
                     DialogInputUploadFilename dialog = DialogInputUploadFilename.newInstance(mSubjectText, mExtraText);
                     dialog.show(getSupportFragmentManager(), null);
                     dialog.show(getSupportFragmentManager(), null);
                 } else {
                 } else {
@@ -719,19 +704,21 @@ public class ReceiveExternalFilesActivity extends FileActivity
         ActionBar actionBar = getSupportActionBar();
         ActionBar actionBar = getSupportActionBar();
         setupActionBarSubtitle();
         setupActionBarSubtitle();
 
 
-        ListView mListView = (ListView) findViewById(android.R.id.list);
+        ListView mListView = findViewById(android.R.id.list);
 
 
         String current_dir = mParents.peek();
         String current_dir = mParents.peek();
-        if ("".equals(current_dir)) {
-            actionBar.setTitle(getString(R.string.uploader_top_message));
-        } else {
-            actionBar.setTitle(current_dir);
-        }
-
         boolean notRoot = (mParents.size() > 1);
         boolean notRoot = (mParents.size() > 1);
 
 
-        actionBar.setDisplayHomeAsUpEnabled(notRoot);
-        actionBar.setHomeButtonEnabled(notRoot);
+        if (actionBar != null) {
+            if ("".equals(current_dir)) {
+                actionBar.setTitle(getString(R.string.uploader_top_message));
+            } else {
+                actionBar.setTitle(current_dir);
+            }
+
+            actionBar.setDisplayHomeAsUpEnabled(notRoot);
+            actionBar.setHomeButtonEnabled(notRoot);
+        }
 
 
         String full_path = generatePath(mParents);
         String full_path = generatePath(mParents);
 
 
@@ -742,16 +729,12 @@ public class ReceiveExternalFilesActivity extends FileActivity
             Vector<OCFile> files = getStorageManager().getFolderContent(mFile, false);
             Vector<OCFile> files = getStorageManager().getFolderContent(mFile, false);
 
 
             if (files.size() == 0) {
             if (files.size() == 0) {
-                setMessageForEmptyList(
-                        R.string.file_list_empty_headline,
-                        R.string.empty,
-                        R.drawable.ic_list_empty_upload,
-                        true
-                );
+                setMessageForEmptyList(R.string.file_list_empty_headline, R.string.empty,
+                        R.drawable.ic_list_empty_upload);
             } else {
             } else {
                 mEmptyListContainer.setVisibility(View.GONE);
                 mEmptyListContainer.setVisibility(View.GONE);
 
 
-                sortFileList(files);
+                files = sortFileList(files);
 
 
                 List<HashMap<String, Object>> data = new LinkedList<>();
                 List<HashMap<String, Object>> data = new LinkedList<>();
                 for (OCFile f : files) {
                 for (OCFile f : files) {
@@ -769,7 +752,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
 
 
                 mListView.setAdapter(sa);
                 mListView.setAdapter(sa);
             }
             }
-                Button btnChooseFolder = (Button) findViewById(R.id.uploader_choose_folder);
+            Button btnChooseFolder = findViewById(R.id.uploader_choose_folder);
                 btnChooseFolder.setOnClickListener(this);
                 btnChooseFolder.setOnClickListener(this);
                 btnChooseFolder.getBackground().setColorFilter(ThemeUtils.primaryColor(getAccount()),
                 btnChooseFolder.getBackground().setColorFilter(ThemeUtils.primaryColor(getAccount()),
                         PorterDuff.Mode.SRC_ATOP);
                         PorterDuff.Mode.SRC_ATOP);
@@ -783,7 +766,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
 
 
                 ThemeUtils.colorToolbarProgressBar(this, ThemeUtils.primaryColor(getAccount()));
                 ThemeUtils.colorToolbarProgressBar(this, ThemeUtils.primaryColor(getAccount()));
 
 
-                Button btnNewFolder = (Button) findViewById(R.id.uploader_cancel);
+            Button btnNewFolder = findViewById(R.id.uploader_cancel);
                 btnNewFolder.setOnClickListener(this);
                 btnNewFolder.setOnClickListener(this);
 
 
                 mListView.setOnItemClickListener(this);
                 mListView.setOnItemClickListener(this);
@@ -791,33 +774,27 @@ public class ReceiveExternalFilesActivity extends FileActivity
         }
         }
 
 
     protected void setupEmptyList() {
     protected void setupEmptyList() {
-        mEmptyListContainer = (LinearLayout) findViewById(R.id.empty_list_view);
-        mEmptyListMessage = (TextView) findViewById(R.id.empty_list_view_text);
-        mEmptyListHeadline = (TextView) findViewById(R.id.empty_list_view_headline);
-        mEmptyListIcon = (ImageView) findViewById(R.id.empty_list_icon);
-        mEmptyListProgress = (ProgressBar) findViewById(R.id.empty_list_progress);
+        mEmptyListContainer = findViewById(R.id.empty_list_view);
+        mEmptyListMessage = findViewById(R.id.empty_list_view_text);
+        mEmptyListHeadline = findViewById(R.id.empty_list_view_headline);
+        mEmptyListIcon = findViewById(R.id.empty_list_icon);
+        mEmptyListProgress = findViewById(R.id.empty_list_progress);
         mEmptyListProgress.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(),
         mEmptyListProgress.getIndeterminateDrawable().setColorFilter(ThemeUtils.primaryColor(),
                 PorterDuff.Mode.SRC_IN);
                 PorterDuff.Mode.SRC_IN);
     }
     }
 
 
     public void setMessageForEmptyList(@StringRes final int headline, @StringRes final int message,
     public void setMessageForEmptyList(@StringRes final int headline, @StringRes final int message,
-                                       @DrawableRes final int icon, final boolean tintIcon) {
-        new Handler(Looper.getMainLooper()).post(new Runnable() {
-            @Override
-            public void run() {
-
-                if (mEmptyListContainer != null && mEmptyListMessage != null) {
-                    mEmptyListHeadline.setText(headline);
-                    mEmptyListMessage.setText(message);
+                                       @DrawableRes final int icon) {
+        new Handler(Looper.getMainLooper()).post(() -> {
+            if (mEmptyListContainer != null && mEmptyListMessage != null) {
+                mEmptyListHeadline.setText(headline);
+                mEmptyListMessage.setText(message);
 
 
-                    if (tintIcon) {
-                        mEmptyListIcon.setImageDrawable(ThemeUtils.tintDrawable(icon, ThemeUtils.primaryColor()));
-                    }
+                mEmptyListIcon.setImageDrawable(ThemeUtils.tintDrawable(icon, ThemeUtils.primaryColor()));
 
 
-                    mEmptyListIcon.setVisibility(View.VISIBLE);
-                    mEmptyListProgress.setVisibility(View.GONE);
-                    mEmptyListMessage.setVisibility(View.VISIBLE);
-                }
+                mEmptyListIcon.setVisibility(View.VISIBLE);
+                mEmptyListProgress.setVisibility(View.GONE);
+                mEmptyListMessage.setVisibility(View.VISIBLE);
             }
             }
         });
         });
     }
     }
@@ -833,7 +810,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
         mSyncInProgress = true;
         mSyncInProgress = true;
 
 
         // perform folder synchronization
         // perform folder synchronization
-        RemoteOperation synchFolderOp = new RefreshFolderOperation( folder,
+        RemoteOperation syncFolderOp = new RefreshFolderOperation(folder,
                                                                         currentSyncTime,
                                                                         currentSyncTime,
                                                                         false,
                                                                         false,
                                                                         false,
                                                                         false,
@@ -842,7 +819,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
                                                                         getAccount(),
                                                                         getAccount(),
                                                                         getApplicationContext()
                                                                         getApplicationContext()
                                                                       );
                                                                       );
-        synchFolderOp.execute(getAccount(), this, null, null);
+        syncFolderOp.execute(getAccount(), this, null, null);
     }
     }
 
 
     private Vector<OCFile> sortFileList(Vector<OCFile> files) {
     private Vector<OCFile> sortFileList(Vector<OCFile> files) {
@@ -863,10 +840,11 @@ public class ReceiveExternalFilesActivity extends FileActivity
 
 
     private void prepareStreamsToUpload() {
     private void prepareStreamsToUpload() {
         Intent intent = getIntent();
         Intent intent = getIntent();
-        if (intent.getAction().equals(Intent.ACTION_SEND)) {
+
+        if (Intent.ACTION_SEND.equals(intent.getAction())) {
             mStreamsToUpload = new ArrayList<>();
             mStreamsToUpload = new ArrayList<>();
             mStreamsToUpload.add(intent.getParcelableExtra(Intent.EXTRA_STREAM));
             mStreamsToUpload.add(intent.getParcelableExtra(Intent.EXTRA_STREAM));
-        } else if (intent.getAction().equals(Intent.ACTION_SEND_MULTIPLE)) {
+        } else if (Intent.ACTION_SEND_MULTIPLE.equals(intent.getAction())) {
             mStreamsToUpload = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
             mStreamsToUpload = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
         }
         }
 
 
@@ -877,7 +855,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
     }
     }
 
 
     private void saveTextsFromIntent(Intent intent) {
     private void saveTextsFromIntent(Intent intent) {
-        if (!intent.getType().equals("text/plain")) {
+        if (!"text/plain".equals(intent.getType())) {
             return;
             return;
         }
         }
         mUploadFromTmpFile = true;
         mUploadFromTmpFile = true;
@@ -897,12 +875,12 @@ public class ReceiveExternalFilesActivity extends FileActivity
                 mUploadFromTmpFile);
                 mUploadFromTmpFile);
     }
     }
 
 
-    public void uploadFile(String tmpname, String filename) {
+    public void uploadFile(String tmpName, String filename) {
         FileUploader.UploadRequester requester = new FileUploader.UploadRequester();
         FileUploader.UploadRequester requester = new FileUploader.UploadRequester();
         requester.uploadNewFile(
         requester.uploadNewFile(
             getBaseContext(),
             getBaseContext(),
             getAccount(),
             getAccount(),
-            tmpname,
+                tmpName,
             mFile.getRemotePath() + filename,
             mFile.getRemotePath() + filename,
             FileUploader.LOCAL_BEHAVIOUR_COPY,
             FileUploader.LOCAL_BEHAVIOUR_COPY,
             null,
             null,
@@ -1010,9 +988,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
         } else {
         } else {
             String[] dir_names = lastPath.split("/");
             String[] dir_names = lastPath.split("/");
             mParents.clear();
             mParents.clear();
-            for (String dir : dir_names) {
-                mParents.add(dir);
-            }
+            mParents.addAll(Arrays.asList(dir_names));
         }
         }
         //Make sure that path still exists, if it doesn't pop the stack and try the previous path
         //Make sure that path still exists, if it doesn't pop the stack and try the previous path
         while (!getStorageManager().fileExists(generatePath(mParents)) && mParents.size() > 1) {
         while (!getStorageManager().fileExists(generatePath(mParents)) && mParents.size() > 1) {
@@ -1092,9 +1068,8 @@ public class ReceiveExternalFilesActivity extends FileActivity
                 String event = intent.getAction();
                 String event = intent.getAction();
                 Log_OC.d(TAG, "Received broadcast " + event);
                 Log_OC.d(TAG, "Received broadcast " + event);
                 String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
                 String accountName = intent.getStringExtra(FileSyncAdapter.EXTRA_ACCOUNT_NAME);
-                String synchFolderRemotePath =
-                        intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH);
-                RemoteOperationResult synchResult = (RemoteOperationResult)
+                String syncFolderRemotePath = intent.getStringExtra(FileSyncAdapter.EXTRA_FOLDER_PATH);
+                RemoteOperationResult syncResult = (RemoteOperationResult)
                         DataHolderUtil.getInstance().retrieve(intent.getStringExtra(FileSyncAdapter.EXTRA_RESULT));
                         DataHolderUtil.getInstance().retrieve(intent.getStringExtra(FileSyncAdapter.EXTRA_RESULT));
                 boolean sameAccount = (getAccount() != null &&
                 boolean sameAccount = (getAccount() != null &&
                         accountName.equals(getAccount().name) && getStorageManager() != null);
                         accountName.equals(getAccount().name) && getStorageManager() != null);
@@ -1125,7 +1100,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
                                 currentFile = currentDir;
                                 currentFile = currentDir;
                             }
                             }
 
 
-                            if (currentDir.getRemotePath().equals(synchFolderRemotePath)) {
+                            if (currentDir.getRemotePath().equals(syncFolderRemotePath)) {
                                 populateDirectoryList();
                                 populateDirectoryList();
                             }
                             }
                             mFile = currentFile;
                             mFile = currentFile;
@@ -1137,17 +1112,17 @@ public class ReceiveExternalFilesActivity extends FileActivity
                         if (RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED.
                         if (RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED.
                                 equals(event) &&
                                 equals(event) &&
                                 /// TODO refactor and make common
                                 /// TODO refactor and make common
-                                synchResult != null && !synchResult.isSuccess()) {
+                                syncResult != null && !syncResult.isSuccess()) {
 
 
-                            if(synchResult.getCode() == ResultCode.UNAUTHORIZED ||
-                                        (synchResult.isException() && synchResult.getException()
+                            if (syncResult.getCode() == ResultCode.UNAUTHORIZED ||
+                                    (syncResult.isException() && syncResult.getException()
                                                 instanceof AuthenticatorException)) {
                                                 instanceof AuthenticatorException)) {
 
 
                                 requestCredentialsUpdate(context);
                                 requestCredentialsUpdate(context);
 
 
-                            } else if(RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED.equals(synchResult.getCode())) {
+                            } else if (RemoteOperationResult.ResultCode.SSL_RECOVERABLE_PEER_UNVERIFIED.equals(syncResult.getCode())) {
 
 
-                                showUntrustedCertDialog(synchResult);
+                                showUntrustedCertDialog(syncResult);
                             }
                             }
                         }
                         }
                     }
                     }

+ 9 - 9
src/main/java/com/owncloud/android/ui/activity/SyncedFoldersActivity.java

@@ -114,11 +114,10 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
 
 
         // setup toolbar
         // setup toolbar
         setupToolbar();
         setupToolbar();
-        CollapsingToolbarLayout mCollapsingToolbarLayout = ((CollapsingToolbarLayout)
-                findViewById(R.id.collapsing_toolbar));
+        CollapsingToolbarLayout mCollapsingToolbarLayout = findViewById(R.id.collapsing_toolbar);
         mCollapsingToolbarLayout.setTitle(this.getString(R.string.drawer_synced_folders));
         mCollapsingToolbarLayout.setTitle(this.getString(R.string.drawer_synced_folders));
 
 
-        mCustomFolderRelativeLayout = (RelativeLayout) findViewById(R.id.custom_folder_toolbar);
+        mCustomFolderRelativeLayout = findViewById(R.id.custom_folder_toolbar);
 
 
         SharedPreferences appPrefs =
         SharedPreferences appPrefs =
                 PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
                 PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
@@ -170,10 +169,10 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
      * sets up the UI elements and loads all media/synced folders.
      * sets up the UI elements and loads all media/synced folders.
      */
      */
     private void setupContent() {
     private void setupContent() {
-        mRecyclerView = (RecyclerView) findViewById(android.R.id.list);
+        mRecyclerView = findViewById(android.R.id.list);
 
 
-        mProgress = (LinearLayout) findViewById(android.R.id.progress);
-        mEmpty = (TextView) findViewById(android.R.id.empty);
+        mProgress = findViewById(android.R.id.progress);
+        mEmpty = findViewById(android.R.id.empty);
 
 
         final int gridWidth = getResources().getInteger(R.integer.media_grid_width);
         final int gridWidth = getResources().getInteger(R.integer.media_grid_width);
         boolean lightVersion = getResources().getBoolean(R.bool.syncedFolder_light);
         boolean lightVersion = getResources().getBoolean(R.bool.syncedFolder_light);
@@ -187,7 +186,7 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
         mRecyclerView.setLayoutManager(lm);
         mRecyclerView.setLayoutManager(lm);
         mRecyclerView.setAdapter(mAdapter);
         mRecyclerView.setAdapter(mAdapter);
 
 
-        BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation_view);
+        BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation_view);
 
 
         if (getResources().getBoolean(R.bool.bottom_toolbar_enabled)) {
         if (getResources().getBoolean(R.bool.bottom_toolbar_enabled)) {
             bottomNavigationView.setVisibility(View.VISIBLE);
             bottomNavigationView.setVisibility(View.VISIBLE);
@@ -209,13 +208,14 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
         setListShown(false);
         setListShown(false);
         final List<MediaFolder> mediaFolders = MediaProvider.getImageFolders(getContentResolver(),
         final List<MediaFolder> mediaFolders = MediaProvider.getImageFolders(getContentResolver(),
                 perFolderMediaItemLimit, SyncedFoldersActivity.this);
                 perFolderMediaItemLimit, SyncedFoldersActivity.this);
-        mediaFolders.addAll(MediaProvider.getVideoFolders(getContentResolver(), perFolderMediaItemLimit));
+        mediaFolders.addAll(MediaProvider.getVideoFolders(getContentResolver(), perFolderMediaItemLimit,
+                SyncedFoldersActivity.this));
 
 
         List<SyncedFolder> syncedFolderArrayList = mSyncedFolderProvider.getSyncedFolders();
         List<SyncedFolder> syncedFolderArrayList = mSyncedFolderProvider.getSyncedFolders();
         List<SyncedFolder> currentAccountSyncedFoldersList = new ArrayList<>();
         List<SyncedFolder> currentAccountSyncedFoldersList = new ArrayList<>();
         Account currentAccount = AccountUtils.getCurrentOwnCloudAccount(SyncedFoldersActivity.this);
         Account currentAccount = AccountUtils.getCurrentOwnCloudAccount(SyncedFoldersActivity.this);
         for (SyncedFolder syncedFolder : syncedFolderArrayList) {
         for (SyncedFolder syncedFolder : syncedFolderArrayList) {
-            if (syncedFolder.getAccount().equals(currentAccount.name)) {
+            if (currentAccount != null && syncedFolder.getAccount().equals(currentAccount.name)) {
                 currentAccountSyncedFoldersList.add(syncedFolder);
                 currentAccountSyncedFoldersList.add(syncedFolder);
             }
             }
         }
         }

+ 17 - 17
src/main/java/com/owncloud/android/ui/adapter/FileListListAdapter.java

@@ -81,8 +81,8 @@ public class FileListListAdapter extends BaseAdapter {
 
 
     public static final int showFilenameColumnThreshold = 4;
     public static final int showFilenameColumnThreshold = 4;
     private Context mContext;
     private Context mContext;
-    private Vector<OCFile> mFilesAll = new Vector<OCFile>();
-    private Vector<OCFile> mFiles = null;
+    private Vector<OCFile> mFilesAll = new Vector<>();
+    private Vector<OCFile> mFiles = new Vector<>();
     private boolean mJustFolders;
     private boolean mJustFolders;
     private boolean mHideItemOptions;
     private boolean mHideItemOptions;
 
 
@@ -217,7 +217,7 @@ public class FileListListAdapter extends BaseAdapter {
         }
         }
 
 
         if (file != null) {
         if (file != null) {
-            ImageView fileIcon = (ImageView) view.findViewById(R.id.thumbnail);
+            ImageView fileIcon = view.findViewById(R.id.thumbnail);
 
 
             fileIcon.setTag(file.getFileId());
             fileIcon.setTag(file.getFileId());
             TextView fileName;
             TextView fileName;
@@ -225,9 +225,9 @@ public class FileListListAdapter extends BaseAdapter {
 
 
             switch (viewType) {
             switch (viewType) {
                 case LIST_ITEM:
                 case LIST_ITEM:
-                    TextView fileSizeV = (TextView) view.findViewById(R.id.file_size);
-                    TextView fileSizeSeparatorV = (TextView) view.findViewById(R.id.file_separator);
-                    TextView lastModV = (TextView) view.findViewById(R.id.last_mod);
+                    TextView fileSizeV = view.findViewById(R.id.file_size);
+                    TextView fileSizeSeparatorV = view.findViewById(R.id.file_separator);
+                    TextView lastModV = view.findViewById(R.id.last_mod);
 
 
 
 
                     lastModV.setVisibility(View.VISIBLE);
                     lastModV.setVisibility(View.VISIBLE);
@@ -240,7 +240,7 @@ public class FileListListAdapter extends BaseAdapter {
 
 
                 case GRID_ITEM:
                 case GRID_ITEM:
                     // filename
                     // filename
-                    fileName = (TextView) view.findViewById(R.id.Filename);
+                    fileName = view.findViewById(R.id.Filename);
                     fileName.setText(name);
                     fileName.setText(name);
 
 
                     if (OCFileListFragmentInterface.getColumnSize() > showFilenameColumnThreshold
                     if (OCFileListFragmentInterface.getColumnSize() > showFilenameColumnThreshold
@@ -251,7 +251,7 @@ public class FileListListAdapter extends BaseAdapter {
                 case GRID_IMAGE:
                 case GRID_IMAGE:
 
 
                     // local state
                     // local state
-                    ImageView localStateView = (ImageView) view.findViewById(R.id.localFileIndicator);
+                    ImageView localStateView = view.findViewById(R.id.localFileIndicator);
                     localStateView.bringToFront();
                     localStateView.bringToFront();
                     FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();
                     FileDownloaderBinder downloaderBinder = mTransferServiceGetter.getFileDownloaderBinder();
                     FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();
                     FileUploaderBinder uploaderBinder = mTransferServiceGetter.getFileUploaderBinder();
@@ -294,7 +294,7 @@ public class FileListListAdapter extends BaseAdapter {
                 view.findViewById(R.id.favorite_action).setVisibility(View.GONE);
                 view.findViewById(R.id.favorite_action).setVisibility(View.GONE);
             }
             }
 
 
-            ImageView checkBoxV = (ImageView) view.findViewById(R.id.custom_checkbox);
+            ImageView checkBoxV = view.findViewById(R.id.custom_checkbox);
             view.setBackgroundColor(Color.WHITE);
             view.setBackgroundColor(Color.WHITE);
 
 
             AbsListView parentList = (AbsListView) parent;
             AbsListView parentList = (AbsListView) parent;
@@ -315,10 +315,10 @@ public class FileListListAdapter extends BaseAdapter {
                 checkBoxV.setVisibility(View.GONE);
                 checkBoxV.setVisibility(View.GONE);
 
 
                 if (mHideItemOptions) {
                 if (mHideItemOptions) {
-                    ImageView sharedIconView = (ImageView) view.findViewById(R.id.sharedIcon);
+                    ImageView sharedIconView = view.findViewById(R.id.sharedIcon);
                     sharedIconView.setVisibility(View.GONE);
                     sharedIconView.setVisibility(View.GONE);
 
 
-                    ImageView overflowIndicatorView = (ImageView) view.findViewById(R.id.overflow_menu);
+                    ImageView overflowIndicatorView = view.findViewById(R.id.overflow_menu);
                     overflowIndicatorView.setVisibility(View.GONE);
                     overflowIndicatorView.setVisibility(View.GONE);
                 } else {
                 } else {
                     showShareIcon(view, file);
                     showShareIcon(view, file);
@@ -403,7 +403,7 @@ public class FileListListAdapter extends BaseAdapter {
     }
     }
 
 
     private void showShareIcon(View view, OCFile file) {
     private void showShareIcon(View view, OCFile file) {
-        ImageView sharedIconV = (ImageView) view.findViewById(R.id.sharedIcon);
+        ImageView sharedIconV = view.findViewById(R.id.sharedIcon);
         sharedIconV.setVisibility(View.VISIBLE);
         sharedIconV.setVisibility(View.VISIBLE);
         if (file.isSharedWithSharee() || file.isSharedWithMe()) {
         if (file.isSharedWithSharee() || file.isSharedWithMe()) {
             sharedIconV.setImageResource(R.drawable.shared_via_users);
             sharedIconV.setImageResource(R.drawable.shared_via_users);
@@ -426,7 +426,7 @@ public class FileListListAdapter extends BaseAdapter {
 
 
     private void showOverflowMenuIcon(View view, OCFile file, ViewType viewType) {
     private void showOverflowMenuIcon(View view, OCFile file, ViewType viewType) {
         if (ViewType.LIST_ITEM.equals(viewType)) {
         if (ViewType.LIST_ITEM.equals(viewType)) {
-            ImageView overflowIndicatorV = (ImageView) view.findViewById(R.id.overflow_menu);
+            ImageView overflowIndicatorV = view.findViewById(R.id.overflow_menu);
             overflowIndicatorV.setVisibility(View.VISIBLE);
             overflowIndicatorV.setVisibility(View.VISIBLE);
             overflowIndicatorV.setOnClickListener(new View.OnClickListener() {
             overflowIndicatorV.setOnClickListener(new View.OnClickListener() {
                 @Override
                 @Override
@@ -439,7 +439,7 @@ public class FileListListAdapter extends BaseAdapter {
 
 
     private void hideOverflowMenuIcon(View view, ViewType viewType) {
     private void hideOverflowMenuIcon(View view, ViewType viewType) {
         if (ViewType.LIST_ITEM.equals(viewType)) {
         if (ViewType.LIST_ITEM.equals(viewType)) {
-            ImageView overflowIndicatorV = (ImageView) view.findViewById(R.id.overflow_menu);
+            ImageView overflowIndicatorV = view.findViewById(R.id.overflow_menu);
             overflowIndicatorV.setVisibility(View.GONE);
             overflowIndicatorV.setVisibility(View.GONE);
         }
         }
     }
     }
@@ -488,7 +488,7 @@ public class FileListListAdapter extends BaseAdapter {
 
 
             currentDirectory = directory;
             currentDirectory = directory;
         } else {
         } else {
-            mFiles = null;
+            mFiles.clear();
             mFilesAll.clear();
             mFilesAll.clear();
         }
         }
 
 
@@ -509,7 +509,7 @@ public class FileListListAdapter extends BaseAdapter {
         if (storageManager != null && mStorageManager == null) {
         if (storageManager != null && mStorageManager == null) {
             mStorageManager = storageManager;
             mStorageManager = storageManager;
         }
         }
-        mFiles = new Vector<>();
+        mFiles.clear();
 
 
         // early exit
         // early exit
         if (objects.size() > 0 && mStorageManager != null) {
         if (objects.size() > 0 && mStorageManager != null) {
@@ -708,7 +708,7 @@ public class FileListListAdapter extends BaseAdapter {
         @Override
         @Override
         protected void publishResults(CharSequence constraint, Filter.FilterResults results) {
         protected void publishResults(CharSequence constraint, Filter.FilterResults results) {
             Vector<OCFile> ocFiles = (Vector<OCFile>) results.values;
             Vector<OCFile> ocFiles = (Vector<OCFile>) results.values;
-            mFiles = new Vector<>();
+            mFiles.clear();
             if (ocFiles != null && ocFiles.size() > 0) {
             if (ocFiles != null && ocFiles.size() > 0) {
                 mFiles.addAll(ocFiles);
                 mFiles.addAll(ocFiles);
                 if (!PreferenceManager.showHiddenFilesEnabled(mContext)) {
                 if (!PreferenceManager.showHiddenFilesEnabled(mContext)) {

+ 0 - 1
src/main/res/values-b+en+001/strings.xml

@@ -667,7 +667,6 @@
     <string name="resized_image_not_possible">No resized image available. Download full image?</string>
     <string name="resized_image_not_possible">No resized image available. Download full image?</string>
     <string name="resized_images_download_full_image">Download full image?</string>
     <string name="resized_images_download_full_image">Download full image?</string>
 
 
-    <string name="store_short_desc">The Nextcloud Android app gives you access to all your files in your Nextcloud</string>
     <string name="store_full_desc">The copyleft libre software Nextcloud Android app, gives you access to all the files in your Nextcloud.\n\nFeatures:\n* Easy, modern interface, suited to the theme of your server\n* Upload files to your Nextcloud server\n* Share them with others\n* Keep your favourite files and folders synced\n* Search across all folders on your server\n* Auto Upload for photos and videos taken by your device\n* Keep up to date with notifications\n* Multi-account support\n* Secure access to your data with fingerprint or PIN\n* Integration with DAVdroid for easy setup of calendar &amp; Contacts synchronisation\n\nPlease report all issues at https://github.com/nextcloud/android/issues and discuss this app at https://help.nextcloud.com/c/clients/android\n\nNew to Nextcloud? Nextcloud is a private file sync &amp; share and communication server. It is libre software, and you can host it yourself or pay a company to do it for you. That way, you are in control of your photos, your calendar and contact data, your documents and everything else.\n\nCheck out Nextcloud at https://nextcloud.com</string>
     <string name="store_full_desc">The copyleft libre software Nextcloud Android app, gives you access to all the files in your Nextcloud.\n\nFeatures:\n* Easy, modern interface, suited to the theme of your server\n* Upload files to your Nextcloud server\n* Share them with others\n* Keep your favourite files and folders synced\n* Search across all folders on your server\n* Auto Upload for photos and videos taken by your device\n* Keep up to date with notifications\n* Multi-account support\n* Secure access to your data with fingerprint or PIN\n* Integration with DAVdroid for easy setup of calendar &amp; Contacts synchronisation\n\nPlease report all issues at https://github.com/nextcloud/android/issues and discuss this app at https://help.nextcloud.com/c/clients/android\n\nNew to Nextcloud? Nextcloud is a private file sync &amp; share and communication server. It is libre software, and you can host it yourself or pay a company to do it for you. That way, you are in control of your photos, your calendar and contact data, your documents and everything else.\n\nCheck out Nextcloud at https://nextcloud.com</string>
 
 
     <string name="drawer_current_account">Current account</string>
     <string name="drawer_current_account">Current account</string>

+ 0 - 1
src/main/res/values-b+es+419/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 47 - 1
src/main/res/values-ca/strings.xml

@@ -118,6 +118,7 @@
     <string name="filedetails_sync_file">Sincronitza</string>
     <string name="filedetails_sync_file">Sincronitza</string>
     <string name="filedetails_renamed_in_upload_msg">S\'ha canviat el nom del fitxer %1$sdurant la càrrega</string>
     <string name="filedetails_renamed_in_upload_msg">S\'ha canviat el nom del fitxer %1$sdurant la càrrega</string>
     <string name="list_layout">Disposició llistada</string>
     <string name="list_layout">Disposició llistada</string>
+    <string name="action_send_share">Envia/Comparteix</string>
     <string name="common_yes">Sí</string>
     <string name="common_yes">Sí</string>
     <string name="common_no">No</string>
     <string name="common_no">No</string>
     <string name="common_ok">D\'acord</string>
     <string name="common_ok">D\'acord</string>
@@ -201,6 +202,10 @@
     <string name="pass_code_wrong">Codi d\'accés incorrecte</string>
     <string name="pass_code_wrong">Codi d\'accés incorrecte</string>
     <string name="pass_code_stored">Codi d\'accés desat</string>
     <string name="pass_code_stored">Codi d\'accés desat</string>
     
     
+    <string name="media_notif_ticker">%1$s reproductor de música</string>
+    <string name="media_state_playing">%1$s (sonant)</string>
+    <string name="media_state_loading">%1$s (carregant)</string>
+    <string name="media_event_done">%1$s reproducció acabada</string>
     <string name="media_err_nothing_to_play">No s\'han trobat fitxers multimèdia</string>
     <string name="media_err_nothing_to_play">No s\'han trobat fitxers multimèdia</string>
     <string name="media_err_no_account">No s\'ha proporcionat cap compte</string>
     <string name="media_err_no_account">No s\'ha proporcionat cap compte</string>
     <string name="media_err_not_in_owncloud">El fitxer no està en un compte vàlid</string>
     <string name="media_err_not_in_owncloud">El fitxer no està en un compte vàlid</string>
@@ -256,8 +261,15 @@
     <string name="unset_favorite_real">Desfés el favorit</string>
     <string name="unset_favorite_real">Desfés el favorit</string>
     <string name="favorite_switch">fora de línia</string>
     <string name="favorite_switch">fora de línia</string>
     <string name="common_rename">Reanomena</string>
     <string name="common_rename">Reanomena</string>
+    <string name="common_remove">Esborra</string>
+    <string name="confirmation_remove_file_alert">Esteu segur que voleu esborrar%1$s?</string>
+    <string name="confirmation_remove_folder_alert">Esteu segur que voleu esborrar %1$s i els seus continguts?</string>
     <string name="confirmation_remove_local">Només local</string>
     <string name="confirmation_remove_local">Només local</string>
+    <string name="remove_success_msg">Esborrat</string>
+    <string name="remove_fail_msg">No s\'ha pogut completar l\'eliminació</string>
     <string name="rename_dialog_title">Introduiu un nom nou</string>
     <string name="rename_dialog_title">Introduiu un nom nou</string>
+    <string name="rename_local_fail_msg">No s\'ha pogut canviar el nom a la còpia local, proveu un nom diferent</string>
+    <string name="rename_server_fail_msg">No s\'ha pogut reanomenar el servidor</string>
     <string name="sync_file_nothing_to_do_msg">Contingut del fitxer ja sincronitzat</string>
     <string name="sync_file_nothing_to_do_msg">Contingut del fitxer ja sincronitzat</string>
     <string name="create_dir_fail_msg">No s\'ha pogut crear la carpeta</string>
     <string name="create_dir_fail_msg">No s\'ha pogut crear la carpeta</string>
     <string name="filename_forbidden_characters">Caràcters no permesos: / \\ &lt; &gt; : \" | ? *</string>
     <string name="filename_forbidden_characters">Caràcters no permesos: / \\ &lt; &gt; : \" | ? *</string>
@@ -272,6 +284,7 @@
     <string name="oauth_check_onoff">Inicieu sessió amb OAuth 2.0</string> 
     <string name="oauth_check_onoff">Inicieu sessió amb OAuth 2.0</string> 
     <string name="oauth_login_connection">Connexió al servidor&#8230; OAuth 2.0</string>
     <string name="oauth_login_connection">Connexió al servidor&#8230; OAuth 2.0</string>
         
         
+    <string name="ssl_validator_header">No s\'ha pogut verificar la identitat del servidor</string>
     <string name="ssl_validator_reason_cert_not_trusted">- El certificat del servidor no està autenticat</string>
     <string name="ssl_validator_reason_cert_not_trusted">- El certificat del servidor no està autenticat</string>
     <string name="ssl_validator_reason_cert_expired">- El certificat del servidor ha expirat</string>
     <string name="ssl_validator_reason_cert_expired">- El certificat del servidor ha expirat</string>
     <string name="ssl_validator_reason_cert_not_yet_valid">- Les dades vàlides del certificat del servidor són al futur</string>
     <string name="ssl_validator_reason_cert_not_yet_valid">- Les dades vàlides del certificat del servidor són al futur</string>
@@ -301,6 +314,7 @@
 
 
     <string name="placeholder_sentence">Això és un text variable</string>
     <string name="placeholder_sentence">Això és un text variable</string>
     <string name="placeholder_filename">placeholder.txt</string>
     <string name="placeholder_filename">placeholder.txt</string>
+    <string name="placeholder_fileSize">389 KB</string>
     <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
     <string name="placeholder_timestamp">2012/05/18 12:23 PM</string>
     <string name="placeholder_media_time">12:23:45</string>
     <string name="placeholder_media_time">12:23:45</string>
 
 
@@ -317,10 +331,15 @@
     <string name="preview_sorry">Ho sento</string>
     <string name="preview_sorry">Ho sento</string>
     <string name="preview_image_description">Visualització prèvia d\'imatge</string>
     <string name="preview_image_description">Visualització prèvia d\'imatge</string>
     <string name="preview_image_error_unknown_format">No es pot mostrar la imatge</string>
     <string name="preview_image_error_unknown_format">No es pot mostrar la imatge</string>
+    <string name="preview_image_error_no_local_file">No hi ha cap fitxer local per fer una vista prèvia</string>
+
     <string name="error__upload__local_file_not_copied">%1$s no s\'ha pogut copiar a la carpeta local %2$s</string>
     <string name="error__upload__local_file_not_copied">%1$s no s\'ha pogut copiar a la carpeta local %2$s</string>
+    <string name="prefs_synced_folders_local_path_title">Carpeta local</string>
+    <string name="prefs_synced_folders_remote_path_title">Carpeta remota</string>
     <string name="prefs_instant_upload_path_use_subfolders_title">Feu servir subcarpetes</string>
     <string name="prefs_instant_upload_path_use_subfolders_title">Feu servir subcarpetes</string>
     <string name="prefs_instant_upload_path_use_subfolders_summary">Desar a subcarpetes ordenades per any i mes</string>
     <string name="prefs_instant_upload_path_use_subfolders_summary">Desar a subcarpetes ordenades per any i mes</string>
 
 
+	<string name="share_link_no_support_share_api">No es pot compartir al teu servidor. Contacteu amb l\'administrador.</string>
 	<string name="share_link_file_no_exist">No es pot compartir. Assegureu-vos que el fitxer existeix</string>
 	<string name="share_link_file_no_exist">No es pot compartir. Assegureu-vos que el fitxer existeix</string>
 	<string name="share_link_file_error">S\'ha produït un error en intentar compartir aquest fitxer o carpeta</string>
 	<string name="share_link_file_error">S\'ha produït un error en intentar compartir aquest fitxer o carpeta</string>
 	<string name="unshare_link_file_no_exist">No es pot deixar de compartir. Assegureu-vos que el fitxer existeix</string>
 	<string name="unshare_link_file_no_exist">No es pot deixar de compartir. Assegureu-vos que el fitxer existeix</string>
@@ -334,29 +353,56 @@
 
 
     <string name="copy_link">Copia l\'enllaç</string>
     <string name="copy_link">Copia l\'enllaç</string>
     <string name="clipboard_text_copied">S\'ha copiat al porta-retalls</string>
     <string name="clipboard_text_copied">S\'ha copiat al porta-retalls</string>
+    <string name="clipboard_no_text_to_copy">No s\'ha rebut cap text per copiar al porta-retalls</string>
     <string name="clipboard_uxexpected_error">Error inesperat quan es copiava al porta-retalls</string>
     <string name="clipboard_uxexpected_error">Error inesperat quan es copiava al porta-retalls</string>
     <string name="clipboard_label">Text copiat des de %1$s</string>
     <string name="clipboard_label">Text copiat des de %1$s</string>
 
 
+    <string name="error_cant_bind_to_operations_service">Error crític: no es poden realitzar operacions</string>
+
+    <string name="network_error_socket_exception">S\'ha produit un error durant la connexió al servidor</string>
+    <string name="network_error_socket_timeout_exception">S\'ha produit un error esperant el servidor, l\'operació no s\'ha pogut realitzar.</string>
+    <string name="network_error_connect_timeout_exception">S\'ha produit un error esperant el servidor, l\'operació no s\'ha pogut realitzar.</string>
+    <string name="network_host_not_available">No s\'ha pogut realitzar l\'operació, el servidor no està disponible.</string>
+
+    <string name="forbidden_permissions">No teniu permisos%s</string>
     <string name="forbidden_permissions_rename">per canviar el nom d\'aquest fitxer</string>
     <string name="forbidden_permissions_rename">per canviar el nom d\'aquest fitxer</string>
     <string name="forbidden_permissions_delete">per eliminar aquest fitxer</string>
     <string name="forbidden_permissions_delete">per eliminar aquest fitxer</string>
     <string name="share_link_forbidden_permissions">per compartir aquest fitxer</string>
     <string name="share_link_forbidden_permissions">per compartir aquest fitxer</string>
     <string name="unshare_link_forbidden_permissions">per deixar de compartir aquest fitxer</string>
     <string name="unshare_link_forbidden_permissions">per deixar de compartir aquest fitxer</string>
     <string name="update_link_forbidden_permissions">per actualitzar aquesta compartició</string>
     <string name="update_link_forbidden_permissions">per actualitzar aquesta compartició</string>
     <string name="forbidden_permissions_create">per crear aquest fitxer</string>
     <string name="forbidden_permissions_create">per crear aquest fitxer</string>
+    <string name="uploader_upload_forbidden_permissions">per pujar fitxers en aquesta carpeta</string>
     <string name="downloader_download_file_not_found">El fitxer ja no està disponible en el servidor</string>
     <string name="downloader_download_file_not_found">El fitxer ja no està disponible en el servidor</string>
 
 
     <string name="file_migration_dialog_title">S\'està actualitzant la ruta d\'emmagatzematge</string>
     <string name="file_migration_dialog_title">S\'està actualitzant la ruta d\'emmagatzematge</string>
+    <string name="file_migration_preparing">Preparant-se per la migració &#8230;</string>
     <string name="file_migration_checking_destination">Comprovant la destinació&#8230;</string>
     <string name="file_migration_checking_destination">Comprovant la destinació&#8230;</string>
+    <string name="file_migration_saving_accounts_configuration">Desant la configuració dels comptes &#8230;</string>
+    <string name="file_migration_waiting_for_unfinished_sync">Esperant a sincronitzacions no acabades&#8230;</string>
     <string name="file_migration_migrating">Movent dades&#8230;</string>
     <string name="file_migration_migrating">Movent dades&#8230;</string>
     <string name="file_migration_updating_index">Actualitzant l\'índex&#8230;</string>
     <string name="file_migration_updating_index">Actualitzant l\'índex&#8230;</string>
     <string name="file_migration_cleaning">Netejant&#8230;</string>
     <string name="file_migration_cleaning">Netejant&#8230;</string>
+    <string name="file_migration_restoring_accounts_configuration">Restaurant la configuració dels comptes &#8230;</string>
     <string name="file_migration_ok_finished">Acabat</string>
     <string name="file_migration_ok_finished">Acabat</string>
+    <string name="file_migration_failed_not_enough_space">ERROR: Espai insuficient</string>
+    <string name="file_migration_failed_not_writable">ERROR: El fitxer no es pot escriure</string>
+    <string name="file_migration_failed_not_readable">ERROR: El fitxer no es pot llegir</string>
+    <string name="file_migration_failed_dir_already_exists">ERROR: El directori de Nextcloud ja existeix</string>
+    <string name="file_migration_failed_while_coping">ERROR: Fent la migració</string>
+    <string name="file_migration_failed_while_updating_index">ERROR: Actualitzant l\'índex</string>
+
+    <string name="file_migration_directory_already_exists">La carpeta de dades ja existeix. Trieu una de les següents:</string>
     <string name="file_migration_override_data_folder">Reemplaça</string>
     <string name="file_migration_override_data_folder">Reemplaça</string>
     <string name="file_migration_use_data_folder">Utilitza</string>
     <string name="file_migration_use_data_folder">Utilitza</string>
 
 
+    <string name="file_migration_source_not_readable_title">El directori no es pot llegir!</string>
+    <string name="file_migration_source_not_readable">Esteu segur que voleu canviar el destí d\'emmagatzemament a %1$s?\n\nNote: Totes les dades hauran de ser descarregades novament</string>
+
     <string name="prefs_add_account">Afegeix compte</string>
     <string name="prefs_add_account">Afegeix compte</string>
     <string name="drawer_manage_accounts">Gestió de comptes</string>
     <string name="drawer_manage_accounts">Gestió de comptes</string>
-    <string name="actionbar_logger">Registres</string>
+    <string name="auth_redirect_non_secure_connection_title">Una connexió segura està essent redirigida a través d\'una ruta insegura</string>
+
+	<string name="actionbar_logger">Registres</string>
 	<string name="log_send_history_button">Enviar història</string>
 	<string name="log_send_history_button">Enviar història</string>
 	<string name="log_send_mail_subject">%1$s registres de la aplicació d\'Android.</string>
 	<string name="log_send_mail_subject">%1$s registres de la aplicació d\'Android.</string>
 	<string name="log_progress_dialog_text">Carregant dades&#8230;</string>
 	<string name="log_progress_dialog_text">Carregant dades&#8230;</string>

+ 0 - 1
src/main/res/values-cs-rCZ/strings.xml

@@ -661,7 +661,6 @@
     <string name="resized_image_not_possible">Zmenšený obrázek není k dispozici. Stáhnout obrázek v plné velikosti?</string>
     <string name="resized_image_not_possible">Zmenšený obrázek není k dispozici. Stáhnout obrázek v plné velikosti?</string>
     <string name="resized_images_download_full_image">Stáhnout obrázek v plné velikosti?</string>
     <string name="resized_images_download_full_image">Stáhnout obrázek v plné velikosti?</string>
 
 
-    <string name="store_short_desc">Aplikace Nextcloud pro Android ti nabízí přístup ke všem souborům ve tvém Nextcloudu</string>
     <string name="drawer_current_account">Aktuální účet</string>
     <string name="drawer_current_account">Aktuální účet</string>
     <string name="drawer_middle_account">Prostřední účet</string>
     <string name="drawer_middle_account">Prostřední účet</string>
     <string name="drawer_end_account">Poslední účet</string>
     <string name="drawer_end_account">Poslední účet</string>

+ 6 - 6
src/main/res/values-de-rDE/strings.xml

@@ -146,7 +146,7 @@
     <string name="uploader_upload_failed_ticker">Hochladen fehlgeschlagen</string>
     <string name="uploader_upload_failed_ticker">Hochladen fehlgeschlagen</string>
     <string name="uploader_upload_failed_content_single">Konnte %1$s nicht hochladen</string>
     <string name="uploader_upload_failed_content_single">Konnte %1$s nicht hochladen</string>
     <string name="uploader_upload_failed_credentials_error">Hochladen fehlgeschlagen, erneute Anmeldung erforderlich</string>
     <string name="uploader_upload_failed_credentials_error">Hochladen fehlgeschlagen, erneute Anmeldung erforderlich</string>
-    <string name="uploads_view_upload_status_failed_ssl_certificate_not_trusted">Serverzertifikat ist nicht vertrauenswürdig</string>
+    <string name="uploads_view_upload_status_failed_ssl_certificate_not_trusted">Das Zertifikat des Servers ist nicht vertrauenswürdig</string>
     <string name="uploads_view_title">Uploads</string>
     <string name="uploads_view_title">Uploads</string>
     <string name="uploads_view_group_current_uploads">Aktuell</string>
     <string name="uploads_view_group_current_uploads">Aktuell</string>
     <string name="uploads_view_group_failed_uploads">Neustart gescheitert / nicht abgeschlossen.</string>
     <string name="uploads_view_group_failed_uploads">Neustart gescheitert / nicht abgeschlossen.</string>
@@ -190,7 +190,7 @@
         <item quantity="one">%1$dDatei im %2$s-Verzeichnis konnte nicht kopiert werden nach </item>
         <item quantity="one">%1$dDatei im %2$s-Verzeichnis konnte nicht kopiert werden nach </item>
         <item quantity="other">%1$dDateien im %2$s-Verzeichnis konnte nicht kopiert werden nach </item>
         <item quantity="other">%1$dDateien im %2$s-Verzeichnis konnte nicht kopiert werden nach </item>
     </plurals>
     </plurals>
-    <string name="sync_foreign_files_forgotten_explanation">Seit Version 1.3.16 werden Dateien die von diesem Gerät aus hochgeladen werden in den lokalen Ordner %1$s kopiert um Datenverlust zu vermeiden, wenn eine einzelne Datei mit mehreren Accounts synchronisiert wird.\n\nInfolge dieser Änderung wurden alle Dateien, die mit vorherigen Versionen dieser App hochgeladen wurden, in den Ordner %2$s verschoben. Jedoch ist während der Konto-Synchronisation ein Fehler aufgetreten, der das Abschließen dieses Vorgangs verhindert hat. Die Datei(en) können entweder wie sie sind belassen und den Link zu %3$s entfernt werden oder die Datei(en) in den Ordner %1$s verschoben und den Link zu %4$s beibehalten werden.\n\nUnten befindet sich eine Liste der lokalen Datei(en) und der mit ihnen verbundenen Remote-Datei(en) in %5$s.</string>
+    <string name="sync_foreign_files_forgotten_explanation">Seit Version 1.3.16 werden Dateien die von diesem Gerät aus hochgeladen werden in den lokalen Ordner %1$s kopiert um Datenverlust zu vermeiden, wenn eine einzelne Datei mit mehreren Konten synchronisiert wird.\n\nInfolge dieser Änderung wurden alle Dateien, die mit vorherigen Versionen dieser App hochgeladen wurden, in den Ordner %2$s verschoben. Jedoch ist während der Konto-Synchronisation ein Fehler aufgetreten, der das Abschließen dieses Vorgangs verhindert hat. Sie können die Datei(en) entweder wie sie sind belassen und den Link zu %3$s löschen oder die Datei(en) in den Ordner %1$s verschieben und den Link zu %4$s beibehalten.\n\nUnten befindet sich eine Liste der lokalen Datei(en) und der mit ihnen verbundenen Remote-Datei(en) in %5$s.</string>
     <string name="sync_current_folder_was_removed">Der Ordner %1$s existiert nicht mehr</string>
     <string name="sync_current_folder_was_removed">Der Ordner %1$s existiert nicht mehr</string>
     <string name="foreign_files_move">Alle verschieben</string>
     <string name="foreign_files_move">Alle verschieben</string>
     <string name="foreign_files_success">Alle Dateien wurden verschoben</string>
     <string name="foreign_files_success">Alle Dateien wurden verschoben</string>
@@ -273,7 +273,7 @@
     <string name="confirmation_remove_folder_alert">Wollen Sie %1$s und deren Inhalte wirklich löschen?</string>
     <string name="confirmation_remove_folder_alert">Wollen Sie %1$s und deren Inhalte wirklich löschen?</string>
     <string name="confirmation_remove_local">Nur lokal</string>
     <string name="confirmation_remove_local">Nur lokal</string>
     <string name="remove_success_msg">Gelöscht</string>
     <string name="remove_success_msg">Gelöscht</string>
-    <string name="remove_fail_msg">Löschen fehlgeschlagen</string>
+    <string name="remove_fail_msg">Löschung fehlgeschlagen</string>
     <string name="rename_dialog_title">Geben Sie einen neuen Namen ein</string>
     <string name="rename_dialog_title">Geben Sie einen neuen Namen ein</string>
     <string name="rename_local_fail_msg">Die lokale Kopie konnte nicht umbenannt werden. Versuchen Sie es mit einem anderen Namen.</string>
     <string name="rename_local_fail_msg">Die lokale Kopie konnte nicht umbenannt werden. Versuchen Sie es mit einem anderen Namen.</string>
     <string name="rename_server_fail_msg">Die Umbenennung konnte nicht abgeschlossen werden.</string>
     <string name="rename_server_fail_msg">Die Umbenennung konnte nicht abgeschlossen werden.</string>
@@ -661,13 +661,13 @@
     <string name="push_notifications_old_login">Keine Push Benachrichtigungen aufgrund veralteter Benutzersitzung. Bitte erwägen Sie das erneute Hinzufügen Ihres Kontos.</string>
     <string name="push_notifications_old_login">Keine Push Benachrichtigungen aufgrund veralteter Benutzersitzung. Bitte erwägen Sie das erneute Hinzufügen Ihres Kontos.</string>
     <string name="push_notifications_temp_error">Push Benachrichtigungen aktuell nicht verfügbar.</string>
     <string name="push_notifications_temp_error">Push Benachrichtigungen aktuell nicht verfügbar.</string>
 
 
-    <string name="sync_in_progress">Keine Berechtigung vergeben, es wurde nichts importiert.</string>
+    <string name="sync_in_progress">Neueste Version der Datei wird geladen.</string>
     <string name="date_unknown">Unbekannt</string>
     <string name="date_unknown">Unbekannt</string>
 
 
-    <string name="resized_image_not_possible">Kein verkleinertes Bild vorhanden. Vollbild herunterladen?</string>
+    <string name="resized_image_not_possible">Kein verkleinertes Bild verfügbar. Vollbild herunterladen?</string>
     <string name="resized_images_download_full_image">Originalbild herunterladen?</string>
     <string name="resized_images_download_full_image">Originalbild herunterladen?</string>
 
 
-    <string name="store_short_desc">Die Nextcloud Android App erlaubt Ihnen den Zugriff auf alle Dateien in Ihrer Nextcloud </string>
+    <string name="store_short_desc">Die Nextcloud Android App erlaubt Ihnen den Zugriff auf alle Dateien in Ihrer Nextcloud.</string>
     <string name="store_full_desc">Die Open Source Nextcloud Android App erlaubt Ihnen Zugriff auf alle Dateien in Ihrer Nextcloud.\n\nEigenschaften:\n* Einfache, moderne Oberfläche\n* Laden Sie Ihre Dateien auf Ihren Nextcloud Server\n* Teilen Sie Ihre Dateien mit anderen\n* Wichtige Dateien und Verzeichnisse können aktuell gehalten werden\n* Suche über alle Ordner auf Ihrem Server\n* Automatisches Hochladen von Photos und Videos von Ihrem Gerät\n* Bleiben Sie auf dem Laufenden durch Benachrichtigungen\n* Mehrere Konten gleichzeitig\n* Geschützter Zugriff durch Fingerabdruck oder PIN\n* Integration mit DAVdroid für einfaches Konfigurieren von Kalender &amp; Kontakte Synchronisierung\n\nBitte melden Sie alle Probleme unter https://github.com/nextcloud/android/issues oder diskutieren Sie über die App auf https://help.nextcloud.com/c/clients/android\n\nWas ist die Nextcloud? Die Nextcloud ist ein privater Dateiaustausch &amp; -synchronisierungs Server. Nextcloud ist Open Source und kann auf einem eigenen Server installiert werden. So behalten Sie die Kontrolle über Ihre Fotos, Ihre Kalender und Kontakte, Ihre Dokumente und alle anderen Daten.\n\nSchauen Sie sich Nextcloud unter https://nextcloud.com an. </string>
     <string name="store_full_desc">Die Open Source Nextcloud Android App erlaubt Ihnen Zugriff auf alle Dateien in Ihrer Nextcloud.\n\nEigenschaften:\n* Einfache, moderne Oberfläche\n* Laden Sie Ihre Dateien auf Ihren Nextcloud Server\n* Teilen Sie Ihre Dateien mit anderen\n* Wichtige Dateien und Verzeichnisse können aktuell gehalten werden\n* Suche über alle Ordner auf Ihrem Server\n* Automatisches Hochladen von Photos und Videos von Ihrem Gerät\n* Bleiben Sie auf dem Laufenden durch Benachrichtigungen\n* Mehrere Konten gleichzeitig\n* Geschützter Zugriff durch Fingerabdruck oder PIN\n* Integration mit DAVdroid für einfaches Konfigurieren von Kalender &amp; Kontakte Synchronisierung\n\nBitte melden Sie alle Probleme unter https://github.com/nextcloud/android/issues oder diskutieren Sie über die App auf https://help.nextcloud.com/c/clients/android\n\nWas ist die Nextcloud? Die Nextcloud ist ein privater Dateiaustausch &amp; -synchronisierungs Server. Nextcloud ist Open Source und kann auf einem eigenen Server installiert werden. So behalten Sie die Kontrolle über Ihre Fotos, Ihre Kalender und Kontakte, Ihre Dokumente und alle anderen Daten.\n\nSchauen Sie sich Nextcloud unter https://nextcloud.com an. </string>
 
 
     <string name="drawer_current_account">Aktuelles Konto</string>
     <string name="drawer_current_account">Aktuelles Konto</string>

+ 0 - 1
src/main/res/values-de/strings.xml

@@ -669,7 +669,6 @@
     <string name="resized_image_not_possible">Kein verkleinertes Bild vorhanden. Vollbild herunterladen?</string>
     <string name="resized_image_not_possible">Kein verkleinertes Bild vorhanden. Vollbild herunterladen?</string>
     <string name="resized_images_download_full_image">Originalbild herunterladen?</string>
     <string name="resized_images_download_full_image">Originalbild herunterladen?</string>
 
 
-    <string name="store_short_desc">Die Nextcloud App erlaubt Dir Zugriff auf alle Dateien in Deiner Nextcloud </string>
     <string name="store_full_desc">Die Open Source Nextcloud Android App ermöglicht Dir Zugriff auf alle Dateien in Deiner Nextcloud.\n\nFunktionen:\n* Einfache, moderne Oberfläche, volles Theming entsprechend Deiner Servereinstellungen\n* Lade Deine Dateien auf Deinen Nextcloud Server\n* Teile Deine Dateien mit anderen\n* Wichtige Dateien und Verzeichnisse können aktuell gehalten werden\n* Suche über alle Ordner auf deinem Server\n* Auto Upload für Fotos und Videos die auf deinem Gerät aufgenommen wurden\n* Bleibe auf dem aktuellen Stand durch Benachrichtigungen\n* Multi-Konten Unterstützung\n* Gesicherter Zugriff auf deine Daten mittels Fingerabdruck oder PIN\n* Integration mit DAVdroid für eine einfache Kalender &amp; Kontakte Synchronisierung\n\nBitte berichte alle Probleme unter https://github.com/nextcloud/android/issues oder diskutiere über die App auf https://help.nextcloud.com/c/clients/android\n\nWas ist die Nextcloud? Die Nextcloud ist ein privater Dateiaustausch Server. Nextcloud ist Open Source und kann auf einem eigenen Server installiert werden. So behältst Du die Kontrolle über Deine Fotos, Deine Kalender und Kontakte, Deine Dokumente und alle anderen Daten. \n\nSieh Dir Nextcloud unter https://nextcloud.com an.</string>
     <string name="store_full_desc">Die Open Source Nextcloud Android App ermöglicht Dir Zugriff auf alle Dateien in Deiner Nextcloud.\n\nFunktionen:\n* Einfache, moderne Oberfläche, volles Theming entsprechend Deiner Servereinstellungen\n* Lade Deine Dateien auf Deinen Nextcloud Server\n* Teile Deine Dateien mit anderen\n* Wichtige Dateien und Verzeichnisse können aktuell gehalten werden\n* Suche über alle Ordner auf deinem Server\n* Auto Upload für Fotos und Videos die auf deinem Gerät aufgenommen wurden\n* Bleibe auf dem aktuellen Stand durch Benachrichtigungen\n* Multi-Konten Unterstützung\n* Gesicherter Zugriff auf deine Daten mittels Fingerabdruck oder PIN\n* Integration mit DAVdroid für eine einfache Kalender &amp; Kontakte Synchronisierung\n\nBitte berichte alle Probleme unter https://github.com/nextcloud/android/issues oder diskutiere über die App auf https://help.nextcloud.com/c/clients/android\n\nWas ist die Nextcloud? Die Nextcloud ist ein privater Dateiaustausch Server. Nextcloud ist Open Source und kann auf einem eigenen Server installiert werden. So behältst Du die Kontrolle über Deine Fotos, Deine Kalender und Kontakte, Deine Dokumente und alle anderen Daten. \n\nSieh Dir Nextcloud unter https://nextcloud.com an.</string>
 
 
     <string name="drawer_current_account">Aktuelles Konto</string>
     <string name="drawer_current_account">Aktuelles Konto</string>

+ 0 - 1
src/main/res/values-es-rCL/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rCO/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rCR/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rDO/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rEC/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rGT/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rHN/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 1 - 1
src/main/res/values-es-rMX/strings.xml

@@ -667,7 +667,7 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
+    <string name="store_short_desc">La aplicacion de Andorid para Nextcloud te permite acceder a todos los archivos en tu instancia de Nextcloud.</string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rNI/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rPA/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rPE/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

+ 0 - 1
src/main/res/values-es-rPR/strings.xml

@@ -666,7 +666,6 @@
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_image_not_possible">No hay una imagen a escala disponible. ¿Descargar la imagen completa? </string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
     <string name="resized_images_download_full_image">¿Descargar imagen completa?</string>
 
 
-    <string name="store_short_desc">La aplicación para Android de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
     <string name="store_full_desc">La aplicación de Nextcloud para Android con copyleft de software libre, te permite acceder a todos los archivos de tu Nextcloud.\n\nCaracterísticas:\n* Interfaz sencilla y moderna adecuada para el tema de tu servidor\n* Carga de archivos en tu servidor Nextcloud\n* Compartelos con otros\n* Mantén tus archivos y carpetas favoritos sincronizados\n* Cargas automáticas para fotos y videos tomados en tu dispositivo\n* Mantente actualizado con notificaciones\n* Soporte multi-cuentas\n* Asegura tu información con tu huella digital o PIN\n* Integración con DAVdroid para una configuración sencilla del calendario  &amp; sincronización de Contactos\n Por favor reporta todas las fallas en https://github.com/nextcloud/android/issues y comenta acerca de esta aplicación en https://help.nextcloud.com/c/clients/android\n\n¿No conoces Nextcloud? Nextcloud es un servidor privado de comunicación para compartir &amp; sincronizar archivos. Es software libre y puedes hospedarlo directamente o bien pagar por el servicio a un tercero. De esta manera tienes el control de tus fotos, tu calendario y datos de contactos, tus documentos y todo lo demás.\n\nVisítanos en https://nextcloud.com </string>
 
 
     <string name="drawer_current_account">Cuenta actual</string>
     <string name="drawer_current_account">Cuenta actual</string>

Alguns ficheiros não foram mostrados porque muitos ficheiros mudaram neste diff