v0.24.0 (2018-04-08)
Megazords
Breaking Changes
-
Megazord initialization has changed. Megazords' init() function now takes a
Lazy<mozilla.components.concept.fetch.Client>
(from
concept-fetch),
which will be used to proxy all HTTP requests through. It will not be accessed
until a method is called on rust code which requires the network. This
functionality is not present in non-megazords. (#835)An example of how to initialize this follows:
val megazordClass = Class.forName("mozilla.appservices.MyCoolMegazord") val megazordInitMethod = megazordClass.getDeclaredMethod("init", Lazy::class.java) val lazyClient: Lazy<Client> = lazy { components.core.client } megazordInitMethod.invoke(megazordClass, lazyClient)
Or (if you don't have GeckoView available, e.g. in the case of lockbox):
val megazordClass = Class.forName("mozilla.appservices.MyCoolMegazord") val megazordInitMethod = megazordClass.getDeclaredMethod("init", Lazy::class.java) // HttpURLConnectionClient is from mozilla.components.lib.fetch.httpurlconnection val lazyClient: Lazy<Client> = lazy { HttpURLConnectionClient() } megazordInitMethod.invoke(megazordClass, lazyClient)
General
- Native code builds are now stripped by default, reducing size by almost an
order of magnitude. (#913)- This is done rather than relying on consumers to strip them, which proved
more difficult than anticipated.
- This is done rather than relying on consumers to strip them, which proved
Push
What's new
- PushAPI now defines a number of default parameters for functions (#868)
Breaking changes
mozilla.appservices.push.BridgeTypes
is now
mozilla.appservices.push.BridgeType
(#885)
Places
What's Fixed
- Swift PlacesAPI methods are now externally accessible
(#928)