Merge pull request #1190 from owncloud/1182_Open_With_Fix
authorMaria Asensio <masensio@solidgear.es>
Wed, 7 Oct 2015 09:19:16 +0000 (11:19 +0200)
committerMaria Asensio <masensio@solidgear.es>
Wed, 7 Oct 2015 09:19:16 +0000 (11:19 +0200)
Fix for #1182 on Android 5

res/values-de/strings.xml
res/values-es/strings.xml
res/values-ru/strings.xml
res/values-tr/strings.xml
src/com/owncloud/android/utils/FileStorageUtils.java
src/third_parties/daveKoeller/AlphanumComparator.java

index 8a34aeb..8a75e6d 100644 (file)
   <string name="confirmation_remove_folder_alert">Möchtest Du wirklich %1$s und dessen Inhalte entfernen?</string>
   <string name="confirmation_remove_local">Nur lokal</string>
   <string name="confirmation_remove_folder_local">Nur lokal</string>
+  <string name="confirmation_remove_remote">Vom Server</string>
+  <string name="confirmation_remove_remote_and_local">Remote &amp; lokal</string>
   <string name="remove_success_msg">Erfolgreich gelöscht</string>
   <string name="remove_fail_msg">Der Löschvorgang konnte nicht beendet werden</string>
   <string name="rename_dialog_title">Gib einen neuen Namen ein</string>
   <string name="conflict_title">Dateikonfilikt</string>
   <string name="conflict_message">Welche Datei möchtest du behalten? Wenn du beide Versionen auswählst, wird der lokalen Datei eine Zahl am Ende Ihres Dateiname angehangen.</string>
   <string name="conflict_keep_both">Beide behalten</string>
+  <string name="conflict_use_local_version">Lokale Version</string>
+  <string name="conflict_use_server_version">Serverversion</string>
   <string name="preview_image_description">Bildvorschau</string>
   <string name="preview_image_error_unknown_format">Dieses Bild kann nicht angezeigt werden</string>
   <string name="error__upload__local_file_not_copied">%1$s konnte nicht in den lokalen %2$s Ordner kopiert werden</string>
   <string name="move_file_invalid_overwrite">Die Datei ist bereits im Zielordner vorhanden</string>
   <string name="move_file_error">Es ist ein Fehler beim Verschieben der Datei oder des Ordners aufgetreten.</string>
   <string name="forbidden_permissions_move">um diese Datei zu verschieben</string>
+  <string name="copy_file_not_found">Kopieren nicht möglich. Prüfe, dass die Datei existiert</string>
+  <string name="copy_file_invalid_into_descendent">Es ist nicht möglich, einen Ordner in einen seiner Unterordner zu kopieren</string>
   <string name="copy_file_invalid_overwrite">Die Datei existiert bereits im Zielverzeichnis</string>
+  <string name="copy_file_error">Es ist ein Fehler beim Kopieren der Datei oder des Ordners aufgetreten.</string>
+  <string name="forbidden_permissions_copy">diese Datei zu kopieren</string>
   <string name="prefs_category_instant_uploading">Sofortiges Hochladen</string>
   <string name="prefs_category_security">Sicherheit</string>
   <string name="prefs_instant_video_upload_path_title">Verzeichnis zum Hochladen der Videos</string>
index 1796c4a..1ae5c99 100644 (file)
   <string name="pass_code_configure_your_pass_code_explanation">La contraseña será requerida cada vez que la aplicación sea iniciada</string>
   <string name="pass_code_reenter_your_pass_code">Reintroduzca la contraseña, por favor.</string>
   <string name="pass_code_remove_your_pass_code">Borre su contraseña</string>
-  <string name="pass_code_mismatch">Las contraseñas no son identicas</string>
-  <string name="pass_code_wrong">Contraseña incorrecta</string>
-  <string name="pass_code_removed">Contraseña borrada</string>
+  <string name="pass_code_mismatch">Los códigos de acceso no son idénticos</string>
+  <string name="pass_code_wrong">Código de acceso incorrecto</string>
+  <string name="pass_code_removed">Código de acceso borrado</string>
   <string name="pass_code_stored">Contraseña almacenada</string>
   <string name="media_notif_ticker">Reproductor de música %1$s</string>
   <string name="media_state_playing">%1$s (reproduciendo)</string>
