mirror of
https://github.com/nextcloud/android.git
synced 2024-11-27 09:39:25 +03:00
Merge branch 'master' into NotificationActivity
This commit is contained in:
commit
38d6706ea6
151 changed files with 1470 additions and 390 deletions
|
@ -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
2
fastlane/Appfile
Normal 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
6
fastlane/Fastfile
Normal 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
11
fastlane/Screengrabfile
Normal 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
|
|
@ -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.
|
|
@ -1 +0,0 @@
|
|||
Die Nextcloud App erlaubt Dir Zugriff auf alle Dateien in Deiner Nextcloud
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
The Nextcloud Android app gives you access to all your files in your Nextcloud
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
The Nextcloud Android app gives you access to all your files in your Nextcloud
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
La app de Nextcloud te permite acceder a todos tus archivos en tu Nextcloud
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
L'application Android Nextcloud vous permet d'accéder à tous vos fichiers et con
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
Nextcloud Android appið gerir þér kleift að nálgast allar skrárnar þínar á Nextc
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
De Nextcloud-app voor Android geeft je toegang tot al je Nextcloud bestanden.
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
Aplikacja Nextcloud na Androida umożliwia Tobie na dostęp do wszystkich plików n
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
O aplicativo Android do Nextcloud permite acesso total aos arquivos do Nextcloud
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
Некстклауд Андроид апликација даје приступ свим вашим фајловима на Некстклауд се
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -1 +0,0 @@
|
|||
Nextcloud Android uygulaması Nextcloud üzerindeki tüm dosyalarınıza erişmenizi s
|
|
@ -1 +0,0 @@
|
|||
Nextcloud
|
2
lint.xml
2
lint.xml
|
@ -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">
|
||||
|
|
|
@ -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]
|
||||
|
|
40
scripts/screenshots/addMockDevice.sh
Executable file
40
scripts/screenshots/addMockDevice.sh
Executable 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'#\&#\\&#')
|
||||
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'#\&#\\&#')
|
||||
fi
|
||||
|
||||
|
||||
sed "s#{image}#$i#;s#{text}#$text#g" $device.svg > temp.svg
|
||||
|
||||
if [ $textID == "06_davdroid" ] ; then
|
||||
sed "s#display:none#display:visible#" -i temp.svg
|
||||
fi
|
||||
|
||||
inkscape temp.svg -e $i
|
||||
done
|
BIN
scripts/screenshots/phone.png
Normal file
BIN
scripts/screenshots/phone.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 627 KiB |
175
scripts/screenshots/phone.svg
Normal file
175
scripts/screenshots/phone.svg
Normal 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 |
175
scripts/screenshots/sevenInch.svg
Normal file
175
scripts/screenshots/sevenInch.svg
Normal 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 |
BIN
scripts/screenshots/tablet.png
Normal file
BIN
scripts/screenshots/tablet.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 765 KiB |
|
@ -0,0 +1,131 @@
|
|||
package com.owncloud.android.screenshots;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.support.test.espresso.Espresso;
|
||||
import android.support.test.espresso.action.ViewActions;
|
||||
import android.support.test.espresso.contrib.DrawerActions;
|
||||
import android.support.test.espresso.matcher.PreferenceMatchers;
|
||||
import android.support.test.rule.ActivityTestRule;
|
||||
|
||||
import com.owncloud.android.R;
|
||||
import com.owncloud.android.ui.activity.FileDisplayActivity;
|
||||
import com.owncloud.android.ui.activity.Preferences;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.ClassRule;
|
||||
import org.junit.Rule;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.junit.runners.JUnit4;
|
||||
|
||||
import tools.fastlane.screengrab.Screengrab;
|
||||
import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
|
||||
import tools.fastlane.screengrab.locale.LocaleTestRule;
|
||||
|
||||
import static android.support.test.espresso.Espresso.onData;
|
||||
import static android.support.test.espresso.Espresso.onView;
|
||||
import static android.support.test.espresso.action.ViewActions.click;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.withId;
|
||||
import static android.support.test.espresso.matcher.ViewMatchers.withText;
|
||||
import static org.hamcrest.Matchers.anything;
|
||||
import static org.hamcrest.core.AnyOf.anyOf;
|
||||
|
||||
@RunWith(JUnit4.class)
|
||||
public class ScreenshotsIT {
|
||||
@ClassRule
|
||||
public static final LocaleTestRule localeTestRule = new LocaleTestRule();
|
||||
|
||||
@Rule
|
||||
public ActivityTestRule<FileDisplayActivity> fileDisplayRule = new ActivityTestRule<>(FileDisplayActivity.class);
|
||||
|
||||
@Rule
|
||||
public ActivityTestRule<Preferences> preferencesRule = new ActivityTestRule<>(Preferences.class, true, false);
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeAll() {
|
||||
Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void gridViewScreenshot() throws InterruptedException {
|
||||
fileDisplayRule.launchActivity(new Intent());
|
||||
|
||||
Espresso.openContextualActionModeOverflowMenu();
|
||||
onView(anyOf(withText(R.string.action_switch_grid_view), withId(R.id.action_switch_view))).perform(click());
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
Screengrab.screenshot("01_gridView");
|
||||
|
||||
Espresso.openContextualActionModeOverflowMenu();
|
||||
onView(anyOf(withText(R.string.action_switch_list_view), withId(R.id.action_switch_view))).perform(click());
|
||||
|
||||
Assert.assertTrue(true); // if we reach this, everything is ok
|
||||
}
|
||||
|
||||
@Test
|
||||
public void listViewScreenshot() throws InterruptedException {
|
||||
fileDisplayRule.launchActivity(new Intent());
|
||||
|
||||
// go into work folder
|
||||
onData(anything()).inAdapterView(withId(R.id.list_root)).atPosition(0).perform(click());
|
||||
|
||||
Screengrab.screenshot("02_listView");
|
||||
|
||||
Assert.assertTrue(true); // if we reach this, everything is ok
|
||||
}
|
||||
|
||||
@Test
|
||||
public void drawerScreenshot() throws InterruptedException {
|
||||
fileDisplayRule.launchActivity(new Intent());
|
||||
|
||||
onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
|
||||
|
||||
Screengrab.screenshot("03_drawer");
|
||||
|
||||
onView(withId(R.id.drawer_layout)).perform(DrawerActions.close());
|
||||
|
||||
Assert.assertTrue(true); // if we reach this, everything is ok
|
||||
}
|
||||
|
||||
@Test
|
||||
public void multipleAccountsScreenshot() throws InterruptedException {
|
||||
fileDisplayRule.launchActivity(new Intent());
|
||||
|
||||
onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
|
||||
onView(withId(R.id.drawer_active_user)).perform(click());
|
||||
|
||||
Screengrab.screenshot("04_accounts");
|
||||
|
||||
onView(withId(R.id.drawer_layout)).perform(DrawerActions.close());
|
||||
|
||||
Assert.assertTrue(true); // if we reach this, everything is ok
|
||||
}
|
||||
|
||||
@Test
|
||||
public void autoUploadScreenshot() throws InterruptedException {
|
||||
fileDisplayRule.launchActivity(new Intent());
|
||||
|
||||
onView(withId(R.id.drawer_layout)).perform(DrawerActions.open());
|
||||
onView(anyOf(withText(R.string.drawer_synced_folders), withId(R.id.nav_synced_folders))).perform(click());
|
||||
|
||||
Screengrab.screenshot("05_autoUpload");
|
||||
|
||||
Assert.assertTrue(true); // if we reach this, everything is ok
|
||||
}
|
||||
|
||||
@Test
|
||||
public void davdroidScreenshot() throws InterruptedException {
|
||||
preferencesRule.launchActivity(new Intent());
|
||||
|
||||
onData(PreferenceMatchers.withTitle(R.string.prefs_category_more)).perform(ViewActions.scrollTo());
|
||||
|
||||
Thread.sleep(1000);
|
||||
|
||||
Screengrab.screenshot("06_davdroid");
|
||||
|
||||
Assert.assertTrue(true); // if we reach this, everything is ok
|
||||
}
|
||||
}
|
18
src/debug/AndroidManifest.xml
Normal file
18
src/debug/AndroidManifest.xml
Normal 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>
|
|
@ -0,0 +1,19 @@
|
|||
Die Open Source Nextcloud Android App ermöglicht Dir Zugriff auf alle Dateien in Deiner Nextcloud.
|
||||
|
||||
Funktionen:
|
||||
* Einfache, moderne Oberfläche, volles Theming entsprechend Deiner Servereinstellungen
|
||||
* Lade Deine Dateien auf Deinen Nextcloud Server
|
||||
* Teile Deine Dateien mit anderen
|
||||
* Wichtige Dateien und Verzeichnisse können aktuell gehalten werden
|
||||
* Suche über alle Ordner auf deinem Server
|
||||
* Auto Upload für Fotos und Videos die auf deinem Gerät aufgenommen wurden
|
||||
* Bleibe auf dem aktuellen Stand durch Benachrichtigungen
|
||||
* Multi-Konten Unterstützung
|
||||
* Gesicherter Zugriff auf deine Daten mittels Fingerabdruck oder PIN
|
||||
* Integration mit DAVdroid für eine einfache Kalender & Kontakte Synchronisierung
|
||||
|
||||
Bitte berichte alle Probleme unter https://github.com/nextcloud/android/issues oder diskutiere über die App auf https://help.nextcloud.com/c/clients/android
|
||||
|
||||
Was ist die Nextcloud? Die Nextcloud ist ein privater Dateiaustausch Server. Nextcloud ist Open Source und kann auf einem eigenen Server installiert werden. So behältst Du die Kontrolle über Deine Fotos, Deine Kalender und Kontakte, Deine Dokumente und alle anderen Daten.
|
||||
|
||||
Sieh Dir Nextcloud unter https://nextcloud.com an.
|
1
src/generic/fastlane/metadata/android/de-DE/title.txt
Normal file
1
src/generic/fastlane/metadata/android/de-DE/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
The Nextcloud Android app allows access to all files on your Nextcloud instance.
|
1
src/generic/fastlane/metadata/android/en-US/title.txt
Normal file
1
src/generic/fastlane/metadata/android/en-US/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -0,0 +1,19 @@
|
|||
La app copyleft de software libre Nextcloud para Android te permite acceder a todos tus archivos en tu Nextcloud.
|
||||
|
||||
Características
|
||||
*Interfaz sencilla y moderna, adaptada al tema de tu servidor
|
||||
* Sube tus archivos a tu servidor Nextcloud
|
||||
* Comparte tus archivos con otros
|
||||
* Mantén sincronizados tus archivos y carpetas favoritos
|
||||
* Busca en todas las carpetas del servidor
|
||||
* Subida automática de fotos y vídeos realizados con tu dispositivo
|
||||
* Mantente al tanto de todo mediante las notificaciones
|
||||
* Soporte de múltiples cuentas
|
||||
* Acceso seguro a tus datos con huella digital o PIN
|
||||
* Integración con DAVdroid para configurar fácilmente la sincronización de calendarios y contactos
|
||||
|
||||
Por favor, informa de todos los problemas en https://github.com/nextcloud/android/issues y discute la app en https://help.nextcloud.com/c/clients/android
|
||||
|
||||
¿Eres nuevo en Nextcloud? Nextcloud es un servidor privado para sincronizar, compartir y comunicarte. Es software libre y puedes alojarlo tú mismo o pagar a una compañía para que lo haga por ti. De esta forma, tienes el control de tus fotos, tus calendarios y los datos de contactos, tus documentos y todo lo demás.
|
||||
|
||||
Conoce Nextcloud en https://nextcloud.com
|
1
src/generic/fastlane/metadata/android/es-ES/title.txt
Normal file
1
src/generic/fastlane/metadata/android/es-ES/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
L'application Android Nextcloud permet d'accéder à tous les fichiers stockés sur
|
1
src/generic/fastlane/metadata/android/fr-FR/title.txt
Normal file
1
src/generic/fastlane/metadata/android/fr-FR/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -0,0 +1,19 @@
|
|||
L'applicazione libera per Android di Nextcloud ti consente di accedere ai file sul tuo Nextcloud.
|
||||
|
||||
Funzionalità:
|
||||
* Interfaccia semplice e moderna, che si adattaal tema del tuo server
|
||||
* Carica i tuoi file sul tuo server Nextcloud
|
||||
* Condividili con altri
|
||||
* Mantieni i tuoi file e le cartelle preferite sincronizzate
|
||||
* Ricerca attraverso tutte le cartelle sul tuo server
|
||||
* Caricamento automatico per le foto e i video acquisiti con il tuo dispositivo
|
||||
* Tieniti aggiornato con le notifiche
|
||||
* Supporto di più account
|
||||
* Proteggi l'accesso ai tuoi dati con impronta digitale o PIN
|
||||
* Integrazione con DAVdroid per una facile configurazione della sincronizzazione di calendari e contatti
|
||||
|
||||
Segnala tutti i problemi su https://github.com/nextcloud/android/issues e discuti questa applicazione su https://help.nextcloud.com/c/clients/android
|
||||
|
||||
Nuovo di Nextcloud? Nextcloud è un server privato di sincronizzazione e condivisione dei file e un server di comunicazione. È un software libero e puoi ospitarlo a casa tua o pagare una società che lo faccia per conto tuo. In questo modo, avrai il controllo delle tue foto, del tuo calendario e dei tuoi contatti, dei tuoi documenti e di qualsiasi altra cosa.
|
||||
|
||||
Dai un'occhiata a Nextcloud su https://nextcloud.com
|
|
@ -1 +1 @@
|
|||
L'applicazione per Android di Nextcloud ti consente di accedere ai file sul tuo
|
||||
L'applicazione per Android di Nextcloud ti consente di accedere ai file sulla tu
|
1
src/generic/fastlane/metadata/android/it-IT/title.txt
Normal file
1
src/generic/fastlane/metadata/android/it-IT/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -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 사이트를 방문하십시오
|
|
@ -0,0 +1 @@
|
|||
Nextcloud Android 앱으로 내 Nextcloud에 있는 모든 파일을 사용하십시오.
|
1
src/generic/fastlane/metadata/android/ko-KR/title.txt
Normal file
1
src/generic/fastlane/metadata/android/ko-KR/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -0,0 +1,19 @@
|
|||
De Open Source Nextcloud Android app geeft je toegang tot al je bestanden op Nextcloud servers.
|
||||
|
||||
Functies:
|
||||
* Simpel & modern uiterlijk, helemaal in dezelfde stijl als jouw server
|
||||
* Upload bestanden naar je Nextcloud server
|
||||
* Deel bestanden met anderen
|
||||
* Hou je favoriete bestanden en mappen gesynchroniseerd
|
||||
* Zoek in al je bestanden op de server
|
||||
* Automatisch uploaden voor al je foto's en video's
|
||||
* Blijf op de hoogte met notificaties
|
||||
* Ondersteuning voor meerdere accounts en servers
|
||||
* Beveilig toegang tot je gegevens met vingerafdruk of pincode
|
||||
* Integratie met DAVdroid voor makkelijk synchroniseren van je kalender & contacten
|
||||
|
||||
Meld alsjeblieft alle bugs en problemen op https://github.com/nextcloud/android/issues en doe je zegje over deze app in ons forum https://help.nextcloud.com/c/clients/android
|
||||
|
||||
Nieuw bij Nextcloud? Nextcloud is je persoonlijke bestanden- en communicatieserver. Het is volledig open source en je kunt het zelf hosten of een bedrijf betalen om dat voor je te doen. Zo heb je volledige controle over je foto's, kalender, adresboek, document en al het andere.
|
||||
|
||||
Check Nextcloud op https://nextcloud.com
|
1
src/generic/fastlane/metadata/android/nl-NL/title.txt
Normal file
1
src/generic/fastlane/metadata/android/nl-NL/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -0,0 +1,14 @@
|
|||
Oparta na Open Source aplikacja Nexcloud Android umożliwia dostęp do wszystkich twoich plików w Nextcloud.
|
||||
|
||||
Funkcje:
|
||||
* Prosty i nowoczesny wygląd
|
||||
* Wysyłaj swoje pliki na swój serwer Nextcloud* Dawaj innym dostęp do twoich plików
|
||||
* Synchronizuj wybrane pliki i katalogi z serwerem
|
||||
* Automatycznie wysyłaj zdjęcia i filmy robione urządzeniem
|
||||
* Wsparcie dla wielu kont
|
||||
|
||||
Zgłaszaj błędy na https://github.com/nextcloud/android/issues i dyskutuj na temat tej aplikacji na https://help.nextcloud.com/c/clients/android
|
||||
|
||||
Nie znasz jeszcze Nextcloud? Nextcloud jest prywatnym serwerem synchronizacji & współdzielenia plików oraz komunikacji. Jego źródła są całkowicie otwarte, więc możesz korzystać z niego na własnym serwerze albo możesz zapłacić za to firmie trzeciej. W ten sposób kontrolujesz swoje zdjęcia, kalendarz, dane kontaktowe, twoje dokumenty i inne dane.
|
||||
|
||||
Zobacz Nextcloud na https://nextcloud.com
|
1
src/generic/fastlane/metadata/android/pl-PL/title.txt
Normal file
1
src/generic/fastlane/metadata/android/pl-PL/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -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
|
|
@ -0,0 +1 @@
|
|||
O aplicativo Nextcloud para Android permite acessar seus arquivos num servidor N
|
1
src/generic/fastlane/metadata/android/pt-BR/title.txt
Normal file
1
src/generic/fastlane/metadata/android/pt-BR/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -0,0 +1,18 @@
|
|||
Некстклауд андроид апликација отвореног кода омогућава приступ свим фајловима на вашем Некстклауд серверу.
|
||||
|
||||
Особине:
|
||||
* Лако и модерно сучеље, потпуно усклађено са темом са сервера
|
||||
* Отпремање фајлова на Некстклауд сервер
|
||||
* Дељење фајлова са другима
|
||||
* Синхронизација омиљених фајлова и фасцикли
|
||||
* Претрага кроз све фасцикле на серверу
|
||||
* Аутоматско отпремање слика и видео записа са уређаја
|
||||
* Обавештења са сервера
|
||||
* Подршка за више налога
|
||||
* Безбедан приступ свим подацима преко отиска прста или пина
|
||||
* Интеграција са ДАВдроидом за брзо подешавање синхронизације календара & контаката
|
||||
|
||||
Све проблеме можете да пријавите на https://github.com/nextcloud/android/issues а о апликацији дискутујте на https://help.nextcloud.com/c/clients/android
|
||||
Нови сте на Некстклауду? Некстклауд је лични сервер за синхронизацију, дељење фајлова & комуникацију. Потпуно је отвореног кода и можете да га сами хостовати или платити компанији да која то већ ради. На овај начин, сами контролишете своје слике, календаре, контакате, документа и све остало.
|
||||
|
||||
Погледајте Некстклауд на https://nextcloud.com
|
|
@ -0,0 +1 @@
|
|||
Некстклауд Андроид апликација омогућава приступ свим фајловима на Вашем Нексткла
|
1
src/generic/fastlane/metadata/android/sr-SR/title.txt
Normal file
1
src/generic/fastlane/metadata/android/sr-SR/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -0,0 +1,13 @@
|
|||
Copyleft Nextcloud Android uygulaması, Nextcloud üzerindeki tüm dosyalarınıza erişmenizi sağlar.
|
||||
|
||||
Özellikleri:\* Kolay kullanılan modern arayüz
|
||||
* Dosyalarınızı Nextcloud sunucunuza kolayca yükleyebilme
|
||||
* Dosyalarınızı başkalarıyla paylaşabilme
|
||||
* Sık kullandığınız dosya ve klasörleri eşitleme
|
||||
* Çektiğiniz fotoğraf ve görüntüleri anında yükleme
|
||||
* Birden çok hesap desteği
|
||||
Kullanımda karşılaşabileceğiniz hataları https://github.com/nextcloud/android/issues adresinden bildirebilir, uygulama hakkındaki konuları https://help.nextcloud.com adresinde tartışabilirsiniz ;-)
|
||||
|
||||
Nextcloud ile yeni mi tanıştınız? Nextcloud özel bir veri depolama ve paylaşma ağıdır. Tamamen açık kaynak kodludur. Dosyalarınızı kendi sunucunuzda saklayabileceğiniz gibi ücretli hizmet olarak da satın alabilirsiniz. Böylece fotoğraflarınız, dosyalarınız, takviminiz, belgeleriniz, kişileriniz ve diğer tüm özel bilgileriniz sizin kontrolünüzde olur.
|
||||
|
||||
Ayrıntılı bilgi almak için sitemize bakabilirsiniz: https://nextcloud.com
|
1
src/generic/fastlane/metadata/android/tr-TR/title.txt
Normal file
1
src/generic/fastlane/metadata/android/tr-TR/title.txt
Normal file
|
@ -0,0 +1 @@
|
|||
Nextcloud
|
|
@ -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();
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -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 & 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</string>
|
||||
|
||||
<string name="drawer_current_account">Current account</string>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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">Sí</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: / \\ < > : \" | ? *</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… 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ó …</string>
|
||||
<string name="file_migration_checking_destination">Comprovant la destinació…</string>
|
||||
<string name="file_migration_saving_accounts_configuration">Desant la configuració dels comptes …</string>
|
||||
<string name="file_migration_waiting_for_unfinished_sync">Esperant a sincronitzacions no acabades…</string>
|
||||
<string name="file_migration_migrating">Movent dades…</string>
|
||||
<string name="file_migration_updating_index">Actualitzant l\'índex…</string>
|
||||
<string name="file_migration_cleaning">Netejant…</string>
|
||||
<string name="file_migration_restoring_accounts_configuration">Restaurant la configuració dels comptes …</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…</string>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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 & 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 & -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>
|
||||
|
|
|
@ -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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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>
|
||||
|
|
|
@ -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 & 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 & 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
Loading…
Reference in a new issue