Android fixes for workflow and threading issues.
Receipt is now returned as part of the IAP product information in blueprints
IAP workflow in blueprints now use an IAP request object as opposed to just a string.
Changes to the IOS workflow to accommodate receipts in product responses.
Android game activity has been updated to receive onActivityChanged messages. Needed for routing activity changes to android IAP.
A lot of threading fixes
Fixes for certain google events not calling the appropriate delegates.
Play store license key property added to runtime settings.
[CL 2364717 by Terence Burns in Main branch]
Fixed JavaVM so it is automatically detached from a thread when thread exits (stops VM crash on thread exit ever happening)
Move JavaVM access into the application code.
Add utility Java call-in class to make it easier to use Java objects from C++ side.
Implement GetSystemErrorMessage to aid in debugging.
Expose some internal Android EGL data for use in plugins (i.e. the movie plugin).
Add access to Java AssetManager object.
Change Android OBBs from plain PAKs to uncompressed ZIPs of the staged content to allow both multiple PAKs and to allow non-PAK content. In particular this allow movies to be in the OBB as they need to be directly accessed.
#codereview Josh.Adams, Chris.Babcock
[CL 2362008 by Rene Rivera in Main branch]
- IAP added using the google play billing helper functionality
- App Licensing Key and checking added, but not yet used.
- Changes to Store purchases to allow consumable flags.
- New maps added for android testing, this uses static responses for IAP purchase testing.
A few improvements left
- need licensing working for the query process.
- need testing without static responses. Work with google test responses.
[CL 2345308 by Terence Burns in Main branch]
- Made java library handling programmatic, no more hardcoding googleplayservices (just put your lib in <Project>\\Build\\Android\\JavaLibs like we have google now in Engine\\Build\\Android\\Java\\JavaLibs)
#codereview chris.babcock,ryan.gerleve
[CL 2345079 by Josh Adams in Main branch]
- Lots of Android iteration speedups:
- When compiling from UBT (Visual Studio) perform incremental APK generation - it doesn't wipe the Intermadiate/APK directory between runs
- Don't update project settings every run:
- Looks at the project.properties for both game and google play services to make sure they are built with current SDK API version, if not, fixup project.properties, etc
- Even with a non-incremental build (from Editor/UAT), keep the pre-dexed libraries (currently GooglePlayServices [GPS] only) for HUGE speedup
- We can't just pre-dex GPS and check-in, that's not going to be safe with different java/SDK versions.
- Removed the project.properties and proguard-project.txt from p4, as they will be generated if needed. A game can pre-supply those if needed, but we will still check API version and update if required
#codereview chris.babcock,ryan.gerleve,michael.noland
[CL 2341079 by Josh Adams in Main branch]
Changed so that on start up we find the font dir and assign it to a global.
Double checked that 'droidsans' is a safe ttf to default to - it is.
#codereview chris.babcock, nick.atamas
[CL 2290870 by Robert Jones in Main branch]
- Added option to allow for splitting up into multiple .apks, or a single "fat" .apk (also not exposed yet in the project settings)
- A fat binary is just named <Project>.apk, no longer <Project>-armv7.apk
- x86 almost works, except missing libCurl and ICU
- x64 and arm64 will come next now that this framework is in place
#codereview chris.babcock
[CL 2272105 by Josh Adams in Main branch]
- Unified some of the hardware survey code to use Set/GetStoredValue() for last survey time
- Added Get/SetStoredValue for IOS (to use NSUserDefaults)
- NOTE: Mobile devices will report very often - settings are per app, and when they are deleted and re-installed, they will report again.
#codereview chris.babcock,ian.thomas
[CL 2267419 by Josh Adams in Main branch]