index 5e4e3e3..a0128b5 100644 (file)
   <string name="confirmation_remove_folder_alert">Вы действительно хотите удалить %1$s и его содержимое?</string>
   <string name="confirmation_remove_local">Только локально</string>
   <string name="confirmation_remove_folder_local">Только локально</string>
+  <string name="confirmation_remove_remote">От сервера</string>
+  <string name="confirmation_remove_remote_and_local">Удаленно и локально</string>
   <string name="remove_success_msg">Удаление завершено</string>
   <string name="remove_fail_msg">Ошибка удаления</string>
   <string name="rename_dialog_title">Введите новое имя</string>
   <string name="conflict_title">Конфликт файлов</string>
   <string name="conflict_message">Какие файлы Вы хотите сохранить? При выборе обеих версий, к названию локального файла будет добавлена цифра</string>
   <string name="conflict_keep_both">Сохранить оба</string>
+  <string name="conflict_use_local_version">локальная версия</string>
+  <string name="conflict_use_server_version">удаленная версия</string>
   <string name="preview_image_description">Предпросмотр</string>
   <string name="preview_image_error_unknown_format">Это изображение не может быть отображено</string>
   <string name="error__upload__local_file_not_copied">%1$s невозможно скопировать в локальный каталог %2$s </string>
   <string name="move_file_invalid_overwrite">Файл уже существует в каталоге назначения</string>
   <string name="move_file_error">Произошла ошибка при попытке перемещения этого файла или каталога</string>
   <string name="forbidden_permissions_move">для перемещения этого файла</string>
+  <string name="copy_file_not_found">Не удалось произвести копирование. Пожалуйста проверьте существование файла</string>
+  <string name="copy_file_invalid_into_descendent">Нельзя произвести копирование папки в унаследованную папку</string>
   <string name="copy_file_invalid_overwrite">Файл уже существует в каталоге назначения</string>
+  <string name="copy_file_error">Произошла ошибка во время копирования этого файла или папки</string>
+  <string name="forbidden_permissions_copy">для копирования этого файла</string>
   <string name="prefs_category_instant_uploading">Мгновенные загрузки</string>
   <string name="prefs_category_security">Безопасность</string>
   <string name="prefs_instant_video_upload_path_title">Путь для загрузки Видео</string>
index d682fe6..0ad4cfc 100644 (file)
         </string>
   <string name="auth_can_not_auth_against_server">Bu sunucuya karşı kimlik doğrulama yapılamaz</string>
   <string name="auth_account_does_not_exist">Hesap henüz cihazda mevcut değil</string>
-  <string name="favorite">Sık kullanılan</string>
+  <string name="favorite">Favorilere ekle</string>
   <string name="unfavorite">Favoriden kaldır</string>
   <string name="common_rename">Yeniden adlandır</string>
   <string name="common_remove">Kaldır</string>
   <string name="move_file_invalid_overwrite">Dosya zaten hedef klasörde mevcut</string>
   <string name="move_file_error">Bu dosya veya klasörü taşımaya çalışılırken bir hata oluştu</string>
   <string name="forbidden_permissions_move">bu dosyayı taşımak için</string>
+  <string name="copy_file_not_found">Kopyalama başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin</string>
+  <string name="copy_file_invalid_into_descendent">Klasörü, kendi alt klasörüne kopyalamak mümkün değil</string>
   <string name="copy_file_invalid_overwrite">Dosya zaten hedef klasörde mevcut</string>
+  <string name="copy_file_error">Bu dosya veya klasörü kopyalamaya çalışılırken bir hata oluştu</string>
+  <string name="forbidden_permissions_copy">bu dosyayı kopyalamak için</string>
   <string name="prefs_category_instant_uploading">Anında Yüklemeler</string>
   <string name="prefs_category_security">Güvenlik</string>
   <string name="prefs_instant_video_upload_path_title">Video Yükleme Yolu</string>
