diff --git a/.gitignore b/.gitignore
index 9b9bd8e396..8346dbfca3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -10,6 +10,8 @@
# generated files
bin/
+build/
+*.iml
gen/
target/
@@ -30,5 +32,11 @@ oc_framework/proguard-project.txt
oc_framework-test-project/proguard-project.txt
tests/proguard-project.txt
-# Should not be commited inside this repo:
-actionbarsherlock/
\ No newline at end of file
+# Android Studio and Gradle specific entries
+.gradle
+.idea
+*.iml
+build
+
+# Actionbarsherlock is now ignored since scripts takes care of init the sub-modules.
+actionbarsherlock
\ No newline at end of file
diff --git a/.gitmodules b/.gitmodules
index f0ca872146..fa52fcd676 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,6 +1,5 @@
-[submodule "actionbarsherlock"]
- path = actionbarsherlock
- url = git://github.com/JakeWharton/ActionBarSherlock.git
+
[submodule "owncloud-android-library"]
path = owncloud-android-library
url = git://github.com/owncloud/android-library.git
+ branch = develop
diff --git a/.travis.yml b/.travis.yml
index 50b73d1b98..d7e46cbcc2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,22 +1,14 @@
language: android
android:
components:
+ - platform-tools
+ - tools
- build-tools-20.0.0
- android-19
- - android-17
- - android-14
- - extra-android-support
- licenses:
- - 'android-sdk-license-5be876d5'
- - 'android-sdk-license-598b93a6'
-
-jdk: oraclejdk7
-
before_install:
- rm pom.xml
- - ./setup_env.sh
-
script:
+ - ./setup_env.sh ant
- ant clean
- ant debug
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a5990afd45..fd92d3d686 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -18,8 +18,8 @@
along with this program. If not, see .
-->
+ android:versionCode="10600200"
+ android:versionName="1.6.2" xmlns:android="http://schemas.android.com/apk/res/android">
@@ -191,7 +191,11 @@
android:icon="@drawable/copy_link"/>
+
+
diff --git a/README.md b/README.md
index 45cb4be9a1..dd75d3f27f 100644
--- a/README.md
+++ b/README.md
@@ -5,4 +5,4 @@ The app performs file synchronization with an ownCloud server. Other ownCloud fe
Make sure you read [SETUP.md][1] when you start working on this project.
[0]: https://github.com/owncloud/core
-[1]: https://raw.github.com/owncloud/android/master/SETUP.md
\ No newline at end of file
+[1]: https://github.com/owncloud/android/blob/master/SETUP.md
diff --git a/SETUP.md b/SETUP.md
index 39539038e9..a9e2a93b02 100644
--- a/SETUP.md
+++ b/SETUP.md
@@ -1,13 +1,11 @@
-
+
If you want to start help developing ownCloud please follow the [contribution guidelines][0] and observe these instructions.
If you have any problems, start again with 1) and work your way down. If something still does not work as described here, please open a new issue describing exactly what you did, what happened, and what should have happened.
-
-### 1) Fork and download android/develop repository:
-NOTE: Android SDK with platforms 8, 14 and 19 (and maybe others) need to be installed.
- You must have the Android SDK 'tools/', and 'platforms-tools/' folders in your environment path variable.
- "git" need to be installed and in your environment path variable.
+### 1. Fork and download android/develop repository:
+
+NOTE: You must have git in your environment path variable to perform the next operations.
* Navigate to https://github.com/owncloud/android, click fork.
* Clone your new repo: "git clone git@github.com:YOURGITHUBNAME/android.git"
@@ -16,23 +14,28 @@ NOTE: Android SDK with platforms 8, 14 and 19 (and maybe others) need to be inst
* Pull changes from your develop branch: "git pull origin develop"
* Make official ownCloud repo known as upstream: "git remote add upstream git@github.com:owncloud/android.git"
* Make sure to get the latest changes from official android/develop branch: "git pull upstream develop"
-* Complete the setup of project properties and resolve pending dependencies running "setup_env.bat" or "./setup_env.sh" .
-At this point you can continue using different tools to build the project. Sections 2a), 2b), and 2c) describe some of the existing alternatives.
+At this point you can continue using different tools to build the project. Section 2, 3, 4, 5 and 6 describe some of the existing alternatives.
+
+### 2. Building with Ant:
-### 2a) Building with Ant:
-
NOTE: You must have the Android SDK 'tools/', and 'platforms-tools/' folders in your environment path variable.
-* Run "ant clean" .
+* Resolve necessary dependencies running:
+ - Windows: "setup_env.bat ant"
+ - Mac OS/Linux: "./setup_env.sh ant"
+* Run "ant clean".
* Run "ant debug" to generate a debuggable version of the ownCloud app.
-### 2b) Building with console/maven:
+### 3. Building with console/maven:
NOTE: You must have mvn (version >= 3.1.1) in your environment path. Current Android 'platforms-tools' need to be installed.
-Download/install Android plugin for Maven, install owncloud-android-library, then build ownCloud with mvn:
+Download/install Android plugin for Maven, then build ownCloud with mvn:
+* Resolve necessary dependencies running:
+ - Windows: "setup_env.bat maven"
+ - Mac OS/Linux: "./setup_env.sh maven"
* cd ..
* git clone https://github.com/mosabua/maven-android-sdk-deployer.git
* cd maven-android-sdk-deployer
@@ -41,43 +44,65 @@ Download/install Android plugin for Maven, install owncloud-android-library, the
* mvn install
* cd ..
-Now you can create ownCloud APK using "mvn package"
+Now you can create ownCloud APK using "mvn package" and find it as ownCloud.apk under the target
-### 2c) Building with Eclipse:
+### 4. Building with Gradle:
+
+* Complete the setup of project properties running:
+ - Windows: "setup_env.bat gradle"
+ - Mac OS/Linux: "./setup_env.sh gradle"
+* Open a terminal and go to the "android" directory that contains the repository.
+* Run the 'clean' and 'build' tasks using the Gradle wrapper provided:
+ - Windows: gradlew.bat clean build
+ - Mac OS/Linux: ./gradlew clean build
+* You can find the generated apk file in android/build/outputs/apk
+
+### 5. Building with Eclipse:
NOTE: You must have the Android SDK 'tools/', and 'platforms-tools/' folders in your environment path variable.
-* Complete the setup of project properties and resolve pending dependencies running "setup_env.bat" or "./setup_env.sh" .
-* Open Eclipse and create new "Android Project from Existing Code". Choose android/actionbarsherlock/library as root.
+* Resolve necessary dependencies running:
+ - Windows: "setup_env.bat ant"
+ - Mac OS/Linux: "./setup_env.sh ant"
+ * Open Eclipse and create new "Android Project from Existing Code". Choose android/actionbarsherlock/library as root.
* Clean project and compile.
-* If any error appear, check the project properties; in the 'Android' section, API Level should be greater or equal than 14.
-* If "error loading libz.so.1" appears, try "sudo apt-get install lib32z1"
+* If any error appears, check the project properties; in the 'Android' section, API Level should be greater or equal than 14.
* Make sure android/actionbarsherlock/library/bin/library.jar was created.
-* Create a new "Android Project from Existing Code". Choose android/owncloud-android-library as root. (test and sample clients are not required.)
+* Create a new "Android Project from Existing Code". Choose android/owncloud-android-library as root.
* Clean project and compile.
-* If any error appear, check the project properties; in the 'Android' section, API Level should be 19 or greater.
-* Make sure 'android/owncloud-android-library/bin/owncloud android library.jar' was created.
+* If any error appears, check the project properties; in the 'Android' section, API Level should be 19 or greater.
+* Make sure android/owncloud-android-library/bin/classes.jar was created.
* Import ownCloud Android project.
* Clean project and compile.
* If any error appears, check the project properties of owncloud-android project; in the 'Android' section:
- - API Level should be 19 or greater.
- - Two library projects should appear referred in the bottom square: actionbarsherlock/library and owncloud-android-library. Add them if needed.
+ - API Level should be 19 or greater.
+ - Two library projects should appear referred in the bottom square: actionbarsherlock/library and owncloud-android-library. Add them if needed.
* After those actions you should be good to go. HAVE FUN!
NOTE: Even though API level is set to 19, APK also runs on older devices because in AndroidManifest.xml minSdkVersion is set to 8.
-### 3) Create pull request:
-
+### 6. Building with Android Studio:
+
+* Complete the setup of project properties running:
+ - Windows: "setup_env.bat gradle"
+ - Mac OS/Linux: "./setup_env.sh gradle"
+* The first time you want to open the project in Android Studio, select 'Import Project...' and choose the file "android/settings.gradle".
+ Android Studio will then create the '.iml' files it needs. If you ever close the project but the files are still there, you just select
+ 'Open Project...'. The file chooser will show an Android face as the folder icon, which you can select to reopen the project.
+* To build the project, follow the guidelines shown on [4. Building with Gradle][2].
+
+### 7. Create pull request:
+
NOTE: You must sign the [Contributor Agreement][1] before your changes can be accepted!
* Commit your changes locally: "git commit -a"
-* Push your changes to your Github repo: "git push"
+* Push your changes to your GitHub repo: "git push"
* Browse to https://github.com/YOURGITHUBNAME/android/pulls and issue pull request
* Click "Edit" and set "base:develop"
* Again, click "Edit" and set "compare:develop"
* Enter description and send pull request.
-### 4) Create another pull request:
+### 8. Create another pull request:
To make sure your new pull request does not contain commits which are already contained in previous PRs, create a new branch which is a clone of upstream/develop.
@@ -85,8 +110,9 @@ To make sure your new pull request does not contain commits which are already co
* git checkout -b my_new_develop_branch upstream/develop
* If you want to rename that branch later: "git checkout -b my_new_develop_branch_with_new_name"
* Push branch to server: "git push -u origin name_of_local_develop_branch"
-* Use Github to issue PR
+* Use GitHub to issue PR
[0]: https://github.com/owncloud/android/blob/master/CONTRIBUTING.md
[1]: http://owncloud.org/about/contributor-agreement/
+[2]: https://github.com/owncloud/android/blob/master/SETUP.md#4-building-with-gradle
diff --git a/actionbarsherlock b/actionbarsherlock
deleted file mode 160000
index 9598f2bb2c..0000000000
--- a/actionbarsherlock
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9598f2bb2ceed4a834cd5586a903f270ca4c0ccc
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000000..46308acaac
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,78 @@
+buildscript {
+ repositories {
+ mavenCentral()
+ }
+ dependencies {
+ classpath 'com.android.tools.build:gradle:0.14.0'
+ }
+}
+
+apply plugin: 'com.android.application'
+
+
+repositories {
+ mavenCentral()
+
+ flatDir {
+ dirs 'libs'
+ }
+}
+
+artifacts.add("default", file('libs/actionbarsherlock.aar'))
+
+dependencies {
+ compile name: 'touch-image-view'
+ compile 'com.android.support:support-v4:19.1.0'
+ compile project('libs/actionbarsherlock_lib')
+ compile project(':owncloud-android-library')
+ compile 'com.jakewharton:disklrucache:2.0.2'
+}
+
+android {
+ compileSdkVersion 19
+ buildToolsVersion "20.0.0"
+ sourceSets {
+ main {
+ manifest.srcFile 'AndroidManifest.xml'
+ java.srcDirs = ['src']
+ resources.srcDirs = ['src']
+ aidl.srcDirs = ['src']
+ renderscript.srcDirs = ['src']
+ res.srcDirs = ['res']
+ assets.srcDirs = ['res']
+ }
+
+ // Move the tests to tests/java, tests/res, etc...
+ instrumentTest.setRoot('tests')
+
+ // Move the build types to build-types/
+ // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
+ // This moves them out of them default location under src//... which would
+ // conflict with src/ being used by the main source set.
+ // Adding new build types or product flavors should be accompanied
+ // by a similar customization.
+ debug.setRoot('build-types/debug')
+ release.setRoot('build-types/release')
+ }
+
+ android {
+ lintOptions {
+ abortOnError false
+ }
+ }
+
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_7
+ targetCompatibility JavaVersion.VERSION_1_7
+ }
+
+ productFlavors {
+ }
+
+ packagingOptions {
+ exclude 'META-INF/LICENSE.txt'
+ }
+}
+
+
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000..3d0dee6e8e
Binary files /dev/null and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000..8d63f892d1
--- /dev/null
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Oct 15 10:45:44 CEST 2014
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
diff --git a/gradlew b/gradlew
new file mode 100755
index 0000000000..91a7e269e1
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000000..aec99730b4
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/libs/actionbarsherlock_lib/build.gradle b/libs/actionbarsherlock_lib/build.gradle
new file mode 100644
index 0000000000..58172e2c57
--- /dev/null
+++ b/libs/actionbarsherlock_lib/build.gradle
@@ -0,0 +1,2 @@
+configurations.create("default")
+artifacts.add("default", file('library-4.1.0.aar'))
diff --git a/libs/actionbarsherlock_lib/library-4.1.0.aar b/libs/actionbarsherlock_lib/library-4.1.0.aar
new file mode 100644
index 0000000000..f340e01183
Binary files /dev/null and b/libs/actionbarsherlock_lib/library-4.1.0.aar differ
diff --git a/oc_jb_workaround/AndroidManifest.xml b/oc_jb_workaround/AndroidManifest.xml
index ada508cab6..478e3c42db 100644
--- a/oc_jb_workaround/AndroidManifest.xml
+++ b/oc_jb_workaround/AndroidManifest.xml
@@ -1,8 +1,8 @@
+ android:versionCode="0100020"
+ android:versionName="1.0.20" >
+ // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
+ // This moves them out of them default location under src//... which would
+ // conflict with src/ being used by the main source set.
+ // Adding new build types or product flavors should be accompanied
+ // by a similar customization.
+ debug.setRoot('build-types/debug')
+ release.setRoot('build-types/release')
+ }
+}
diff --git a/oc_jb_workaround/gradle/wrapper/gradle-wrapper.jar b/oc_jb_workaround/gradle/wrapper/gradle-wrapper.jar
new file mode 100644
index 0000000000..8c0fb64a86
Binary files /dev/null and b/oc_jb_workaround/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/oc_jb_workaround/gradle/wrapper/gradle-wrapper.properties b/oc_jb_workaround/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000000..1e61d1fd3a
--- /dev/null
+++ b/oc_jb_workaround/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Wed Apr 10 15:27:10 PDT 2013
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
diff --git a/oc_jb_workaround/gradlew b/oc_jb_workaround/gradlew
new file mode 100755
index 0000000000..91a7e269e1
--- /dev/null
+++ b/oc_jb_workaround/gradlew
@@ -0,0 +1,164 @@
+#!/usr/bin/env bash
+
+##############################################################################
+##
+## Gradle start up script for UN*X
+##
+##############################################################################
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn ( ) {
+ echo "$*"
+}
+
+die ( ) {
+ echo
+ echo "$*"
+ echo
+ exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+case "`uname`" in
+ CYGWIN* )
+ cygwin=true
+ ;;
+ Darwin* )
+ darwin=true
+ ;;
+ MINGW* )
+ msys=true
+ ;;
+esac
+
+# For Cygwin, ensure paths are in UNIX format before anything is touched.
+if $cygwin ; then
+ [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
+fi
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >&-
+APP_HOME="`pwd -P`"
+cd "$SAVED" >&-
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD="$JAVA_HOME/jre/sh/java"
+ else
+ JAVACMD="$JAVA_HOME/bin/java"
+ fi
+ if [ ! -x "$JAVACMD" ] ; then
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+ fi
+else
+ JAVACMD="java"
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+ MAX_FD_LIMIT=`ulimit -H -n`
+ if [ $? -eq 0 ] ; then
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+ MAX_FD="$MAX_FD_LIMIT"
+ fi
+ ulimit -n $MAX_FD
+ if [ $? -ne 0 ] ; then
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
+ fi
+ else
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+ fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+
+ # We build the pattern for arguments to be converted via cygpath
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+ SEP=""
+ for dir in $ROOTDIRSRAW ; do
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
+ SEP="|"
+ done
+ OURCYGPATTERN="(^($ROOTDIRS))"
+ # Add a user-defined pattern to the cygpath arguments
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+ fi
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
+ i=0
+ for arg in "$@" ; do
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
+
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+ else
+ eval `echo args$i`="\"$arg\""
+ fi
+ i=$((i+1))
+ done
+ case $i in
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ esac
+fi
+
+# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
+function splitJvmOpts() {
+ JVM_OPTS=("$@")
+}
+eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
+JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
+
+exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/oc_jb_workaround/gradlew.bat b/oc_jb_workaround/gradlew.bat
new file mode 100644
index 0000000000..aec99730b4
--- /dev/null
+++ b/oc_jb_workaround/gradlew.bat
@@ -0,0 +1,90 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windowz variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+if "%@eval[2+2]" == "4" goto 4NT_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+goto execute
+
+:4NT_args
+@rem Get arguments from the 4NT Shell from JP Software
+set CMD_LINE_ARGS=%$
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/oc_jb_workaround/project.properties b/oc_jb_workaround/project.properties
index a3ee5ab64f..4ab125693c 100644
--- a/oc_jb_workaround/project.properties
+++ b/oc_jb_workaround/project.properties
@@ -11,4 +11,4 @@
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
-target=android-17
+target=android-19
diff --git a/owncloud-android-library b/owncloud-android-library
index 4f315c7e06..8261865ff2 160000
--- a/owncloud-android-library
+++ b/owncloud-android-library
@@ -1 +1 @@
-Subproject commit 4f315c7e06f6eef48df246be0ee9252fdfccdf00
+Subproject commit 8261865ff24c1bfc05be19ae9364a66dac8f26c3
diff --git a/pom.xml b/pom.xml
index 6a8cf6a75d..538df03c7c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,6 +1,7 @@
-
+4.0.0com.owncloud.android
@@ -13,7 +14,7 @@
1.5.1-SNAPSHOT1.6
- 4.4.2_r3
+ 4.4.2_r4194.2.0
@@ -26,8 +27,17 @@
scm:git:git@github.com:owncloud/android.githttps://github.com/owncloud/android
-
+
+
+
+
+
+
+
+
+
+
touch-image-view.jar
@@ -44,6 +54,13 @@
19.1.0-->
+
+
+ com.jakewharton
+ disklrucache
+ 2.0.2
+
+
android-support-v4.jarandroid-support-v4.jar
@@ -51,7 +68,15 @@
system${basedir}/third_party/android-support-library/android-support-v4.jar
-
+
+
+
+ com.actionbarsherlock
+ library
+ ${actionbarsherlock-version}
+ apklib
+
+
androidandroid
@@ -59,26 +84,19 @@
provided
-
- com.actionbarsherlock
- actionbarsherlock
- ${actionbarsherlock-version}
- provided
-
+
+
+
+
+
-
- com.actionbarsherlock
- actionbarsherlock
- ${actionbarsherlock-version}
- apklib
-
- com.owncloud.android
- owncloud-android-library
- ${owncloud.version}
-
+ com.owncloud.android
+ owncloud-android-library
+ ${owncloud.version}
+
@@ -92,7 +110,7 @@
org.apache.maven.pluginsmaven-compiler-plugin
- 3.0
+ 3.1${java-version}
@@ -102,7 +120,7 @@
com.jayway.maven.plugins.android.generation2android-maven-plugin
- 3.8.0
+ 3.8.2${env.ANDROID_HOME}
diff --git a/res/layout/files_move.xml b/res/layout/files_folder_picker.xml
similarity index 84%
rename from res/layout/files_move.xml
rename to res/layout/files_folder_picker.xml
index 491bcd8f3d..6db83772bf 100644
--- a/res/layout/files_move.xml
+++ b/res/layout/files_folder_picker.xml
@@ -18,18 +18,18 @@
android:orientation="horizontal" >
+ android:text="@string/folder_picker_choose_button_text" />
diff --git a/res/layout/list_footer.xml b/res/layout/list_footer.xml
new file mode 100644
index 0000000000..a49874d635
--- /dev/null
+++ b/res/layout/list_footer.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/layout/list_fragment.xml b/res/layout/list_fragment.xml
index 4236d070b2..160edc1d53 100644
--- a/res/layout/list_fragment.xml
+++ b/res/layout/list_fragment.xml
@@ -25,16 +25,18 @@
-
+ android:layout_height="match_parent"
+ android:layout_weight="1"
+ android:footerDividersEnabled="false" >
+
-
+
-
-
diff --git a/res/layout/preference_widget_radiobutton.xml b/res/layout/preference_widget_radiobutton.xml
new file mode 100644
index 0000000000..85f8f60038
--- /dev/null
+++ b/res/layout/preference_widget_radiobutton.xml
@@ -0,0 +1,21 @@
+
+
+
+
\ No newline at end of file
diff --git a/res/layout/video_layout.xml b/res/layout/video_layout.xml
index dfa29f7d73..8063ab4d76 100644
--- a/res/layout/video_layout.xml
+++ b/res/layout/video_layout.xml
@@ -3,9 +3,10 @@
android:layout_width="match_parent"
android:layout_height="match_parent" >
-
+
\ No newline at end of file
diff --git a/res/menu/file_select_all.xml b/res/menu/file_select_all.xml
deleted file mode 100644
index a8097aae22..0000000000
--- a/res/menu/file_select_all.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
diff --git a/res/values-af-rZA/strings.xml b/res/values-af-rZA/strings.xml
index 17d6885373..634d2672b9 100644
--- a/res/values-af-rZA/strings.xml
+++ b/res/values-af-rZA/strings.xml
@@ -6,8 +6,12 @@
HulpGebruikersnaamWagwoord
+ sekondes gelede
+ Ja
+ NeeOKKanseleer
+ Fout
- Kies
+ Kies
diff --git a/res/values-ar/strings.xml b/res/values-ar/strings.xml
index 266507d5b9..d8d4eb00ef 100644
--- a/res/values-ar/strings.xml
+++ b/res/values-ar/strings.xml
@@ -50,8 +50,13 @@
لم يتم استلام أي محتوى. لا شيء للرفع.%1$s غير مسموح له بالوصول للمحتوى المشاركيتم الرفع
+ منذ ثوانيلا يوجد شيء هنا. إرفع بعض الملفات!جاري التحميل ...
+ مجلد
+ مجلدات
+ ملف
+ ملفاتاضغظ على الملف ليتم عرض خيارات أكثرالحجم :النوع :
@@ -251,6 +256,7 @@
حساباتكلمة مرور خاطئة
- اختيار
+ اختيارالأمان
+ مُشارك
diff --git a/res/values-az/strings.xml b/res/values-az/strings.xml
index d3a9060bdb..3f91b6d811 100644
--- a/res/values-az/strings.xml
+++ b/res/values-az/strings.xml
@@ -220,4 +220,5 @@ Aşağıda göstərilən %5$s-də olan daxili və xarici fayl(lar) link edilmiş
HesablarHesab əlavə etYalnış şifrə
+ yayımlanmış
diff --git a/res/values-be/strings.xml b/res/values-be/strings.xml
index 0e52b53fe3..0fa7ba37a0 100644
--- a/res/values-be/strings.xml
+++ b/res/values-be/strings.xml
@@ -3,10 +3,11 @@
Налады
+ Секунд тамуТакНеДобраПамылка
- Выбар
+ Выбар
diff --git a/res/values-bg-rBG/strings.xml b/res/values-bg-rBG/strings.xml
index 5497ee5ad9..1fd8462de3 100644
--- a/res/values-bg-rBG/strings.xml
+++ b/res/values-bg-rBG/strings.xml
@@ -38,6 +38,8 @@
Препоръчай на приятелОбратна ВръзкаImprint
+ Запомни мястото за споделяне
+ Запомни мястото на последната споделена папкаОпитай %1$s на смартфона си!Бих желал да те поканя да ползваш %1$s на своя смартфон!\nИзтеглия я от тук:%2$sПроверка на сървъра
@@ -57,9 +59,14 @@
Не беше получено съдържание. Няма какво да се качи.%1$s няма разрешен достъп до споделеното съдържание.Качване
+ преди секундиТук няма нищо. Качете нещо!Зареждане...Няма файлове в тази папка.
+ папка
+ папки
+ файл
+ файлНатисни върху файл, за да видиш допълнителна информация.Размер:Тип:
@@ -275,13 +282,11 @@
Сигурна връзка е пренасочена по несигурен път.ДокладиИзпрати История
- ownCloud Android доклади
- Зареждане на информация...Нужна е идентификацияГрешна паролаПреместиТук няма нищо. Можеш да добавиш папка!
- Избери
+ ИзбериНеуспешно преместване. Моля, провери дали файла съществува.Не е възможно да преместиш папка в нейна под папка.Файлът вече съществува в отдалечената папка.
@@ -289,4 +294,5 @@
за да преместиш този файлНезабавно качванеСигурност
+ споделен
diff --git a/res/values-bn-rBD/strings.xml b/res/values-bn-rBD/strings.xml
index a5cf54250d..a2861baea5 100644
--- a/res/values-bn-rBD/strings.xml
+++ b/res/values-bn-rBD/strings.xml
@@ -50,6 +50,7 @@
কোন কনটেনট আসেনি৷ আপলোডের কনটেনট নেইএই যৌথ কনটেন্ট এ %1$s এর প্রবেশ অনুমোদিত নয়আপলোড করা হচ্ছে
+ সেকেন্ড পূর্বেএখানে কিছুই নেই। কিছু আপলোড করুন !লোড হচ্ছে....এই ফোলডারে কোন ফাইল নেই
@@ -264,7 +265,8 @@
ভুল কুটশব্দসরাওএখানে কিছু নেই। একটি ফোল্ডার যোগ করতে পারেন!
- বেছে নিন
+ বেছে নিনসরাতে ব্যার্থ হলো। ফাইলটি রয়েছে কিনা দেখুন।নিরাপত্তা
+ ভাগাভাগিকৃত
diff --git a/res/values-bs/strings.xml b/res/values-bs/strings.xml
index 4c2f869222..9ab386cad2 100644
--- a/res/values-bs/strings.xml
+++ b/res/values-bs/strings.xml
@@ -1,7 +1,34 @@
+ Učitaj
+ DatotekeNova fascikla
+ Postavke
+ Pošalji
+ Više
+ Pomoć
+ Korisničko ime
+ Lozinka
+ Datoteke
+ Učitaj
+ Preuzmite
+ Podijelite vezu
+ Da
+ Ne
+ Ok
+ Prekini učitavanje
+ Odustani
+ Greška
+ Nepoznata greška
+ Promijeni lozinku
+ Kreiraj račun
+ Preimenuj
+ Pošalji
+ Potrebna autentifikacija
+ Pogrešna lozinka
+ Izaberite
+ Sigurnost
diff --git a/res/values-ca/strings.xml b/res/values-ca/strings.xml
index c5d91d5445..6979b06a18 100644
--- a/res/values-ca/strings.xml
+++ b/res/values-ca/strings.xml
@@ -50,9 +50,14 @@
No s\'ha rebut cap contingut. Res per pujar%1$s no pot accedir al contingut compartitS\'està pujant
+ segons enrereRes per aquí. Pugeu alguna cosa!Carregant...No hi ha arxius a aquesta carpeta
+ carpeta
+ carpetes
+ fitxer
+ fitxersFeu clic en un fitxer per mostrar informació addicional.Mida:Tipus:
@@ -261,6 +266,7 @@
Afegeix compteEs requereix autenticacióContrasenya incorrecta
- Escull
+ EscullSeguretat
+ compartit
diff --git a/res/values-cs-rCZ/strings.xml b/res/values-cs-rCZ/strings.xml
index a9db9c5b2f..575b5aaac5 100644
--- a/res/values-cs-rCZ/strings.xml
+++ b/res/values-cs-rCZ/strings.xml
@@ -38,6 +38,8 @@
Doporučit přátelůmOdezvaImprint
+ Zapamatovat umístění sdílení
+ Zapamatovat poslední umístění pro nahrání sdílených souborůZkuste %1$s na vašem smartphonu!Chtěl bych vás pozvat k používání %1$s na vašem chytrém telefonu!\nKe stažení zde: %2$sZkontrolovat server
@@ -57,9 +59,14 @@
Neobdržen žádný obsah. Nic k odeslání.%1$s nemá právo přistupovat ke sdílenému obsahuOdesílání
+ před pár sekundamiŽádný obsah. Nahrajte něco!Načítám...V tomto adresáři nejsou žádné soubory.
+ adresář
+ adresáře
+ soubor
+ souboryVíce informací získáte klepnutím na soubor.Velikost:Typ:
@@ -177,7 +184,7 @@
Připojuji se k přihlašovacímu serveru...Server nepodporuje tuto přihlašovací metodu%1$s nepodporuje více účtů
- Váš server nevrací správné přihlašovací ID, kontaktujte vašeho administrátora
+ Váš server nevrací správné přihlašovací ID, kontaktujte prosím svého správce systémuNení možné provést ověření Udržovat soubor aktuálníPřejmenovat
@@ -247,7 +254,7 @@
%1$s nelze zkopírovat do místního adresáře %2$sCesta pro nahráníJe nám líto, ale sdílení není na vašem serveru povoleno. Kontaktujte svého
-administrátora.
+správce systému.
Nelze sdílet. Zkontrolujte prosím že soubor existujePři pokusu o sdílení tohoto souboru či složky nastala chybaNelze ukončit sdílení. Zkontrolujte prosím že soubor existuje
@@ -274,13 +281,14 @@ administrátora.
Bezpečné spojení je přesměrováno na nezabezpečenou trasu.LogyOdeslat historii
- Logy aplikace ownCloud pro Android
- Načítám data...
+ Nebyla nalezena žádná aplikace pro zasílání logů. Nainstalujte poštovní aplikaci!
+ %1$s logy aplikace pro Android
+ Načítání dat…Vyžadováno přihlášeníNesprávné hesloPřesunoutZde nic není. Můžete přidat adresář!
- Vybrat
+ VybratNelze přesunout. Zkontrolujte prosím že soubor existujeNení možné adresář přesunout do vlastního podadresářeSoubor již v cílovém adresáři existuje
@@ -288,4 +296,8 @@ administrátora.
pro přesun tohoto souboruOkamžitá odesíláníZabezpečení
+ Cesta pro nahrávání videí
+ sdílené
+ s vámi
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-cy-rGB/strings.xml b/res/values-cy-rGB/strings.xml
index 80cc3c93b3..eccb3fdf43 100644
--- a/res/values-cy-rGB/strings.xml
+++ b/res/values-cy-rGB/strings.xml
@@ -27,6 +27,7 @@
Heb dderbyn cynnwys. Dim cynnwys i lwytho i fynyDoes dim mynediad gan %1$s i gynnwys a rennirYn llwytho i fyny
+ eiliad yn ôlDoes dim byd fan hyn. Llwythwch rhywbeth i fyny!Tapiwch ffeil i ddangos gwybodaeth ychwanegolMaint:
@@ -143,5 +144,5 @@
AnfonCyfrifon
- Dewisiwch
+ Dewisiwch
diff --git a/res/values-da/strings.xml b/res/values-da/strings.xml
index 9a2754075b..5aa03ad103 100644
--- a/res/values-da/strings.xml
+++ b/res/values-da/strings.xml
@@ -38,6 +38,8 @@
Anbefal til en venFeedbackImprint
+ Husk delt placering
+ Husk seneste delte placering for overførselPrøv %1$s på din smartphone!Jeg ønsker at invitere dig til at bruge %1$s på din smartphone!\nHent den her: %2$sTjek server
@@ -57,9 +59,14 @@
Intet indhold blev modtaget. Intet at uploade.%1$s er ikke tilladt adgang til delt indholdUploader
+ sekunder sidenHer er tomt. Upload noget!Indlæser...Der er ingen filer i denne mappe.
+ mappe
+ mapper
+ fil
+ filerTryk på en fil for at vise yderligere information.Størelse:Type:
@@ -273,13 +280,14 @@
Sikker forbindelse videredirigeres til en usikker rute.LoggeSend historik
- App-logregistreringer for ownCloud Android
- Indlæser data...
+ Der blev ikke fundet apps, der kan sende logge. Installér mail-app\'en!
+ %1$s Android-app - logge
+ Indlæser data ...Godkendelse påkrævetForkert kodeordFlytDer er intet her. Du kan tilføje en mappe!
- Vælg
+ VælgKan ikke flytte. Tjek venligst om filen findesDet er ikke muligt at flytte en mappe til en undermappeFilen findes allerede i destinationsmappen
@@ -287,4 +295,8 @@
til at flytte denne filØjeblikkelige uploadsSikkerhed
+ Sti til videoupload
+ delt
+ med dig
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-de-rDE/strings.xml b/res/values-de-rDE/strings.xml
index 9f0ebcf948..2cd13be6d0 100644
--- a/res/values-de-rDE/strings.xml
+++ b/res/values-de-rDE/strings.xml
@@ -25,21 +25,23 @@
Konten verwaltenApp-PINSchützen Sie Ihren Client
- Sofortiges Bilderhochladen
+ Sofortiger BilderuploadFotos von der Kamera sofort hochladen
- Sofortiges Videohochladen
+ Sofortiger VideouploadVideos von der Kamera sofort hochladenProtokollierung aktivieren
- Dieses wird zur Protokollierung von Problemen benutzt
- Protokollierungsverlauf
- Dieses zeigt die gespeicherten Protokollierungen
+ Dies wird zur Protokollierung von Problemen benutzt
+ Protokollverlauf
+ Dies zeigt die gespeicherten ProtokolleVerlauf löschenHilfe
- Dieses einem Freund empfehlen
+ Dies einem Freund empfehlenRückmeldungenImpressum
+ Geteilten Speicherort merken
+ Geteilten Upload-Speicherort merken%1$s auf Ihrem Smartphone ausprobieren!
- Ich möchte Sie zum Benutzen von %1$s auf Ihrem Smartphone einladen!\nHier herunterladen: %2$s
+ Ich möchte Sie einladen, %1$s auf Ihrem Smartphone zu verwenden!\nHier herunterladen: %2$sServer überprüfenServer-Adresse https://…Benutzername
@@ -48,7 +50,7 @@
DateienVerbindenHochladen
- Zielordner auswählen:
+ Uploadordner auswählen:Kein Konto gefundenEs sind keine %1$s-Konten auf Ihrem Gerät eingerichtet. Bitte richten Sie zuerst ein Konto ein.Einrichten
@@ -57,9 +59,14 @@
Es wurden keine Inhalte empfangen. Es gibt nichts zum Hochladen.%1$s darf den freigegebenen Inhalt nicht nutzen.Lade hoch
+ Gerade ebenAlles leer. Laden Sie etwas hoch!Ladevorgang …Es befinden sich keine Dateien in diesem Ordner.
+ Ordner
+ Ordner
+ Datei
+ DateienKlicken Sie auf eine Datei für weitere Informationen.Größe:Art:
@@ -92,7 +99,7 @@
%1$s wurde(n) erfolgreich hochgeladenHochladen fehlgeschlagenHochladen von %1$s konnte nicht abgeschlossen werden
- Hochladen fehlgeschlagen, Sie müssen sich nochmals anmelden
+ Hochladen fehlgeschlagen, Sie müssen sich neu anmeldenHerunterladen...%1$d%% Herunterladen %2$sHerunterladen erfolgreich
@@ -100,7 +107,7 @@
Herunterladen fehlgeschlagenHerunterladen von %1$s konnte nicht abgeschlossen werdenNoch nicht heruntergeladen
- Herunterladen fehlgeschlagen, Sie müssen sich nochmals anmelden
+ Herunterladen fehlgeschlagen, Sie müssen sich neu anmeldenKonto auswählenSynchronisation fehlgeschlagenSynchronisation fehlgeschlagen, Sie müssen sich neu anmelden
@@ -119,7 +126,7 @@
Einige Dateien konnten nicht verschoben werdenLokal: %1$sRemote: %1$s
- Es steht nicht genügend Speicherplatz zur Verfügung um die ausgewählten Dateien in den %1$s Ordner zu kopieren. Möchten Sie diese stattdessen verschieben?
+ Es steht nicht genügend Speicherplatz zur Verfügung um die ausgewählten Dateien in den Ordner %1$s zu kopieren. Möchten Sie diese stattdessen verschieben?Bitte geben Sie Ihre App-PIN einBitte geben Sie Ihre App-PIN einPIN-Abfrage erfolgt nach Starten der App.
@@ -174,9 +181,9 @@
Ihre Legitimierung ist abgelaufen. Bitte Legitimierung nochmals durchführenBitte geben Sie Ihr aktuelles Passwort einIhre Sitzung ist abgelaufen. Bitte Anmeldung nochmals durchführen
- Zum Legitimierungsserver wird verbunden …
+ Zum Legitimierungsserver verbinden…Der Server unterstützt diese Legitimierungsmethode nicht
- %1$s unterstützt nicht mehrere Benutzerkonten
+ %1$s unterstützt mehrere Benutzerkonten nichtIhr Server gibt keine richtige Benutzerkennung zurück, bitte kontaktieren Sie einen Administrator
⇥Die Legitimierung gegenüber dem Server konnte nicht durchgeführt werden
@@ -246,20 +253,20 @@
BildvorschauDieses Bild kann nicht angezeigt werden%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden
- Pfad hochladen
+ Upload PfadEntschuldigung, Freigaben sind auf Ihrem Server nicht aktiviert. Bitte kontaktieren Sie Ihren
⇥⇥Administrator.
- Teilen nicht möglich. Prüfen Sie, dass die Datei existiert
+ Teilen nicht möglich. Prüfen Sie, ob die Datei existiertEs ist ein Fehler beim Freigeben der Datei oder des Ordners aufgetreten.
- Entfernen der Freigabe nicht möglich. Prüfen Sie, dass die Datei existiert
+ Entfernen der Freigabe nicht möglich. Prüfen Sie, ob die Datei existiertEs ist ein Fehler beim Entfernen der Freigabe für diese Datei oder den Ordner aufgetreten.SendenLink kopierenIn die Zwischenablage kopiertKritischer Fehler: Operationen können nicht ausgeführt werden
- Es ist ein Fehler beim Verbinden mit dem Server aufgetreten.
- Es ist ein Fehler beim Warten auf den Server aufgetreten, die Operation kann nicht ausgeführt werden
- Es ist ein Fehler beim Warten auf den Server aufgetreten, die Operation kann nicht ausgeführt werden
+ Es ist ein Fehler bei der Verbindung mit dem Server aufgetreten.
+ Es ist ein Fehler während des Wartens auf den Server aufgetreten, die Operation kann nicht ausgeführt werden
+ Es ist ein Fehler während des Wartens auf den Server aufgetreten, die Operation kann nicht ausgeführt werdenDie Operation kann nicht abgeschlossen werden, der Server ist nicht erreichbarSie haben keine Berechtigung %s
@@ -275,13 +282,14 @@
Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.ProtokolleVerlauf senden
- Protokolle der ownCloud-Android-App
- Daten werden geladen …
+ Keine App zum Versenden der Meldungen gefunden. Bitte installieren Sie die Mail-App!
+ %1$s Android-App Meldungen
+ Lade Daten…Legitimierung benötigtFalsches PasswortVerschiebenNichts vorhanden. Sie können einen Ordner hinzufügen!
- Auswählen
+ AuswählenVerschieben nicht möglich. Bitte überprüfen Sie, ob die Datei existiertEs ist nicht möglich einen Ordner eine Ebene tiefer zu verschiebenDie Datei ist bereits im Zielordner vorhanden
@@ -289,4 +297,8 @@
um diese Datei zu verschiebenSofortiges HochladenSicherheit
+ Verzeichnis zum Hochladen der Videos
+ geteilt
+ Mit Ihnen
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 2bd365c12d..9de3d4bad2 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -38,6 +38,8 @@
Empfehle dies einem FreundRückmeldungenImpressum
+ Geteilten Speicherort merken
+ Geteilten Upload-Speicherort merkenProbiere %1$s auf Deinem Smartphone!Ich möchte Dich zum Benutzen von %1$s auf Deinem Smartphone einladen!\nLade es hier herunter: %2$sÜberprüfe den Server
@@ -57,9 +59,14 @@
Es wurden keine Inhalte empfangen. Es gibt nichts zum Hochladen.%1$s darf den freigegebenen Inhalt nicht nutzen.Lade hoch
+ Gerade ebenAlles leer. Lade etwas hoch!Ladevorgang …Es befinden sich keine Dateien in diesem Ordner.
+ Ordner
+ Ordner
+ Datei
+ DateienKlicken Sie auf eine Datei für weitere Informationen.Größe:Art:
@@ -275,13 +282,14 @@
Die gesicherte Verbindung wird auf eine unsichere Route weitergeleitet.ProtokolleVerlauf senden
- Protokolle der ownCloud-Android-App
- Daten werden geladen …
+ Keine App zum Versenden der Meldungen gefunden. Bitte installiere die Mail-App!
+ %1$s Android-App Meldungen
+ Lade Daten…Legitimierung benötigtFalsches PasswortVerschiebenNichts vorhanden. Du kannst einen Ordner hinzufügen!
- Auswählen
+ AuswählenVerschieben nicht möglich. Prüfe, dass die Datei existiertEs ist nicht möglich, einen Ordner in einen seiner Unterordner zu verschiebenDie Datei ist bereits im Zielordner vorhanden
@@ -289,4 +297,8 @@
um diese Datei zu verschiebenSofortiges HochladenSicherheit
+ Verzeichnis zum Hochladen der Videos
+ geteilt
+ Mit Dir
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-el/strings.xml b/res/values-el/strings.xml
index 67b16e2a7a..f393e6b47a 100644
--- a/res/values-el/strings.xml
+++ b/res/values-el/strings.xml
@@ -11,6 +11,12 @@
ΡυθμίσειςΛεπτομέρειεςΑποστολή
+ Ταξινόμηση
+ Ταξινόμηση κατά
+
+ A-Z
+ Νεότερο - Παλαιότερο
+ Γενικά
@@ -32,6 +38,8 @@
Προτείνετε σε φίλοΣχόλια Αποτύπωμα
+ Αποθήκευση σημείου διαμοιρασμού
+ Αποθήκευση τελευταίου σημείου διαμοιρασμού μεταφόρτωσηςΔοκιμάστε %1$s στο κινητό σας!Θα ήθελα να σε προσκαλέσω να χρησιμοποιήσεις το %1$s στο κινητό σου!\nΛήψη εδώ: %2$sΈλεγχος Διακομιστή
@@ -51,9 +59,14 @@
Δεν ελήφθη περιεχόμενο. Δεν υπάρχει τίποτα να μεταφορτώσετε.Ο %1$s δεν επιτρέπεται να έχει πρόσβαση στο κοινόχρηστο περιεχόμενοΜεταφόρτωση
+ δευτερόλεπτα πρινΔεν υπάρχει τίποτα εδώ. Ανεβάστε κάτι!Φόρτωση ...Δεν υπάρχουν αρχεία σε αυτό τον φάκελο.
+ φάκελος
+ φάκελοι
+ αρχείο
+ αρχείαΑγγίξτε κάποιο αρχείο για να προβάλετε περισσότερες πληροφορίες.Μέγεθος:Τύπος:
@@ -269,13 +282,14 @@
Ασφαλής σύνδεση ανακατευθύνεται σε μια μη ασφαλή διαδρομή.Αρχεία καταγραφώνΑποστολή ιστορικού
- αρχεία καταγραφής της εφαρμογής ownCloud Android
+ Δεν εντοπίστηκε εφαρμογή αποστολής αναφορών συστήματος. Εγκαταστήστε το mail app!
+ %1$s αναφορές του Android appΦόρτωση δεδομένων....Απαιτείται πιστοποίησηΕσφαλμένο συνθηματικόΜετακίνησηΔεν υπάρχει τίποτα εδώ. Μπορείτε να προσθέσετε ένα φάκελο!
- Επιλέξτε
+ ΕπιλέξτεΑδύνατη η μετακίνηση. Παρακαλώ ελέγξτε αν ο φάκελος υπάρχειΔεν είναι δυνατό να μετακινηθεί ο φάκελος σε έναν απογονικόΤο αρχείο υπάρχει ήδη στο φάκελο προορισμού
@@ -283,4 +297,6 @@
για μετακίνηση αυτού του αρχείουΣτιγμιαίες ΜεταφορτώσειςΑσφάλεια
+ Διαδρομή Μεταφόρτωσης Βίντεο
+ μοιρασμένο
diff --git a/res/values-en-rGB/strings.xml b/res/values-en-rGB/strings.xml
index 4ef373d2ae..6540be19bd 100644
--- a/res/values-en-rGB/strings.xml
+++ b/res/values-en-rGB/strings.xml
@@ -38,6 +38,8 @@
Recommend to a friendFeedbackImprint
+ Remember share location
+ Remember last share upload locationTry %1$s on your smartphone!I want to invite you to use %1$s on your smartphone!\nDownload here: %2$sCheck Server
@@ -57,9 +59,14 @@
No content was received. Nothing to upload.%1$s is not allowed to access the shared contentUploading
+ seconds agoNothing in here. Upload something!Loading...There are no files in this folder.
+ folder
+ folders
+ file
+ filesTap on a file to display additional information.Size:Type:
@@ -275,13 +282,14 @@
Secure connection is redirected to an unsecured route.LogsSend History
- ownCloud Android app logs
- Loading data...
+ No app for sending logs found. Install mail app!
+ %1$s Android app logs
+ Loading data…Authentication requiredIncorrect passwordMoveNothing in here. You can add a folder!
- Choose
+ ChooseUnable to move. Please check whether the file existsIt is not possible to move a folder into a descendantThe file exists already in the destination folder
@@ -289,4 +297,8 @@
to move this fileInstant UploadsSecurity
+ Upload Video Path
+ shared
+ with you
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-eo/strings.xml b/res/values-eo/strings.xml
index dd653401b3..4c604f0362 100644
--- a/res/values-eo/strings.xml
+++ b/res/values-eo/strings.xml
@@ -36,7 +36,12 @@
Neniu enhavo riceviĝis. Nenio alŝutota.$1%s ne estas permesata aliri la kunhavigitan enhavonAlŝutante
+ sekundoj antaŭeNenio estas ĉi tie. Alŝutu ion!
+ dosierujo
+ dosierujoj
+ dosiero
+ dosierojGrando:Tipo:Kreita je:
@@ -187,6 +192,7 @@
KontojAŭtentiĝo neprasMalĝusta pasvorto
- Elekti
+ ElektiSekuro
+ kunhavigita
diff --git a/res/values-es-rAR/strings.xml b/res/values-es-rAR/strings.xml
index 74e2f64ad5..6100a4072c 100644
--- a/res/values-es-rAR/strings.xml
+++ b/res/values-es-rAR/strings.xml
@@ -50,9 +50,14 @@
No se recibió ningún contenido. No hay nada para subir.%1$s no está autorizado para acceder al contenido compartidoSubiendo
+ segundos atrásNo hay nada. ¡Subí contenido!Cargando...No existen archivos en esta carpeta.
+ carpeta
+ carpetas
+ archivo
+ archivosPulsá sobre un archivo para mostrar información adicional.Tamaño:Tipo:
@@ -242,6 +247,7 @@
CuentasAutentificación requeridaClave incorrecta
- Elegir
+ ElegirSeguridad
+ compartido
diff --git a/res/values-es-rCL/strings.xml b/res/values-es-rCL/strings.xml
index f3ad180565..16485ea468 100644
--- a/res/values-es-rCL/strings.xml
+++ b/res/values-es-rCL/strings.xml
@@ -33,6 +33,7 @@
No se ha recibido ningún contenido. No hay nada para subir.%1$s no esta autorizado para acceder al contenido compartidoSubiendo
+ segundos antesSeleccione un archivo para desplegar información adicional.Tamaño:Tipo:
@@ -168,5 +169,5 @@
%1$s no pudo ser copiado a la carpeta local %2$sCuentas
- Choose
+ Choose
diff --git a/res/values-es-rMX/strings.xml b/res/values-es-rMX/strings.xml
index 78ee8b409d..5758463504 100644
--- a/res/values-es-rMX/strings.xml
+++ b/res/values-es-rMX/strings.xml
@@ -45,6 +45,7 @@
Ningún contenido ha sido recibido. No hay nada que subir.%1$s no está autorizado para acceder al contenido compartidoEnviando
+ hace segundosNo hay nada aquí. ¡Suba algo!Pulsa sobre un archivo para mostrar información adicional.Tamaño:
@@ -216,6 +217,7 @@
CuentasContraseña incorrecta
- Seleccionar
+ SeleccionarSeguridad
+ compartido
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index d78ff809e3..3f9b74b736 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -38,6 +38,8 @@
Recomendar a un amigoMensajes de retroalimentaciónpie de imprenta
+ Recordar la ubicación de los archivos compartidos
+ Recordar la ubicación de los últimos archivos compartidos subidosPrueba %1$s en tu smarthphone!¡Quiero invitarle a usar %1$s en su smartphone!\nDescárguelo aquí: %2$sCompruebe el servidor.
@@ -57,9 +59,14 @@
Ningún contenido ha sido recibido. No hay nada que subir.%1$s no está autorizado para acceder al contenido compartidoSubiendo...
+ hace segundosNo hay nada aquí. ¡Suba algo!Cargando...No hay archivos en esta carpeta.
+ carpeta
+ carpetas
+ archivo
+ archivosPulsa sobre un archivo para mostrar información adicional.Tamaño:Tipo:
@@ -275,13 +282,14 @@
La conexión segura está siendo desviada por una ruta insegura.LogsEnviar historial
- Logs de las apps ownCloud Android
+ No se ha encontrado una app para enviar logs. Instale la app mail!
+ Se han encontrado %1$s logs de la app AndroidCargando datos...Se necesita autenticaciónContraseña incorrectaMoverAquí no hay nada. ¡Puede agregar una carpeta!
- Seleccionar
+ SeleccionarNo se puede mover. Revise si el archivo existeNo se puede mover una carpeta dentro de una de SUS subcarpetas.El archivo ya existe en la carpeta de destino
@@ -289,4 +297,8 @@
para mover este archivoSubidas instantáneasSeguridad
+ Ruta de vídeo de subida
+ compartido
+ contigo
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-et-rEE/strings.xml b/res/values-et-rEE/strings.xml
index 2a23f18727..84636cc780 100644
--- a/res/values-et-rEE/strings.xml
+++ b/res/values-et-rEE/strings.xml
@@ -11,6 +11,12 @@
SeadedÜksikasjadSaada
+ Sorteeri
+ Sorteeri
+
+ A-Z
+ Uuem - vanem
+ Üldine
@@ -32,6 +38,8 @@
Soovita sõbraleTagasisideImpressum
+ Jäta meelde jagamise asukoht
+ Jäta meelde viimase jagamise üleslaadimise asukohtProovi oma nutitelefonil rakendust %1$s!Kutsun sind kasutama oma nutitelefonis rakendust %1$s!\nLaadi see alla siit: %2$sKontrolli serverit
@@ -51,9 +59,14 @@
Sisu ei saadud. Pole midagi üles laadida.%1$sile pole lubatud ligipääs jagatud sisuleÜleslaadimine
+ sekundit tagasiSiin pole midagi. Lae midagi üles!Laen ...Kaustas pole faile.
+ kaust
+ kausta
+ fail
+ failiLisainfo vaatamiseks vajuta failile.Suurus:Tüüp:
@@ -273,13 +286,11 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi
Turvaline ühendus suunatakse läbi turvamata ühenduse.LogidSaada ajalugu
- ownCloud Android rakenduse logid
- Andmete laadimine...Autentimine on vajalikVale paroolTõsta ümberSiin pole midagi. Sa võid lisada kausta!
- Vali
+ ValiLiigutamine ebaõnnestus. Palun kontrolli, kas fail on olemasKausta ei saa liigutada selle alamkaustaSee fail on juba sihtkaustas olemas
@@ -287,4 +298,5 @@ Allpool on loend kohalikest failidest ning serveris asuvatest failidest %5$s, mi
selle faili liigutamiseksKohesed üleslaadimisedTurvalisus
+ jagatud
diff --git a/res/values-eu/strings.xml b/res/values-eu/strings.xml
index 78d39f1c9c..e74ff818cb 100644
--- a/res/values-eu/strings.xml
+++ b/res/values-eu/strings.xml
@@ -55,9 +55,14 @@
Ez da edukirik jaso. Ez dago ezer igotzeko.%1$s-(e)k ez du baimenik elkarbanatutako edukian sartzekoIgotzen
+ segunduEz dago ezer. Igo zerbait!Kargatzen...Ez dago fitxategirik karpeta honetan.
+ karpeta
+ Karpetak
+ fitxategia
+ fitxategiakSakatu fitxategi baten gainean informazio gehiago lortzekoTamaina:Mota:
@@ -266,12 +271,11 @@ Mesedez, baimendu berriz
Fitxategia jadanik ez dago eskuragarri zerbitzarianKontuakGehitu kontua
- ownCloud Android programaren egunerokoak
- Datuak kargatzen...Autentikazioa beharrezkoaPasahitz okerraMugitu
- Aukeratu
+ AukeratuBerehalako IgoerakSegurtasuna
+ konpartitua
diff --git a/res/values-fa/strings.xml b/res/values-fa/strings.xml
index 8034836678..142e71b473 100644
--- a/res/values-fa/strings.xml
+++ b/res/values-fa/strings.xml
@@ -46,9 +46,14 @@
هیچ مطلبی دریافت نشده است. هیچچیزی بارگزاری نشده.%1$s اجازه ی دسترسی به محتوای مشترک را نمی دهددر حال بارگزاری
+ ثانیهها پیشاینجا هیچ چیز نیست.درحال بارگذاری...هیچ فایلی در این پوشه نیست.
+ پوشه
+ پوشه ها
+ پرونده
+ پرونده هاروی هر فایل کلیک کنید تا اطلاعات اضافی نمایش داده شود.اندازهنوع:
@@ -233,6 +238,7 @@
حسابهااحراز هویت مورد نیاز استرمز عبور اشتباه است
- انتخاب کردن
+ انتخاب کردنامنیت
+ اشتراک گذاشته شده
diff --git a/res/values-fi-rFI/strings.xml b/res/values-fi-rFI/strings.xml
index 18e972fb22..f347edfc4b 100644
--- a/res/values-fi-rFI/strings.xml
+++ b/res/values-fi-rFI/strings.xml
@@ -37,6 +37,8 @@
OhjeSuosittele kaverillePalaute
+ Muista jaon sijainti
+ Muista viimeisin jaon lähetyssijaintiKokeile %1$sia älypuhelimellasi!Kutsun sinut käyttämään %1$sia älypuhelimellasi!\nLataa se tästä: %2$sTarkista palvelin
@@ -56,9 +58,14 @@
Sisältöä ei saatu. Ei lähetettävää palvelimelle.%1$silla ei ole oikeuksia jaettuun sisältöönLähetetään
+ sekuntia sittenTäällä ei ole mitään. Lähetä tänne jotakin!Ladataan...Tässä kansiossa ei ole tiedostoja
+ kansio
+ kansiota
+ tiedosto
+ tiedostoaNapauta tiedostoa nähdäksesi lisätietoja.Koko:Tyyppi:
@@ -68,6 +75,7 @@
Päivitä tiedostoTiedoston nimeksi muutettiin %1$s siirron yhteydessäJaa linkki
+ Poista linkin jakoKylläEiOK
@@ -144,6 +152,7 @@
Testataan yhteyttä...Väärin tehdyt palvelin-asetuksetLaitteella on jo tili samalle käyttäjälle ja palvelimelle
+ Syötetty käyttäjä ei täsmää tämän tilin käyttäjän kanssaTuntematon virheIsäntää ei löydyPalvelin-instanssia ei löydetty
@@ -249,18 +258,21 @@
Tämä tiedosto ei ole enää palvelimella käytettävissäTilitLisää tili
+ Salattu yhteys on ohjattu uudelleen salaamatonta reittiä pitkin.LokitLähetä historia
- ownCloudin Android-sovelluksen lokit
- Ladataan tietoja...
+ Lokien lähettämistä varten ei löytynyt sovellusta. Asenna sähköpostisovellus!
+ Ladataan tietoja…Tunnistautuminen vaaditaanVäärä salasanaSiirräTäällä ei ole mitään. Voit lisätä kansion!
- Valitse
+ ValitseSiirto ei onnistu. Tarkista, ettei tiedostoa ole jo olemassaTiedosto on jo olemassa kohdekansiossaTämän tiedoston tai kansion siirtoa yrittäessä tapahtui virheVälittömät lähetyksetTietoturva
+ jaettu
+ kanssasi
diff --git a/res/values-fi/strings.xml b/res/values-fi/strings.xml
new file mode 100644
index 0000000000..5244404825
--- /dev/null
+++ b/res/values-fi/strings.xml
@@ -0,0 +1,43 @@
+
+
+ Lähetä
+ Avaa sovelluksessa
+ Luo kansio
+ Asetukset
+
+ Lisää
+ Hallitse tilejä
+ Sovelluksen PIN
+ Apua
+ http://esimerkki.fi/palvelu/
+ Käyttäjätunnus
+ Salasana
+ Lähetä
+ Ei sisältöä. Siirrä tänne jotakin!
+ Ladataan...
+ kansio
+ kansiot
+ tiedosto
+ Tiedostot
+ Jaa linkki
+ Poista linkin jako
+ KYLLÄ
+ EI
+ Ok
+ Peruuta
+ Virhe
+ Virheellinen PIN
+ Sovelluksen PIN poistettu
+ Sovelluksen PIN tallennettu
+ Syötetty käyttäjä ei täsmää tämän tilin käyttäjän kanssa
+ Palvelin ei tue tätä autentikointitapaa
+ Nimeä uudelleen
+ Sijainti:
+ Ylikirjoita
+ Kopioi linkki
+
+ Siirrä
+ Valitse
+ Tiedosto on jo kohdekansiossa.
+
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
index 90c54a9046..46d14ca2c2 100644
--- a/res/values-fr/strings.xml
+++ b/res/values-fr/strings.xml
@@ -12,10 +12,10 @@
DétailsEnvoyerTrier
- Trier par
+ Trier
- A-Z
- Plus récent - Plus ancien
+ par ordre alphabétique
+ du plus récent au plus ancien
@@ -23,12 +23,12 @@
PlusComptesGestion des comptes utilisateur
- Utilisation d\'un code de sécurité
- Protéger l\'accès aux données manipulées par le client
- Téléchargements instantanés d\'images
- Téléversement instantané des photos prises par la caméra
- Téléchargements instantanés de vidéos
- Téléversement instantané des vidéos prises par la caméra
+ Code de sécurité
+ Protéger l\'accès à l\'application
+ Envoi instantané des photos
+ Téléverser immédiatement les photos prises par la caméra
+ Envoi instantané des vidéos
+ Téléverser immédiatement les vidéos prises par la caméraActiver les logsUtilisé pour enregistrer les problèmes dans les logsHistorique des logs
@@ -38,11 +38,13 @@
Recommander à un amiCommentairesEmpreinte
+ Mémoriser l\'emplacement de partage
+ Mémoriser le dernier emplacement d\'uploadEssayez %1$s sur votre smartphone !J\'aimerais vous inviter à utiliser %1$s sur votre smartphone !
Téléchargez-le ici : %2$sVérifier le serveur
- Adresse du serveur https://...
+ Adresse du serveur https://…Nom d\'utilisateurMot de passeNouveau dans %1$s ?
@@ -58,9 +60,14 @@ Téléchargez-le ici : %2$s
Aucun contenu reçu. Rien à envoyer.%1$s n\'est pas autorisé à accéder au contenu partagéTéléversement
+ il y a quelques secondesIl n\'y a rien ici ! Envoyez donc quelque chose :)Chargement…Aucun fichier n\'est présent dans ce dossier.
+ dossier
+ dossiers
+ fichier
+ fichiersEffleurez un fichier pour afficher les informations complémentairesTaille :Type :
@@ -79,8 +86,8 @@ Téléchargez-le ici : %2$s
AnnulerSauvegarder & QuitterErreur
- Chargement ...
- Erreur Inconnue
+ Chargement…
+ Erreur inconnue À propos deChanger de mot de passeEffacer ce compte
@@ -88,7 +95,7 @@ Téléchargez-le ici : %2$s
Téléverser un fichier depuis…Nom du dossierTéléversement…
- Envoi du fichier %2$s en cours, %1$d%% effectués
+ Envoi du fichier %2$s : %1$d%% effectuésTéléversement réussiLe fichier %1$s a été envoyé avec succèsÉchec de l\'envoi
@@ -110,7 +117,7 @@ Téléchargez-le ici : %2$s
Des conflits ont été trouvés%1$d fichiers à garder synchronisés n\'ont put être synchroniséLa synchronisation des fichiers a échoué
- Le contenu de %1$d fichiers n\'a put être synchronisé (%2$d conflits)
+ Le contenu de %1$d fichiers n\'a pu être synchronisé (%2$d conflits)Certains fichiers locaux ont été oubliés%1$d fichiers du dossier %2$s n\'ont pas pu être copiés dansDepuis la version 1.3.16, les fichiers envoyé depuis ce périphérique sont copiés dans le dossier local %1$s pour éviter une perte de données lorsqu\'un même fichier est synchronisé avec plusieurs comptes.
@@ -122,8 +129,8 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
Tout déplacerTous les fichiers ont été déplacésCertains fichiers n\'ont pu être déplacés
- Local: %1$s
- Distant: %1$s
+ Local : %1$s
+ Distant : %1$sIl n\'y a pas assez de place disponible pour copier les fichiers sélectionnés dans le dossier %1$s. Voulez-vous quand même les déplacer ?Veuillez saisir votre code de sécuritéVeuillez saisir votre code de sécurité
@@ -137,24 +144,24 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
%1$s lecteur de musique%1$s (lecture)%1$s (chargement)
- %1$s pourcentage de lecture finie
+ Lecture de %1$s terminéeFichier média introuvable Aucun compte n\'a été trouvéLe fichier n\'est pas dans un compte valide
- Le codec de ce média n\'est pas supporté
+ Le codec de ce média n\'est pas pris en charge Le fichier média ne peut pas être luLe fichier média n\'est pas correctement encodéDélai dépassé pour la lecture du morceau.Le fichier média ne peut pas être diffusé
- Fichier média ne peut être joué avec le stock de media player
- taux %1$s erreurs de sécurité essayant de jouer
- Taux %1$s d\'erreurs de saisie essayant de jouer
- Taux %1$s d\'erreurs inattendues essayant de jouer
- Bouton de rem-bobinage
- Bouton de Lecture ou de Pause
+ Le fichier média ne peut être joué avec le lecteur standard
+ Erreur de sécurité à la lecture de %1$s
+ Erreur de lecture de fichier à la lecture de %1$s
+ Erreur inattendue à la lecture de %1$s
+ Bouton de rembobinage
+ Bouton de lecture ou de pauseBouton d\'avance rapide
- Demande d\'autorisation...
- Tentative de connexion …
+ Demande d\'autorisation…
+ Tentative de connexion…Pas de connexion réseauConnexion sécurisée non disponibleConnexion établie
@@ -166,22 +173,22 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
Impossible de trouver l\'hôteAucune instance du serveur n\'a été trouvéeLe serveur met trop longtemps à répondre
- Adresse invalide
+ Adresse non valideÉchec de l\'initialisation SSL
- Impossible de vérifier l\'identité du serveur SSL.
+ Impossible de vérifier l\'identité du serveur SSLLa version du serveur n\'est pas reconnueImpossible d\'établir la connexionConnexion sécurisée établieNom d\'utilisateur ou mot de passe incorrectÉchec d\'autorisationAccès refusé par le serveur d\'autorisation
- État inattendu ; veuillez entrer à nouveau l\'URL du serveur
+ État inattendu ; veuillez saisir à nouveau l\'URL du serveurVotre autorisation a expiré. Merci de vous authentifier à nouveauVeuillez saisir le mot de passe courantVotre session a expiré. Merci de vous reconnecter
- Connexion au serveur d\'authentification...
- Le serveur ne supporte pas cette méthode d\'authentification
- %1$s ne supporte pas les comptes multiples
+ Connexion au serveur d\'authentification…
+ Le serveur ne prend pas en charge pas cette méthode d\'authentification
+ %1$s ne prend pas en charge les comptes multiplesVotre serveur a retourné un identifiant d\'utilisateur incorrect. Veuillez prendre contact avec votre administrateur
Impossible de s\'authentifier sur ce serveur
@@ -191,25 +198,25 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
Voulez-vous vraiment supprimer %1$s ?Voulez-vous vraiment supprimer %1$s et son contenu ?Local seulement
- Le contenu local uniquement
+ Contenu local uniquementEffacer du serveur
- Les deux distant et local
+ Distant et localSuppression effectuée avec succèsSuppression impossibleEntrez un nouveau nomLa version locale ne peut être renommée, veuillez réessayer avec un nom différentRenommage impossibleLe fichier distant n\'a pu être vérifié
- Le contenu des fichiers est déjà synchronisé
+ Le contenu du fichier est déjà synchroniséLe dossier n\'a pas pu être crééCaractères interdits : / \\ < > : \" | ? *Le nom du fichier ne peut pas être videVeuillez patienter
- Problème inattendu ; veuillez essayer une autre app pour la sélection du fichier
+ Problème inattendu. Veuillez essayer une autre application pour la sélection du fichierAucun fichier sélectionné
- Envoyer un lien à…
- Connexion avec aAuth2.
- Connexion au serveur aAuth2...
+ Envoyer le lien vers…
+ Connexion avec oAuth2
+ Connexion au serveur oAuth2…L\'identité du site ne peut être vérifiée- Le certificat du serveur n\'est pas sûr- Le certificat du serveur a expiré
@@ -228,8 +235,8 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
Région :Localisation :Validité :
- De :
- À :
+ Du :
+ Au :Signature :Algorithme :Impossible d\'afficher le certificat.
@@ -242,7 +249,7 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
12:23:45Téléverser les images via une connexion WiFi uniquementTéléverser les vidéos via une connexion WiFi uniquement
- /TéléversementInstantané
+ /InstantanéConflit de mise à jourLe fichier distant %s n\'est pas synchronisé avec le fichier local. En choisissant de continuer, vous remplacerez le contenu de fichier sur le serveur.Garder les deux versions
@@ -251,8 +258,8 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
Prévisualisation de l\'imageCette image ne peut pas être affichée%1$s n\'a pas pu être copié dans le dossier local %2$s
- Chemin d\'accès pour le téléversement
- Désolé, le partage n\'est pas disponible sur votre serveur. Contactez votre administrateur, s\'il vous plait.
+ Répertoire d\'envoi
+ Désolé, le partage n\'est pas disponible sur votre serveur. Veuillez contacter votre administrateur.Impossible de partager. Vérifiez que le fichier est bien présentUne erreur est survenue lors de la tentative de partage de ce fichier ou répertoireImpossible de supprimer le partage. Vérifiez que le fichier est bien présent
@@ -279,18 +286,23 @@ Ci-dessous la liste des fichiers locaux, et les fichiers distants dans %5$s auxq
La connexion sécurisée est redirigée via une route non-sécurisée.JournauxEnvoyer l\'historique
- Journaux de l\'application Android ownCloud
+ Aucune application trouvée pour envoyer les logs. Installez une application de courriel !
+ Journaux de l\'application Android %1$sChargement des données...Authentification requiseMot de passe incorrectDéplacerIl n\'y a rien ici. Vous pouvez ajouter un dossier !
- Choisir
+ ChoisirImpossible de déplacer. Vérifiez que le fichier existeIl n\'est pas possible de déplacer un dossier vers un de ses descendantsLe fichier existe déjà dans le dossier de destinationUne erreur est survenue lors de la tentative de déplacement de ce fichier ou dossierde déplacer ce fichier
- Téléchargements instantanés
+ Envoi instantanéSécurité
+ Répertoire d\'envoi des vidéos
+ partagé(e)
+ avec vous
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-gl/strings.xml b/res/values-gl/strings.xml
index 3479d3596a..1740727354 100644
--- a/res/values-gl/strings.xml
+++ b/res/values-gl/strings.xml
@@ -11,14 +11,20 @@
PreferenciasDetallesEnviar
+ Ordenar
+ Ordenar por
+
+ A-Z
+ Máis novo - Máis antigo
+ XeralMáisContas
- Xestionar as contas
+ Administrar as contasPIN da aplicación
- Protexe o seu cliente
+ Protexa o seu clienteEnvío instantáneo de fotosEnviar instantaneamente as fotos tiradas coa cámaraEnvío instantáneo de vídeos
@@ -32,7 +38,11 @@
Recomendar a un amigoComentariosImpresión
+ Lembrar a localización da compartición
+ Lembrar a localización do envío da última comparticiónTente %1$s no seu teléfono intelixente!
+ Quero convidalo a empregar %1$s no seu teléfono intelixente!
+Descárgueo de aquí: %2$sComprobar o servidorEnderezo do servidor https://…Nome de usuario
@@ -50,9 +60,14 @@
Non se recibiu contido. Non hai nada para enviar.%1$s non ten permiso para acceder ao contido compartidoEnviando
+ segundos atrásAquí non hai nada. Envíe algo!Cargando...Non hai ficheiros neste cartafol.
+ cartafol
+ cartafoles
+ ficheiro
+ ficheirosPrema nun ficheiro para que amose a información adicional.Tamaño:Tipo:
@@ -105,6 +120,7 @@
Non foi posíbel sincronizar o contido de %1$d ficheiros (%2$d conflitos)Algúns ficheiros locais foron esquecidosNon é posíbel copiar %1$d ficheiros do cartafol %2$s en
+ Desde a versión 1.3.16, os ficheiros enviados desde este dispositivo cópianse no cartafol local %1$s para evitar a perda de datos cando se sincroniza un ficheiro con varias contas.\n\nPor mor deste cambio, todos os ficheiros enviados coas versións anteriores desta aplicación cópianse no cartafol %2$s. Porén, un erro impediu a finalización desta operación durante a sincronización da conta. É posíbel deixar o(s) ficheiro(s) como está(n) e retirar a ligazón a %3$s, ou mover o(s) ficheiro(s) ao directorio %1$s e manter a ligazón a %4$s.\n\nA seguir enuméranse o(s) ficheiro(s) local(is), e o(s) ficheiro(s) remoto(s) en %5$s co(s) que estaba(n) ligado(s).O cartafol %1$s xa non existeMover todoForon movidos todos os ficheiros
@@ -238,9 +254,12 @@
Vista previa da imaxeEsta imaxe non pode ser amosadaNon foi posíbel copiar %1$s no cartafol local %2$s
+ Enviar a rutaO seu servidor non ten activada a opción de compartir. Póñase en contacto co
administrador.
+ Non foi posíbel compartir. Comprobe que existe o ficheiroProduciuse un erro ao tentar compartir este ficheiro ou cartafol.
+ Non foi posíbel deixar de compartir. Comprobe que existe o ficheiroProduciuse un erro ao tentar deixar de compartir este ficheiro ou cartafolEnviarCopiar a ligazón
@@ -261,9 +280,26 @@
O ficheiro xa non está dispoñíbel no servidorContasEngadir unha conta
+ A conexión segura está a ser redirixida a unha ruta non segura.
+ Rexistros
+ Enviar o historial
+ Non se atopou unha aplicación para enviar os rexistros. Instale unha aplicación de correo!
+ Rexistros da aplicación %1$s Android
+ Cargando os datos...Requírese autenticaciónContrasinal incorrectoMover
- Escoller
+ Aquí non hai nada. Pode engadir un cartafol!
+ Escoller
+ Non é posíbel movelo. Comprobe se existe o ficheiro
+ Non é posíbel mover un cartafol cara un descendente
+ Este ficheiro xa existe no cartafol de destino
+ Produciuse un erro ao tentar mover este ficheiro ou cartafol.
+ para mover este ficheiro
+ Envío instantáneoSeguranza
+ Enviar a ruta do vídeo
+ compartido
+ con vostede
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-he/strings.xml b/res/values-he/strings.xml
index 9bc427b6ec..120ca55371 100644
--- a/res/values-he/strings.xml
+++ b/res/values-he/strings.xml
@@ -50,9 +50,14 @@
לא התקבל תוכן. אין מה להעלות.ל־%1$s אין הרשאה לגשת לתוכן המשותף שלךבהעלאה
+ שניותאין כאן שום דבר. אולי ברצונך להעלות משהו?בטעינה...אין קבצים בתיקייה זו:
+ תקיה
+ תקיות
+ קובץ
+ קבציםיש לגעת בקובץ כדי להציג פרטים נוספים.גודל:סוג:
@@ -262,6 +267,6 @@
הקובץ אינו זמין יותר על השרתחשבונותהוספת חשבון
- בחירה
+ בחירהאבטחה
diff --git a/res/values-hr/strings.xml b/res/values-hr/strings.xml
index 2c986dd59d..173239c46d 100644
--- a/res/values-hr/strings.xml
+++ b/res/values-hr/strings.xml
@@ -17,7 +17,12 @@
PovežiUčitajIzlaz
+ prije par sekundiNema ničega u ovoj mapi. Pošalji nešto!
+ mapa
+ mape
+ datoteka
+ datotekePreuzimanjePodijelite vezuDa
@@ -37,6 +42,6 @@
Korisnićki računiPotrebna autentikacijaPogrešna lozinka
- Izaberi
+ OdaberiteSigurnost
diff --git a/res/values-hu-rHU/strings.xml b/res/values-hu-rHU/strings.xml
index 18f000c9f2..e8d11114c1 100644
--- a/res/values-hu-rHU/strings.xml
+++ b/res/values-hu-rHU/strings.xml
@@ -50,9 +50,14 @@
Nem jött tartalom. Nincs mit feltölteni.%1$s nem jogosult a megosztott tartalom eléréséreFeltöltés
+ pár másodperceItt nincs semmi. Töltsön fel valamit!Betöltés...Nincs fájl ebben a mappában.
+ mappa
+ mappák
+ fájl
+ fájlokÉrintsen meg egy fájlt a további információkért.Méret:Tipus:
@@ -241,8 +246,12 @@
Bemásolva a vágólapraFiókok
+ Fiók hozzáadása
+ NaplókFelhasználóazonosítás szükségesHibás jelszó
- Válasszon
+ Mozgatás
+ VálasszonBiztonság
+ Megosztott
diff --git a/res/values-ia/strings.xml b/res/values-ia/strings.xml
index 9bcfedfdf1..1f8c5b4aa3 100644
--- a/res/values-ia/strings.xml
+++ b/res/values-ia/strings.xml
@@ -15,6 +15,7 @@
FilesConnecteIncargar
+ secundas passateNihil hic. Incarga alcun cosa!DiscargarCompartir ligamine
@@ -28,5 +29,5 @@
Nomine de dossierInvia
- Seliger
+ Seliger
diff --git a/res/values-id/strings.xml b/res/values-id/strings.xml
index 1ed5c03a7c..eb2df51efc 100644
--- a/res/values-id/strings.xml
+++ b/res/values-id/strings.xml
@@ -38,8 +38,10 @@
Rekomendasikan ke temanUmpan balikJejak
+ Ingat lokasi berbagi
+ Ingat lokasi unggahan berbagi terakhirCobalah %1$s pada ponsel cerdas Anda!
- Saya ingin mengajak Anda untuk menggunakan %1$s di ponsel cerdas Anda!\nUnduh gratis disini: %2$s
+ Saya mengajak Anda untuk menggunakan %1$s di ponsel cerdas Anda!\nUnduh gratis disini: %2$sPeriksa ServerAlamat server https://…Nama Pengguna
@@ -57,9 +59,14 @@
Tidak ada konten yang diterima. Tidak ada yang diunggah%1$s tidak diizinkan mengakses konten berbagiMengunggah
+ beberapa detik yang laluTidak ada apa-apa di sini. Unggah sesuatu!Memuat...Tidak ada satupun berkas dalam folder ini.
+ folder
+ folder-folder
+ berkas
+ berkas-berkasSentuh pada berkas untuk menampilkan informasi tambahanUkuran:Tipe:
@@ -112,7 +119,7 @@
Konten berkas %1$d tidak dapat disinkronasikan (%2$d konflik)Beberapa berkas lokal terlupakan%1$d berkas diluar folder %2$s tidak dapat disalin kedalamnya
- Sejak versi 1.3.16, berkas-berkas yang diunggah dari piranti ini akan disalin kedalam folder %1$s lokal untuk mencagah kehilangan data ketika berkas tunggal disinkronkan dengan akun lebih dari satu.\n\nAkibat perubahan ini, semua berkas yang diunggah di versi aplikasi sebelumnya disalin kedalam folder %2$s. Namun, sebuah kesalahan mencegah penyelesaian operasi ini saat sinkronisasi berlangsung akun. Anda boleh meninggalkan berkas seperti ini dan menghapus tautan ke %3$s atau memindahkan berkas kedalam folder %1$s dan membiarkan tautan ke %4$s.\n\nYang tampak dibawah adalah berkas lokal, dan berkas remote didalam %5$s yang dihubungkan dengannya.
+ Sejak versi 1.3.16, berkas-berkas yang diunggah dari piranti ini akan disalin kedalam folder %1$s lokal untuk mencagah kehilangan data saat berkas tunggal disinkronkan dengan akun lebih dari satu.\n\nAkibat perubahan ini, semua berkas yang diunggah di versi aplikasi sebelumnya disalin kedalam folder %2$s. Namun, sebuah kesalahan mencegah penyelesaian operasi ini saat sinkronisasi akun. Anda boleh meninggalkan berkas seperti ini dan menghapus tautan ke %3$s atau memindahkan berkas kedalam folder %1$s dan membiarkan tautan ke %4$s.\n\nYang tampak dibawah adalah berkas lokal, dan berkas remote didalam %5$s yang dihubungkan dengannya.Folder %1$s tidak ada lagiPindahkan semuaSemua berkas sudah dipindahkan
@@ -228,7 +235,7 @@
Tanda tangan:Algoritma:Sertifikat tidak dapat ditampilkan.
- - Tidak ada informasi tantang terror
+ - Tidak ada informasi tantang errorIni adalah placeholderplaceholder.txtGambar PNG
@@ -275,13 +282,11 @@
Sambungan aman dialihkan ke rute yang tidak aman.LogKirim Riwayat
- Log apl ownCloud Android
- Memuat data...Diperlukan otentikasiSandi salahPindahTdak ada apapun disini. Anda dapat menambahkan sebuah folder!
- Pilih
+ PilihTidak dapat memindahkan. Silakan periksa apakah berkas adaTidak mungkin untuk memindahkan folder kedalam turunannyaBerkas sudah ada didalam folder tujuan
@@ -289,4 +294,5 @@
untuk memindahkan berkas iniUnggah CepatKeamanan
+ dibagikan
diff --git a/res/values-is/strings.xml b/res/values-is/strings.xml
index 81109d515f..2811b4c779 100644
--- a/res/values-is/strings.xml
+++ b/res/values-is/strings.xml
@@ -12,6 +12,7 @@
LykilorðSkrárSenda inn
+ sek.Ekkert hér. Settu eitthvað inn!NiðurhalJá
@@ -26,5 +27,5 @@
FjarlægjaSenda
- Veldu
+ Veldu
diff --git a/res/values-it/strings.xml b/res/values-it/strings.xml
index 4a1c5bda4c..e121130bbb 100644
--- a/res/values-it/strings.xml
+++ b/res/values-it/strings.xml
@@ -35,9 +35,11 @@
Mostra i log registratiElimina la cronologiaAiuto
- Consiglia ad un amico
+ Consiglia a un amicoSegnalazioniImprint
+ Ricorda la posizione della condivisione
+ Ricorda l\'ultima posizione di caricamento della condivisioneProva %1$s sul tuo smartphone!Vorrei invitarti a usare %1$s sul tuo smartphone!\nScarica qui: %2$sVerifica server
@@ -57,9 +59,14 @@
Non è stato ricevuto alcun contenuto. Niente da caricare.%1$s non è abilitato ad accedere al contenuto condivisoCaricamento in corso
+ secondi faNon c\'è niente qui. Carica qualcosa!Caricamento in corso...Non ci sono file in questa cartella.
+ cartella
+ cartelle
+ file
+ fileTocca un file per visualizzare informazioni aggiuntive.Dimensione:Tipo:
@@ -74,7 +81,7 @@
NoOKAnnulla lo scaricamento
- Annulla invio
+ Annulla caricamentoAnnullaSalva ed esciErrore
@@ -242,7 +249,7 @@
Il file remoto %s non è sincronizzato con il file locale. Se continui, il contenuto del file sarà sostituito sul server.Mantieni entrambiSovrascrivi
- Non inviare
+ Non caricareAnteprima dell\'immagineQuesta immagine non può essere mostrata%1$s non può essere copiato nella cartella locale %2$s
@@ -275,13 +282,14 @@
La connessione sicura è rediretta su un percorso non sicuro.RegistriInvia cronologia
- Registri applicazione ownCloud Android
- Caricamento dati...
+ Non è stata trovata alcuna applicazione per l\'invio dei registri. Installa l\'applicazione mail!
+ Registri applicazione %1$s Android
+ Caricamento dati in corso...Autenticazione richiestaPassword errataSpostaQui non c\'è niente. Puoi aggiungere una cartella.
- Scegli
+ ScegliImpossibile spostare. Assicurati che il file esistaImpossibile spostare una cartella in una cartella inferioreIl file esiste già nella cartella di destinazione
@@ -289,4 +297,8 @@
per spostare questo fileCaricamenti istantaneiProtezione
+ Percorso di caricamento video
+ condiviso
+ con te
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-ja-rJP/strings.xml b/res/values-ja-rJP/strings.xml
index f57402efdb..ed5da42328 100644
--- a/res/values-ja-rJP/strings.xml
+++ b/res/values-ja-rJP/strings.xml
@@ -38,6 +38,8 @@
友達に推薦フィードバックインプリント
+ 共有場所を記憶する
+ 最後に共有アップロードした場所を記憶するスマートフォンで %1$s を試してください!スマートフォンで %1$s を利用してみませんか!
ここからダウンロードしてください: %2$s
@@ -58,9 +60,14 @@
コンテンツを受信しませんでした。アップロードするものはありません。%1$sで共有コンテンツへのアクセスが許可されていません。アップロード中
+ 数秒前ここには何もありません。何かアップロードしてください。読込中 ...このフォルダーにはファイルがありません。
+ フォルダ
+ フォルダ
+ ファイル
+ ファイルファイルをタップすると追加情報が表示されます。サイズ:タイプ:
@@ -276,13 +283,14 @@
暗号化接続は非暗号化接続にリダイレクトされました。ログログを送信
- ownCloud Android アプリログ
+ ログを送るアプリが見つかりませんでした。メールアプリをインストールして下さい。
+ %1$s アンドロイドアプリログ読込中 ...認証を必要とする無効なパスワード移動ファイルが有りません。フォルダを追加してください。
- 選択
+ 選択移動できません。ファイルがあるか確認してください。フォルダを子フォルダへ移動することはできません。そのファイルは、宛先フォルダに既に存在しています。
@@ -290,4 +298,8 @@
このファイルを移動自動アップロードセキュリティ
+ 動画のアップロードパス
+ 共有中
+ あなたと
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-ka-rGE/strings.xml b/res/values-ka-rGE/strings.xml
index 51ce611ff7..7836c23158 100644
--- a/res/values-ka-rGE/strings.xml
+++ b/res/values-ka-rGE/strings.xml
@@ -30,6 +30,7 @@
კონტენტი არ იქნა მიღებული. არაფერია ასატვირთად.%1$s–ი არ დაიშვება გაზიარებული კონტენტის სანახავადმიმდინარეობს ატვირთვა
+ წამის წინაქ არაფერი არ არის. ატვირთე რამე!დააჭირეთ ფაილს დამატებითი ინფორმაციის გამოსაჩენად.ზომა:
@@ -150,6 +151,6 @@
კოპირებულია კლიპბორდშიანგარიში
- არჩევა
+ არჩევაუსაფრთხოება
diff --git a/res/values-km/strings.xml b/res/values-km/strings.xml
index b31d4831e6..36bbbcf953 100644
--- a/res/values-km/strings.xml
+++ b/res/values-km/strings.xml
@@ -23,6 +23,7 @@
ដំឡើងចាក់ចេញកំពុងផ្ទុកឡើង
+ វិនាទីមុនគ្មានអ្វីនៅទីនេះទេ។ ផ្ទុកឡើងអ្វីមួយ!ចុចមួយលើឯកសារ ដើម្បីបង្ហាញព័ត៌មានបន្ថែម។ទំហំ៖
@@ -84,6 +85,6 @@
គណនីខុសពាក្យសម្ងាត់
- ជ្រើស
+ ជ្រើសសុវត្ថិភាព
diff --git a/res/values-kn/strings.xml b/res/values-kn/strings.xml
index 69623e19c3..f55428eb21 100644
--- a/res/values-kn/strings.xml
+++ b/res/values-kn/strings.xml
@@ -1,6 +1,35 @@
+ ಪೇರಿಸು
+ ಕಡತಗಳು
+ ಹೊಸ ಕಡತಕೋಶ
+ ಆಯ್ಕೆ
+ ಕಳುಹಿಸಿ
+ ಇನ್ನಷ್ಟು
+ ಸಹಾಯ
+ ಮುದ್ರೆ
+ ಬಳಕೆಯ ಹೆಸರು
+ ಗುಪ್ತ ಪದ
+ ಕಡತಗಳು
+ ಪೇರಿಸು
+ ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ
+ ಸಂಪರ್ಕ ಕೊಂಡಿಯನ್ನು ಹಂಚಿಕೊಳ್ಳಬಹುದು
+ ಹೌದು
+ ಇಲ್ಲ
+ ಸರಿ
+ ವರ್ಗಾವಣೆ ರದ್ದು ಮಾಡಿ
+ ರದ್ದು
+ ತಪ್ಪಾಗಿದೆ
+ ಗೊತ್ತಿಲ್ಲದ ದೋಷ
+ ಗುಪ್ತ ಪದವನ್ನು ಬದಲಾಯಿಸಿ
+ ಮರುಹೆಸರಿಸು
+ ತೆಗೆದುಹಾಕಿ
+ ಕಳುಹಿಸಿ
+ ದೃಢೀಕರಣ ಅಗತ್ಯವಿದೆ
+ ದುರ್ಬಲ ಗುಪ್ತಪದ
+ ಆಯ್ಕೆ
+ ಭದ್ರತೆ
diff --git a/res/values-ko/strings.xml b/res/values-ko/strings.xml
index 726c4d52d0..1cb3bec5d5 100644
--- a/res/values-ko/strings.xml
+++ b/res/values-ko/strings.xml
@@ -45,7 +45,12 @@
받은 콘텐츠가 없습니다. 업로드할 항목이 없습니다.%1$s에서 공유된 콘텐츠에 접근할 수 없습니다업로드 중
+ 초 전내용이 없습니다. 업로드할 수 있습니다!
+ 폴더
+ 폴더
+ 파일
+ 파일파일을 누르면 추가 정보가 표시됩니다.크기:종류:
@@ -218,6 +223,7 @@
계정인증 필요함잘못된 암호
- 선택
+ 선택보안
+ 공유됨
diff --git a/res/values-lb/strings.xml b/res/values-lb/strings.xml
index cde6e1a7e6..826c0a28cb 100644
--- a/res/values-lb/strings.xml
+++ b/res/values-lb/strings.xml
@@ -24,7 +24,12 @@
SetupErausgoenEroplueden
+ Sekonnen hirHei ass näischt. Lued eppes rop!
+ Dossier
+ Dossieren
+ Datei
+ DateienGréisst:Typ:Erstallt:
@@ -86,5 +91,5 @@
SchéckenAccounten
- Auswielen
+ Auswielen
diff --git a/res/values-lo/strings.xml b/res/values-lo/strings.xml
new file mode 100644
index 0000000000..69623e19c3
--- /dev/null
+++ b/res/values-lo/strings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
diff --git a/res/values-lt-rLT/strings.xml b/res/values-lt-rLT/strings.xml
index c9ac6e3566..b8c3bb15fa 100644
--- a/res/values-lt-rLT/strings.xml
+++ b/res/values-lt-rLT/strings.xml
@@ -11,6 +11,12 @@
NustatymaiInformacijaSiųsti
+ Rikiuoti
+ Rikiuoti pagal
+
+ A-Z
+ Naujausi - Seniausi
+ Bendras
@@ -32,6 +38,8 @@
Rekomenduoti drauguiAtsiliepimaiImprint
+ Prisiminti bendrinimo vietą
+ Prisiminti paskutinio bendrinimo įkėlimo vietąIšbandykite %1$s savo išmaniajame telefone!Patikrinti ServerįServerio adresas
@@ -50,9 +58,14 @@
nebuvo gauta turinio. Nėra įkeltino turinio%1$s neleidžiama prieiti prie turinio, kuriuo dalijamasiIšsiunčiama
+ prieš sekundęČia tuščia. Įkelkite ką nors!Įkeliama ...Šiame aplanke nėra failų.
+ katalogas
+ katalogai
+ failas
+ failaiPalieskite failą, kad parodyti papildomą informaciją.Dydis:Tipas:
@@ -235,6 +248,7 @@
PaskyrosNeteisingas slaptažodis
- Pasirinkite
+ PasirinkiteSaugumas
+ bendrinamas
diff --git a/res/values-lv/strings.xml b/res/values-lv/strings.xml
index 581b79cd42..c185f73f90 100644
--- a/res/values-lv/strings.xml
+++ b/res/values-lv/strings.xml
@@ -28,7 +28,12 @@
Nav saņemts nekāds saturs. Nav ko augšupielādēt.%1$s nedrīkst piekļūt koplietotajam saturamAugšupielādē
+ sekundes atpakaļTe vēl nekas nav. Rīkojies, sāc augšupielādēt!
+ mape
+ mapes
+ fails
+ failiUzsitiet uz datnes, lai redzētu papildinformāciju.Izmērs:Tips:
@@ -144,6 +149,6 @@
SūtītKonti
- Izvēlieties
+ IzvēlietiesDrošība
diff --git a/res/values-mk/strings.xml b/res/values-mk/strings.xml
index d8edec4134..23c3611984 100644
--- a/res/values-mk/strings.xml
+++ b/res/values-mk/strings.xml
@@ -28,7 +28,12 @@
Не е пронајдена сметкаНагодувањеПрекини
+ пред секундиТука нема ништо. Снимете нешто!
+ фолдер
+ фолдери
+ датотека
+ датотекиГолемина:Тип:Создадено:
@@ -123,6 +128,7 @@
СметкиПотребна е автентификацијаПогрешна лозинка
- Избери
+ ИзбериБезбедност
+ споделен
diff --git a/res/values-mn/strings.xml b/res/values-mn/strings.xml
index 69623e19c3..b4185fd3d4 100644
--- a/res/values-mn/strings.xml
+++ b/res/values-mn/strings.xml
@@ -1,6 +1,17 @@
+ Байршуулах
+ Файлууд
+ Тохиргоо
+ Ерөнхий
+ Хэрэглэгчийн нэр
+ Нууц үг
+ Файлууд
+ Байршуулах
+ Аккаунт үүсгэх
+ Устгах
+ Аюулгүй байдал
diff --git a/res/values-ms-rMY/strings.xml b/res/values-ms-rMY/strings.xml
index 808ab65d93..9e24a59179 100644
--- a/res/values-ms-rMY/strings.xml
+++ b/res/values-ms-rMY/strings.xml
@@ -20,6 +20,10 @@
BerhentiMemuatnaikTiada apa-apa di sini. Muat naik sesuatu!
+ direktori
+ direktori
+ fail
+ failSaizJenisTelah dibina:
diff --git a/res/values-my/strings.xml b/res/values-my/strings.xml
index 2d882a6bdd..b016f7957b 100644
--- a/res/values-my/strings.xml
+++ b/res/values-my/strings.xml
@@ -7,11 +7,12 @@
သုံးစွဲသူအမည်စကားဝှက်ဖိုင်များ
+ စက္ကန့်အနည်းငယ်ကဒေါင်းလုတ်ဟုတ်မဟုတ်ဘူးအိုကေပယ်ဖျက်မည်
- ရွေးချယ်
+ ရွေးချယ်
diff --git a/res/values-nb-rNO/strings.xml b/res/values-nb-rNO/strings.xml
index 2ad2386eea..326d5f317a 100644
--- a/res/values-nb-rNO/strings.xml
+++ b/res/values-nb-rNO/strings.xml
@@ -51,9 +51,14 @@
Intet innhold ble mottatt. Intet å laste opp.%1$s har ikke tilgang til det delte innholdetLaster opp
+ for få sekunder sidenIngenting her. Last opp noe!Laster...Det er ingen filer i denne mappen.
+ mappe
+ mapper
+ fil
+ filerTrykk på en fil for å vise ekstra informasjon.Størrelse:Type:
@@ -267,17 +272,16 @@
Legg til en kontoLoggerSend historikk
- logger for ownCloud Android app
- Laster data...Autentisering krevesFeil passordFlyttIngenting her. Du kan legge til en mappe!
- Velg
+ VelgKan ikke flytte. Sjekk om filen eksisterer.Det er ikke mulig å flytte en mappe inn i sin egen undermappeFilen finnes allerede i målmappenEn feil oppstod ved flytting av denne filen eller mappenå flytte denne filenSikkerhet
+ delt
diff --git a/res/values-nl/strings.xml b/res/values-nl/strings.xml
index ee3f87dbff..bbe89ba2ff 100644
--- a/res/values-nl/strings.xml
+++ b/res/values-nl/strings.xml
@@ -38,6 +38,8 @@
Aanbevelen bij een vriendFeedbackafdruk
+ Onthoud de share locatie
+ Onthoud de laatste upload locatieProbeer %1$s op uw smartphone!Uitnodiging om %1$s op uw smartphone uit te proberen!
Download hier: %2$s
@@ -58,9 +60,14 @@ Download hier: %2$sEr werd geen inhoud ontvangen. Niets om te uploaden.%1$s is niet toegestaan om toegang te hebben tot de publieke inhoudUploaden
+ seconden geledenEr bevindt zich hier niets. Upload een bestand!Laden ...Er staan geen bestanden in deze map.
+ map
+ mappen
+ bestand
+ bestandenDruk op een bestand om extra informatie weer te gevenGrootte:Type:
@@ -68,7 +75,7 @@ Download hier: %2$s
Aangepast:DownloadBestand verversen
- Bestand was hernoemt naar %1$s tijdens het uploaden
+ Bestand is tijdens het uploaden hernoemd naar %1$sDeel linkLink niet meer delenJa
@@ -117,7 +124,7 @@ Download hier: %2$s
Door deze aanpassing werden alle bestanden die met een eerdere versie zijn ge-uploaded gekopieerd naar de %2$s map. Maar een fout voorkwam het succesvol afronden van deze actie tijdens het synchroniseren. U kunt de/het bestand(en) laten staan zoals ze nu zijn en de link naar %3$s verwijderen, of u kunt de bestanden verplaatsen naar de %1$s map en de link naar %4$s laten staan.
Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar verwezen.
Map %1$s bestaat niet meer
- Alle verplaatsen
+ Alles verplaatsenAlle bestanden zijn verplaatstEen paar bestanden konden niet worden verplaatstLokaal: %1$s
@@ -278,13 +285,14 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
De beveiligde verbinding is omgeleid naar een onveilige route.LogsVerstuur geschiedenis
- ownCloud Android app logs
+ Geen app voor versturen van logs gevonden. Installeer de mail app!
+ %1$s Android app logsLaden data...Authenticatie vereistOnjuist wachtwoordverplaatsenNiets hier. U kunt een map toevoegen!
- Kies
+ KiesKan niet verplaatsen. Ga na of het bestand wel bestaatDe map kan niet naar een onderliggende map worden verplaatstHet bestand bestaat al in de doelmap
@@ -292,4 +300,8 @@ Hieronder staan de lokale bestanden en de externe bestanden in %5$s waar ze naar
om dit bestand te verplaatsenDirecte uploadsBeveiliging
+ Upload Video Pad
+ gedeeld
+ met u
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-nn-rNO/strings.xml b/res/values-nn-rNO/strings.xml
index d9a37a8390..930ff33823 100644
--- a/res/values-nn-rNO/strings.xml
+++ b/res/values-nn-rNO/strings.xml
@@ -46,6 +46,7 @@
Inga innhald å lasta oppMottok ikkje noko innhald. Ingenting å lasta opp.Lastar opp
+ sekund sidanIngenting her. Last noko opp!Trykk på ei fil for å visa meir informasjon.Storleik:
@@ -130,6 +131,6 @@
KontoarFeil passord
- Vel
+ VelTryggleik
diff --git a/res/values-oc/strings.xml b/res/values-oc/strings.xml
index 0d3a45ba04..5d11e00f6a 100644
--- a/res/values-oc/strings.xml
+++ b/res/values-oc/strings.xml
@@ -19,7 +19,12 @@
ConfiguracionQuitaAl amontcargar
+ segonda aPas res dedins. Amontcarga qualquaren
+ Dorsièr
+ Dorsièrs
+ fichièr
+ fichièrsTalha :Tipe :Creat :
@@ -43,5 +48,5 @@
Torna nomenarComptes
- Causís
+ Causís
diff --git a/res/values-pa/strings.xml b/res/values-pa/strings.xml
index b84b05762e..05d612dad0 100644
--- a/res/values-pa/strings.xml
+++ b/res/values-pa/strings.xml
@@ -29,6 +29,7 @@
ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਕੋਈ ਸਮੱਗਰੀ ਨਹੀਂਕੋਈ ਸਮੱਗਰੀ ਨਹੀਂ ਮਿਲੀ। ਅੱਪਲੋਡ ਕਰਨ ਲਈ ਕੁਝ ਨਹੀਂ ਹੈ।ਅੱਪਲੋਡ ਕੀਤਾ ਜਾ ਰਿਹਾ ਹੈ
+ ਸਕਿੰਟ ਪਹਿਲਾਂਹੋਰ ਜਾਣਕਾਰੀ ਵੇਖਣ ਲਈ ਫਾਇਲ ਉੱਤੇ ਛੂਹੋਆਕਾਰ:ਕਿਸਮ:
@@ -121,5 +122,5 @@
ਭੇਜੋਅਕਾਊਂਟ
- ਚੁਣੋ
+ ਚੁਣੋ
diff --git a/res/values-pl/strings.xml b/res/values-pl/strings.xml
index 0e84c6810b..cc0f5b444d 100644
--- a/res/values-pl/strings.xml
+++ b/res/values-pl/strings.xml
@@ -38,6 +38,7 @@
Poleć znajomemuWsparcieStopka
+ Zapamiętaj położenie udostępnieniaWypróbuj %1$s na swoim smartphonie!Chciałbym zaprosić Cię do używania %1$s na swoim smartfonie!\nŚciągnij tutaj: %2$sSprawdź serwer
@@ -57,9 +58,14 @@
Nie otrzymano danych. Nie ma nic do wysłania.%1$s nie ma dostępu do udostępnionych treściWysyłanie
+ sekund temuPusto. Wyślij coś!Ładowanie...Nie ma plików w tym folderze.
+ folder
+ foldery
+ plik
+ plikiDotknij plik aby wyświetlić dodatkowe informacjeRozmiar:Typ:
@@ -275,13 +281,13 @@
Bezpieczne połączenie jest przekierowywane przez niezabezpieczone trasy.LogiWyślij historię
- Logi aplikacji ownCloud Android
+ %1$s Logi aplikacji AndroidŁaduję dane...Wymagana autoryzacjaZłe hasłoPrzenieśNic tu nie ma. Możesz dodać folder!
- Wybierz
+ WybierzNie można przenieść. Proszę sprawdzić, czy plik istniejeNie jest możliwe przeniesienie folderu do potomkaPlik istnieje już w folderze docelowym
@@ -289,4 +295,6 @@
aby przenieść ten plikAutomatyczne wysyłanieBezpieczeństwo
+ Katalog wysyłania dla wideo
+ współdzielone
diff --git a/res/values-pt-rBR/strings.xml b/res/values-pt-rBR/strings.xml
index ea2e5971bb..7e02b56a3e 100644
--- a/res/values-pt-rBR/strings.xml
+++ b/res/values-pt-rBR/strings.xml
@@ -38,6 +38,8 @@
Recomendar a um amigoFeedbackImprint
+ Lembre-se do local de compartilhamento
+ Lembrar do último local de envio de compartilhamentoTentar %1$s em seu smartfone!Gostaria de convida-lo a usar %1$s em seu smartphone!\nBaixe aqui: %2$sVerificar Servidor
@@ -57,9 +59,14 @@
Nenhum conteúdo foi recebido. Nada para enviar.%1$s não é permitido acessar o conteúdo compartilhadoEnviando
+ segundos atrásNada aqui. Envie alguma coisa!Carregando...Não existe nenhum arquivo nesta pasta.
+ pasta
+ pastas
+ arquivo
+ arquivosToque em um arquivo para mostrar informações adicionais.Tamanho:Tipo:
@@ -275,13 +282,14 @@
Conexão segura esta redirecionada para uma rota não segura.LogsEnviar Histórico
- Logs do aplicativo ownCloud Android
- Carregamento de dados...
+ Não foi encontrado nenhum app para envio de logs. Instale o mail app!
+ %1$s logs do Android app
+ Carregando dados...Autenticação é requeridaSenha incorretaMoverNada aqui. Você pode adicionar uma pasta!
- Escolher
+ EscolherNão é possível mover. Por favor verifique se o arquivo existeNão é possível mover a pasta para uma descendenteO arquivo já existe na pasta de destino
@@ -289,4 +297,8 @@
mover este arquivoEnvios InstantâneosSegurança
+ Enviar o Caminho do Vídeo
+ compartilhado
+ com você
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-pt-rPT/strings.xml b/res/values-pt-rPT/strings.xml
index 1012a1676d..9a37c42f55 100644
--- a/res/values-pt-rPT/strings.xml
+++ b/res/values-pt-rPT/strings.xml
@@ -1,10 +1,10 @@
- %1$s Aplicação(ões) Android
+ %1$s App(s) Androidversão %1$s
- Actualizar
+ Atualizar contaEnviar
- Conteúdo das outras apps
+ Conteúdo de outras appsFicheirosAbrir comNova Pasta
@@ -22,23 +22,25 @@
GeralMaisContas
- Gerir contas
- App PIN
+ Gerir Contas
+ PIN da AppProteja o seu cliente
- Transferência instantânea de imagens
- Transferência instantânea de imagens tiradas com câmara
+ Envios instantâneos de imagens
+ Envio instantâneo de imagens tiradas com a câmaraEnvios instantâneos dos vídeos
- Carregamento instantâneo de vídeos registados com a camera
- Ativar Rastreio
- Isto é usado para registar problemas
- Historico do rastreio
+ Envio instantâneo de vídeos gravados com a câmara
+ Ativar Registo de Eventos
+ Isto é utilizado para registar problemas
+ Histórico dos RegistosIsto mostra os registos guardados
- Eliminar Histórico
+ Apagar HistóricoAjudaRecomendar a um amigo
- Resposta
+ FeedbackImprint
- Experimente %1$s no seu smartphone!
+ Lembrar localização de partilha
+ Lembrar da última localização de envio de partilha
+ Test %1$s no seu smartphone!Quero convidar-te a usares %1$s no teu smartphone!\nFaz download aqui: %2$sVerificar ServidorEndereço do servidor https://..
@@ -49,63 +51,68 @@
LigarEnviarEscolha a pasta de envio:
- Nenhuma conta encontrada
- Não tem nenhuma conta %1$s no seu dispositivo. Configure uma conta.
+ A conta não foi encontrada
+ Não tem nenhuma conta %1$s no seu dispositivo. Por favor, configure primeiro uma conta.ConfigurarSair
- Sem conteúdo para carregar
+ Sem conteúdo para enviarNão foi recebido nenhum conteúdo. Nada para enviar.O %1$s não está autorizado a aceder aos ficheiro partilhados.A enviar
- Vazio. Envie alguma coisa!
- A carregar...
+ segundos atrás
+ Aqui não existe nada. Envie alguma coisa!
+ A carregar ...Não existem ficheiros nesta pasta.
- Clique no ficheiro para visualizar informação adicional.
+ pasta
+ pastas
+ ficheiro
+ ficheiros
+ Toque num ficheiro para visualizar a informação adicional.Tamanho:Tipo:Criado:Modificado:
- Descarregar
+ TransferirAtualizar ficheiro
- O nome do ficheiro foi alterado para %1$s durante o envio.
- Partilhar o link
+ O ficheiro foi renomeado para %1$s durante o envio.
+ Partilhar a hiperligaçãoDeixar de partilhar a ligaçãoSimNão
- OK
+ ACEITARCancelar a transferência
- Cancelar envio
+ Cancelar o envioCancelarGuardar & SairErro
- A carregar...
+ A carregar ...Erro DesconhecidoSobre
- Alterar palavra-chave
+ Alterar senhaApagar contaCriar conta
- Carregar de...
+ Enviar de ...Nome da pasta
- A carregar...
- A enviar %1$d%% , %2$s completo.
- Carregado com sucesso
- %1$s foi carregado com sucesso
- Carregamento falhou
+ A enviar ...
+ %1$d%% A enviar %2$s
+ Envio bem sucedido
+ %1$s foi enviado com sucesso
+ Não foi possível enviarO envio do ficheiro %1$s não foi concluído.Falha no carregamento, é necessário fazer novo login
- A descarregar...
- %1$d%% A decarregar %2$s
- Descarga com sucesso
+ A transferir ...
+ %1$d%% A transferir %2$s
+ Transferência bem sucedida%1$s foi descarregado com sucessoDescarga falhouO descarregamento %1$s não foi possível descarregar
- Não transferido
- Falha no download, é necessário fazer login
+ Ainda não foi transferido
+ Não foi possível transferir, tem de iniciar a sessão novamenteEscolha a contaFalhou a sincronizaçãoFalhou a sincronização, necessita fazer um novo loginNão foi possível sincronizar %1$s
- Password inválida para %1$s
+ Senha inválida para %1$sForam encontrados conflitosNão foi possível sincronizar o ficheiro %1$dFalhou a operação de manter os ficheiros sincronizados
@@ -115,23 +122,23 @@
Tal como na versão 1.3.16, os ficheiros que foram enviados deste dispositivo são copiados para a pasta local %1$s para prevenir perda de dados quando um ficheiro é partilhado com várias contas.\n\nDevido a esta alteração, todos os ficheiros das versões anteriores foram copiados para a pasta %2$s. No entanto, um erro impediu a conclusão deste processo durante a sincronização da conta. Pode deixar o ficheiro(s) como estão e remover o link para %3$s, ou mover o(s) ficheiro(s) para a pasta %1$s e guardar o link para %4$s. \n\nEm baixo estão listados ficheiro(s) locais e remotos em %5$s que foram ligados.A pasta %1$s já não existeMover Todos
- Todos os ficheiros foram movidos
+ Foram movidos todos os ficheirosNão foi possível mover alguns ficheirosLocal: %1$sRemoto: %1$sNão existe espaço disponível para copiar o ficheiro seleccionado para a pasta %1$s . Em vez disso deseja mover o ficheiro?
- Por favor escreva o PIN da Aplicação
- Escreva o PIN da Aplicação
- O PIN vai ser pedido todas as vezes que iniciar a aplicação.
- Volte a inserir o App PIN, por favor
- Remover o PIN do aplicação.
+ Por favor, insira o PIN da App
+ Insira o PIN da App
+ O PIN será pedido sempre que a app seja iniciada.
+ Por favor, reinsira o PIN da App
+ Remover o seu PIN da AppOs códigos PIN introduzidos não são iguais.Código PIN Incorrecto.PIN da aplicação removidoPIN da aplicação guardado%1$s leitor de música
- A tocar: %1$s
- %1$s (A carregar)
+ %1$s (a reproduzir)
+ %1$s (a carregar)%1$s leitura terminadaNão foi encontrado nenhum ficheiro de médiaNão foi fornecida conta
@@ -212,12 +219,12 @@
Quer confiar neste certificado de qualquer maneira?O certificado não pôde ser guardadoDetalhes
- Esconder
+ OcultarEmitido para:Emitido por:Nome comum.Organização:
- Unidade organizaconal.
+ Unidade organizacional.País:Estado:Localização:
@@ -226,33 +233,33 @@
Para:Assinatura:Algoritmo
- O certificado não pôde ser mostrado.
- - Nenhuma informação acerca do erro
+ Não foi possível mostrar o certificado.
+ - Nenhuma informação sobre o erroIsto é uma variável.placeholder.txtImagem PNG389 KB
- 2012/05/18 12:23 PM
+ 2012/05/18 12:2312:23:45
- Enviar fotografias apenas via WiFi
- Enviar videos apenas por WiFi
- /Upload-Instantâneo
- Conflito na actualização
+ Só enviar as fotografias via wi-fi
+ Só enviar os vídeos por wi-fi
+ /Envio Instantâneo
+ Conflito na atualizaçãoO ficheiro remoto %s não está sincronizado com o ficheiro local. Se continuar ira substituir o ficheiro no servidor.
- Manter os dois
- Sobrepor
+ Manter ambos
+ SubstituirNão enviar.
- Pré-Visualização da imagem
+ Pré-Visualizar imagemEsta imagem não pode ser mostradaNão foi possível copiar %1$s para a pasta local %2$s
- Caminho de Upload
+ Caminho de \'A Enviar\'Lamentamos mas não é possível partilhar através do seu servidor. Por favor contacte o seu administrador.Não é possivel partilhar. Por favor verifique se o ficheiro existeOcorreu um erro enquanto tentava partilhar este ficheiro ou pastaNão é possível retirar a partilha. Verifique se o ficheiro existeOcorreu um erro enquanto retirava a partilha deste ficheiro ou pastaEnviar
- Copiar ligação
+ Copiar hiperligaçãoCopiado para a área de transferênciaErro crítico: não é possível executar as operaçõesOcorreu um erro durante a ligação ao servidos.
@@ -260,31 +267,34 @@
Ocorreu um erro durante a ligação ao servidor, não foi possível realizar a operação.A operação não foi concluída, o servidor está inacessível.
- Você não tem permissão %s
+ Não tem permissão %spara renomear este ficheiro
- para eliminar este ficheiro
+ para apagar este ficheiropara partilhar este ficheiro
- para eliminar a partilha deste ficheiro
+ para cancelar a partilha deste ficheiropara criar o ficheiro
- para carregar dentro desta pasta
+ para enviar nesta pastaO ficheiro não está mais disponível no servidorContasAdicionar contaLigação segura é redireccionada para um caminho inseguro.
- Logs
+ Registos de AlteraçõesEnviar Histórico
- Logs da app ownCloud Android
+ Não foi encontrado o aplicativo para envio de registos . Instale app e-mail!
+ %1$s Android Aplicação de RegistyosA carregar os dados...Autenticação necessária
- Password errada
+ Palavra-passe erradaMoverNão está aqui nada. Pode adicionar uma pasta!
- Escolha
- Não é possível mover. Verifique se o ficheiro existe
+ Escolher
+ Não é possível mover. Por favor, verifique se o ficheiro existeNão é possível mover esta pasta deste modoO ficheiro já existe na pasta de destino
- Um erro ocorreu ao tentar mover este ficheiro ou pasta
+ Ocorreu um ocorreu quando tentava mover este ficheiro ou pastapara mover este ficheiro
- Uploads Instantâneos
+ Envios InstantâneosSegurança
+ Envio do Caminho do Vídeo
+ partilhado
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 2b05201248..bb03b02439 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -52,9 +52,14 @@
Nu a fost primit nici un conţinut .Nu exista nimic de încărcat .%1$s nu este permis sa acceseze conținutul sharedÎncărcare
+ secunde în urmăNimic aici. Încarcă ceva!Se incarcaIn acest folder nu sunt fisiere.
+ director
+ directoare
+ fișier
+ fișiereSelectati un fisier pentru a afisa informatia aditionalaMărime:Tip:
@@ -262,12 +267,11 @@
Fișierul nu mai este disponibil pe serverConturiAdaugă cont
- Se încarcă datele...Autentificare necesarăParolă greșităMutareNu este nimic aici. Poți adăuga un director!
- Alege
+ Alegepentru a muta acest fișierSecuritate
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 326f51a932..28e01e839d 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -11,6 +11,12 @@
НастройкиПодробноОтправить
+ Упорядочить
+ Упорядочить по
+
+ А-Я
+ Новые - Старые
+ Основные
@@ -32,6 +38,8 @@
Рекомендовать другуОбратная связьШтамп
+ Запомнить расположение публикации
+ Запомнить расположение загрузки последней публикацииПопробуйте %1$s на вашем смартфоне!Хочу предложить вам использовать %1$s на смартфоне!\nЗагрузить можно здесь: %2$s
@@ -52,9 +60,14 @@
Содержимое не получено. Нечего загружать.%1$s не имеет доступа к опубликованным даннымЗагрузка
+ только чтоЗдесь ничего нет. Загрузите что-нибудь!Загрузка...В данной папке нет файлов.
+ папка
+ папки
+ файл
+ файлыНажмите на файл для отображения дополнительной информации.Размер:Тип:
@@ -241,6 +254,7 @@
ПредпросмотрЭто изображение не может быть отображено%1$s не возможно скопировать в локальною папку %2$s
+ Путь для загрузкиК сожалению, на вашем сервере отключен совместный доступ. Пожалуйста, свяжитесь с вашим администратором.Невозможно добавить в общий доступ. Пожалуйста, проверьте, существует ли файлОшибка предоставления общего доступа к этому файлу или каталогу
@@ -265,19 +279,25 @@
Этот файл больше недоступен на сервереУчётные записиДобавить учетную запись
+ Защищённое соединение перенаправлено по незащищённому маршрутуЖурналыИстория Отправлений
- Журналы Андроид-приложения ownCloud
- Загружаются данные...
+ Приложение для отправки журнала не найдено. Установите почтовое приложение!
+ Журналы приложения %1$s для Android
+ Загрузка данных…Требуется аутентификация Неправильный парольПереместитьЗдесь ничего нет. Вы можете добавить папку!
- Выбрать
+ ВыбратьНевозможно переместить. Пожалуйста, проверьте, существует ли файлНевозможно переместить папку в папку-потомокФайл уже существует в папке назначенияПроизошла ошибка при попытке перемещения этого файла или папкипереместить этот файл
+ Мгновенные загрузкиБезопасность
+ Путь для загрузки Видео
+ Общие
+ с вами
diff --git a/res/values-si-rLK/strings.xml b/res/values-si-rLK/strings.xml
index 4a3e9e8156..6eeb4f080c 100644
--- a/res/values-si-rLK/strings.xml
+++ b/res/values-si-rLK/strings.xml
@@ -21,7 +21,12 @@
ස්ථාපනයනික්මෙන්නඋඩුගතවේ
+ තත්පරයන්ට පෙරමෙහි කිසිවක් නොමැත. යමක් උඩුගත කරන්න
+ ෆෝල්ඩරය
+ ෆෝල්ඩර
+ ගොනුව
+ ගොනුවැඩි විස්තර සඳහා ගොනුවක් ස්පර්ෂ කරන්නවිශාලත්වය:ගණය:
@@ -75,5 +80,5 @@
සඟවන්නගිණුම්
- තෝරන්න
+ තෝරන්න
diff --git a/res/values-sk-rSK/strings.xml b/res/values-sk-rSK/strings.xml
index 2ab0c28021..4416fd41d8 100644
--- a/res/values-sk-rSK/strings.xml
+++ b/res/values-sk-rSK/strings.xml
@@ -11,6 +11,12 @@
NastaveniaPodrobnostiOdoslať
+ Zoradiť
+ Zoradiť podľa
+
+ A-Z
+ Najnovšie - Najstaršie
+ Všeobecné
@@ -32,7 +38,10 @@
Doporučiť známemuSpätná väzbaPodmienky používania
+ Zapamätať umiestnenie zdieľania
+ Zapamätať posledné umiestnenie pre nahranie zdieľaných súborovSkúste %1$s na vašom telefóne!
+ Chcel by som vám odporučiť %1$s na vašom smartfóne!\nSťahujte tu: %2$sSkontrolovať ServerAdresa servera https://...Používateľské meno
@@ -50,9 +59,14 @@
Nedodaný žiaden obsah. Nič na odoslanie.%1$s nemá práva pre prístup k zdieľanému obsahuNahrávanie
+ pred sekundamiŽiadny súbor. Nahrajte niečo!Nahráva sa...V tomto priečinku nie sú žiadne súbory.
+ priečinok
+ priečinky
+ súbor
+ súboryViac informácií získate kliknutím na súbor.Veľkosť:Typ:
@@ -105,6 +119,7 @@
Obsah %1$d súborov nemohol byť synchronizovaný (%2$d konfliktov)Niektoré lokálne súbory boli zabudnuté%1$d súborov z %2$s priečinkov sa nepodarilo skopírovať do
+ Od verzie 1.3.16 sú súbory nahrané z tohoto zariadenia kopírované do lokálneho priečinka %1$s, aby sa zabránilo strate dát pri synchronizácii jedného súboru s viacerými účtami.\n\nVšetky súbory nahraté predchádzajúcimi verziami aplikácie boli z tohoto dôvodu prekopírované do priečinka %2$s. Bohužiaľ sa objavila chyba zabraňujúca dokončeniu tejto operácie v priebehu synchronizácie účtu. Buď môžete súbor(y) ponechať ako sú a odobrať odkaz z priečinka %3$s, alebo presunúť súbor(y) do priečinka %1$s a zachovať odkaz na %4$s.\n\nNižšie je uvedený lokálny súbor(y) a vzdialený súbor(y) v %5$s, s ktorým je prepojený.Priečinok %1$s už existujePremiestniť všetkoVšetky súbory boli premiestnené
@@ -238,9 +253,12 @@
Ukážka obrazuObrázok nemožno zobraziť%1$s nemožno skopírovať do lokálneho priečinka %2$s
+ Cesta pre nahrávanieJe nám to ľúto, ale zdieľanie nie je na vašom serveri povolené. Prosím kontaktujte vášho
administrátora.
+ Nemožno zdieľať. Skontrolujte, či súbor existujePri pokuse o zdieľanie tohto súboru alebo priečinka došlo k chybe
+ Nemožno ukončiť zdieľanie. Skontrolujte, či súbor existujePri pokuse zrušiť zdieľanie tohto súboru alebo priečinka došlo k chybeOdoslaťKopíruj odkaz
@@ -261,9 +279,20 @@
Súbor už na serveri nie je dostupnýÚčtyPridať účet
+ Zabezpečené pripojenie je presmerované na nezabezpečenú trasu.
+ Logy
+ Odoslať históriuVyžaduje sa overenieNesprávne hesloPresunúť
- Vybrať
+ Nič tu nie je. Pridajte priečinok!
+ Vybrať
+ Nemožno presunúť. Skontrolujte, či súbor existuje
+ Priečinok nemožno presunúť do vlastného podpriečinka
+ Súbor už v cieľovom priečinku existuje
+ Pri pokuse o presun tohoto súboru alebo priečinka nastala chyba
+ pre presun tohoto súboru
+ Okamžité nahratieZabezpečenie
+ zdieľané
diff --git a/res/values-sl/strings.xml b/res/values-sl/strings.xml
index b4d466630d..7f1a625813 100644
--- a/res/values-sl/strings.xml
+++ b/res/values-sl/strings.xml
@@ -38,6 +38,8 @@
Priporoči prijateljemOdzivNatis
+ Zapomni si mesto souporabe
+ Zapomni si zadnje mesto za pošiljanje v oblakPreizkusi %1$s na pametnem telefonu!Želim ti predstaviti %1$s na pametnem telefonu!\nPrejmeš ga lahko na: %2$sPreveri strežnik
@@ -57,9 +59,14 @@
Ni prejete vsebine. Ni datotek za pošiljanje.Oblak %1$s nima nastavljenih dovoljenj za dostop do vsebine v souporabiPošiljanje
+ pred nekaj sekundamiTukaj še ni ničesar. Najprej je treba datoteke poslati v oblak!Poteka nalaganje ...V tej mapi ni datotek.
+ mapa
+ mape
+ datoteka
+ datotekePritisnite na datoteko za prikaz dodatnih podrobnosti.Velikost:Vrsta:
@@ -275,13 +282,14 @@
Varna povezava je preusmerjena preko ne-varne poti.DnevnikPošlji zgodovino
- Dnevnik programa ownCloud
+ Ni nameščenega poštnega programa za pošiljanje dnevnikov.
+ %1$s dnevniki programaPoteka nalaganje podatkov ...Zahtevana je overitevNapačno gesloPremakniNi vsebine in datotek. Lahko ustvarite na primer mapo.
- Izbor
+ IzborNi mogoče premakniti datoteke. Preverite, ali obstaja.Ni mogoče premakniti mape v podrejeno mapo.Datoteka v ciljni mapi že obstaja.
@@ -289,4 +297,8 @@
med premikanjem datotekeTakojšnje pošiljanje v oblakVarnost
+ Pot videa za pošiljanje
+ v souporabi
+ z vami
+ %1$s %2$s >>%3$s<< %4$s
diff --git a/res/values-sq/strings.xml b/res/values-sq/strings.xml
index 798c4b3960..7c1b7ffcb7 100644
--- a/res/values-sq/strings.xml
+++ b/res/values-sq/strings.xml
@@ -24,6 +24,7 @@
NdërtoDilNgarko
+ sekonda më parëKëtu nuk ka asgje. Ngarko dickaTrokitje e lehtë në një dokument për të shfaqur informacion shtesë.Dimensioni:
@@ -31,6 +32,7 @@
Krijuar:Modifikuar:Shkarko
+ Ndaje lidhjenPoJoOk
@@ -73,6 +75,7 @@
LlogaritFjalëkalim i gabuar
- Zgjidh
+ ZgjidhSiguria
+ Ndarë
diff --git a/res/values-sr-rSP/strings.xml b/res/values-sr-rSP/strings.xml
index daac3e01bf..b5d14f1660 100644
--- a/res/values-sr-rSP/strings.xml
+++ b/res/values-sr-rSP/strings.xml
@@ -17,6 +17,7 @@
PošaljiNalog nije nađenŠalje se
+ Pre par sekundiOvde nema ničeg. Pošaljite nešto!Veličina:Tip:
@@ -56,5 +57,5 @@
PošaljiNalozi
- Izaberi
+ Izaberi
diff --git a/res/values-sr/strings.xml b/res/values-sr/strings.xml
index 5aadabb9d2..b9235ad783 100644
--- a/res/values-sr/strings.xml
+++ b/res/values-sr/strings.xml
@@ -22,6 +22,7 @@
Нема садржаја за отпремањеСадржај није примљен. Нема ништа да се отпреми.Отпремање
+ пре неколико секундиОвде нема ничег. Отпремите нешто!Додирните датотеку ради приказа додатних информација.Величина:
@@ -110,6 +111,6 @@
ПошаљиНалози
- Одабери
+ ОдабериБезбедност
diff --git a/res/values-sv/strings.xml b/res/values-sv/strings.xml
index a649518b99..4b690aff3f 100644
--- a/res/values-sv/strings.xml
+++ b/res/values-sv/strings.xml
@@ -51,9 +51,14 @@
Inget innehåll mottaget. Inget att ladda upp.%1$s har inte rättighet till det delade innehålletLaddar upp
+ sekunder sedanIngenting här. Ladda upp något!Laddar...Det finns inga filer i den här mappen.
+ mapp
+ mappar
+ fil
+ filerPeka på en fil för att visa mer information.Storlek:Typ:
@@ -262,13 +267,13 @@
Filen är inte längre tillgänglig på servernKontonLägg till konto
- Laddar data...Autentisering krävsFel lösenordFlyttaIngenting här. Du kan skapa en mapp!
- Välj
+ VäljGick inte att flytta. Vänligen kontrollera att filen existeraratt flytta den här filenSäkerhet
+ delad
diff --git a/res/values-ta-rLK/strings.xml b/res/values-ta-rLK/strings.xml
index 3c3e167a19..42fc1b6dac 100644
--- a/res/values-ta-rLK/strings.xml
+++ b/res/values-ta-rLK/strings.xml
@@ -27,6 +27,7 @@
ஒரு உள்ளடக்கமும் பெறப்படவில்லை. பதிவேற்றுவதற்கு ஒன்றும் இல்லைபகிரப்பட்ட உள்ளடக்ககங்களை அணுகுவதற்கு %1$s அனுமதிக்கமாட்டாதுபதிவேற்றல்
+ செக்கன்களுக்கு முன்இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!மேலதிக தகவல்களை காட்சிப்படுத்துவதற்கு கோப்பின் மேல் தட்டுக.அளவு:
@@ -138,5 +139,5 @@
பதிவேற்ற வேண்டாம்கணக்குகள்
- தெரிவுசெய்க
+ தெரிவுசெய்க
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 834de750c4..fdebfa7443 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -9,6 +9,7 @@
సహాయంవాడుకరి పేరుసంకేతపదం
+ క్షణాల క్రితంఅవునుకాదుసరే
diff --git a/res/values-th-rTH/strings.xml b/res/values-th-rTH/strings.xml
index 6ed3f19c9a..0f2a409ec7 100644
--- a/res/values-th-rTH/strings.xml
+++ b/res/values-th-rTH/strings.xml
@@ -29,7 +29,12 @@
ยังไม่ได้รับเนื้อหา ไม่มีอะไรให้ต้องอัพโหลด%1$s ไม่อนุญาตให้เข้าถึงเนื้อหาที่ถูกแชร์ไว้กำลังอัพโหลด
+ วินาที ก่อนหน้านี้ยังไม่มีไฟล์ใดๆอยู่ที่นี่ กรุณาอัพโหลดไฟล์!
+ โฟลเดอร์
+ โฟลเดอร์
+ ไฟล์
+ ไฟล์แตะที่ไฟล์ เพื่อแสดงข้อมูลเพิ่มเติมขนาด:ชนิด:
@@ -151,5 +156,5 @@
ส่งบัญชี
- เลือก
+ เลือก
diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml
index 656397b7f2..56ec03897e 100644
--- a/res/values-tr/strings.xml
+++ b/res/values-tr/strings.xml
@@ -38,6 +38,8 @@
Bir arkadaşa önerGeribildirimİzlenim
+ Konum paylaşmayı hatırla
+ Son paylaşma yükleme konumunu hatırla%1$s uygulamasını akıllı telefonunda dene!Seni, akıllı telefonunda %1$s kullanmaya davet ediyorum!\nBuradan indirebilirsin: %2$sSunucuyu Denetle
@@ -57,9 +59,14 @@
Hiç içerik alınmadı. Yüklenecek hiçbir şey yok.%1$s için paylaşılan içeriğe erişim izni yokYükleniyor
+ saniyeler önceBurada hiçbir şey yok. Bir şeyler yükleyin!Yükleniyor...Bu klasörde dosya yok.
+ klasör
+ klasörler
+ dosya
+ dosyalarEk bilgileri görmek için dosyaya dokunun.Boyut:Tür:
@@ -275,13 +282,14 @@
Güvenli bağlantı, güvenli olmayan bir rotaya yönlendirildi.GünlüklerGeçmişi Gönder
- ownCloud Android uygulama kayıtları
- Veri yükleniyor...
+ Günlükleri göndermek için uygulama bulunamadı. E-posta uygulamasını yükleyin!
+ %1$s Android uygulama kayıtları
+ Yükleniyor...Kimlik doğrulama gerekliHatalı parolaTaşıBurada bir şey yok. Bir klasör ekleyebilirsiniz!
- Seç
+ SeçTaşıma başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyinKlasörü, kendi alt klasörüne taşımak mümkün değilDosya zaten hedef klasörde mevcut
@@ -289,4 +297,6 @@
bu dosyayı taşımak içinAnında YüklemelerGüvenlik
+ Video Yükleme Yolu
+ paylaşılan
diff --git a/res/values-ug/strings.xml b/res/values-ug/strings.xml
index 12a549282c..abee26e67e 100644
--- a/res/values-ug/strings.xml
+++ b/res/values-ug/strings.xml
@@ -44,4 +44,5 @@
ھېساباتلاربىخەتەرلىك
+ ھەمبەھىرلەنگەن
diff --git a/res/values-uk/strings.xml b/res/values-uk/strings.xml
index 22ab60a4ed..8af7792fc7 100644
--- a/res/values-uk/strings.xml
+++ b/res/values-uk/strings.xml
@@ -57,9 +57,14 @@
Не отримано даних. Нічого завантажувати.%1$s не може отримати доступ до спільного контентуЗавантаження
+ секунди томуТут нічого немає. Відвантажте що-небудь!Завантаження...В цій теці немає файлів.
+ тека
+ теки
+ файл
+ файлиНатисніть на файлі для відображення додаткової інформаціїРозмір:Тип:
@@ -274,13 +279,11 @@
Безпечне підключення перенаправляється через незабезпечений маршрут.ЖурналиНадіслати історію
- Журнали Android-додатка ownCloud
- Завантаження даних...Потрібна аутентифікаціяНевірний парольПереміститиТут нічого немає. Ви можете додати теку!
- Обрати
+ ОбратиНеможливо перемістити. Будь ласка, перевірте, чи існує файлНеможливо перемістити теку до теки-нащадкаФайл вже існує в теці призначення
@@ -288,4 +291,5 @@
перемістити цей файлМиттєво завантаженняБезпека
+ спільне
diff --git a/res/values-ur-rPK/strings.xml b/res/values-ur-rPK/strings.xml
index a90a302141..874499e1f8 100644
--- a/res/values-ur-rPK/strings.xml
+++ b/res/values-ur-rPK/strings.xml
@@ -9,6 +9,7 @@
یوزر نیمپاسورڈمنسلک
+ سیکنڈز پہلےڈاؤن لوڈ،اشتراک لنکہاں
@@ -19,5 +20,5 @@
غیر معروف خرابیبھجیں
- منتخب کریں
+ منتخب کریں
diff --git a/res/values-vi/strings.xml b/res/values-vi/strings.xml
index 7e5fe75a55..d2517eb29c 100644
--- a/res/values-vi/strings.xml
+++ b/res/values-vi/strings.xml
@@ -45,7 +45,12 @@
Không có nội dung được nhận. Không có gì để tải lên.%1$s không cho phép truy cập vào các nội dung chia sẻĐang tải lên
+ vài giây trướcKhông có gì ở đây .Hãy tải lên một cái gì đó !
+ folder
+ folders
+ file
+ filesTap vào một tập tin để hiển thị thêm thông tinKích thước:Loại:
@@ -218,5 +223,5 @@
GởiTài khoản
- Chọn
+ Chọn
diff --git a/res/values-zh-rCN/strings.xml b/res/values-zh-rCN/strings.xml
index 1b6eab69f3..22142ace6f 100644
--- a/res/values-zh-rCN/strings.xml
+++ b/res/values-zh-rCN/strings.xml
@@ -4,13 +4,19 @@
版本:%1$s刷新帐户上传
- 来自其它app的内容
+ 来自其它应用的内容文件
- 打开
- 增加文件夹
+ 打开方式
+ 新建文件夹设置详细信息发送
+ 排序
+ 排序方式
+
+ A - Z
+ 新 - 旧
+ 常规
@@ -18,13 +24,13 @@
账号管理账号App PIN
- 保护您的App客户端
+ 保护客户端即时图片上传即时上传相机拍摄的图片
- 立即上传视频
+ 即时上传视频即时上传由相机拍摄的视频开启日志
- 这过去是日志问题
+ 用于记录问题日志历史这显示已经保存的日志删除历史
@@ -32,42 +38,48 @@
推荐给朋友反馈版本说明
- 在您的智能手机上试用一下 %1$s!
- “我邀请你使用在你的智能手机上使用 %1$s,在这下载:%2$s”
-
+ 记住共享位置
+ 记住上次共享上传的位置
+ 在您的智能手机上试用 %1$s!
+ 我邀请你在智能手机上使用 %1$s\n下载路径:%2$s检查服务器服务器地址 https://...用户名密码
- 新增到 %1$s?
+ 初次使用 %1$s?文件连接上传选择上传文件夹:未找到账号
- 设备上未找到账号,请先创建账号。
+ 设备上未找到 %1$s 账号,请先设置账号。设置退出
- 没有上传的内容
- 没有接收到内容,无可上传。
+ 没有需要上传的内容
+ 没有接收到内容,没有需要上传的内容。%1$s未被允许访问共享内容。上传
+ 几秒前这里还什么都没有。上传些东西吧!载入中....在该文件夹中不存在文件。
- 点击一个文件来显示额外的信息。
+ 文件夹
+ 文件夹
+ 文件
+ 文件
+ 点击一个文件可以显示额外的信息。大小:类型:创建于:
- 已修改:
+ 修改于:下载刷新文件上传过程中文件被更名为了 %1$s分享链接
- 取消共享链接
+ 取消分享链接是否
- OK
+ 确定取消下载取消上传取消
@@ -80,35 +92,35 @@
删除账号创建账号上传自...
- 目录名称
+ 文件夹名称上传...%1$d%% 上传 %2$s上传成功%1$s 成功上传上传失败
- 1$上传未能完成
+ %1$s 未能成功上传上传失败,您需要重新登录
- 下载中……
+ 下载中...%1$d%% 下载中 %2$s下载成功
- %1$s 成功下载
+ 成功下载 %1$s 下载失败
- 下载1$s 未能完成
+ %1$s 下载未能完成未下载完毕下载失败,您需要重新登录选择账户同步失败同步失败,您需要重新登录 %1$s同步未完成。
- 密码错误%1$s
+ %1$s 的密码错误发现冲突%1$d 文件无法同步文件同步失败
- 无法同步 %1$d 文件内容(与 %2$d 冲突)
+ 无法同步 %1$d 文件内容(%2$d 冲突)某些本地文件已被遗忘%2$s 目录中的 %1$d 个文件不能被复制到从 1.3.16 版起,从此设备上传的文件将被复制到本地的 %1$s 文件夹,以防止某个单一文件在多个账户间同步而造成的数据损失。\n\n 由于此项变化,此应用之前的版本上传的全部文件都已被复制到了 %2$s 文件夹。然而,账户同步期间有一个错误阻止了此操作的完成。您可能想保持文件不动,并移除指向 %3$s 的链接,或将文件移动到 %1$s 文件夹中并保持其到 %4$s 的链接。下面列出的是本地文件,以及它们被链接到的 %5$s 中的远程文件。
- 文件夹%1$s 不存在
+ 文件夹%1$s 已经不存在移动所有所有文件已被移动某些文件无法被移动
@@ -123,7 +135,7 @@
两次 App PIN码不同App PIN码不正确App PIN码已移除
- App PIN码已保存。
+ App PIN码已保存%1$s 音乐播放器%1$s (播放中)%1$s (载入中)
@@ -144,16 +156,16 @@
播放暂停按钮快进按钮正在认证...
- 尝试登录
+ 尝试登录...没有网络连接
- 安全链接无效。
+ 安全连接不可用。连接已建立。测试连接……
- 服务器配置不正确。
+ 服务器配置不正确此设备中已经存在同名同服务器的帐号输入用户与此帐户的用户不符发生未知错误!
- 无法找到服务器
+ 无法找到主机未发现服务器实例看起来服务器不太给力网址不正确
@@ -161,13 +173,13 @@
无法验证 SSL 服务器的身份不可辨识的服务器服务器版本无法建立连接
- 加密连接已建立
- 用户名或密码错误!
+ 安全连接已建立
+ 用户名或密码错误认证不成功访问被认证服务器拒绝意外状态;请再次输入服务器的地址你的授权已经过期。请重新授权。
- 请输入当前密码:
+ 请输入当前密码您的会话超时了,请重新连接正在连接到认证服务器....服务器不支持这种验证方式
@@ -196,15 +208,15 @@
文件名不能为空请稍候未知问题;请试试用其他程序选择此文件
- 未选择文件。
+ 未选择文件发送链接给 …使用oAuth2登陆连接oAuth2 服务器...站点身份无法验证
- 不受信任的服务器证书
- 服务器证书过期
- 服务器证书过新
- 主机名与证书中的记录不匹配
+ - 不受信任的服务器证书
+ - 服务器证书过期
+ - 服务器证书时间比当前时间还晚
+ - 主机名与证书中的记录不匹配是否信任此证书?证书无法保存详细信息
@@ -230,8 +242,8 @@
389字节2012/05/18 下午12:23 12:23:45
- 仅通过WIFI上传图片。
- 仅在 WIFI 下上传视频
+ 仅通过 WIFI 上传图片。
+ 仅通过 WIFI 上传视频/InstantUpload上传冲突远程文件 %s 未与本地文件同步。继续将替换服务器上的文件内容。
@@ -239,8 +251,9 @@
覆盖不上传图片预览
- 不能显示图片
+ 无法显示图片无法复制 %1$s 到本地目录 %2$s
+ 上传路径抱歉,共享功能未启用。请联系管理员。无法共享。请检查文件是否存在共享文件或目录出错
@@ -255,29 +268,34 @@
等待服务器响应时发生了一个错误,此操作无法完成服务器不可用,此操作无法完成
- 你没有许可%s
+ 你没有权限%s重命名该文件删除该文件
- 分享该文件
+ 共享该文件取消共享该文件创建文件
- 上传此文件夹
+ 在此文件夹上传该文件在服务器上不可用账号添加账号
+ 安全连接被重定向到非安全路径.日志发送历史
- ownCloud安卓客户端日志
- 加载数据中...
+ 未找到可以发送日志的程序。请安装 mail!
+ %1$s Android 程序日志
+ 载入数据...需要认证错误密码移动这里还什么都没有。上传些东西吧!
- 选择(&C)...
+ 选择无法移动。请检查文件是否存在
- b不能够把一个目录移动到它的下级
+ 无法把一个目录移动到它的下级该文件已经存在在目标文件夹尝试移动该文件或文件夹时发生错误移动该文件
+ 即时上传安全
+ 视频上传路径
+ 分享
diff --git a/res/values-zh-rHK/strings.xml b/res/values-zh-rHK/strings.xml
index 7e5ae5251b..892944eb72 100644
--- a/res/values-zh-rHK/strings.xml
+++ b/res/values-zh-rHK/strings.xml
@@ -25,6 +25,7 @@
設定退出正在上戴
+ 秒前按一下文件顯示更多資料。大小:類別:
@@ -70,4 +71,5 @@
帳號密碼錯誤
+ 安全
diff --git a/res/values-zh-rTW/strings.xml b/res/values-zh-rTW/strings.xml
index 04938d382b..645c05eaad 100644
--- a/res/values-zh-rTW/strings.xml
+++ b/res/values-zh-rTW/strings.xml
@@ -11,6 +11,12 @@
設定詳細資料寄出
+ 排序
+ 排序依照
+
+ A-Z
+ 最新 - 最舊
+ 一般
@@ -32,6 +38,8 @@
推薦給朋友反饋法律聲明
+ 記住分享位置
+ 記住上次分享上傳位置在您的手機中試用%1$s!我想邀請您在您的手機上使用 %1$s ! 可以由這兒下載: %2$s檢查伺服器
@@ -51,9 +59,14 @@
沒接到任何內容。沒有什麼可上載。%1$s 並沒有被允許存取分享的內容上傳中
+ 幾秒前這裡還沒有東西,上傳一些吧!載入中…這個目錄中沒有任何檔案.
+ 資料夾
+ 資料夾
+ 檔案
+ 檔案在檔案上輕觸來顯示更多資訊。容量:類型:
@@ -229,8 +242,8 @@
389 KB2012/05/18 12:23 PM12:23:45
- 只使用 WiFi 上傳
- 只透過無線網路來執行即時影像上傳的功能
+ 只使用 WiFi 來執行即時圖片上傳的功能
+ 只使用 WiFi 來執行即時影像上傳的功能/InstantUpload更新衝突遠端檔案 %s 未同步到本地. 繼續將取代伺服器上的文件.
@@ -269,13 +282,14 @@
安全連線被轉向到一個非安全的連線紀錄傳送歷史記錄
- ownCloud Android 應用程式記錄
+ 找不到可以傳送記錄的電子郵件程式. 請安裝電子郵件軟體!
+ %1$s Android 應用程式記錄資料載入中...必須驗證密碼錯誤移動找不到任何檔案. 你可以新增一個目錄!
- 選擇
+ 選擇無法搬移. 請檢查該檔案是否存在把一個目錄搬移到其底下的子目錄是不可能的這個檔案已經存在於目的目錄中
@@ -283,4 +297,6 @@
移動這個檔案即時上傳安全性
+ 影片上傳路徑
+ 以分享的
diff --git a/res/values/dims.xml b/res/values/dims.xml
new file mode 100644
index 0000000000..d433cba339
--- /dev/null
+++ b/res/values/dims.xml
@@ -0,0 +1,21 @@
+
+
+
+ 32dp
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 849ce5f4fa..9772edff4c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -39,7 +39,9 @@
Recommend to a friendFeedbackImprint
-
+ Remember share location
+ Remember last share upload location
+
"Try %1$s on your smartphone!""I want to invite you to use %1$s on your smartphone!\nDownload here: %2$s"
@@ -61,9 +63,14 @@
No content was received. Nothing to upload.%1$s is not allowed to access the shared contentUploading
+ seconds agoNothing in here. Upload something!Loading...There are no files in this folder.
+ folder
+ folders
+ file
+ filesTap on a file to display additional information.Size:Type:
@@ -280,6 +287,7 @@
An error occurred while waiting for the server, the operation couldn\'t have been doneAn error occurred while waiting for the server, the operation couldn\'t have been doneThe operation couldn\'t be completed, server is unavailable
+
You do not have permission %s
@@ -297,14 +305,15 @@
LogsSend History
- ownCloud Android app logs
- Loading data...
+ No app for sending logs found. Install mail app!
+ %1$s Android app logs
+ Loading data…Authentication requiredWrong passwordMoveNothing in here. You can add a folder!
- Choose
+ ChooseUnable to move. Please check whether the file existsIt is not possible to move a folder into a descendant
@@ -315,4 +324,10 @@
Instant UploadsSecurity
+ Upload Video Path
+
+ shared
+ with you
+ %1$s %2$s >>%3$s<< %4$s
+
diff --git a/res/xml/preferences.xml b/res/xml/preferences.xml
index 3b8b3e81b5..1673e21b1c 100644
--- a/res/xml/preferences.xml
+++ b/res/xml/preferences.xml
@@ -32,9 +32,9 @@
-
+
@@ -42,6 +42,9 @@
android:disableDependentsState="true"
android:title="@string/instant_upload_on_wifi"
android:key="instant_upload_on_wifi"/>
+
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000000..66022f5e87
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1,3 @@
+include ':owncloud-android-library'
+include 'libs/actionbarsherlock_lib'
+include ':'
diff --git a/setup_env.bat b/setup_env.bat
index dc44a12069..0781036c76 100644
--- a/setup_env.bat
+++ b/setup_env.bat
@@ -1,8 +1,59 @@
+@echo off
+
+:: Use argument to decide which build system should be used
+if "%1" == "gradle" goto initForGradle
+if "%1" == "maven" goto initForMaven
+if "%1" == "ant" goto initForAnt
+goto invalidInput
+
+:initForGradle
+echo "Executing Gradle setup..."
+goto initDefault
+
+:initForMaven
+echo "Executing Maven setup..."
+goto initDefault
+
+:initForAnt
+echo "Executing Ant setup..."
+::If the directory exists the script has already been executed
+if not exist .\actionbarsherlock (
+
+ ::Gets the owncloud-android-library
+ call git submodule init
+ call git submodule update
+
+ ::Clones the actionbarsherlock and checks-out the right release (4.2.0)
+ git clone "https://github.com/JakeWharton/ActionBarSherlock.git" "actionbarsherlock"
+ cd "actionbarsherlock"
+ git checkout "90939dc3925ffaaa0de269bbbe1b35e274968ea1"
+ cd ../
+
+ call android.bat update project -p actionbarsherlock/library -n ActionBarSherlock --target android-19
+ call android.bat update lib-project -p owncloud-android-library
+ call android.bat update project -p .
+ call android.bat update project -p oc_jb_workaround
+ copy /Y third_party\android-support-library\android-support-v4.jar actionbarsherlock\library\libs\android-support-v4.jar
+ call android.bat update test-project -p tests -m ..
+)
+goto complete
+
+:initDefault
call git submodule init
call git submodule update
-call android.bat update project -p actionbarsherlock\library -n ActionBarSherlock
call android.bat update lib-project -p owncloud-android-library
call android.bat update project -p .
call android.bat update project -p oc_jb_workaround
-copy /Y third_party\android-support-library\android-support-v4.jar actionbarsherlock\library\libs\android-support-v4.jar
call android.bat update test-project -p tests -m ..
+goto complete
+
+:invalidInput
+echo "Input argument invalid."
+echo "Usage: %0 [ant | maven | gradle]."
+goto exit
+
+:complete
+echo "...setup complete."
+goto exit
+
+:exit
\ No newline at end of file
diff --git a/setup_env.sh b/setup_env.sh
index ae4214238b..8c9af07188 100755
--- a/setup_env.sh
+++ b/setup_env.sh
@@ -1,10 +1,75 @@
#!/bin/bash -e
-git submodule init
-git submodule update
-android update project -p actionbarsherlock/library -n ActionBarSherlock
-android update lib-project -p owncloud-android-library
-android update project -p .
-android update project -p oc_jb_workaround
-cp third_party/android-support-library/android-support-v4.jar actionbarsherlock/library/libs/android-support-v4.jar
-android update test-project -p tests -m ..
+
+#Repository
+ActionBarSherlockRepo="https://github.com/JakeWharton/ActionBarSherlock.git"
+
+#Directory for actionbarsherlock
+DIRECTORY="actionbarsherlock"
+
+#Commit for version 4.2 of actionbar sherlock
+COMMIT="90939dc3925ffaaa0de269bbbe1b35e274968ea1"
+
+
+function initDefault {
+ git submodule init
+ git submodule update
+ android update lib-project -p owncloud-android-library
+ android update project -p .
+ android update project -p oc_jb_workaround
+ android update test-project -p tests -m ..
+}
+
+function initForAnt {
+ #If the directory exists the script has already been executed
+ if [ ! -d "$DIRECTORY" ]; then
+
+ #Gets the owncloud-android-library
+ git submodule init
+ git submodule update
+
+ #Clones the actionbarsherlock and checks-out the right release (4.2.0)
+ git clone $ActionBarSherlockRepo $DIRECTORY
+ cd $DIRECTORY
+ git checkout $COMMIT
+ cd ../
+
+ #As default it updates the ant scripts
+ android update project -p "$DIRECTORY"/library -n ActionBarSherlock --target android-19
+ android update lib-project -p owncloud-android-library
+ android update project -p .
+ android update project -p oc_jb_workaround
+ cp third_party/android-support-library/android-support-v4.jar actionbarsherlock/library/libs/android-support-v4.jar
+ android update test-project -p tests -m ..
+ fi
+}
+
+#No args
+if [ $# -lt 1 ]; then
+ echo "No args found"
+ echo "Usage : $0 [gradle | maven | ant]"
+ exit
+fi
+
+#checking args
+case "$1" in
+
+ "ant")
+ echo "Creating Ant environment"
+ initForAnt
+ ;;
+
+ "gradle") echo "Creating gradle environment"
+ initDefault
+ ;;
+
+ "maven") echo "Creating maven environment"
+ initDefault
+ ;;
+
+ *) echo "Argument not recognized"
+ echo "Usage : $0 [gradle | maven | ant]"
+ ;;
+esac
+
+exit
diff --git a/src/com/owncloud/android/MainApp.java b/src/com/owncloud/android/MainApp.java
index e04239df87..c2a4c68bd7 100644
--- a/src/com/owncloud/android/MainApp.java
+++ b/src/com/owncloud/android/MainApp.java
@@ -55,7 +55,7 @@ public class MainApp extends Application {
} else {
OwnCloudClientManagerFactory.setDefaultPolicy(Policy.ALWAYS_NEW_CLIENT);
}
-
+
// initialise thumbnails cache on background thread
new ThumbnailsCacheManager.InitDiskCacheTask().execute();
diff --git a/src/com/owncloud/android/datamodel/FileDataStorageManager.java b/src/com/owncloud/android/datamodel/FileDataStorageManager.java
index 5b1bef1b5d..d803064297 100644
--- a/src/com/owncloud/android/datamodel/FileDataStorageManager.java
+++ b/src/com/owncloud/android/datamodel/FileDataStorageManager.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
+import java.util.List;
import java.util.Vector;
import com.owncloud.android.MainApp;
@@ -33,7 +34,6 @@ import com.owncloud.android.lib.resources.shares.ShareType;
import com.owncloud.android.lib.resources.files.FileUtils;
import com.owncloud.android.utils.FileStorageUtils;
-
import android.accounts.Account;
import android.content.ContentProviderClient;
import android.content.ContentProviderOperation;
@@ -41,6 +41,7 @@ import android.content.ContentProviderResult;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
+import android.content.Intent;
import android.content.OperationApplicationException;
import android.database.Cursor;
import android.net.Uri;
@@ -300,6 +301,7 @@ public class FileDataStorageManager {
cv.put(ProviderTableMeta.FILE_PUBLIC_LINK, file.getPublicLink());
cv.put(ProviderTableMeta.FILE_PERMISSIONS, file.getPermissions());
cv.put(ProviderTableMeta.FILE_REMOTE_ID, file.getRemoteId());
+ cv.put(ProviderTableMeta.FILE_UPDATE_THUMBNAIL, file.needsUpdateThumbnail());
boolean existsByPath = fileExists(file.getRemotePath());
if (existsByPath || fileExists(file.getFileId())) {
@@ -345,7 +347,9 @@ public class FileDataStorageManager {
).withSelection(where, whereArgs).build());
if (file.isDown()) {
- new File(file.getStoragePath()).delete();
+ String path = file.getStoragePath();
+ new File(path).delete();
+ triggerMediaScan(path); // notify MediaScanner about removed file
}
}
}
@@ -483,8 +487,12 @@ public class FileDataStorageManager {
}
success &= (deleted > 0);
}
- if (removeLocalCopy && file.isDown() && file.getStoragePath() != null && success) {
- success = new File(file.getStoragePath()).delete();
+ String localPath = file.getStoragePath();
+ if (removeLocalCopy && file.isDown() && localPath != null && success) {
+ success = new File(localPath).delete();
+ if (success) {
+ triggerMediaScan(localPath);
+ }
if (!removeDBData && success) {
// maybe unnecessary, but should be checked TODO remove if unnecessary
file.setStoragePath(null);
@@ -541,11 +549,13 @@ public class FileDataStorageManager {
success &= removeLocalFolder(file);
} else {
if (file.isDown()) {
+ String path = file.getStoragePath();
File localFile = new File(file.getStoragePath());
success &= localFile.delete();
if (success) {
file.setStoragePath(null);
saveFile(file);
+ triggerMediaScan(path); // notify MediaScanner about removed file
}
}
}
@@ -567,7 +577,9 @@ public class FileDataStorageManager {
if (localFile.isDirectory()) {
success &= removeLocalFolder(localFile);
} else {
+ String path = localFile.getAbsolutePath();
success &= localFile.delete();
+ triggerMediaScan(path); // notify MediaScanner about removed file
}
}
}
@@ -575,109 +587,20 @@ public class FileDataStorageManager {
return success;
}
+
/**
- * Updates database for a folder that was moved to a different location.
+ * Updates database and file system for a file or folder that was moved to a different location.
*
* TODO explore better (faster) implementations
* TODO throw exceptions up !
*/
- public void moveFolder(OCFile folder, String newPath) {
- // TODO check newPath
-
- if ( folder != null && folder.isFolder() &&
- folder.fileExists() && !OCFile.ROOT_PATH.equals(folder.getFileName())
- ) {
- /// 1. get all the descendants of 'dir' in a single QUERY (including 'dir')
- Cursor c = null;
- if (getContentProviderClient() != null) {
- try {
- c = getContentProviderClient().query (
- ProviderTableMeta.CONTENT_URI,
- null,
- ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
- ProviderTableMeta.FILE_PATH + " LIKE ? ",
- new String[] { mAccount.name, folder.getRemotePath() + "%" },
- ProviderTableMeta.FILE_PATH + " ASC "
- );
- } catch (RemoteException e) {
- Log_OC.e(TAG, e.getMessage());
- }
- } else {
- c = getContentResolver().query (
- ProviderTableMeta.CONTENT_URI,
- null,
- ProviderTableMeta.FILE_ACCOUNT_OWNER + "=? AND " +
- ProviderTableMeta.FILE_PATH + " LIKE ? ",
- new String[] { mAccount.name, folder.getRemotePath() + "%" },
- ProviderTableMeta.FILE_PATH + " ASC "
- );
- }
-
- /// 2. prepare a batch of update operations to change all the descendants
- ArrayList operations =
- new ArrayList(c.getCount());
- int lengthOfOldPath = folder.getRemotePath().length();
- String defaultSavePath = FileStorageUtils.getSavePath(mAccount.name);
- int lengthOfOldStoragePath = defaultSavePath.length() + lengthOfOldPath;
- if (c.moveToFirst()) {
- do {
- ContentValues cv = new ContentValues(); // keep the constructor in the loop
- OCFile child = createFileInstance(c);
- cv.put(
- ProviderTableMeta.FILE_PATH,
- newPath + child.getRemotePath().substring(lengthOfOldPath)
- );
- if ( child.getStoragePath() != null &&
- child.getStoragePath().startsWith(defaultSavePath) ) {
- cv.put(
- ProviderTableMeta.FILE_STORAGE_PATH,
- defaultSavePath + newPath +
- child.getStoragePath().substring(lengthOfOldStoragePath)
- );
- }
- operations.add(
- ContentProviderOperation.
- newUpdate(ProviderTableMeta.CONTENT_URI).
- withValues(cv).
- withSelection(
- ProviderTableMeta._ID + "=?",
- new String[] { String.valueOf(child.getFileId()) }
- ).
- build()
- );
- } while (c.moveToNext());
- }
- c.close();
-
- /// 3. apply updates in batch
- try {
- if (getContentResolver() != null) {
- getContentResolver().applyBatch(MainApp.getAuthority(), operations);
-
- } else {
- getContentProviderClient().applyBatch(operations);
- }
-
- } catch (OperationApplicationException e) {
- Log_OC.e(TAG, "Fail to update descendants of " +
- folder.getFileId() + " in database", e);
-
- } catch (RemoteException e) {
- Log_OC.e(TAG, "Fail to update desendants of " +
- folder.getFileId() + " in database", e);
- }
-
- }
- }
-
-
public void moveLocalFile(OCFile file, String targetPath, String targetParentPath) {
if (file != null && file.fileExists() && !OCFile.ROOT_PATH.equals(file.getFileName())) {
OCFile targetParent = getFileByPath(targetParentPath);
if (targetParent == null) {
- // TODO panic
+ throw new IllegalStateException("Parent folder of the target path does not exist!!");
}
/// 1. get all the descendants of the moved element in a single QUERY
@@ -717,6 +640,8 @@ public class FileDataStorageManager {
ArrayList operations =
new ArrayList(c.getCount());
String defaultSavePath = FileStorageUtils.getSavePath(mAccount.name);
+ List originalPathsToTriggerMediaScan = new ArrayList();
+ List newPathsToTriggerMediaScan = new ArrayList();
if (c.moveToFirst()) {
int lengthOfOldPath = file.getRemotePath().length();
int lengthOfOldStoragePath = defaultSavePath.length() + lengthOfOldPath;
@@ -730,11 +655,14 @@ public class FileDataStorageManager {
if (child.getStoragePath() != null &&
child.getStoragePath().startsWith(defaultSavePath)) {
// update link to downloaded content - but local move is not done here!
- cv.put(
- ProviderTableMeta.FILE_STORAGE_PATH,
- defaultSavePath + targetPath +
- child.getStoragePath().substring(lengthOfOldStoragePath)
- );
+ String targetLocalPath = defaultSavePath + targetPath +
+ child.getStoragePath().substring(lengthOfOldStoragePath);
+
+ cv.put(ProviderTableMeta.FILE_STORAGE_PATH, targetLocalPath);
+
+ originalPathsToTriggerMediaScan.add(child.getStoragePath());
+ newPathsToTriggerMediaScan.add(targetLocalPath);
+
}
if (child.getRemotePath().equals(file.getRemotePath())) {
cv.put(
@@ -765,27 +693,35 @@ public class FileDataStorageManager {
}
} catch (Exception e) {
- Log_OC.e(
- TAG,
- "Fail to update " + file.getFileId() + " and descendants in database",
- e
- );
+ Log_OC.e(TAG, "Fail to update " + file.getFileId() + " and descendants in database", e);
}
/// 4. move in local file system
- String localPath = FileStorageUtils.getDefaultSavePathFor(mAccount.name, file);
- File localFile = new File(localPath);
+ String originalLocalPath = FileStorageUtils.getDefaultSavePathFor(mAccount.name, file);
+ String targetLocalPath = defaultSavePath + targetPath;
+ File localFile = new File(originalLocalPath);
boolean renamed = false;
if (localFile.exists()) {
- File targetFile = new File(defaultSavePath + targetPath);
+ File targetFile = new File(targetLocalPath);
File targetFolder = targetFile.getParentFile();
if (!targetFolder.exists()) {
targetFolder.mkdirs();
}
renamed = localFile.renameTo(targetFile);
}
- Log_OC.d(TAG, "Local file RENAMED : " + renamed);
-
+
+ if (renamed) {
+ Iterator it = originalPathsToTriggerMediaScan.iterator();
+ while (it.hasNext()) {
+ // Notify MediaScanner about removed file
+ triggerMediaScan(it.next());
+ }
+ it = newPathsToTriggerMediaScan.iterator();
+ while (it.hasNext()) {
+ // Notify MediaScanner about new file/folder
+ triggerMediaScan(it.next());
+ }
+ }
}
}
@@ -1401,7 +1337,7 @@ public class FileDataStorageManager {
path = path + FileUtils.PATH_SEPARATOR;
}
- // Update OCFile with data from share: ShareByLink and publicLink?
+ // Update OCFile with data from share: ShareByLink and publicLink
OCFile file = getFileByPath(path);
if (file != null) {
if (share.getShareType().equals(ShareType.PUBLIC_LINK)) {
@@ -1548,4 +1484,10 @@ public class FileDataStorageManager {
//}
}
+ public void triggerMediaScan(String path) {
+ Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
+ intent.setData(Uri.fromFile(new File(path)));
+ MainApp.getAppContext().sendBroadcast(intent);
+ }
+
}
diff --git a/src/com/owncloud/android/datamodel/OCFile.java b/src/com/owncloud/android/datamodel/OCFile.java
index 392d03bc88..cf25d278a9 100644
--- a/src/com/owncloud/android/datamodel/OCFile.java
+++ b/src/com/owncloud/android/datamodel/OCFile.java
@@ -18,15 +18,15 @@
package com.owncloud.android.datamodel;
-import java.io.File;
-
-import com.owncloud.android.lib.common.utils.Log_OC;
-import third_parties.daveKoeller.AlphanumComparator;
-
import android.os.Parcel;
import android.os.Parcelable;
import android.webkit.MimeTypeMap;
+import com.owncloud.android.lib.common.utils.Log_OC;
+
+import java.io.File;
+
+import third_parties.daveKoeller.AlphanumComparator;
public class OCFile implements Parcelable, Comparable {
public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
@@ -45,7 +45,7 @@ public class OCFile implements Parcelable, Comparable {
public static final String ROOT_PATH = PATH_SEPARATOR;
private static final String TAG = OCFile.class.getSimpleName();
-
+
private long mId;
private long mParentId;
private long mLength;
@@ -61,7 +61,7 @@ public class OCFile implements Parcelable, Comparable {
private boolean mKeepInSync;
private String mEtag;
-
+
private boolean mShareByLink;
private String mPublicLink;
@@ -73,9 +73,9 @@ public class OCFile implements Parcelable, Comparable {
/**
* Create new {@link OCFile} with given path.
- *
+ *
* The path received must be URL-decoded. Path separator must be OCFile.PATH_SEPARATOR, and it must be the first character in 'path'.
- *
+ *
* @param path The remote path of the file.
*/
public OCFile(String path) {
@@ -89,7 +89,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Reconstruct from parcel
- *
+ *
* @param source The source parcel
*/
private OCFile(Parcel source) {
@@ -137,10 +137,10 @@ public class OCFile implements Parcelable, Comparable {
dest.writeString(mRemoteId);
dest.writeInt(mNeedsUpdateThumbnail ? 1 : 0);
}
-
+
/**
* Gets the ID of the file
- *
+ *
* @return the file ID
*/
public long getFileId() {
@@ -149,7 +149,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Returns the remote path of the file on ownCloud
- *
+ *
* @return The remote path to the file
*/
public String getRemotePath() {
@@ -159,7 +159,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Can be used to check, whether or not this file exists in the database
* already
- *
+ *
* @return true, if the file exists in the database
*/
public boolean fileExists() {
@@ -168,7 +168,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Use this to find out if this file is a folder.
- *
+ *
* @return true if it is a folder
*/
public boolean isFolder() {
@@ -177,7 +177,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Use this to check if this file is available locally
- *
+ *
* @return true if it is
*/
public boolean isDown() {
@@ -187,10 +187,10 @@ public class OCFile implements Parcelable, Comparable {
}
return false;
}
-
+
/**
* The path, where the file is stored locally
- *
+ *
* @return The local path to the file
*/
public String getStoragePath() {
@@ -199,7 +199,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Can be used to set the path where the file is stored
- *
+ *
* @param storage_path to set
*/
public void setStoragePath(String storage_path) {
@@ -208,7 +208,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Get a UNIX timestamp of the file creation time
- *
+ *
* @return A UNIX timestamp of the time that file was created
*/
public long getCreationTimestamp() {
@@ -217,7 +217,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Set a UNIX timestamp of the time the file was created
- *
+ *
* @param creation_timestamp to set
*/
public void setCreationTimestamp(long creation_timestamp) {
@@ -227,8 +227,8 @@ public class OCFile implements Parcelable, Comparable {
/**
* Get a UNIX timestamp of the file modification time.
*
- * @return A UNIX timestamp of the modification time, corresponding to the value returned by the server
- * in the last synchronization of the properties of this file.
+ * @return A UNIX timestamp of the modification time, corresponding to the value returned by the server
+ * in the last synchronization of the properties of this file.
*/
public long getModificationTimestamp() {
return mModifiedTimestamp;
@@ -236,22 +236,22 @@ public class OCFile implements Parcelable, Comparable {
/**
* Set a UNIX timestamp of the time the time the file was modified.
- *
- * To update with the value returned by the server in every synchronization of the properties
+ *
+ * To update with the value returned by the server in every synchronization of the properties
* of this file.
- *
+ *
* @param modification_timestamp to set
*/
public void setModificationTimestamp(long modification_timestamp) {
mModifiedTimestamp = modification_timestamp;
}
-
+
/**
* Get a UNIX timestamp of the file modification time.
*
- * @return A UNIX timestamp of the modification time, corresponding to the value returned by the server
- * in the last synchronization of THE CONTENTS of this file.
+ * @return A UNIX timestamp of the modification time, corresponding to the value returned by the server
+ * in the last synchronization of THE CONTENTS of this file.
*/
public long getModificationTimestampAtLastSyncForData() {
return mModifiedTimestampAtLastSyncForData;
@@ -259,39 +259,38 @@ public class OCFile implements Parcelable, Comparable {
/**
* Set a UNIX timestamp of the time the time the file was modified.
- *
- * To update with the value returned by the server in every synchronization of THE CONTENTS
+ *
+ * To update with the value returned by the server in every synchronization of THE CONTENTS
* of this file.
- *
- * @param modification_timestamp to set
+ *
+ * @param modificationTimestamp to set
*/
public void setModificationTimestampAtLastSyncForData(long modificationTimestamp) {
mModifiedTimestampAtLastSyncForData = modificationTimestamp;
}
-
-
+
/**
* Returns the filename and "/" for the root directory
- *
+ *
* @return The name of the file
*/
public String getFileName() {
File f = new File(getRemotePath());
return f.getName().length() == 0 ? ROOT_PATH : f.getName();
}
-
+
/**
* Sets the name of the file
- *
- * Does nothing if the new name is null, empty or includes "/" ; or if the file is the root directory
+ *
+ * Does nothing if the new name is null, empty or includes "/" ; or if the file is the root directory
*/
public void setFileName(String name) {
Log_OC.d(TAG, "OCFile name changin from " + mRemotePath);
if (name != null && name.length() > 0 && !name.contains(PATH_SEPARATOR) && !mRemotePath.equals(ROOT_PATH)) {
String parent = (new File(getRemotePath())).getParent();
parent = (parent.endsWith(PATH_SEPARATOR)) ? parent : parent + PATH_SEPARATOR;
- mRemotePath = parent + name;
+ mRemotePath = parent + name;
if (isFolder()) {
mRemotePath += PATH_SEPARATOR;
}
@@ -301,7 +300,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Can be used to get the Mimetype
- *
+ *
* @return the Mimetype as a String
*/
public String getMimetype() {
@@ -311,10 +310,10 @@ public class OCFile implements Parcelable, Comparable {
/**
* Adds a file to this directory. If this file is not a directory, an
* exception gets thrown.
- *
+ *
* @param file to add
* @throws IllegalStateException if you try to add a something and this is
- * not a directory
+ * not a directory
*/
public void addFile(OCFile file) throws IllegalStateException {
if (isFolder()) {
@@ -353,7 +352,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Sets the ID of the file
- *
+ *
* @param file_id to set
*/
public void setFileId(long file_id) {
@@ -362,7 +361,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Sets the Mime-Type of the
- *
+ *
* @param mimetype to set
*/
public void setMimetype(String mimetype) {
@@ -371,7 +370,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Sets the ID of the parent folder
- *
+ *
* @param parent_id to set
*/
public void setParentId(long parent_id) {
@@ -380,7 +379,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Sets the file size in bytes
- *
+ *
* @param file_len to set
*/
public void setFileLength(long file_len) {
@@ -389,7 +388,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Returns the size of the file in bytes
- *
+ *
* @return The filesize in bytes
*/
public long getFileLength() {
@@ -398,7 +397,7 @@ public class OCFile implements Parcelable, Comparable {
/**
* Returns the ID of the parent Folder
- *
+ *
* @return The ID
*/
public long getParentId() {
@@ -407,13 +406,13 @@ public class OCFile implements Parcelable, Comparable {
/**
* Check, if this file needs updating
- *
+ *
* @return
*/
public boolean needsUpdatingWhileSaving() {
return mNeedsUpdating;
}
-
+
public boolean needsUpdateThumbnail() {
return mNeedsUpdateThumbnail;
}
@@ -425,11 +424,11 @@ public class OCFile implements Parcelable, Comparable {
public long getLastSyncDateForProperties() {
return mLastSyncDateForProperties;
}
-
+
public void setLastSyncDateForProperties(long lastSyncDate) {
mLastSyncDateForProperties = lastSyncDate;
}
-
+
public long getLastSyncDateForData() {
return mLastSyncDateForData;
}
@@ -441,14 +440,14 @@ public class OCFile implements Parcelable, Comparable {
public void setKeepInSync(boolean keepInSync) {
mKeepInSync = keepInSync;
}
-
+
public boolean keepInSync() {
return mKeepInSync;
}
-
+
@Override
public int describeContents() {
- return this.hashCode();
+ return ((Object) this).hashCode();
}
@Override
@@ -465,13 +464,13 @@ public class OCFile implements Parcelable, Comparable {
@Override
public boolean equals(Object o) {
- if(o instanceof OCFile){
+ if (o instanceof OCFile) {
OCFile that = (OCFile) o;
- if(that != null){
+ if (that != null) {
return this.mId == that.mId;
}
}
-
+
return false;
}
@@ -489,8 +488,8 @@ public class OCFile implements Parcelable, Comparable {
public void setEtag(String etag) {
this.mEtag = etag;
}
-
-
+
+
public boolean isShareByLink() {
return mShareByLink;
}
@@ -515,22 +514,28 @@ public class OCFile implements Parcelable, Comparable {
return 0;
}
- /** @return 'True' if the file contains audio */
+ /**
+ * @return 'True' if the file contains audio
+ */
public boolean isAudio() {
return (mMimeType != null && mMimeType.startsWith("audio/"));
}
- /** @return 'True' if the file contains video */
+ /**
+ * @return 'True' if the file contains video
+ */
public boolean isVideo() {
return (mMimeType != null && mMimeType.startsWith("video/"));
}
- /** @return 'True' if the file contains an image */
+ /**
+ * @return 'True' if the file contains an image
+ */
public boolean isImage() {
return ((mMimeType != null && mMimeType.startsWith("image/")) ||
- getMimeTypeFromName().startsWith("image/"));
+ getMimeTypeFromName().startsWith("image/"));
}
-
+
public String getMimeTypeFromName() {
String extension = "";
int pos = mRemotePath.lastIndexOf('.');
diff --git a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java
index e75404ef3b..ce53c44407 100644
--- a/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java
+++ b/src/com/owncloud/android/datamodel/ThumbnailsCacheManager.java
@@ -20,19 +20,32 @@ package com.owncloud.android.datamodel;
import java.io.File;
import java.lang.ref.WeakReference;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.GetMethod;
+
+import android.accounts.Account;
+import android.accounts.AccountManager;
import android.content.res.Resources;
import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
import android.graphics.Bitmap.CompressFormat;
+import android.graphics.BitmapFactory;
+import android.graphics.Matrix;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
+import android.media.ExifInterface;
import android.media.ThumbnailUtils;
+import android.net.Uri;
import android.os.AsyncTask;
-import android.util.TypedValue;
import android.widget.ImageView;
import com.owncloud.android.MainApp;
+import com.owncloud.android.R;
+import com.owncloud.android.lib.common.OwnCloudAccount;
+import com.owncloud.android.lib.common.OwnCloudClient;
+import com.owncloud.android.lib.common.OwnCloudClientManagerFactory;
+import com.owncloud.android.lib.common.accounts.AccountUtils.Constants;
import com.owncloud.android.lib.common.utils.Log_OC;
+import com.owncloud.android.lib.resources.status.OwnCloudVersion;
import com.owncloud.android.ui.adapter.DiskLruImageCache;
import com.owncloud.android.utils.BitmapUtils;
import com.owncloud.android.utils.DisplayUtils;
@@ -47,7 +60,8 @@ public class ThumbnailsCacheManager {
private static final String TAG = ThumbnailsCacheManager.class.getSimpleName();
- private static final String CACHE_FOLDER = "thumbnailCache";
+ private static final String CACHE_FOLDER = "thumbnailCache";
+ private static final String MINOR_SERVER_VERSION_FOR_THUMBS = "7.8.0";
private static final Object mThumbnailsDiskCacheLock = new Object();
private static DiskLruImageCache mThumbnailCache = null;
@@ -56,7 +70,9 @@ public class ThumbnailsCacheManager {
private static final int DISK_CACHE_SIZE = 1024 * 1024 * 10; // 10MB
private static final CompressFormat mCompressFormat = CompressFormat.JPEG;
private static final int mCompressQuality = 70;
-
+ private static OwnCloudClient mClient = null;
+ private static String mServerVersion = null;
+
public static Bitmap mDefaultImg =
BitmapFactory.decodeResource(
MainApp.getAppContext().getResources(),
@@ -65,10 +81,12 @@ public class ThumbnailsCacheManager {
public static class InitDiskCacheTask extends AsyncTask {
+
@Override
protected Void doInBackground(File... params) {
synchronized (mThumbnailsDiskCacheLock) {
mThumbnailCacheStarting = true;
+
if (mThumbnailCache == null) {
try {
// Check if media is mounted or storage is built-in, if so,
@@ -153,15 +171,17 @@ public class ThumbnailsCacheManager {
public static class ThumbnailGenerationTask extends AsyncTask {
private final WeakReference mImageViewReference;
+ private static Account mAccount;
private OCFile mFile;
private FileDataStorageManager mStorageManager;
- public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager) {
+ public ThumbnailGenerationTask(ImageView imageView, FileDataStorageManager storageManager, Account account) {
// Use a WeakReference to ensure the ImageView can be garbage collected
mImageViewReference = new WeakReference(imageView);
if (storageManager == null)
throw new IllegalArgumentException("storageManager must not be NULL");
mStorageManager = storageManager;
+ mAccount = account;
}
// Decode image in background.
@@ -170,6 +190,15 @@ public class ThumbnailsCacheManager {
Bitmap thumbnail = null;
try {
+ if (mAccount != null) {
+ AccountManager accountMgr = AccountManager.get(MainApp.getAppContext());
+
+ mServerVersion = accountMgr.getUserData(mAccount, Constants.KEY_OC_VERSION);
+ OwnCloudAccount ocAccount = new OwnCloudAccount(mAccount, MainApp.getAppContext());
+ mClient = OwnCloudClientManagerFactory.getDefaultSingleton().
+ getClientFor(ocAccount, MainApp.getAppContext());
+ }
+
mFile = params[0];
final String imageKey = String.valueOf(mFile.getRemoteId());
@@ -180,9 +209,8 @@ public class ThumbnailsCacheManager {
if (thumbnail == null || mFile.needsUpdateThumbnail()) {
// Converts dp to pixel
Resources r = MainApp.getAppContext().getResources();
- int px = (int) Math.round(TypedValue.applyDimension(
- TypedValue.COMPLEX_UNIT_DIP, 150, r.getDisplayMetrics()
- ));
+
+ int px = (int) Math.round(r.getDimension(R.dimen.file_icon_size));
if (mFile.isDown()){
Bitmap bitmap = BitmapUtils.decodeSampledBitmapFromFile(
@@ -190,6 +218,9 @@ public class ThumbnailsCacheManager {
if (bitmap != null) {
thumbnail = ThumbnailUtils.extractThumbnail(bitmap, px, px);
+
+ // Rotate image, obeying exif tag
+ thumbnail = BitmapUtils.rotateImage(thumbnail, mFile.getStoragePath());
// Add thumbnail to cache
addBitmapToCache(imageKey, thumbnail);
@@ -198,6 +229,36 @@ public class ThumbnailsCacheManager {
mStorageManager.saveFile(mFile);
}
+ } else {
+ // Download thumbnail from server
+ if (mClient != null && mServerVersion != null) {
+ OwnCloudVersion serverOCVersion = new OwnCloudVersion(mServerVersion);
+ if (serverOCVersion.compareTo(new OwnCloudVersion(MINOR_SERVER_VERSION_FOR_THUMBS)) >= 0) {
+ try {
+ int status = -1;
+
+ String uri = mClient.getBaseUri() + "/index.php/apps/files/api/v1/thumbnail/" +
+ px + "/" + px + Uri.encode(mFile.getRemotePath(), "/");
+ Log_OC.d("Thumbnail", "URI: " + uri);
+ GetMethod get = new GetMethod(uri);
+ status = mClient.executeMethod(get);
+ if (status == HttpStatus.SC_OK) {
+ byte[] bytes = get.getResponseBody();
+ Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
+ thumbnail = ThumbnailUtils.extractThumbnail(bitmap, px, px);
+
+ // Add thumbnail to cache
+ if (thumbnail != null) {
+ addBitmapToCache(imageKey, thumbnail);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ } else {
+ Log_OC.d(TAG, "Server too old");
+ }
+ }
}
}
@@ -261,5 +322,5 @@ public class ThumbnailsCacheManager {
mThumbnailsDiskCacheLock.notifyAll(); // Wake any waiting threads
}
}
-
+
}
diff --git a/src/com/owncloud/android/files/InstantUploadBroadcastReceiver.java b/src/com/owncloud/android/files/InstantUploadBroadcastReceiver.java
index efaa803c23..c1c3e9cadf 100644
--- a/src/com/owncloud/android/files/InstantUploadBroadcastReceiver.java
+++ b/src/com/owncloud/android/files/InstantUploadBroadcastReceiver.java
@@ -161,7 +161,7 @@ public class InstantUploadBroadcastReceiver extends BroadcastReceiver {
Intent i = new Intent(context, FileUploader.class);
i.putExtra(FileUploader.KEY_ACCOUNT, account);
i.putExtra(FileUploader.KEY_LOCAL_FILE, file_path);
- i.putExtra(FileUploader.KEY_REMOTE_FILE, FileStorageUtils.getInstantUploadFilePath(context, file_name));
+ i.putExtra(FileUploader.KEY_REMOTE_FILE, FileStorageUtils.getInstantVideoUploadFilePath(context, file_name));
i.putExtra(FileUploader.KEY_UPLOAD_TYPE, FileUploader.UPLOAD_SINGLE_FILE);
i.putExtra(FileUploader.KEY_MIME_TYPE, mime_type);
i.putExtra(FileUploader.KEY_INSTANT_UPLOAD, true);
diff --git a/src/com/owncloud/android/files/services/FileDownloader.java b/src/com/owncloud/android/files/services/FileDownloader.java
index fdc35f8d9c..c9ad96117b 100644
--- a/src/com/owncloud/android/files/services/FileDownloader.java
+++ b/src/com/owncloud/android/files/services/FileDownloader.java
@@ -400,6 +400,7 @@ public class FileDownloader extends Service implements OnDatatransferProgressLis
file.setFileLength((new File(mCurrentDownload.getSavePath()).length()));
file.setRemoteId(mCurrentDownload.getFile().getRemoteId());
mStorageManager.saveFile(file);
+ mStorageManager.triggerMediaScan(file.getStoragePath());
}
diff --git a/src/com/owncloud/android/files/services/FileUploader.java b/src/com/owncloud/android/files/services/FileUploader.java
index ad2a2cbe44..0480440242 100644
--- a/src/com/owncloud/android/files/services/FileUploader.java
+++ b/src/com/owncloud/android/files/services/FileUploader.java
@@ -73,6 +73,7 @@ import com.owncloud.android.operations.common.SyncOperation;
import com.owncloud.android.ui.activity.FileActivity;
import com.owncloud.android.ui.activity.FileDisplayActivity;
import com.owncloud.android.utils.ErrorMessageAdapter;
+import com.owncloud.android.utils.UriUtils;
@@ -120,6 +121,9 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
private NotificationCompat.Builder mNotificationBuilder;
private int mLastPercent;
+ private static final String MIME_TYPE_PDF = "application/pdf";
+ private static final String FILE_EXTENSION_PDF = ".pdf";
+
public static String getUploadFinishMessage() {
return FileUploader.class.getName().toString() + UPLOAD_FINISH_MESSAGE;
@@ -646,18 +650,6 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
private OCFile obtainNewOCFileToUpload(String remotePath, String localPath, String mimeType,
FileDataStorageManager storageManager) {
- OCFile newFile = new OCFile(remotePath);
- newFile.setStoragePath(localPath);
- newFile.setLastSyncDateForProperties(0);
- newFile.setLastSyncDateForData(0);
-
- // size
- if (localPath != null && localPath.length() > 0) {
- File localFile = new File(localPath);
- newFile.setFileLength(localFile.length());
- newFile.setLastSyncDateForData(localFile.lastModified());
- } // don't worry about not assigning size, the problems with localPath
- // are checked when the UploadFileOperation instance is created
// MIME type
if (mimeType == null || mimeType.length() <= 0) {
@@ -671,6 +663,25 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
if (mimeType == null) {
mimeType = "application/octet-stream";
}
+
+ if (isPdfFileFromContentProviderWithoutExtension(localPath, mimeType)){
+ remotePath += FILE_EXTENSION_PDF;
+ }
+
+ OCFile newFile = new OCFile(remotePath);
+ newFile.setStoragePath(localPath);
+ newFile.setLastSyncDateForProperties(0);
+ newFile.setLastSyncDateForData(0);
+
+ // size
+ if (localPath != null && localPath.length() > 0) {
+ File localFile = new File(localPath);
+ newFile.setFileLength(localFile.length());
+ newFile.setLastSyncDateForData(localFile.lastModified());
+ } // don't worry about not assigning size, the problems with localPath
+ // are checked when the UploadFileOperation instance is created
+
+
newFile.setMimetype(mimeType);
return newFile;
@@ -856,4 +867,17 @@ public class FileUploader extends Service implements OnDatatransferProgressListe
sendStickyBroadcast(end);
}
+ /**
+ * Checks if content provider, using the content:// scheme, returns a file with mime-type
+ * 'application/pdf' but file has not extension
+ * @param localPath
+ * @param mimeType
+ * @return true if is needed to add the pdf file extension to the file
+ */
+ private boolean isPdfFileFromContentProviderWithoutExtension(String localPath, String mimeType) {
+ return localPath.startsWith(UriUtils.URI_CONTENT_SCHEME) &&
+ mimeType.equals(MIME_TYPE_PDF) &&
+ !localPath.endsWith(FILE_EXTENSION_PDF);
+ }
+
}
diff --git a/src/com/owncloud/android/operations/CreateShareOperation.java b/src/com/owncloud/android/operations/CreateShareOperation.java
index c32c4771ec..fc44f530b2 100644
--- a/src/com/owncloud/android/operations/CreateShareOperation.java
+++ b/src/com/owncloud/android/operations/CreateShareOperation.java
@@ -24,8 +24,10 @@ package com.owncloud.android.operations;
*
*/
+import android.content.Context;
import android.content.Intent;
+import com.owncloud.android.R;
import com.owncloud.android.datamodel.FileDataStorageManager;
import com.owncloud.android.datamodel.OCFile;
import com.owncloud.android.lib.common.OwnCloudClient;
@@ -46,6 +48,7 @@ public class CreateShareOperation extends SyncOperation {
protected FileDataStorageManager mStorageManager;
+ private Context mContext;
private String mPath;
private ShareType mShareType;
private String mShareWith;
@@ -56,25 +59,27 @@ public class CreateShareOperation extends SyncOperation {
/**
* Constructor
+ * @param context The context that the share is coming from.
* @param path Full path of the file/folder being shared. Mandatory argument
- * @param shareType 0 = user, 1 = group, 3 = Public link. Mandatory argument
+ * @param shareType 0 = user, 1 = group, 3 = Public link. Mandatory argument
* @param shareWith User/group ID with who the file should be shared. This is mandatory for shareType of 0 or 1
- * @param publicUpload If false (default) public cannot upload to a public shared folder.
- * If true public can upload to a shared folder. Only available for public link shares
+ * @param publicUpload If false (default) public cannot upload to a public shared folder.
+ * If true public can upload to a shared folder. Only available for public link shares
* @param password Password to protect a public link share. Only available for public link shares
- * @param permissions 1 - Read only Default for public shares
+ * @param permissions 1 - Read only - Default for public shares
* 2 - Update
* 4 - Create
* 8 - Delete
* 16- Re-share
- * 31- All above Default for private shares
+ * 31- All above - Default for private shares
* For user or group shares.
* To obtain combinations, add the desired values together.
- * For instance, for Re-Share, delete, read, update, add 16+8+2+1 = 27.
+ * For instance, for Re-Share, delete, read, update, add 16+8+2+1 = 27.
*/
- public CreateShareOperation(String path, ShareType shareType, String shareWith, boolean publicUpload,
+ public CreateShareOperation(Context context, String path, ShareType shareType, String shareWith, boolean publicUpload,
String password, int permissions, Intent sendIntent) {
+ mContext = context;
mPath = path;
mShareType = shareType;
mShareWith = shareWith;
@@ -128,6 +133,9 @@ public class CreateShareOperation extends SyncOperation {
OCFile file = getStorageManager().getFileByPath(mPath);
if (file!=null) {
mSendIntent.putExtra(Intent.EXTRA_TEXT, share.getShareLink());
+ mSendIntent.putExtra(Intent.EXTRA_SUBJECT, String.format(mContext.getString(R.string.subject_token),
+ getClient().getCredentials().getUsername(), mContext.getString(R.string.shared_subject_header),
+ file.getFileName(), mContext.getString(R.string.with_you_subject_header)));
file.setPublicLink(share.getShareLink());
file.setShareByLink(true);
getStorageManager().saveFile(file);
diff --git a/src/com/owncloud/android/operations/DetectAuthenticationMethodOperation.java b/src/com/owncloud/android/operations/DetectAuthenticationMethodOperation.java
index c86c8b5e10..5afc421086 100644
--- a/src/com/owncloud/android/operations/DetectAuthenticationMethodOperation.java
+++ b/src/com/owncloud/android/operations/DetectAuthenticationMethodOperation.java
@@ -36,7 +36,6 @@ import com.owncloud.android.lib.resources.files.ExistenceCheckRemoteOperation;
import android.content.Context;
import android.net.Uri;
-import android.util.Log;
/**
* Operation to find out what authentication method requires
diff --git a/src/com/owncloud/android/operations/DownloadFileOperation.java b/src/com/owncloud/android/operations/DownloadFileOperation.java
index 9f2bed725e..0a5ff94c00 100644
--- a/src/com/owncloud/android/operations/DownloadFileOperation.java
+++ b/src/com/owncloud/android/operations/DownloadFileOperation.java
@@ -150,13 +150,11 @@ public class DownloadFileOperation extends RemoteOperation {
newFile = new File(getSavePath());
newFile.getParentFile().mkdirs();
moved = tmpFile.renameTo(newFile);
-
if (!moved)
result = new RemoteOperationResult(RemoteOperationResult.ResultCode.LOCAL_STORAGE_NOT_MOVED);
}
Log_OC.i(TAG, "Download of " + mFile.getRemotePath() + " to " + getSavePath() + ": " + result.getLogMessage());
-
return result;
}
diff --git a/src/com/owncloud/android/operations/GetSharesForFileOperation.java b/src/com/owncloud/android/operations/GetSharesForFileOperation.java
index c319d620f2..649437d29a 100644
--- a/src/com/owncloud/android/operations/GetSharesForFileOperation.java
+++ b/src/com/owncloud/android/operations/GetSharesForFileOperation.java
@@ -45,10 +45,10 @@ public class GetSharesForFileOperation extends SyncOperation {
* Constructor
*
* @param path Path to file or folder
- * @param reshares If set to false (default), only shares from the current user are returned
- * If set to true, all shares from the given file are returned
- * @param subfiles If set to false (default), lists only the folder being shared
- * If set to true, all shared files within the folder are returned.
+ * @param reshares If set to false (default), only shares from the current user are returned
+ * If set to true, all shares from the given file are returned
+ * @param subfiles If set to false (default), lists only the folder being shared
+ * If set to true, all shared files within the folder are returned.
*/
public GetSharesForFileOperation(String path, boolean reshares, boolean subfiles) {
mPath = path;
diff --git a/src/com/owncloud/android/operations/RenameFileOperation.java b/src/com/owncloud/android/operations/RenameFileOperation.java
index 95a5a9ba93..bd60e1fbdb 100644
--- a/src/com/owncloud/android/operations/RenameFileOperation.java
+++ b/src/com/owncloud/android/operations/RenameFileOperation.java
@@ -29,8 +29,6 @@ import com.owncloud.android.lib.resources.files.RenameRemoteFileOperation;
import com.owncloud.android.operations.common.SyncOperation;
import com.owncloud.android.utils.FileStorageUtils;
-import android.accounts.Account;
-
/**
* Remote operation performing the rename of a remote file (or folder?) in the ownCloud server.
@@ -44,7 +42,6 @@ public class RenameFileOperation extends SyncOperation {
private OCFile mFile;
private String mRemotePath;
- private Account mAccount;
private String mNewName;
private String mNewRemotePath;
@@ -57,9 +54,8 @@ public class RenameFileOperation extends SyncOperation {
* @param account OwnCloud account containing the remote file
* @param newName New name to set as the name of file.
*/
- public RenameFileOperation(String remotePath, Account account, String newName) {
+ public RenameFileOperation(String remotePath, String newName) {
mRemotePath = remotePath;
- mAccount = account;
mNewName = newName;
mNewRemotePath = null;
}
@@ -103,7 +99,8 @@ public class RenameFileOperation extends SyncOperation {
if (result.isSuccess()) {
if (mFile.isFolder()) {
- saveLocalDirectory();
+ getStorageManager().moveLocalFile(mFile, mNewRemotePath, parent);
+ //saveLocalDirectory();
} else {
saveLocalFile();
@@ -118,28 +115,24 @@ public class RenameFileOperation extends SyncOperation {
return result;
}
-
- private void saveLocalDirectory() {
- getStorageManager().moveFolder(mFile, mNewRemotePath);
- String localPath = FileStorageUtils.getDefaultSavePathFor(mAccount.name, mFile);
- File localDir = new File(localPath);
- if (localDir.exists()) {
- localDir.renameTo(new File(FileStorageUtils.getSavePath(mAccount.name) + mNewRemotePath));
- // TODO - if renameTo fails, children files that are already down will result unlinked
- }
- }
-
private void saveLocalFile() {
mFile.setFileName(mNewName);
// try to rename the local copy of the file
if (mFile.isDown()) {
- File f = new File(mFile.getStoragePath());
+ String oldPath = mFile.getStoragePath();
+ File f = new File(oldPath);
String parentStoragePath = f.getParent();
if (!parentStoragePath.endsWith(File.separator))
parentStoragePath += File.separator;
if (f.renameTo(new File(parentStoragePath + mNewName))) {
- mFile.setStoragePath(parentStoragePath + mNewName);
+ String newPath = parentStoragePath + mNewName;
+ mFile.setStoragePath(newPath);
+
+ // notify MediaScanner about removed file - TODO really works?
+ getStorageManager().triggerMediaScan(oldPath);
+ // notify to scan about new file
+ getStorageManager().triggerMediaScan(newPath);
}
// else - NOTHING: the link to the local file is kept although the local name can't be updated
// TODO - study conditions when this could be a problem
diff --git a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java
index cdf1282342..d61e678416 100644
--- a/src/com/owncloud/android/operations/SynchronizeFolderOperation.java
+++ b/src/com/owncloud/android/operations/SynchronizeFolderOperation.java
@@ -33,6 +33,7 @@ import org.apache.http.HttpStatus;
import android.accounts.Account;
import android.content.Context;
import android.content.Intent;
+import android.util.Log;
//import android.support.v4.content.LocalBroadcastManager;
import com.owncloud.android.datamodel.FileDataStorageManager;
@@ -325,7 +326,7 @@ public class SynchronizeFolderOperation extends RemoteOperation {
private void synchronizeData(ArrayList