From: Maria Asensio Date: Wed, 7 Oct 2015 09:19:16 +0000 (+0200) Subject: Merge pull request #1190 from owncloud/1182_Open_With_Fix X-Git-Tag: oc-android-1.9^2~57 X-Git-Url: http://git.linex4red.de/pub/Android/ownCloud.git/commitdiff_plain/567355eed079c0fe301bf6f8d2117d39ce537c6f?hp=75e2349e5b78cdcae6ec8684b57afedc7faf94e0 Merge pull request #1190 from owncloud/1182_Open_With_Fix Fix for #1182 on Android 5 --- diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml index 8a34aeb3..8a75e6d5 100644 --- a/res/values-de/strings.xml +++ b/res/values-de/strings.xml @@ -202,6 +202,8 @@ Möchtest Du wirklich %1$s und dessen Inhalte entfernen? Nur lokal Nur lokal + Vom Server + Remote & lokal Erfolgreich gelöscht Der Löschvorgang konnte nicht beendet werden Gib einen neuen Namen ein @@ -256,6 +258,8 @@ Dateikonfilikt Welche Datei möchtest du behalten? Wenn du beide Versionen auswählst, wird der lokalen Datei eine Zahl am Ende Ihres Dateiname angehangen. Beide behalten + Lokale Version + Serverversion Bildvorschau Dieses Bild kann nicht angezeigt werden %1$s konnte nicht in den lokalen %2$s Ordner kopiert werden @@ -303,7 +307,11 @@ Die Datei ist bereits im Zielordner vorhanden Es ist ein Fehler beim Verschieben der Datei oder des Ordners aufgetreten. um diese Datei zu verschieben + Kopieren nicht möglich. Prüfe, dass die Datei existiert + Es ist nicht möglich, einen Ordner in einen seiner Unterordner zu kopieren Die Datei existiert bereits im Zielverzeichnis + Es ist ein Fehler beim Kopieren der Datei oder des Ordners aufgetreten. + diese Datei zu kopieren Sofortiges Hochladen Sicherheit Verzeichnis zum Hochladen der Videos diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index 1796c4a8..1ae5c990 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -138,9 +138,9 @@ La contraseña será requerida cada vez que la aplicación sea iniciada Reintroduzca la contraseña, por favor. Borre su contraseña - Las contraseñas no son identicas - Contraseña incorrecta - Contraseña borrada + Los códigos de acceso no son idénticos + Código de acceso incorrecto + Código de acceso borrado Contraseña almacenada Reproductor de música %1$s %1$s (reproduciendo) diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml index 5e4e3e36..a0128b5a 100644 --- a/res/values-ru/strings.xml +++ b/res/values-ru/strings.xml @@ -203,6 +203,8 @@ Вы действительно хотите удалить %1$s и его содержимое? Только локально Только локально + От сервера + Удаленно и локально Удаление завершено Ошибка удаления Введите новое имя @@ -257,6 +259,8 @@ Конфликт файлов Какие файлы Вы хотите сохранить? При выборе обеих версий, к названию локального файла будет добавлена цифра Сохранить оба + локальная версия + удаленная версия Предпросмотр Это изображение не может быть отображено %1$s невозможно скопировать в локальный каталог %2$s @@ -304,7 +308,11 @@ Файл уже существует в каталоге назначения Произошла ошибка при попытке перемещения этого файла или каталога для перемещения этого файла + Не удалось произвести копирование. Пожалуйста проверьте существование файла + Нельзя произвести копирование папки в унаследованную папку Файл уже существует в каталоге назначения + Произошла ошибка во время копирования этого файла или папки + для копирования этого файла Мгновенные загрузки Безопасность Путь для загрузки Видео diff --git a/res/values-tr/strings.xml b/res/values-tr/strings.xml index d682fe65..0ad4cfc1 100644 --- a/res/values-tr/strings.xml +++ b/res/values-tr/strings.xml @@ -194,7 +194,7 @@ Bu sunucuya karşı kimlik doğrulama yapılamaz Hesap henüz cihazda mevcut değil - Sık kullanılan + Favorilere ekle Favoriden kaldır Yeniden adlandır Kaldır @@ -307,7 +307,11 @@ Dosya zaten hedef klasörde mevcut Bu dosya veya klasörü taşımaya çalışılırken bir hata oluştu bu dosyayı taşımak için + Kopyalama başarısız. Lütfen dosyanın mevcut olup olmadığını denetleyin + Klasörü, kendi alt klasörüne kopyalamak mümkün değil Dosya zaten hedef klasörde mevcut + Bu dosya veya klasörü kopyalamaya çalışılırken bir hata oluştu + bu dosyayı kopyalamak için Anında Yüklemeler Güvenlik Video Yükleme Yolu diff --git a/src/com/owncloud/android/utils/FileStorageUtils.java b/src/com/owncloud/android/utils/FileStorageUtils.java index d6ebdbd3..39837717 100644 --- a/src/com/owncloud/android/utils/FileStorageUtils.java +++ b/src/com/owncloud/android/utils/FileStorageUtils.java @@ -254,7 +254,7 @@ public class FileStorageUtils { Collections.sort(files, new Comparator() { 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()) { diff --git a/src/third_parties/daveKoeller/AlphanumComparator.java b/src/third_parties/daveKoeller/AlphanumComparator.java index e6bd6f38..47cf1437 100644 --- a/src/third_parties/daveKoeller/AlphanumComparator.java +++ b/src/third_parties/daveKoeller/AlphanumComparator.java @@ -23,6 +23,7 @@ */ package third_parties.daveKoeller; +import java.text.Collator; import java.util.Comparator; import com.owncloud.android.datamodel.OCFile; @@ -48,14 +49,12 @@ public class AlphanumComparator implements Comparator } /** Length of string is passed in for improved efficiency (only need to calculate it once) **/ - private final String getChunk(String s, int slength, int marker) - { + private final String getChunk(String s, int slength, int marker){ StringBuilder chunk = new StringBuilder(); char c = s.charAt(marker); chunk.append(c); marker++; - if (isDigit(c)) - { + if (isDigit(c)){ while (marker < slength) { c = s.charAt(marker); @@ -64,8 +63,7 @@ public class AlphanumComparator implements Comparator chunk.append(c); marker++; } - } else - { + } else { while (marker < slength) { c = s.charAt(marker); @@ -78,8 +76,7 @@ public class AlphanumComparator implements Comparator return chunk.toString(); } - public int compare(OCFile o1, OCFile o2) - { + public int compare(OCFile o1, OCFile o2){ String s1 = (String)o1.getRemotePath().toLowerCase(); String s2 = (String)o2.getRemotePath().toLowerCase(); @@ -88,8 +85,7 @@ public class AlphanumComparator implements Comparator int s1Length = s1.length(); int s2Length = s2.length(); - while (thisMarker < s1Length && thatMarker < s2Length) - { + while (thisMarker < s1Length && thatMarker < s2Length) { String thisChunk = getChunk(s1, s1Length, thisMarker); thisMarker += thisChunk.length(); @@ -98,26 +94,23 @@ public class AlphanumComparator implements Comparator // If both chunks contain numeric characters, sort them numerically int result = 0; - if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0))) - { + if (isDigit(thisChunk.charAt(0)) && isDigit(thatChunk.charAt(0))) { // Simple chunk comparison by length. int thisChunkLength = thisChunk.length(); result = thisChunkLength - thatChunk.length(); // If equal, the first different number counts - if (result == 0) - { - for (int i = 0; i < thisChunkLength; i++) - { + if (result == 0) { + for (int i = 0; i < thisChunkLength; i++) { result = thisChunk.charAt(i) - thatChunk.charAt(i); - if (result != 0) - { + if (result != 0) { return result; } } } - } else - { - result = thisChunk.compareTo(thatChunk); + } else { + Collator collator = Collator.getInstance(); + collator.setStrength(Collator.PRIMARY); + result = collator.compare(thisChunk, thatChunk); } if (result != 0)