Commit Graph

715 Commits

Author SHA1 Message Date
Minh Nguyễn
e5fa7093da [ios] Fixed hang observing user defaults on background queue
Fixed a deadlock that could occur if the host application attempts to set user defaults on a background queue. Now we observer user defaults changes synchronously.

Cherry-picked from d76ef6e53b.
2016-04-20 14:43:45 -07:00
Jesse Bounds
b8ecbf6b35 ios-v3.2.0
Update podspec files for version 3.2.0
2016-04-05 11:34:59 -04:00
Minh Nguyễn
a70928c995 ios-v3.2.0-rc.1
Switched away from the -symbols build but added a new podspec that still uses it.
2016-04-04 10:54:57 -07:00
Minh Nguyễn
e84c937dc0 ios-v3.2.0-beta.3 2016-03-29 12:50:28 -07:00
Jason Wray
593f3d511a [ios] Make showAnnotations default padding proportional at smaller frame sizes 2016-03-29 15:17:04 -04:00
Jason Wray
d20795b891 [ios] Don't use negative content insets
When a map view was smaller than the entire viewport, negative content insets would be applied. Negative content insets would only be valid if the map view extended outside of its frame, which cannot happen.

Fixes #4440.
2016-03-29 15:17:04 -04:00
Minh Nguyễn
38116e39c5 [ios, osx] Require progress to be requested manually
Requesting progress is expensive, so it is once again computed only on demand, rather than automatically at launch. Moved progress requesting back to iosapp and osxapp.
2016-03-29 11:46:27 -07:00
Minh Nguyễn
55f1ad11c4 [ios, osx] More accurate KVO, private delegate, descriptive fallback name, fewer reloads
Made MGLOfflineStorage.packs strong rather than copy so that KVO notifications on that key path include index paths. Replaced custom KVO mutable collection methods with calls to -mutableArrayValueForKey:, avoiding redundant casts.

Privatized MGLOfflinePackDelegate and made its methods required, since MGLOfflineStorage is the only conforming implementation. Require a pack to be explicitly invalidated before deallocation by its owner (MGLOfflineStorage). Added a method to reload the canonical collection of packs.

Previously, if the user adds an offline pack without specifying a name in the alert, the pack would be named “Untitled n” for the nth pack created since the application was launched. This logic could result in identically named packs (for example, if the user relaunches and creates another unnamed pack). Instead, use the visible coordinate bounds as a placeholder and fallback name.

Resume a pack upon successful addition. Removed an extraneous weakSelf/strongSelf dance. When possible, update individual labels in a cell instead of reloading the entire cell. That way, if the user swipes to the left to reveal the Delete accessory button while the pack is actively downloading, the accessory button remains on screen as progress updates come in.
2016-03-29 11:46:26 -07:00
Minh Nguyễn
a1e5701fa3 [ios, osx] Centralized offline pack management
MGLOfflineStorage now maintains a centralized, strongly held, KVO-compliant collection of all extant offline packs. MGLOfflineStorage issues notifications for progress updates. Client code can now react to the successful addition of an offline pack either via the completion block or via a KVO insertion.

Fixes #4287.
2016-03-29 11:46:25 -07:00
Jesse Bounds
1d6ce5e809 [ios] Make more adjustments to the pod readme for the static framework case 2016-03-29 10:10:34 -07:00
Minh Nguyễn
5adb102d98 [ios] Copyedited changelog
Corrected a few Xcode terms in the changelog entry about static framework installation fixes. Merged that entry with the one above it because they discuss the same fixes. Also moved the combined entry to the top, because it’s about as close to a breaking change as we can get without incurring a major version bump.
2016-03-29 10:10:34 -07:00
Jesse Bounds
c4d435ce71 [ios] Update the pod-README and changelog regarding static lib changes 2016-03-29 10:10:34 -07:00
Minh Nguyễn
2bd9b4a591 [ios] Nixed duplicate changelog entry from bad merge 2016-03-28 11:32:33 -07:00
Jesse Bounds
62f636f0c0 [ios] Fix issues with static lib signing and app store submission
Fix issues with static build configuration that caused it to be
problematic for host applications when they were installed on device.
Also fixes issues that broke the iTunes Connect validation and upload
process. This also updates the `binary` instructions in INSTALL.md to reflect
these changes.
2016-03-28 09:52:36 -07:00
Minh Nguyễn
71f6773208 [ios] Copyedited changelog
Changes are generally arranged by descending developer or user impact.
2016-03-26 22:08:30 -07:00
Minh Nguyễn
8cdb4f74e1 [ios] Fixed changelog processing
Fixed a regression introduced in #4466 in which the changelog is essentially empty.

