Browse Source

Fix sort "Local"

Marino Faggiana 6 years ago
parent
commit
749269eb03
2 changed files with 13 additions and 2 deletions
  1. 5 0
      iOSClient/CCGlobal.h
  2. 8 2
      iOSClient/Main/CCSection.m

+ 5 - 0
iOSClient/CCGlobal.h

@@ -35,6 +35,11 @@
 //DispatchQueue.main.asyncAfter(deadline: .now() + 0.1)
 //DispatchQueue.global().async
 
+
+//NSString *language = [[NSLocale preferredLanguages] objectAtIndex:0];
+//NSDictionary *languageDic = [NSLocale componentsFromLocaleIdentifier:language];
+//NSString *languageCode = [languageDic objectForKey:@"kCFLocaleLanguageCodeKey"];
+
 //#if targetEnvironment(simulator)
 //#endif
 

+ 8 - 2
iOSClient/Main/CCSection.m

@@ -184,8 +184,14 @@
         if ([obj1 isKindOfClass:[NSString class]] && [obj1 containsString: k_metadataTypeFile_directory]) return NSOrderedAscending;
         if ([obj2 isKindOfClass:[NSString class]] && [obj2 containsString: k_metadataTypeFile_directory]) return NSOrderedDescending;
         
-        if (ascending) return [obj1 compare:obj2];
-        else return [obj2 compare:obj1];
+        // Sort with Locale
+        if ([obj1 isKindOfClass:[NSDate class]]) {
+            if (ascending) return [obj1 compare:obj2];
+            else return [obj2 compare:obj1];
+        } else {
+            if (ascending) return [obj1 compare:obj2 options:NSCaseInsensitiveSearch range:NSMakeRange(0,[obj1 length]) locale:[NSLocale currentLocale]];
+            else return [obj2 compare:obj1 options:NSCaseInsensitiveSearch range:NSMakeRange(0,[obj2 length]) locale:[NSLocale currentLocale]];
+        }
     }];
     
     /*