Merge branch 'master' into NotificationActivity

This commit is contained in:
Tobias Kaminsky 2018-01-05 10:58:34 +01:00 committed by GitHub
commit 38d6706ea6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
151 changed files with 1470 additions and 390 deletions

View file

@ -107,8 +107,8 @@ android {
versionDev {
applicationId "com.nextcloud.android.beta"
dimension "default"
versionCode 20171230
versionName "20171230"
versionCode 20180105
versionName "20180105"
}
}
@ -231,11 +231,14 @@ dependencies {
// Espresso core
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
//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
//androidTestImplementation "com.android.support:support-annotations:${supportLibraryVersion}"
implementation 'org.jetbrains:annotations:15.0'
androidTestCompile 'tools.fastlane:screengrab:1.0.0'
}
configurations.all {

2
fastlane/Appfile Normal file
View file

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

6
fastlane/Fastfile Normal file
View file

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

11
fastlane/Screengrabfile Normal file
View file

@ -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

View file

@ -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.

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -1 +0,0 @@
Nextcloud

View file

@ -7,6 +7,8 @@
<issue id="UnusedResources">
<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 id="MissingQuantity">

View file

@ -5,14 +5,14 @@
# copied on 2017/11/06 from https://github.com/grote/Transportr/blob/master/fastlane/generate_metadata.py
# adapted by Tobias Kaminsky
import codecs
import os
import shutil
import codecs
from xml.etree import ElementTree
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'
LANG_MAP = {
'values': 'en-US',
@ -79,15 +79,24 @@ def main():
e = ElementTree.parse(strings_file).getroot()
short_desc = e.find('.//string[@name="store_short_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):
directory_path = os.path.join(PATH, METADATA_PATH, directory)
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)
if not os.path.exists(directory_path):
os.makedirs(directory_path)
if filename == 'short_description.txt':
@ -103,7 +112,7 @@ def save_file(text, directory, filename):
def clean_text(text, limit=0):
text = text.replace('\\\'', '\'')
text = text.replace('\\\'', '\'').replace('\\n', '\n')
if limit != 0 and len(text) > limit:
print("Warning: Short Description longer than 80 characters, truncating...")
text = text[:limit]

View file

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 KiB

View file

@ -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>

After

Width:  |  Height:  |  Size: 9.1 KiB

View file

@ -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>

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 KiB

View file

@ -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
}
}

View file

@ -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>

View file

@ -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.

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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

View file

@ -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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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 사이트를 방문하십시오

View file

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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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

View file

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

View file

@ -0,0 +1 @@
Nextcloud

View file

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

View file

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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -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

View file

@ -0,0 +1 @@
Nextcloud

View file