Fixes #4469.
2016-03-25 12:24:14 -07:00
Minh Nguyễn
85297e2c6b [ios] Use current Swift version with jazzy
Fixes #4468.
2016-03-25 11:19:29 -07:00
Minh Nguyễn
2a56565a9c [ios, osx] Wrap coordinates converted from points
ref #4444
2016-03-25 11:03:06 -07:00
Brad Leege
abec88642b [android] [ios] #4432 - Splitting the CHANGELOG into iOS and Android specific CHANGELOGS 2016-03-25 10:17:57 -05:00
Minh Nguyễn
b57f0fb987 [ios] Fix up center coordinate after lopsided pinch gesture
The gesture recognizer only reports the gesture’s current center point, so use the previous center point to anchor the transition.

Fixes #4315.
2016-03-22 10:52:10 -07:00
Jesse Bounds
b163e99499 [iOS] Send turnstile event as much as once per day
Previously, the post of the turnstile event was a side effect of the
map.load event and would happen when the host app was started from a
terminated state at the first initialization of MGLMapView. The
turnstile event post was guarded with dispatch_once so that it would
only ever be sent once during the lifecycle of the application after
it started from the terminated state.

This changes that behavior by:

- Allowing a new turnstile event to be posted as much as once per
day
- Only triggering a map.view event when a map is initialized if the map
is loaded outside of the 'background' application state
- Sending a map.view event whenever a MGLMapView is instantiated
and the application did become active or enters foreground

iOS turnstile event sending behavior is now:

- A map.view event is generated whenever a map is loaded and also
when a map is shown again when the host app becomes active and moves
into the foreground
- Turnstile events are still triggered by mapviews and will be sent as
frequently as once per day for a host app that is not terminated and
also whenever a host app is terminated and restarted
w
2016-03-21 14:09:11 -07:00
Minh Nguyễn
7155c9bb81 ios-v3.2.0-beta.2 2016-03-18 14:34:22 -07:00
Jesse Bounds
4f816dcfbe [iOS] Increase distance filter to 5 m 2016-03-18 14:20:18 -07:00
Minh Nguyễn
b493bdc649 [ios, osx] Unified offline and ambient caches
There is now only one instance of mbgl::OfflineFileSource, created when the shared MGLOfflineStorage object is initialized. Also create and use the shared MGLOfflineStorage object when initializing an MGLMapView object. The unified cache file is located in a subdirectory of Application Support, where the SDK has control over the file’s lifetime. The subdirectory is already named after the host application’s bundle identifier, ensuring that each Mapbox-powered application has an independent tile limit. If there’s an ambient cache in a subdirectory of Caches, delete it. If there’s an offline cache in a subdirectory of Documents on iOS or Caches on OS X, move it to the unified cache location in a subdirectory of Application Support.

Fixes the iOS/OS X side of #4338.
2016-03-18 14:02:32 -07:00
Minh Nguyễn
0a26d8448a Merge pull request #4378 from mapbox/1ec5-offline-umbrella
Include offline headers in static umbrella header
2016-03-18 01:24:27 -07:00
Minh Nguyễn
ec072b437a [ios] Copy dynamic framework .dSYM into distribution 2016-03-18 00:29:58 -07:00
Minh Nguyễn
35e6aa70bc [ios] Include offline headers in static umbrella header
Include offline headers in the umbrella header used by the static framework. These includes are already present in the umbrella header used by the dynamic framework. jazzy relies on the static umbrella header to include all the headers, so the offline headers were also missing from documentation.
2016-03-18 00:15:36 -07:00
Jesse Bounds
aa60d29534 [iOS] Use CFBundleIdentifier instead of CFBundleName in UA string
Although often recommended, CFBundleName is not guaranteed to exist in
an app's configuration. As an identifier of telemetry data, even when
it is present it can be inconsistent because of localization.

