Browse Source

gave up displaying video thumbnails

Bastian van de Wetering 6 years ago
parent
commit
2104be656a

+ 0 - 4
deltachat-ios.xcodeproj/project.pbxproj

@@ -38,7 +38,6 @@
 		7AE0A5491FC42F65005ECB4B /* NewChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AE0A5481FC42F65005ECB4B /* NewChatViewController.swift */; };
 		7AE0A5491FC42F65005ECB4B /* NewChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7AE0A5481FC42F65005ECB4B /* NewChatViewController.swift */; };
 		8B6D425BC604F7C43B65D436 /* Pods_deltachat_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6241BE1534A653E79AD5D01D /* Pods_deltachat_ios.framework */; };
 		8B6D425BC604F7C43B65D436 /* Pods_deltachat_ios.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6241BE1534A653E79AD5D01D /* Pods_deltachat_ios.framework */; };
 		AE0D26FD1FB1FE88002FAFCE /* ChatListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE0D26FC1FB1FE88002FAFCE /* ChatListController.swift */; };
 		AE0D26FD1FB1FE88002FAFCE /* ChatListController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE0D26FC1FB1FE88002FAFCE /* ChatListController.swift */; };
-		AE12132D22BCD96F00B39258 /* VideoMessageCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE12132C22BCD96F00B39258 /* VideoMessageCell.swift */; };
 		AE18F292228C17BC0007B1BE /* PortSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE18F291228C17BC0007B1BE /* PortSettingsController.swift */; };
 		AE18F292228C17BC0007B1BE /* PortSettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE18F291228C17BC0007B1BE /* PortSettingsController.swift */; };
 		AE18F294228C602A0007B1BE /* SecuritySettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE18F293228C602A0007B1BE /* SecuritySettingsController.swift */; };
 		AE18F294228C602A0007B1BE /* SecuritySettingsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE18F293228C602A0007B1BE /* SecuritySettingsController.swift */; };
 		AE25F09022807AD800CDEA66 /* GroupNameCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE25F08F22807AD800CDEA66 /* GroupNameCell.swift */; };
 		AE25F09022807AD800CDEA66 /* GroupNameCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE25F08F22807AD800CDEA66 /* GroupNameCell.swift */; };
@@ -118,7 +117,6 @@
 		8DE110C607A0E4485C43B5FA /* Pods-deltachat-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-deltachat-ios.debug.xcconfig"; path = "Pods/Target Support Files/Pods-deltachat-ios/Pods-deltachat-ios.debug.xcconfig"; sourceTree = "<group>"; };
 		8DE110C607A0E4485C43B5FA /* Pods-deltachat-ios.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-deltachat-ios.debug.xcconfig"; path = "Pods/Target Support Files/Pods-deltachat-ios/Pods-deltachat-ios.debug.xcconfig"; sourceTree = "<group>"; };
 		A8615D4600859851E53CAA9C /* Pods-deltachat-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-deltachat-ios.release.xcconfig"; path = "Pods/Target Support Files/Pods-deltachat-ios/Pods-deltachat-ios.release.xcconfig"; sourceTree = "<group>"; };
 		A8615D4600859851E53CAA9C /* Pods-deltachat-ios.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-deltachat-ios.release.xcconfig"; path = "Pods/Target Support Files/Pods-deltachat-ios/Pods-deltachat-ios.release.xcconfig"; sourceTree = "<group>"; };
 		AE0D26FC1FB1FE88002FAFCE /* ChatListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListController.swift; sourceTree = "<group>"; };
 		AE0D26FC1FB1FE88002FAFCE /* ChatListController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatListController.swift; sourceTree = "<group>"; };
-		AE12132C22BCD96F00B39258 /* VideoMessageCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoMessageCell.swift; sourceTree = "<group>"; };
 		AE18F291228C17BC0007B1BE /* PortSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PortSettingsController.swift; sourceTree = "<group>"; };
 		AE18F291228C17BC0007B1BE /* PortSettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PortSettingsController.swift; sourceTree = "<group>"; };
 		AE18F293228C602A0007B1BE /* SecuritySettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsController.swift; sourceTree = "<group>"; };
 		AE18F293228C602A0007B1BE /* SecuritySettingsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecuritySettingsController.swift; sourceTree = "<group>"; };
 		AE25F08F22807AD800CDEA66 /* GroupNameCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupNameCell.swift; sourceTree = "<group>"; };
 		AE25F08F22807AD800CDEA66 /* GroupNameCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupNameCell.swift; sourceTree = "<group>"; };
@@ -336,7 +334,6 @@
 				AE25F08F22807AD800CDEA66 /* GroupNameCell.swift */,
 				AE25F08F22807AD800CDEA66 /* GroupNameCell.swift */,
 				AE728F14229D5C390047565B /* PhotoPickerAlertAction.swift */,
 				AE728F14229D5C390047565B /* PhotoPickerAlertAction.swift */,
 				AE52EA18229EB53C00C586C9 /* ContactDetailHeader.swift */,
 				AE52EA18229EB53C00C586C9 /* ContactDetailHeader.swift */,
