mirror of
https://github.com/wahyd4/Yep.git
synced 2026-08-17 08:46:17 +10:00
Merge branch 'develop' of https://github.com/CatchChat/Yep into develop
This commit is contained in:
@@ -71,7 +71,7 @@ extension NSFileManager {
|
||||
}
|
||||
|
||||
// Image
|
||||
|
||||
|
||||
class func yepMessageImageURLWithName(name: String) -> NSURL? {
|
||||
|
||||
if let messageCachesURL = yepMessageCachesURL() {
|
||||
|
||||
@@ -238,6 +238,22 @@ class Message: Object {
|
||||
dynamic var thumbnailURLString: String = ""
|
||||
dynamic var localThumbnailName: String = ""
|
||||
|
||||
var thumbnailImage: UIImage? {
|
||||
switch mediaType {
|
||||
case MessageMediaType.Image.rawValue:
|
||||
if let imageFileURL = NSFileManager.yepMessageImageURLWithName(localAttachmentName) {
|
||||
return UIImage(contentsOfFile: imageFileURL.path!)
|
||||
}
|
||||
case MessageMediaType.Video.rawValue:
|
||||
if let imageFileURL = NSFileManager.yepMessageImageURLWithName(localThumbnailName) {
|
||||
return UIImage(contentsOfFile: imageFileURL.path!)
|
||||
}
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
dynamic var downloadState: Int = MessageDownloadState.NoDownload.rawValue
|
||||
|
||||
dynamic var mediaMetaData: MediaMetaData?
|
||||
|
||||
+37
-9
@@ -37,6 +37,18 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
var snapshot: UIView?
|
||||
|
||||
var frame = CGRectZero
|
||||
|
||||
var thumbnailImage: UIImage? {
|
||||
willSet {
|
||||
let imageView = UIImageView()
|
||||
imageView.contentMode = .ScaleAspectFit
|
||||
imageView.image = newValue
|
||||
imageView.alpha = 0
|
||||
thumbnailImageView = imageView
|
||||
}
|
||||
}
|
||||
var thumbnailImageView: UIImageView?
|
||||
|
||||
var transitionView: UIView? {
|
||||
didSet {
|
||||
if let transitionView = transitionView {
|
||||
@@ -51,6 +63,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
var transitionContext: UIViewControllerContextTransitioning?
|
||||
|
||||
func transitionDuration(transitionContext: UIViewControllerContextTransitioning) -> NSTimeInterval {
|
||||
// return 2
|
||||
return isPresentation ? 0.35 : 0.35
|
||||
}
|
||||
|
||||
@@ -78,7 +91,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
let containerView = transitionContext.containerView()
|
||||
|
||||
if let snapshot = snapshot {
|
||||
snapshot.alpha = 0
|
||||
snapshot.alpha = 1
|
||||
|
||||
let transitionViewCover = UIView(frame: frame)
|
||||
transitionViewCover.backgroundColor = UIColor.whiteColor()
|
||||
@@ -98,7 +111,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
let animatingVC = toVC!
|
||||
let animatingView = toView!
|
||||
|
||||
if let transitionViewSnapshot = transitionViewSnapshot {
|
||||
if let transitionViewSnapshot = transitionViewSnapshot, thumbnailImageView = thumbnailImageView {
|
||||
|
||||
animatingVC.view.backgroundColor = UIColor.clearColor()
|
||||
animatingVC.mediaView.alpha = 0
|
||||
@@ -108,7 +121,8 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
transitionViewSnapshot.frame = frame
|
||||
animatingView.addSubview(transitionViewSnapshot)
|
||||
|
||||
snapshot?.alpha = 1
|
||||
thumbnailImageView.frame = frame
|
||||
animatingView.addSubview(thumbnailImageView)
|
||||
|
||||
|
||||
let fullDuration = transitionDuration(transitionContext)
|
||||
@@ -118,7 +132,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
|
||||
UIView.animateKeyframesWithDuration(fullDuration, delay: 0.0, options: .CalculationModeLinear, animations: { () -> Void in
|
||||
|
||||
UIView.addKeyframeWithRelativeStartTime(0.5, relativeDuration: 0.4, animations: { () -> Void in
|
||||
UIView.addKeyframeWithRelativeStartTime(0.7, relativeDuration: 0.3, animations: { () -> Void in
|
||||
animatingVC.view.backgroundColor = UIColor.blackColor()
|
||||
})
|
||||
|
||||
@@ -130,7 +144,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
// transitionViewSnapshot.center = animatingView.center
|
||||
// })
|
||||
|
||||
UIView.addKeyframeWithRelativeStartTime(0.4, relativeDuration: 0.5, animations: { () -> Void in
|
||||
UIView.addKeyframeWithRelativeStartTime(0.0, relativeDuration: 0.9, animations: { () -> Void in
|
||||
let targetWidth = animatingView.bounds.width + self.largerOffset
|
||||
|
||||
let dw = targetWidth - transitionViewSnapshot.bounds.width
|
||||
@@ -142,9 +156,15 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
|
||||
transitionViewSnapshot.frame = frame
|
||||
transitionViewSnapshot.center = animatingView.center
|
||||
|
||||
thumbnailImageView.frame = frame
|
||||
thumbnailImageView.center = animatingView.center
|
||||
|
||||
// transitionViewSnapshot.alpha = 0.5
|
||||
thumbnailImageView.alpha = 1
|
||||
})
|
||||
|
||||
UIView.addKeyframeWithRelativeStartTime(0.9, relativeDuration: 0.0, animations: { () -> Void in
|
||||
UIView.addKeyframeWithRelativeStartTime(0.9, relativeDuration: 0.1, animations: { () -> Void in
|
||||
// let ratio = (animatingView.bounds.width + self.largerOffset) / animatingView.bounds.width
|
||||
// animatingVC.mediaView.transform = CGAffineTransformMakeScale(ratio, ratio)
|
||||
animatingVC.mediaView.alpha = 1
|
||||
@@ -162,6 +182,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
animatingVC.view.backgroundColor = UIColor.blackColor()
|
||||
|
||||
transitionViewSnapshot.removeFromSuperview()
|
||||
thumbnailImageView.removeFromSuperview()
|
||||
|
||||
//self.snapshot?.removeFromSuperview()
|
||||
|
||||
@@ -184,6 +205,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
containerView.addSubview(toView!)
|
||||
|
||||
if let snapshot = snapshot {
|
||||
snapshot.alpha = 1
|
||||
containerView.addSubview(snapshot)
|
||||
}
|
||||
|
||||
@@ -194,7 +216,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
|
||||
let fullDuration = transitionDuration(transitionContext)
|
||||
|
||||
if let transitionViewSnapshot = transitionViewSnapshot {
|
||||
if let transitionViewSnapshot = transitionViewSnapshot, thumbnailImageView = thumbnailImageView {
|
||||
|
||||
self.transitionView?.alpha = 0
|
||||
|
||||
@@ -213,12 +235,17 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
UIView.addKeyframeWithRelativeStartTime(0.2, relativeDuration: 0.0, animations: { () -> Void in
|
||||
animatingView.addSubview(transitionViewSnapshot)
|
||||
// transitionViewSnapshot.center = animatingView.center
|
||||
transitionViewSnapshot.alpha = 1
|
||||
transitionViewSnapshot.alpha = 0
|
||||
thumbnailImageView.alpha = 1
|
||||
animatingVC.mediaView.alpha = 0
|
||||
})
|
||||
|
||||
UIView.addKeyframeWithRelativeStartTime(0.2, relativeDuration: 0.6, animations: { () -> Void in
|
||||
UIView.addKeyframeWithRelativeStartTime(0.2, relativeDuration: 0.8, animations: { () -> Void in
|
||||
transitionViewSnapshot.frame = self.frame
|
||||
thumbnailImageView.frame = self.frame
|
||||
|
||||
transitionViewSnapshot.alpha = 1
|
||||
thumbnailImageView.alpha = 0
|
||||
})
|
||||
|
||||
|
||||
@@ -227,6 +254,7 @@ class ConversationMessagePreviewNavigationControllerDelegate: NSObject, UINaviga
|
||||
self.transitionView?.alpha = 1
|
||||
|
||||
transitionViewSnapshot.removeFromSuperview()
|
||||
thumbnailImageView.removeFromSuperview()
|
||||
|
||||
self.snapshot?.removeFromSuperview()
|
||||
|
||||
|
||||
@@ -1526,6 +1526,7 @@ class ConversationViewController: BaseViewController {
|
||||
let delegate = ConversationMessagePreviewNavigationControllerDelegate()
|
||||
delegate.snapshot = UIScreen.mainScreen().snapshotViewAfterScreenUpdates(false)
|
||||
delegate.frame = frame
|
||||
delegate.thumbnailImage = message.thumbnailImage
|
||||
delegate.transitionView = transitionView
|
||||
|
||||
navigationControllerDelegate = delegate
|
||||
|
||||
Reference in New Issue
Block a user