CFBundleIdentifier, although possibly longer, will be consistent
across locales and for the lifetime of an app in the App Store even
if the app name changes in any locale.
2016-03-17 14:01:48 -07:00
Minh Nguyễn
2ab075b309 ios-v3.2.0-beta.1 2016-03-15 11:11:16 -07:00
Minh Nguyễn
1962fce1de [ios] Copy .der files into static framework
Fixes #4316.
2016-03-15 11:08:34 -07:00
Minh Nguyễn
76bb6b8746 ios-v3.2.0-pre.3 2016-03-14 15:38:19 -07:00
Minh Nguyễn
6f86bee283 [ios] Only set preferred action on iOS 9+
Fixed a crash on iOS 8 when presenting the Add Offline Pack dialog.

Fixes #4305.
2016-03-14 13:30:11 -07:00
Minh Nguyễn
922269cd7c [ios] Immediately remove offline pack from table
Remove all references to an offline pack before the call to -removePackWithCompletionHander:.

Cherry-picked from d64b8ad25c.
2016-03-14 12:54:10 -07:00
Minh Nguyễn
3b225d57d9 ios-v3.2.0-pre.2 2016-03-11 13:50:06 -08:00
Minh Nguyễn
4bcc24d5af [ios] Fixed iosapp build
MBXDownloadsTableViewController.{h,m} had been renamed MBXOfflinePacksTableViewController.{h,m}, but the project had not been.
2016-03-10 20:22:19 -08:00
Minh Nguyễn
641c31507d [ios] Renamed downloads to offline packs in iosapp 2016-03-10 17:14:14 -08:00
Minh Nguyễn
ff9c3a57b0 [ios, osx] Renamed MGLOfflineTask to MGLOfflinePack
“Offline pack” more effectively communicates the persistent nature of the downloaded content.
2016-03-10 17:14:14 -08:00
Minh Nguyễn
77d99584ce [ios, osx] Distinguish between unknown and inactive state 2016-03-10 17:08:58 -08:00
Minh Nguyễn
8824237e2d [ios, osx] Documented offline APIs
Also categorized offline symbols for jazzy and moved styleURL from MGLOfflineRegion to MGLTilePyramidOfflineRegion, since you never know if there will be a region type not constrained by a style in the future.
2016-03-10 17:08:58 -08:00
Minh Nguyễn
0348c1ee96 [ios] Tap to pause/resume
Tapping on a download now pauses or resumes it. Tapping on a completed download navigates to the downloaded region and switches to the downloaded style.
2016-03-10 17:08:58 -08:00
Minh Nguyễn
f5ac63dfec [ios, osx] Renamed offline classes
Renamed SDK classes related to offline viewing to more closely match the terminology used by mbgl and the Android SDK while remaining consistent with Cocoa naming principles.
2016-03-10 17:08:58 -08:00
Minh Nguyễn
e36218a866 [osx] Added OS X support for offline downloads 2016-03-10 17:08:58 -08:00
Minh Nguyễn
081ee9fbef [ios] Added download manager to iosapp 2016-03-10 17:08:58 -08:00
Minh Nguyễn
77657b3896 [ios] Implemented offline API in iOS SDK
Fixes #3892.
2016-03-10 17:08:58 -08:00
Minh Nguyễn
a65730803e [ios] Converted iosapp to use storyboard 2016-03-10 17:08:58 -08:00
Minh Nguyễn
29688e2cd8 [ios] Disable implicit animation of user dot bounds
ref #1125
2016-03-10 12:03:26 -08:00
Jason Wray
64b163ee5d [ios] Add description strings to constituent classes 2016-03-10 13:48:00 -05:00
Minh Nguyễn
c2cd9335e9 [ios] Non-embedded static framework
Added a new ifabric Make target for packaging up a static framework similar to the one released as 3.0.1. Place artwork and certificate assets inside Mapbox.bundle inside Mapbox.framework. Link SystemConfiguration in the umbrella header.

Distinguish between the framework bundle and the resources bundle. For the dynamic frameworks and embedded static frameworks, the two are the same; for the non-embedded static framework, the latter resides inside the former.
2016-03-08 11:20:12 -08:00
Minh Nguyễn
0875a066cb [ios] Cleaned up NSLocalizedString usage
The format string would be localized, not the string resulting from expanding its placeholders. Also unindented a wildly indented block of code.
2016-03-05 21:49:57 -08:00
Minh Nguyễn
2d2ba3a482 [ios] Use MGLErrorDomain for errors 2016-03-05 21:44:22 -08:00