Commit Graph

397 Commits

Author SHA1 Message Date
Garrett Moon
f9e939b374 Updating example 2016-07-22 16:47:27 -07:00
Garrett Moon
3e6d603cc2 Update the repos 2016-07-22 16:34:19 -07:00
Garrett Moon
da0b359d9c Upgrade spec too 2016-07-22 16:23:06 -07:00
Garrett Moon
143e1ae817 Upgrade PINCache 2016-07-22 16:19:50 -07:00
Garrett Moon
ded2e07dd3 Add support for retrying and reduce default timeout. (#215)
* Add support for retrying and reduce default timeout.

* Return HTTP error codes >= 400. Don't retry when failure is sure to occur again.

* Add missing nullability

* Use NSInteger
2016-07-15 16:18:58 -07:00
Garrett Moon
c9f3544c4e Drop support for macOS 10.8 and iOS 6.0. It actually already happened… (#221)
* Drop support for macOS 10.8 and iOS 6.0. It actually already happened with the adoption of NSURLSession.

* Missed one.
2016-07-15 15:41:11 -07:00
Garrett Moon
3dbbfc7591 Without this, the system is likely caching our NSURLResponses which means double caching :( (#219) 2016-07-15 15:02:09 -07:00
Garrett Moon
855d457bcf Support varying pixel lengths (#213)
* Add support for varying pixel lengths.

On some devices the pixel length returned from CGImageCreate
sadly isn't 4 bytes per pixel.
Might be a good idea to support differing lengths.
Encoding this into the format would be a good
thing for sure.
Anyway, that's what this does.

* Add in methods for reading out bitsPerPixel too.
2016-07-15 14:51:58 -07:00
Garrett Moon
2cfc232d11 Adds better support for cancelation (#218)
In order to avoid blocking on the main thread, PINRemoteImage creates
a UUID but does not immediately start a task instead putting it on an
operation queue. This means that a client can request cancelation for
a UUID before its task is created.

Previously, we attempted to handle this by maintaining a set of canceled
UUIDs. This was being done incorrectly however. The logic was to check if,
before creating a task, a UUID was in canceledTasks. If it was, don't
create the task. If it wasn't clear out the canceledTasks list. This
example illustrates why that was erroneous:
1. Request starting a task with UUID #1
2. Request starting a task with UUID #2
3. Request canceling UUID #2
4. Task creation starts for UUID #1
5. UUID one is not in canceledTasks so it is cleared
6. Task creation starts for UUID #2, it is not in canceledTasks
   so the task is created and is not canceled.

This patch changes canceledTasks to a weak hash table and removes
the line which cleared out canceledTasks. As long as there are blocks
(for task creation) referencing the UUID, they will not be removed
from canceledTasks. When no one is referencing the UUIDs any longer,
they will be cleared out.
2016-07-15 14:51:48 -07:00
Garrett Moon
b60c7ca8b8 See what version we're running (#220)
* See what version we're running

* Force 0.39.0
2016-07-15 14:40:40 -07:00
Garrett Moon
55893eee2f ivar no longer used because status is stored on shared version. (#206) 2016-06-07 16:20:00 -07:00
Garrett Moon
097e01cf15 Fix runaway NSData (#205)
* Fix runaway NSData

Previously we were generating all the frames of the GIF and dispatching
to write the data to the disk. This presents a problem if the disk backs
up though and it can end up with theoretically every frame in memory. Instead,
generate a frame and write it one frame at a time. Slower, but prevents
this runaway memory situation.

* Early return on error, thans @rahul-malik & @timonus!
2016-06-07 15:40:43 -07:00
Garrett Moon
3f0659a6dc Fix crash that can occur if image creation failed. (#204)
CFAutorelease crashes if you pass in NULL.
2016-06-03 11:16:09 -07:00
Garrett Moon
e95f161ac2 Beta 2 3.0.0-beta.2 2016-05-03 12:40:43 -07:00
Garrett Moon
182bfe2630 Merge the tvOS spec into the iOS spec to ease integration in downstream projects. (#196) 2016-05-02 16:49:02 -07:00
Garrett Moon
a7ce67a325 3.0.0-beta 2016-04-25 13:11:11 -07:00
Garrett Moon
6ea791b40a Forward port changelog 3.0.0-beta 2016-04-25 11:23:38 -07:00
Diego Torres
6c5b928935 Generate the cacheKey only when necessary (#191) 2016-04-22 11:34:25 -07:00
Garrett Moon
b4a6bcbbc9 Disable 8.4 travis build as its hanging. Will look into re-enabling in the future. 2016-04-19 16:53:24 -07:00
Garrett Moon
13ae9f9a8a Handle errors when writing files. (#190)
* Handle errors when writing files.

* Address comments, fix warning.

* Add comment to explain writing durations to file.
2016-04-19 15:48:28 -07:00
Diego Torres
1d04bf82b2 Use a hashed key when the URL is too long (#189)
* Use a hashed key when the URL is too long

* Added tests for new cacheKey behaviour

* Conform to project style
2016-04-19 15:48:08 -07:00
Garrett Moon
05b24714f4 Materialize object isn't meant to be called on nil objects. (#187) 2016-04-13 10:21:53 -07:00
Garrett Moon
bf1012741c Add error for empty images. (#188) 2016-04-13 10:09:38 -07:00
Wendy Lu
0e81f77d16 Have PINProgressiveImage pass back the quality of the current progressive image (#185)
* Have PINProgressiveImage pass back the quality of the current progressive image
* fix
* Check for nil for imageProgress pointer
* Rename some variables
* Rename a bunch of things
* Update comment
2016-04-13 07:42:37 -07:00
Adlai Holler
632e1bcd2a Modify estimatedRemainingTimeThreshhold Behavior to Match Documentation (#184)
* Modify estimatedRemainingTimeThreshhold behavior to match documentation
* Update documentation on maxProgressiveRenderSize property
* Update the behavior, not the docs
2016-04-11 15:36:50 -07:00
Garrett Moon
e6cf241648 Fix warning, passing in NULL instead of 0 2016-04-11 15:26:25 -07:00
Garrett Moon
a0c421e50f Fix build, need to return results :) 2016-04-11 15:25:11 -07:00
Garrett Moon
8d8922edd1 Merge pull request #183 from Adlai-Holler/PrefetchingReturnsTasks
Make Prefetching Methods Return Tasks
2016-04-11 14:53:26 -07:00
Garrett Moon
c4fb727a74 Merge pull request #182 from Adlai-Holler/IndentationSettings
Set Project Indentation to Spaces
2016-04-11 14:51:56 -07:00
Garrett Moon
e783cf63d1 Merge pull request #180 from pinterest/addPINAnimatedImage
Beta of PINAnimatedImage
2016-04-11 14:41:07 -07:00
Garrett Moon
9dd8ebf8da Better clearing of memory mapped files.
First, prevents a memory leak if users reference self in their PINAnimatedImage completions.

Second, this deletes decoded files when there are no more references to an animated image.
Previously we deleted on app open and exit.

I wasn't going to do this in case you closed a GIF and then reopened, but the more I
thought about it the cost is too high: A user can see their disk size balloon if they view
a bunch of GIFs and then check usage. They could also fill up their space enough while using
the app by viewing GIF after GIF that instability could result.
2016-04-11 13:20:58 -07:00
Adlai Holler
157771425d Another indentation fix 2016-04-09 12:59:58 -07:00
Adlai Holler
6ff9eea9ff Use spaces for indentation 2016-04-09 12:20:23 -07:00
Adlai Holler
df53f5516e Set project indentation to spaces 2016-04-09 12:16:50 -07:00
Adlai Holler
df36ae409b Return tasks from prefetching methods 2016-04-09 12:08:02 -07:00
Garrett Moon
e3d2e07ae7 Addressing Rricky's comments 2016-04-08 16:26:04 -07:00
Garrett Moon
5c5c3f4cba Documentation of PINAnimatedImage 2016-04-08 14:39:08 -07:00
Garrett Moon
f10547d1c5 Fix for file cleanup / prevent crash if memoryMap is nil. 2016-04-08 10:55:06 -07:00
Garrett Moon
9e8132cf68 I can't believe it was a typo 2016-04-06 14:48:51 -07:00
Garrett Moon
fc900b66d2 Cross platform fixes 2016-04-06 14:17:51 -07:00
Garrett Moon
5e2d20d36b Beta of PINAnimatedImage 2016-04-05 18:02:09 -07:00
Garrett Moon
54062d96d1 Fix examples and Carthage 2016-04-04 16:24:37 -07:00
Garrett Moon
ea164f9524 Follow up to #175, addressing comments 2016-04-04 16:12:17 -07:00
Garrett Moon
83c8fc687f Merge pull request #175 from pinterest/addSupportForCustomDecode
Add support for custom decode
2016-04-04 16:11:07 -07:00
Garrett Moon
4b5d3b8c7e Cleanup 2016-03-29 17:18:37 -07:00
Garrett Moon
509ee0cd2e UIImage -> PINImage 2016-03-29 16:48:46 -07:00
Garrett Moon
7c31744e31 Switch to alternative representation 2016-03-28 17:08:53 -07:00
Garrett Moon
4fbb5b540c Spacing 2016-03-28 17:06:36 -07:00
Garrett Moon
1d84f5ebc8 Add memory container 2016-03-28 17:05:59 -07:00
Garrett Moon
5007fd2cc5 2.1.2 2.1.2 2016-03-25 08:36:54 -07:00