Skip to content

Commit

Permalink
Bumped version number to 1.3.
Browse files Browse the repository at this point in the history
Added support for Photos Library.
  • Loading branch information
Pepedou committed Feb 28, 2017
1 parent 163c0a1 commit 12bfb15
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 46 deletions.
2 changes: 1 addition & 1 deletion CronopiOS/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.1</string>
<string>1.3</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
Expand Down
107 changes: 62 additions & 45 deletions CronopiOS/SinglePageViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -43,44 +43,41 @@ class SinglePageViewController: UIViewController, UINavigationControllerDelegate
switch imageView.tag {
case 0:
let singleTap = UITapGestureRecognizer(target: self, action: #selector(SinglePageViewController.onImageTap))
singleTap.numberOfTapsRequired = 1
let touchHold = UILongPressGestureRecognizer(target: self, action: #selector(SinglePageViewController.onImageHold))

imageView.addGestureRecognizer(singleTap)
imageView.addGestureRecognizer(touchHold)
imageView.image = bookPage?.pageImage

overlayImage = imageView.image
self.pageImageView = imageView
break
case 1:
let singleTap = UITapGestureRecognizer(target: self, action: #selector(SinglePageViewController.savePage))
singleTap.numberOfTapsRequired = 1
imageView.addGestureRecognizer(singleTap)
self.cloudIconView = imageView
break
case 2:
let singleTap = UITapGestureRecognizer(target: self, action: #selector(SinglePageViewController.saveImageToDevice))
singleTap.numberOfTapsRequired = 1
imageView.addGestureRecognizer(singleTap)
self.saveIconView = imageView
break
case 3:
let singleTap = UITapGestureRecognizer(target: self, action: #selector(SinglePageViewController.onRefreshIconTap))
singleTap.numberOfTapsRequired = 1
imageView.addGestureRecognizer(singleTap)
break
case 4:
let singleTap = UITapGestureRecognizer(target: self, action: #selector(SinglePageViewController.backgroundTap))
singleTap.numberOfTapsRequired = 1
imageView.addGestureRecognizer(singleTap)
break
case 5:
let singleTap = UITapGestureRecognizer(target: self, action: #selector(SinglePageViewController.onMuteIconTap))
singleTap.numberOfTapsRequired = 1
imageView.addGestureRecognizer(singleTap)
self.muteIconView = imageView
break
default:
continue
}

}
else if subview.isKind(of: UITextView.self) {
let contentLabel = (subview as! UITextView)
Expand Down Expand Up @@ -127,6 +124,15 @@ class SinglePageViewController: UIViewController, UINavigationControllerDelegate
}
}

func onImageHold() {
if self.isKeyboardVisible == false {
self.openGallery()
}
else {
self.onEditingEnd()
}
}

func openCamera() {
AudioServicesPlaySystemSoundWithCompletion(kSystemSoundID_Vibrate, nil)

Expand Down Expand Up @@ -169,6 +175,23 @@ class SinglePageViewController: UIViewController, UINavigationControllerDelegate
}
}

func openGallery() {
AudioServicesPlaySystemSoundWithCompletion(kSystemSoundID_Vibrate, nil)

let imagePicker = UIImagePickerController()
imagePicker.delegate = self

if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) {
imagePicker.sourceType = .photoLibrary
present(imagePicker, animated: true, completion: nil)
}
else {
let alert = UIAlertController(title: "¡Ups!", message: "No es posible presentar la galería de imágenes en este dispositivo.", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Ni hablar", style: .default, handler: nil))
present(alert, animated: true, completion: nil)
}
}

func onEditingEnd() {
if self.content.text != self.bookPage.pageContent {
self.saveIconView.isUserInteractionEnabled = true
Expand Down Expand Up @@ -212,47 +235,41 @@ class SinglePageViewController: UIViewController, UINavigationControllerDelegate
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
picker.dismiss(animated: true, completion: nil)

if picker.sourceType == .camera
{
var chosenImage = info[UIImagePickerControllerOriginalImage] as? UIImage
let overlayImage = self.pageImageView.image

let targetSize = (chosenImage?.size)!
let targetRect = CGRect(x: 0.0, y: 0.0, width: targetSize.width, height: targetSize.height)
let overlayRect = CGRect(x: 0.0, y: 0.0, width: targetSize.width / 2.0, height: targetSize.height)

let croppedImage = self.cropImage(imageToCrop: overlayImage!, rect: overlayRect, fullRect: targetRect)

UIGraphicsBeginImageContext(targetSize)

let context = UIGraphicsGetCurrentContext()

UIGraphicsPushContext(context!)

if picker.cameraDevice == .front
{
chosenImage = UIImage(cgImage: (chosenImage?.cgImage)!, scale: 1.0, orientation: .leftMirrored)
}

chosenImage?.draw(in: targetRect)
croppedImage?.draw(in: overlayRect)

UIGraphicsPopContext()

let renderedImage = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()

self.pageImageView.image = renderedImage
self.saveIconView.isUserInteractionEnabled = true
}
else
var chosenImage = info[UIImagePickerControllerOriginalImage] as? UIImage

let overlayImage = self.pageImageView.image

let targetSize = (chosenImage?.size)!
let targetRect = CGRect(x: 0.0, y: 0.0, width: targetSize.width, height: targetSize.height)
let overlayRect = CGRect(x: 0.0, y: 0.0, width: targetSize.width / 2.0, height: targetSize.height)

let croppedImage = self.cropImage(imageToCrop: overlayImage!, rect: overlayRect, fullRect: targetRect)

UIGraphicsBeginImageContext(targetSize)

let context = UIGraphicsGetCurrentContext()

UIGraphicsPushContext(context!)

let imageIsFromFrontCamera = picker.sourceType == .camera && picker.cameraDevice == .front

if imageIsFromFrontCamera
{
self.overlayImage = info[UIImagePickerControllerEditedImage] as? UIImage
self.pageImageView.image = self.overlayImage
self.saveIconView.isUserInteractionEnabled = false
chosenImage = UIImage(cgImage: (chosenImage?.cgImage)!, scale: 1.0, orientation: .leftMirrored)
}

chosenImage?.draw(in: targetRect)
croppedImage?.draw(in: overlayRect)

UIGraphicsPopContext()

let renderedImage = UIGraphicsGetImageFromCurrentImageContext()

UIGraphicsEndImageContext()

self.pageImageView.image = renderedImage
self.saveIconView.isUserInteractionEnabled = true

dismiss(animated: true, completion: nil)
}

Expand Down

0 comments on commit 12bfb15

Please sign in to comment.