-				AE12132C22BCD96F00B39258 /* VideoMessageCell.swift */,
 			);
 			);
 			path = View;
 			path = View;
 			sourceTree = "<group>";
 			sourceTree = "<group>";
@@ -623,7 +620,6 @@
 				78E45E4421D3F14A00D4B15E /* UIImage+Extension.swift in Sources */,
 				78E45E4421D3F14A00D4B15E /* UIImage+Extension.swift in Sources */,
 				AE52EA20229EB9F000C586C9 /* EditGroupViewController.swift in Sources */,
 				AE52EA20229EB9F000C586C9 /* EditGroupViewController.swift in Sources */,
 				70B08FCD21073B910097D3EA /* NewGroupMemberChoiceController.swift in Sources */,
 				70B08FCD21073B910097D3EA /* NewGroupMemberChoiceController.swift in Sources */,
-				AE12132D22BCD96F00B39258 /* VideoMessageCell.swift in Sources */,
 				78E45E3E21D3D28C00D4B15E /* DCNavigationController.swift in Sources */,
 				78E45E3E21D3D28C00D4B15E /* DCNavigationController.swift in Sources */,
 				78E45E4021D3D70700D4B15E /* ContactListController.swift in Sources */,
 				78E45E4021D3D70700D4B15E /* ContactListController.swift in Sources */,
 				AE18F294228C602A0007B1BE /* SecuritySettingsController.swift in Sources */,
 				AE18F294228C602A0007B1BE /* SecuritySettingsController.swift in Sources */,

+ 1 - 39
deltachat-ios/Controller/ChatViewController.swift

