Commit Graph

1579 Commits

Author SHA1 Message Date
Brad Leege
adf83d3de7 [android] #2421 - Setting up Certificate Pinning for Staging Server 2016-02-10 19:05:24 -08:00
Brad Leege
285cb33d46 [android] #2421 - Changing sessionId to UUID and adding flag to change it after 24 hours 2016-02-10 19:05:23 -08:00
Brad Leege
5751302c67 [android] #2421 - Adding minimal events size check to avoid sending empty json data to server 2016-02-10 19:05:23 -08:00
Brad Leege
0d639c72d6 [android] #2421 - Copying PROD and Test certificates to Android project for inclusion and use in SDK 2016-02-10 19:05:23 -08:00
Brad Leege
4719b73ac7 [android][ios][core] - #2421 Moving Mapbox PROD and TEST certificates to common location and updating iOS projects to load them from there 2016-02-10 19:05:23 -08:00
Brad Leege
0dfa2e563c [android] #2421 - Adding WIFI_STATE to SDK permissions 2016-02-10 19:05:23 -08:00
Brad Leege
d88a350732 [android] #2421 - Setting vendor id and session id to be encrypted 2016-02-10 19:05:23 -08:00
Brad Leege
167cbecdd6 [android] #2421 - Adding Location Permission checks to toggleGPS to prevent race condition issues 2016-02-10 19:05:23 -08:00
Brad Leege
529896a7ae [android] #2421 - Bumping Session rotation to 24 hours 2016-02-10 19:05:23 -08:00
Brad Leege
26d3ed1f37 [android] #2421 - Removing Instance Id 2016-02-10 19:05:23 -08:00
Brad Leege
1acd91f8c3 [android] #2421 - Setting data to flush every 2 minutes 2016-02-10 19:05:23 -08:00
Brad Leege
d59d66a053 [android] #2421 - Adding session id and rotate it every 12 hours 2016-02-10 19:05:22 -08:00
Brad Leege
ef7bbc93cb [android] #2421 - Changing vendorId to simply UUID 2016-02-10 19:05:22 -08:00
Brad Leege
184a089b84 [android] #2421 - Changing accessibility font scale to float for internal storage 2016-02-10 19:05:22 -08:00
Brad Leege
dd2a218842 [android] #2421 - Establishing an app install persistent "vendor id" persisted privately to app 2016-02-10 19:05:22 -08:00
Brad Leege
f3009277df [android] #2421 - Accessibility Font Scale Sizes 2016-02-10 19:05:22 -08:00
Brad Leege
d34b3f36ca [android] #2421 - Stubbing out accessibility font scale size 2016-02-10 19:05:22 -08:00
Brad Leege
60ab3e3af0 [android] #2421 - Adding check in case Wifi Status isn't granted to keep app from crashing 2016-02-10 19:05:22 -08:00
Brad Leege
b4c7ab83bd [android] #2421 - Adding logic to get wifi connection state 2016-02-10 19:05:22 -08:00
Brad Leege
c91316c351 [android] #2421 - Adding logic to get cellular carrier and network type 2016-02-10 19:05:22 -08:00
Brad Leege
06e667998b [android] #2421 - Adding logic to get Device Screen density 2016-02-10 19:05:21 -08:00
Brad Leege
1e8827758a [android] #2421 - Adding logic to determine if app is in Foreground or Background 2016-02-10 19:05:21 -08:00
Brad Leege
96122358a9 [android] #2421 - Calculating battery level for events 2016-02-10 19:05:21 -08:00
Brad Leege
a258474ed4 [android] #2421 - Producing attribute values for Model, Operating System, and Orientation 2016-02-10 19:05:21 -08:00
Brad Leege
8fad77faa4 [android] #2421 - Implementing dynamic user agent based on App Name, Version Name, and Version Code 2016-02-10 19:05:21 -08:00
Brad Leege
bfebbe7841 [android] #2421 - Adding place holders for event attributes 2016-02-10 19:05:21 -08:00
Brad Leege
fd848b3d2b [android] #2421 - Giving constants a more Java like naming scheme 2016-02-10 19:05:21 -08:00
Brad Leege
a8e2cd9b07 [android] #2421 - Porting Attributes and relabeling existing as Keys 2016-02-10 19:05:21 -08:00
Brad Leege
1c588134e5 [android] #2421 - Adding remaining attributes as constants 2016-02-10 19:05:21 -08:00
Brad Leege
f692e66f20 [android] #2421 - Adding Events as constants 2016-02-10 19:05:20 -08:00
Brad Leege
09cab73e7f [android] #2421 - Removing anonid 2016-02-10 19:05:20 -08:00
Brad Leege
b6657f4fb8 [android] #2421 - Using UUID fo instance data 2016-02-10 19:05:20 -08:00
Brad Leege
d6921d8ac3 [android] #2421 - Removing verticalaccuracy per discussion with camille today 2016-02-10 19:05:20 -08:00
Brad Leege
d64ad85d0b [android] #2421 - Using Constants for Version and Events 2016-02-10 19:05:20 -08:00
Brad Leege
7f02960013 [android] #2421 - Removing checks on data as raw values from Location object contain existence values 2016-02-10 19:05:20 -08:00
Brad Leege
3e44a755e9 [android] #2421 - Changing appBundleId to app's package name 2016-02-10 19:05:20 -08:00
Brad Leege
2690cc09f8 [android] #2421 - Building out MapboxEventsManager with support for Staging and Prod servers 2016-02-10 19:05:20 -08:00
Brad Leege
8464d68687 [android] #2421 - Start MapView in Passive Telemetry Mode 2016-02-10 19:05:20 -08:00
Brad Leege
9d5ef69a2e [android] #2421 - Removing PendingIntent as it's no longer needed 2016-02-10 19:05:19 -08:00
Brad Leege
9436e4ff99 [android] #2421 - Refactoring LocationServices to be in PASSIVE mode when GPS is not active. Integrating TelemetryService with Core SDK for startup 2016-02-10 19:05:19 -08:00
Brad Leege
22209b75cd [android] #2421 - JavaDoc for telemetry package 2016-02-10 19:05:19 -08:00
Brad Leege
9ce4c8bafc [android] #2421 - Checking for TelemetryService configuration in AndroidManifest.xml 2016-02-10 19:05:19 -08:00
Brad Leege
cf107d85bf [android] #2421 - Initial build out of Telemetry Location infrastructure 2016-02-10 18:55:42 -08:00
John Firebaugh
20be32f217 [core] Always store tiles without ratio support with ratio = 1 2016-02-10 16:25:47 -08:00
John Firebaugh
7e287cae1b [core] Eliminate tilesets table
This results in a ~1% increase in database size, which is worth it for reducing complexity and making the tiles and resources tables more similar in structure.
2016-02-10 16:25:44 -08:00
John Firebaugh
40ecdeb0b6 [core] Optimize offline database schema
* Under the hood, SQLite creates surrogate keys (ROWID) anyway. We may as well take advantage of this and use the surrogates for foreign keys as well, since they are simpler and more efficient than compound foreign keys.
* Create indexes for efficient eviction queries
2016-02-10 15:40:20 -08:00
John Firebaugh
0cf450e3e5 [core] Retry errors encountered during offline downloads 2016-02-10 15:40:20 -08:00
John Firebaugh
a9e0c1b99a [core] Eliminate maximumCacheEntrySize
Instead, the eviction policy accounts for the actual size needed for an incoming put.
2016-02-10 15:40:20 -08:00
John Firebaugh
db3620c58f [core] Implement an eviction policy for OfflineDatabase
When inserting an cached resource, or removing a region, remove least-recently used resources and tiles, not used by offline regions, until the used database size, as calculated by multiplying the number of in-use pages by the page size, is less than the maximum cache size minus 5 times the page size.

In addition, OfflineDatabase may be configured to ignore cache puts of individual resources larger than a certain size.

This policy is similar but not identical to the former SQLiteCache policy:

* It accounts for offline, by exempting resources required by offline regions from eviction.
* It must delete from two tables (resources and tiles), rather than one. Currently the strategy is naive: evict 50 rows at a time from each table.
* It makes maximumCacheSize and maximumCacheEntrySize completely independent. The SQLiteCache implementation evicted when `usedSize > maximumCacheSize - 2 * maximumCacheEntrySize`. This evicts when `usedSize > maximumCacheSize - 5 * pageSize`.
* It uses a non-unlimited default value for maximumCacheSize: 50 MB. We should have always had a limit in place; "a cache without an eviction policy is a resource leak".
2016-02-10 15:40:20 -08:00
John Firebaugh
5910124010 [core] Reset SQLite statements after use in order to release locks 2016-02-10 15:40:20 -08:00