index d6ebdbd..3983771 100644 (file)
@@ -254,7 +254,7 @@ public class FileStorageUtils {
         Collections.sort(files, new Comparator<OCFile>() {
             public int compare(OCFile o1, OCFile o2) {
                 if (o1.isFolder() && o2.isFolder()) {
-                    return val * o1.getRemotePath().toLowerCase().compareTo(o2.getRemotePath().toLowerCase());
+                    return val * new AlphanumComparator().compare(o1, o2);
                 } else if (o1.isFolder()) {
                     return -1;
                 } else if (o2.isFolder()) {
index e6bd6f3..47cf143 100644 (file)
@@ -23,6 +23,7 @@
  */\r
 \r
 package third_parties.daveKoeller;\r
+import java.text.Collator;\r
 import java.util.Comparator;\r
 \r
 import com.owncloud.android.datamodel.OCFile;\r
@@ -48,14 +49,12 @@ public class AlphanumComparator implements Comparator<OCFile>
     }\r
 \r
     /** Length of string is passed in for improved efficiency (only need to calculate it once) **/\r
-    private final String getChunk(String s, int slength, int marker)\r
-    {\r
+    private final String getChunk(String s, int slength, int marker){\r
         StringBuilder chunk = new StringBuilder();\r
         char c = s.charAt(marker);\r
         chunk.append(c);\r
         marker++;\r
-        if (isDigit(c))\r
-        {\r
+        if (isDigit(c)){\r
             while (marker < slength)\r
             {\r
                 c = s.charAt(marker);\r
@@ -64,8 +63,7 @@ public class AlphanumComparator implements Comparator<OCFile>
                 chunk.append(c);\r
                 marker++;\r
             }\r
-        } else\r
-        {\r
+        } else {\r
             while (marker < slength)\r
             {\r
                 c = s.charAt(marker);\r
@@ -78,8 +76,7 @@ public class AlphanumComparator implements Comparator<OCFile>
         return chunk.toString();\r
     }\r
 \r
-    public int compare(OCFile o1, OCFile o2)\r
-    {\r
+    public int compare(OCFile o1, OCFile o2){\r
         String s1 = (String)o1.getRemotePath().toLowerCase();\r
         String s2 = (String)o2.getRemotePath().toLowerCase();\r
 \r
@@ -88,8 +85,7 @@ public class AlphanumComparator implements Comparator<OCFile>
         int s1Length = s1.length();\r
         int s2Length = s2.length();\r
 \r
-        while (thisMarker < s1Length && thatMarker < s2Length)\r
-        {\r
+        while (thisMarker < s1Length && thatMarker < s2Length) {\r
             String thisChunk = getChunk(s1, s1Length, thisMarker);\r
             thisMarker += thisChunk.length();\r
 \r
@@ -98,26 +94,23 @@ public class AlphanumComparator implements Comparator<OCFile>
 \r
             // If both chunks contain numeric characters, sort them numerically\r
             int result = 0;\r
-            if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0)))\r
-            {\r
+            if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0))) {\r
                 // Simple chunk comparison by length.\r
                 int thisChunkLength = thisChunk.length();\r
                 result = thisChunkLength - thatChunk.length();\r
                 // If equal, the first different number counts\r
-                if (result == 0)\r
-                {\r
-                    for (int i = 0; i < thisChunkLength; i++)\r
-                    {\r
+                if (result == 0) {\r
+                    for (int i = 0; i < thisChunkLength; i++) {\r
                         result = thisChunk.charAt(i) - thatChunk.charAt(i);\r
-                        if (result != 0)\r
-                        {\r
+                        if (result != 0) {\r
                             return result;\r
                         }\r
                     }\r
                 }\r
-            } else\r
-            {\r
-                result = thisChunk.compareTo(thatChunk);\r
+            } else {\r
+                Collator collator = Collator.getInstance();\r
+                collator.setStrength(Collator.PRIMARY);\r
+                result = collator.compare(thisChunk, thatChunk);\r
             }\r
 \r
             if (result != 0)\r