@@ -65,7 +65,6 @@ class ChatViewController: MessagesViewController {
 
 
 	override func viewDidLoad() {
 	override func viewDidLoad() {
 		messagesCollectionView.register(CustomMessageCell.self)
 		messagesCollectionView.register(CustomMessageCell.self)
-		messagesCollectionView.register(VideoMessageCell.self)
 		super.viewDidLoad()
 		super.viewDidLoad()
 		view.backgroundColor = DCColors.chatBackgroundColor
 		view.backgroundColor = DCColors.chatBackgroundColor
 		if !MRConfig.configured {
 		if !MRConfig.configured {
@@ -390,16 +389,10 @@ class ChatViewController: MessagesViewController {
 			let cell = messagesCollectionView.dequeueReusableCell(TextMessageCell.self, for: indexPath)
 			let cell = messagesCollectionView.dequeueReusableCell(TextMessageCell.self, for: indexPath)
 			cell.configure(with: message, at: indexPath, and: messagesCollectionView)
 			cell.configure(with: message, at: indexPath, and: messagesCollectionView)
 			return cell
 			return cell
-		case .photo:
+		case .photo, .video:
 			let cell = messagesCollectionView.dequeueReusableCell(MediaMessageCell.self, for: indexPath)
 			let cell = messagesCollectionView.dequeueReusableCell(MediaMessageCell.self, for: indexPath)
 			cell.configure(with: message, at: indexPath, and: messagesCollectionView)
 			cell.configure(with: message, at: indexPath, and: messagesCollectionView)
 			return cell
 			return cell
-		case .video:
-			let cell = messagesCollectionView.dequeueReusableCell(VideoMessageCell.self, for: indexPath)
-			let m: MRMessage = messageList[indexPath.section]
-			let url = m.fileURL
-			cell.configure(with: message, videoUrl: url, at: indexPath, and: messagesCollectionView)
-			return cell
 		case .location:
 		case .location:
 			let cell = messagesCollectionView.dequeueReusableCell(LocationMessageCell.self, for: indexPath)
 			let cell = messagesCollectionView.dequeueReusableCell(LocationMessageCell.self, for: indexPath)
 			cell.configure(with: message, at: indexPath, and: messagesCollectionView)
 			cell.configure(with: message, at: indexPath, and: messagesCollectionView)
@@ -715,37 +708,6 @@ extension ChatViewController: MessagesDisplayDelegate {
 	func enabledDetectors(for _: MessageType, at _: IndexPath, in _: MessagesCollectionView) -> [DetectorType] {
 	func enabledDetectors(for _: MessageType, at _: IndexPath, in _: MessagesCollectionView) -> [DetectorType] {
 		return [.url, .date, .phoneNumber, .address]
 		return [.url, .date, .phoneNumber, .address]
 	}
 	}
-
-	// MARK: - videoCell configuration
-	 func configureMediaMessageImageView(_ imageView: UIImageView, for message: MessageType, at indexPath: IndexPath, in messagesCollectionView: MessagesCollectionView) {
-
-
-		let message = self.messageForItem(at: indexPath, in: messagesCollectionView)
-
-		switch message.kind {
-			/*
-		case .video:
-			let m: MRMessage = messageList[indexPath.section]
-			if let url = m.fileURL {
-
-				let thumbnail = Utils.generateThumbnailFromVideo(url: url)
-				imageView.image = thumbnail
-
-				/*
-				let dummyImageView = UIImageView(image: thumbnail)
-				dummyImageView.translatesAutoresizingMaskIntoConstraints = false
-				view.addSubview(dummyImageView)
-				dummyImageView.centerXAnchor.constraint(equalTo: view.centerXAnchor).isActive = true
-				dummyImageView.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
-				dummyImageView.heightAnchor.constraint(equalToConstant: 200).isActive = true
-				dummyImageView.widthAnchor.constraint(equalToConstant: 200).isActive = true
-				*/
-			}
-			*/
-		default:
-			break
-		}
-	}
 }
 }
 
 
 // MARK: - MessagesLayoutDelegate
 // MARK: - MessagesLayoutDelegate

+ 25 - 0
deltachat-ios/Helper/Extensions.swift

@@ -194,6 +194,31 @@ extension UIView {
 	}
 	}
 }
 }
 
 
+extension UIImage {
+func resizeImage(targetSize: CGSize) -> UIImage {
+	let size = self.size
+
+	let widthRatio  = targetSize.width  / size.width
+	let heightRatio = targetSize.height / size.height
+
+	var newSize: CGSize
+	if(widthRatio > heightRatio) {
+		newSize = CGSize(width: size.width * heightRatio, height: size.height * heightRatio)
+	} else {
+		newSize = CGSize(width: size.width * widthRatio, height: size.height *      widthRatio)
+	}
+
+	let rect = CGRect(x: 0, y: 0, width: newSize.width, height: newSize.height)
+
+	UIGraphicsBeginImageContextWithOptions(newSize, false, 1.0)
+	draw(in: rect)
+	let newImage = UIGraphicsGetImageFromCurrentImageContext()
+	UIGraphicsEndImageContext()
+
+	return newImage!
+}
+}
+
 
 
 extension UIColor {
 extension UIColor {
 	convenience init(alpha: Int, red: Int, green: Int, blue: Int) {
 	convenience init(alpha: Int, red: Int, green: Int, blue: Int) {

+ 0 - 82
deltachat-ios/View/VideoMessageCell.swift

@@ -1,82 +0,0 @@
-//
-//  VideoMessageCell.swift
-//  deltachat-ios
-//
-//  Created by Bastian van de Wetering on 21.06.19.
-//  Copyright © 2019 Jonas Reinsch. All rights reserved.
-//
-
-import UIKit
-import MessageKit
-
-class VideoMessageCell: MediaMessageCell {
-	/// Responsible for setting up the constraints of the cell's subviews.
-	override func setupConstraints() {
-		super.setupConstraints()
-		imageView.translatesAutoresizingMaskIntoConstraints = false
-		imageView.widthAnchor.constraint(equalToConstant: 100).isActive = true
-		imageView.heightAnchor.constraint(equalToConstant: 100).isActive = true
-
-	}
-
-	func configure(with message: MessageType, videoUrl url: URL?, at indexPath: IndexPath, and messagesCollectionView: MessagesCollectionView) {
-		super.configure(with: message, at: indexPath, and: messagesCollectionView)
-
-		if let url = url {
-			
-			let thumbnail = Utils.generateThumbnailFromVideo(url: url)
-			imageView.image = thumbnail
-
-
-
-		}
-
-	}
-
-	override func layoutMessageContainerView(with attributes: MessagesCollectionViewLayoutAttributes) {
-		var origin: CGPoint = .zero
-		let videoMessageCellWidth: CGFloat = 150
-		let videoMessageCellHeight: CGFloat = 150
-
-
-		switch attributes.avatarPosition.vertical {
-		case .messageBottom:
-			origin.y = attributes.size.height
-				- attributes.messageContainerPadding.bottom
-				- attributes.cellBottomLabelSize.height
-				- attributes.messageBottomLabelSize.height
-				- videoMessageCellHeight
-				- attributes.messageContainerPadding.top
-		case .messageCenter:
-			if attributes.avatarSize.height > videoMessageCellHeight {
-				let messageHeight = videoMessageCellHeight + 10 // attributes.messageContainerPadding.vertical
-				origin.y = (attributes.size.height / 2) - (messageHeight / 2)
-			} else {
-				fallthrough
-			}
-		default:
-			if attributes.accessoryViewSize.height > videoMessageCellHeight {
-				let messageHeight =  videoMessageCellHeight + 10 //attributes.messageContainerPadding.vertical
-				origin.y = (attributes.size.height / 2) - (messageHeight / 2)
-			} else {
-				origin.y = attributes.cellTopLabelSize.height + attributes.messageTopLabelSize.height + attributes.messageContainerPadding.top
-			}
-		}
-
-		let avatarPadding = attributes.avatarLeadingTrailingPadding
-		switch attributes.avatarPosition.horizontal {
-		case .cellLeading:
-			origin.x = attributes.avatarSize.width + attributes.messageContainerPadding.left + avatarPadding
-		case .cellTrailing:
-			origin.x = attributes.frame.width - attributes.avatarSize.width - videoMessageCellWidth - attributes.messageContainerPadding.right - avatarPadding
-		case .natural:
-			break
-			//fatalError(MessageKitError.avatarPositionUnresolved)
-		}
-
-
-
-
-		messageContainerView.frame = CGRect(origin: origin, size: CGSize(width: videoMessageCellWidth, height: videoMessageCellHeight))
-	}
-}