Marino Faggiana 7 years ago
parent
commit
bcdd7b8731

+ 11 - 7
Nextcloud.xcodeproj/project.pbxproj

@@ -3657,8 +3657,8 @@
 				F78088E51DD3A1DB005C5A7C /* cryptocloud.xcdatamodeld */,
 				F7F67BB81A24D27800EE80DA /* Images.xcassets */,
 				F70211F31BAC56E9003FC03E /* Main */,
-				F7B0C1701EE8397E0033AC24 /* AutoUpload */,
 				F7C1CDD91E6DFC6F005D92BE /* Brand */,
+				F7B0C1701EE8397E0033AC24 /* AutoUpload */,
 				F720E02A1E48C74C001A4B9E /* Actions */,
 				F7A321621E9E37960069AD1B /* Activity */,
 				F7ECBA6B1E239DCD003E6328 /* Create */,
@@ -5309,14 +5309,16 @@
 					"$(inherited)",
 					NC,
 				);
-				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
+				HEADER_SEARCH_PATHS = (
+					"\"Libraries external\"/**",
+					"$(PROJECT_DIR)/iOSClient/Library/NCUchardet",
+				);
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/iOSClient.plist";
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
 				LIBRARY_SEARCH_PATHS = (
-					Libraries,
-					"external/**",
 					"$(PROJECT_DIR)/iOSClient/Library/NCUchardet",
+					"\"Libraries external\"/openssl",
 				);
 				OTHER_LDFLAGS = (
 					"-Obj-C",
@@ -5361,14 +5363,16 @@
 					"$(inherited)",
 					NC,
 				);
-				HEADER_SEARCH_PATHS = "\"Libraries external\"/**";
+				HEADER_SEARCH_PATHS = (
+					"\"Libraries external\"/**",
+					"$(PROJECT_DIR)/iOSClient/Library/NCUchardet",
+				);
 				INFOPLIST_FILE = "$(SRCROOT)/iOSClient/Brand/iOSClient.plist";
 				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
 				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
 				LIBRARY_SEARCH_PATHS = (
-					Libraries,
-					"external/**",
 					"$(PROJECT_DIR)/iOSClient/Library/NCUchardet",
+					"\"Libraries external\"/openssl",
 				);
 				OTHER_LDFLAGS = (
 					"-Obj-C",

+ 3 - 1
iOSClient/Library/NCUchardet/NCUchardet.h

@@ -27,6 +27,8 @@
 
 + (NCUchardet *)sharedNUCharDet;
 
-- (NSString *)encodingDetectWithData:(NSData *)data;
+- (NSString *)encodingStringDetectWithData:(NSData *)data;
+- (CFStringEncoding)encodingCFStringDetectWithData:(NSData *)data;
+
 
 @end

+ 12 - 1
iOSClient/Library/NCUchardet/NCUchardet.m

@@ -58,7 +58,7 @@
     uchardet_delete(_detector);
 }
 
-- (NSString *)encodingDetectWithData:(NSData *)data
+- (NSString *)encodingStringDetectWithData:(NSData *)data
 {
     uchardet_handle_data(_detector, [data bytes], [data length]);
     uchardet_data_end(_detector);
@@ -71,4 +71,15 @@
     return encoding;
 }
 
+- (CFStringEncoding)encodingCFStringDetectWithData:(NSData *)data
+{
+    NSString *encodingName = [self encodingStringDetectWithData:data];
+    if ([encodingName isEqualToString:@""]) {
+        return kCFStringEncodingInvalidId;
+    }
+    
+    CFStringEncoding encoding = CFStringConvertIANACharSetNameToEncoding((CFStringRef)encodingName);
+    return encoding;
+}
+
 @end

+ 1 - 1
iOSClient/Main/CCDetail.m

@@ -389,7 +389,7 @@
         [headRequest setHTTPMethod:@"HEAD"];
         
         NSURLSessionDataTask *task = [session dataTaskWithRequest:headRequest completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
-            NSString *encodingName = [[NCUchardet sharedNUCharDet] encodingDetectWithData:data];
+            NSString *encodingName = [[NCUchardet sharedNUCharDet] encodingStringDetectWithData:data];
             [self.webView loadData:[NSData dataWithContentsOfURL: url] MIMEType:response.MIMEType characterEncodingName:encodingName baseURL:url];
         }];
         

+ 1 - 0
iOSClient/Nextcloud-Bridging-Header.h

@@ -9,6 +9,7 @@
 #import "CCManageAccount.h"
 #import "CCGraphics.h"
 #import "NCAutoUpload.h"
+#import "NCUchardet.h"
 
 #import "OCActivity.h"
 #import "OCUserProfile.h"

+ 14 - 4
iOSClient/Text/NCText.swift

@@ -58,13 +58,23 @@ class NCText: UIViewController, UITextViewDelegate {
         // Modify
         if let metadata = metadata {
             
+            loadText = ""
             let path = "\(appDelegate.directoryUser!)/\(metadata.fileID)"
+            let data = NSData(contentsOfFile: path)
+            
+            if let data = data {
             
-            loadText = try? String(contentsOfFile: path, encoding: String.Encoding.utf8)
-            textView.text = loadText
-            nextButton.title = NSLocalizedString("_save_", comment: "")
-            self.navigationController?.navigationBar.topItem?.title = NSLocalizedString(metadata.fileNamePrint, comment: "")
+                let encodingCFName = NCUchardet.sharedNUCharDet().encodingCFStringDetect(with: data as Data)
+                let se = CFStringConvertEncodingToNSStringEncoding(encodingCFName)
+                let encoding = String.Encoding(rawValue: se)
+                
+                loadText = try? String(contentsOfFile: path, encoding: encoding)
+                textView.text = loadText
+                nextButton.title = NSLocalizedString("_save_", comment: "")
+                self.navigationController?.navigationBar.topItem?.title = NSLocalizedString(metadata.fileNamePrint, comment: "")
             
+            }
+                
         } else {
             
             loadText = ""