@ -1,19 +1,19 @@
/**
/*
* ownCloud Android client application
*
* @author masensio
* @author David A. Velasco
* Copyright (C) 2015 ownCloud Inc.
* <p>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2,
* as published by the Free Software Foundation.
* <p>
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
* <p>
*
* You should have received a copy of the GNU General Public License
* 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);
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<>();
List<SyncedFolder> syncedFolders = syncedFolderProvider.getSyncedFolders();

View file

@ -29,7 +29,6 @@ import android.net.Uri;
import android.provider.MediaStore;
import android.support.design.widget.Snackbar;
import android.util.Log;
import android.view.View;
import com.owncloud.android.MainApp;
import com.owncloud.android.R;
@ -71,27 +70,14 @@ public class MediaProvider {
// check permissions
checkPermissions(activity);
// query media/image folders
Cursor cursorFolders;
Cursor cursorFolders = null;
if (activity != null && PermissionUtil.checkSelfPermission(activity.getApplicationContext(),
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<>();
String dataPath = MainApp.getStoragePath() + File.separator + MainApp.getDataFolder();
@ -172,12 +158,7 @@ public class MediaProvider {
// Show explanation to the user and then request permission
Snackbar snackbar = Snackbar.make(activity.findViewById(R.id.ListLayout),
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);
@ -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<>();
String dataPath = MainApp.getStoragePath() + File.separator + MainApp.getDataFolder();
if (cursorFolders != null) {
String folderName;
String fileSortOrder = MediaStore.Video.Media.DATE_TAKEN + " DESC LIMIT " + itemLimit;
Cursor cursorImages;
Cursor cursorVideos;
while (cursorFolders.moveToNext()) {
String folderId = cursorFolders.getString(cursorFolders.getColumnIndex(MediaStore.Video.Media
@ -211,8 +202,8 @@ public class MediaProvider {
mediaFolder.folderName = folderName;
mediaFolder.filePaths = new ArrayList<>();
// query images
cursorImages = contentResolver.query(
// query videos
cursorVideos = contentResolver.query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
FILE_PROJECTION,
MediaStore.Video.Media.BUCKET_ID + "=" + folderId,
@ -220,10 +211,10 @@ public class MediaProvider {
fileSortOrder);
Log.d(TAG, "Reading videos for " + mediaFolder.folderName);
if (cursorImages != null) {
if (cursorVideos != null) {
String filePath;
while (cursorImages.moveToNext()) {
filePath = cursorImages.getString(cursorImages.getColumnIndexOrThrow(
while (cursorVideos.moveToNext()) {
filePath = cursorVideos.getString(cursorVideos.getColumnIndexOrThrow(
MediaStore.MediaColumns.DATA));
if (filePath != null) {
@ -231,7 +222,7 @@ public class MediaProvider {
mediaFolder.absolutePath = filePath.substring(0, filePath.lastIndexOf("/"));
}
}
cursorImages.close();
cursorVideos.close();
// only do further work if folder is not within the Nextcloud app itself
if (mediaFolder.absolutePath != null && !mediaFolder.absolutePath.startsWith(dataPath)) {

View file

@ -1,4 +1,4 @@
/**
/*
* ownCloud Android client application
*
* @author Bartek Przybylski
@ -30,8 +30,6 @@ import android.app.Activity;
import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources.NotFoundException;
@ -105,6 +103,7 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.HashMap;
import java.util.LinkedList;
@ -244,34 +243,26 @@ public class ReceiveExternalFilesActivity extends FileActivity
}
public static class DialogNoAccount extends DialogFragment {
@NonNull
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new Builder(getActivity());
builder.setIcon(R.drawable.ic_warning);
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.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();
}
}
@ -294,14 +285,11 @@ public class ReceiveExternalFilesActivity extends FileActivity
mAccountListAdapter = new AccountListAdapter(parent, getAccountListItems(parent), mTintedCheck);
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);
return builder.create();
@ -391,7 +379,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
selectPos = PreferenceManager.getUploadUrlFileExtensionUrlSelectedPos(getActivity());
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 texts[] = extraText.split("\n");
mText.add(internetShortcutUrlText(texts[2]));
@ -413,21 +401,23 @@ public class ReceiveExternalFilesActivity extends FileActivity
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);
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);
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);
spinner.setVisibility(View.GONE);
}
mSpinner = 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;
}
@ -455,31 +445,27 @@ public class ReceiveExternalFilesActivity extends FileActivity
Builder builder = new Builder(getActivity());
builder.setView(view);
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("tmp.tmp", mText.get(selectPos));
if (file == null) {
getActivity().finish();
}
String tmpname = file.getAbsolutePath();
File file = createTempFile(mText.get(selectPos));
((ReceiveExternalFilesActivity)getActivity()).uploadFile(tmpname, filename);
}
});
builder.setNegativeButton(R.string.common_cancel, new OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
if (file == null) {
getActivity().finish();
} else {
String tmpName = file.getAbsolutePath();
((ReceiveExternalFilesActivity) getActivity()).uploadFile(tmpName, filename);
}
});
builder.setNegativeButton(R.string.common_cancel, (dialog, id) -> dialog.cancel());
return builder.create();
}
@ -592,8 +578,8 @@ public class ReceiveExternalFilesActivity extends FileActivity
}
@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;
try {
fw = new FileWriter(file);
@ -630,17 +616,16 @@ public class ReceiveExternalFilesActivity extends FileActivity
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// click on folder in the list
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;
}
// filter on dirtype
Vector<OCFile> files = new Vector<>();
for (OCFile f : tmpfiles) {
files.add(f);
}
files.addAll(tmpFiles);
if (files.size() < position) {
throw new IndexOutOfBoundsException("Incorrect item selected");
}
@ -663,7 +648,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
mUploadPath += p + OCFile.PATH_SEPARATOR;
}
if (mUploadFromTmpFile){
if (mUploadFromTmpFile) {
DialogInputUploadFilename dialog = DialogInputUploadFilename.newInstance(mSubjectText, mExtraText);
dialog.show(getSupportFragmentManager(), null);
} else {
@ -719,19 +704,21 @@ public class ReceiveExternalFilesActivity extends FileActivity
ActionBar actionBar = getSupportActionBar();
setupActionBarSubtitle();
ListView mListView = (ListView) findViewById(android.R.id.list);
ListView mListView = findViewById(android.R.id.list);
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);
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);
@ -742,16 +729,12 @@ public class ReceiveExternalFilesActivity extends FileActivity
Vector<OCFile> files = getStorageManager().getFolderContent(mFile, false);
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 {
mEmptyListContainer.setVisibility(View.GONE);
sortFileList(files);
files = sortFileList(files);
List<HashMap<String, Object>> data = new LinkedList<>();
for (OCFile f : files) {
@ -769,7 +752,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
mListView.setAdapter(sa);
}
Button btnChooseFolder = (Button) findViewById(R.id.uploader_choose_folder);
Button btnChooseFolder = findViewById(R.id.uploader_choose_folder);
btnChooseFolder.setOnClickListener(this);
btnChooseFolder.getBackground().setColorFilter(ThemeUtils.primaryColor(getAccount()),
PorterDuff.Mode.SRC_ATOP);
@ -783,7 +766,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
ThemeUtils.colorToolbarProgressBar(this, ThemeUtils.primaryColor(getAccount()));
Button btnNewFolder = (Button) findViewById(R.id.uploader_cancel);
Button btnNewFolder = findViewById(R.id.uploader_cancel);
btnNewFolder.setOnClickListener(this);
mListView.setOnItemClickListener(this);
@ -791,33 +774,27 @@ public class ReceiveExternalFilesActivity extends FileActivity
}
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(),
PorterDuff.Mode.SRC_IN);
}
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() {
@DrawableRes final int icon) {
new Handler(Looper.getMainLooper()).post(() -> {
if (mEmptyListContainer != null && mEmptyListMessage != null) {
mEmptyListHeadline.setText(headline);
mEmptyListMessage.setText(message);
if (mEmptyListContainer != null && mEmptyListMessage != null) {
mEmptyListHeadline.setText(headline);
mEmptyListMessage.setText(message);
mEmptyListIcon.setImageDrawable(ThemeUtils.tintDrawable(icon, ThemeUtils.primaryColor()));
if (tintIcon) {
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;
// perform folder synchronization
RemoteOperation synchFolderOp = new RefreshFolderOperation( folder,
RemoteOperation syncFolderOp = new RefreshFolderOperation(folder,
currentSyncTime,
false,
false,
@ -842,7 +819,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
getAccount(),
getApplicationContext()
);
synchFolderOp.execute(getAccount(), this, null, null);
syncFolderOp.execute(getAccount(), this, null, null);
}
private Vector<OCFile> sortFileList(Vector<OCFile> files) {
@ -863,10 +840,11 @@ public class ReceiveExternalFilesActivity extends FileActivity
private void prepareStreamsToUpload() {
Intent intent = getIntent();
if (intent.getAction().equals(Intent.ACTION_SEND)) {
if (Intent.ACTION_SEND.equals(intent.getAction())) {
mStreamsToUpload = new ArrayList<>();
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);
}
@ -877,7 +855,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
}
private void saveTextsFromIntent(Intent intent) {
if (!intent.getType().equals("text/plain")) {
if (!"text/plain".equals(intent.getType())) {
return;
}
mUploadFromTmpFile = true;
@ -897,12 +875,12 @@ public class ReceiveExternalFilesActivity extends FileActivity
mUploadFromTmpFile);
}
public void uploadFile(String tmpname, String filename) {
public void uploadFile(String tmpName, String filename) {
FileUploader.UploadRequester requester = new FileUploader.UploadRequester();
requester.uploadNewFile(
getBaseContext(),
getAccount(),
tmpname,
tmpName,
mFile.getRemotePath() + filename,
FileUploader.LOCAL_BEHAVIOUR_COPY,
null,
@ -1010,9 +988,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
} else {
String[] dir_names = lastPath.split("/");
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
while (!getStorageManager().fileExists(generatePath(mParents)) && mParents.size() > 1) {
@ -1092,9 +1068,8 @@ public class ReceiveExternalFilesActivity extends FileActivity
String event = intent.getAction();
Log_OC.d(TAG, "Received broadcast " + event);
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));
boolean sameAccount = (getAccount() != null &&
accountName.equals(getAccount().name) && getStorageManager() != null);
@ -1125,7 +1100,7 @@ public class ReceiveExternalFilesActivity extends FileActivity
currentFile = currentDir;
}
if (currentDir.getRemotePath().equals(synchFolderRemotePath)) {
if (currentDir.getRemotePath().equals(syncFolderRemotePath)) {
populateDirectoryList();
}
mFile = currentFile;
@ -1137,17 +1112,17 @@ public class ReceiveExternalFilesActivity extends FileActivity
if (RefreshFolderOperation.EVENT_SINGLE_FOLDER_CONTENTS_SYNCED.
equals(event) &&
/// 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)) {
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);
}
}
}

View file

@ -114,11 +114,10 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
// setup toolbar
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));
mCustomFolderRelativeLayout = (RelativeLayout) findViewById(R.id.custom_folder_toolbar);
mCustomFolderRelativeLayout = findViewById(R.id.custom_folder_toolbar);
SharedPreferences appPrefs =
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.
*/
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);
boolean lightVersion = getResources().getBoolean(R.bool.syncedFolder_light);
@ -187,7 +186,7 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
mRecyclerView.setLayoutManager(lm);
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)) {
bottomNavigationView.setVisibility(View.VISIBLE);
@ -209,13 +208,14 @@ public class SyncedFoldersActivity extends FileActivity implements SyncedFolderA
setListShown(false);
final List<MediaFolder> mediaFolders = MediaProvider.getImageFolders(getContentResolver(),
perFolderMediaItemLimit, SyncedFoldersActivity.this);
mediaFolders.addAll(MediaProvider.getVideoFolders(getContentResolver(), perFolderMediaItemLimit));
mediaFolders.addAll(MediaProvider.getVideoFolders(getContentResolver(), perFolderMediaItemLimit,
SyncedFoldersActivity.this));
List<SyncedFolder> syncedFolderArrayList = mSyncedFolderProvider.getSyncedFolders();
List<SyncedFolder> currentAccountSyncedFoldersList = new ArrayList<>();
Account currentAccount = AccountUtils.getCurrentOwnCloudAccount(SyncedFoldersActivity.this);
for (SyncedFolder syncedFolder : syncedFolderArrayList) {
if (syncedFolder.getAccount().equals(currentAccount.name)) {
if (currentAccount != null && syncedFolder.getAccount().equals(currentAccount.name)) {
currentAccountSyncedFoldersList.add(syncedFolder);
}
}

View file

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

View file

@ -667,7 +667,6 @@
<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="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="drawer_current_account">Current account</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -118,6 +118,7 @@
<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="list_layout">Disposició llistada</string>
<string name="action_send_share">Envia/Comparteix</string>
<string name="common_yes"></string>
<string name="common_no">No</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_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_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>
@ -256,8 +261,15 @@
<string name="unset_favorite_real">Desfés el favorit</string>
<string name="favorite_switch">fora de línia</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="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_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="create_dir_fail_msg">No s\'ha pogut crear la carpeta</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_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_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>
@ -301,6 +314,7 @@
<string name="placeholder_sentence">Això és un text variable</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_media_time">12:23:45</string>
@ -317,10 +331,15 @@
<string name="preview_sorry">Ho sento</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_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="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_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_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>
@ -334,29 +353,56 @@
<string name="copy_link">Copia l\'enllaç</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_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_delete">per eliminar 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="update_link_forbidden_permissions">per actualitzar aquesta compartició</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="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_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_updating_index">Actualitzant l\'índex&#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_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_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="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_mail_subject">%1$s registres de la aplicació d\'Android.</string>
<string name="log_progress_dialog_text">Carregant dades&#8230;</string>

View file

@ -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_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_middle_account">Prostřední účet</string>
<string name="drawer_end_account">Poslední účet</string>

View file

@ -146,7 +146,7 @@
<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_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_group_current_uploads">Aktuell</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="other">%1$dDateien im %2$s-Verzeichnis konnte nicht kopiert werden nach </item>
</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="foreign_files_move">Alle verschieben</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_local">Nur lokal</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_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>
@ -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_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="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="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="drawer_current_account">Aktuelles Konto</string>

View file

@ -669,7 +669,6 @@
<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="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="drawer_current_account">Aktuelles Konto</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

View file

@ -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_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="drawer_current_account">Cuenta actual</string>

Some files were not shown because too many files have changed in this diff Show more