Przeglądaj źródła

View images and some fixes

humanlikedisaster 6 lat temu
rodzic
commit
b48c759925

+ 2 - 2
deltachat-ios.xcodeproj/project.pbxproj

@@ -813,7 +813,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				DEVELOPMENT_TEAM = S595XJ38G3;
+				DEVELOPMENT_TEAM = 9M4M75R59J;
 				HEADER_SEARCH_PATHS = "deltachat-ios/libraries/deltachat-core/libs/netpgp/include";
 				INFOPLIST_FILE = "deltachat-ios/Info.plist";
 				IPHONEOS_DEPLOYMENT_TARGET = 11.0;
@@ -839,7 +839,7 @@
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
 				CLANG_ENABLE_MODULES = YES;
 				CODE_SIGN_STYLE = Automatic;
-				DEVELOPMENT_TEAM = S595XJ38G3;
+				DEVELOPMENT_TEAM = 9M4M75R59J;
 				HEADER_SEARCH_PATHS = "deltachat-ios/libraries/deltachat-core/libs/netpgp/include";
 				INFOPLIST_FILE = "deltachat-ios/Info.plist";
 				IPHONEOS_DEPLOYMENT_TARGET = 11.0;

+ 9 - 4
deltachat-ios/ChatViewController.swift

@@ -288,13 +288,17 @@ extension ChatViewController: MessagesDataSource {
     }
     
     func messageForItem(at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) -> MessageType {
-        let section = indexPath.section
-        let messageId = messageIds[section]
+        let row = indexPath.row
+        let messageId = messageIds[row]
         let message = MRMessage(id: messageId)
         let contact = MRContact(id: message.fromContactId)
         
         let sender = Sender(id: "\(contact.id)", displayName: contact.name)
-        return Message(text: message.text ?? "- empty -", sender: sender, messageId: "\(messageId)", date: Date(timeIntervalSince1970: Double(message.timestamp)))
+        if let image = message.image {
+            return Message(image: image, sender: sender, messageId: "\(messageId)", date: Date(timeIntervalSince1970: Double(message.timestamp)))
+        } else {
+            return Message(text: message.text ?? "- empty -", sender: sender, messageId: "\(messageId)", date: Date(timeIntervalSince1970: Double(message.timestamp)))
+        }
     }
     
     func avatar(for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) -> Avatar {
@@ -408,7 +412,8 @@ extension ChatViewController: MessagesLayoutDelegate {
         }
         
         do {
-            let path = directory.appendingPathComponent("attachment.jpg")
+            let timestamp = Int(Date().timeIntervalSince1970) 
+            let path = directory.appendingPathComponent("\(chatId)_\(timestamp).jpg")
             try data.write(to: path!)
             return path?.relativePath
         } catch {

+ 10 - 3
deltachat-ios/GroupNameController.swift

@@ -65,9 +65,16 @@ class GroupNameController: UIViewController {
                 fatalError("failed to add \(contactId) to group \(groupName)")
             }
         }
-
-        let chatVC = ChatViewController(chatId: Int(groupChatId))
-        navigationController?.pushViewController(chatVC, animated: true)
+        groupNameTextField.resignFirstResponder()
+        let root = navigationController?.presentingViewController
+        navigationController?.dismiss(animated: true) {
+            let chatVC = ChatViewController(chatId: Int(groupChatId))
+            if let navigationRoot = root as? UINavigationController {
+                navigationRoot.pushViewController(chatVC, animated: true)
+            }
+        }
+        
+        
         
     }
 

+ 22 - 1
deltachat-ios/Wrapper.swift

@@ -7,7 +7,7 @@
 //
 
 import Foundation
-
+import UIKit
 
 class MRContact {
     private var contactPointer: UnsafeMutablePointer<dc_contact_t>
@@ -67,6 +67,27 @@ class MRMessage {
         return String(cString: messagePointer.pointee.text)
     }
     
+    var mimeType: String? {
+        guard let result = dc_msg_get_filemime(messagePointer) else { return nil }
+        return String(cString: result)
+    }
+    
+    var image: UIImage? {
+        let file = dc_msg_get_file(messagePointer)
+        guard let cPath = file else { return nil }
+        let path = String(cString: cPath)
+        if path.count > 0 {
+            do {
+                let data = try Data(contentsOf: URL(fileURLWithPath: path))
+                let image = UIImage(data: data)
+                return image
+            } catch (_) {
+                return nil
+            }
+        }
+        return nil
+    }
+    
     // MR_MSG_*
     var type: Int {
         return Int(messagePointer.pointee.type)