class UnderOs::Sharing::Instagram
Public Instance Methods
activityImage()
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 12 def activityImage UIImage.imageNamed("instagram.png") end
activityTitle()
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 8 def activityTitle "Instagram" end
activityType()
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 4 def activityType "com.under-os.share.instagram" end
canPerformWithActivityItems(items)
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 16 def canPerformWithActivityItems(items) instagram_installed? && items.each do |item| if item_is_large_enough_image?(item) return true end end false end
performActivity()
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 33 def performActivity return activityDidFinish(false) if ! @image_url @image_title = {"InstagramCaption" => @image_title} if @image_title @interaction = UnderOs::Sharing::Interaction.new("com.instagram.exclusivegram") @interaction.open @image_url, @image_title do |result| activityDidFinish result end end
prepareWithActivityItems(items)
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 26 def prepareWithActivityItems(items) items.each do |item| @image_title = item if item.is_a?(String) @image_url = save(item) if item.is_a?(UIImage) end end
Private Instance Methods
instagram_installed?()
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 46 def instagram_installed? UIApplication.sharedApplication.canOpenURL(NSURL.URLWithString("instagram://app")) end
item_is_large_enough_image?(item)
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 50 def item_is_large_enough_image?(item) item.is_a?(UIImage) && item.size.height >= 612 && item.size.width >= 612 end
save(image)
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 54 def save(image) image_data = UIImageJPEGRepresentation(scale(image), 1.0) filename = NSTemporaryDirectory().stringByAppendingPathComponent("instagram.igo") NSURL.fileURLWithPath(filename) if image_data.writeToFile(filename, atomically:true) end
scale(image)
click to toggle source
# File lib/under_os/receivers/instagram.rb, line 60 def scale(image) size = UOS::Point.new(x: 640, y: 640) ratio = size.x / image.size.width new_size = CGSizeMake(size.x, image.size.height * ratio) offset_x = (size.x - new_size.width)/2 offset_y = (size.y - new_size.height)/2 UIGraphicsBeginImageContext(CGSizeMake(size.x, size.y)) context = UIGraphicsGetCurrentContext() CGContextSetFillColorWithColor(context, UIColor.whiteColor.CGColor) CGContextFillRect(context, CGRectMake(0,0,size.x, size.y)) image.drawInRect(CGRectMake(offset_x,offset_y,new_size.width,new_size.height)) new_image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() new_image end