In order to use multicast communication or broadcasts Android applications need the CHANGE_WIFI_MULTICAST_STATE permission and acquiring a WifiManager.MulticastLock
#jira UE-165411
#review @Bertrand.Carre, @Chris.Varnsverry, @Chris.Babcock, @Jack.Porter
#preflight 63e363beb923ed4bdd350643
[CL 24069824 by Rafa Lecina in ue5-main branch]
- Creates the UnrealArchitectures class, which wraps a list of UnrealArch objects
- UnrealArch is a single architecture, expandable enum-like struct
- There is no more concept of "no/default architecture", there is always a valid active architecture when building
- Most uses of "string Architecture" are replaced with one of the two above, depending if multiple architectures are supported or not
- UnrealArch has some platform-extensions for platform-specific naming (like Linux adds in LinuxName that turns, for instance, Arm64 -> aarch64-unknown-linux-gnueabi, which is used in folder names, etc)
- UnrealArch has bIsX64 which can be used determine intel instruction set (as opposed to arm)
- TargetRules class has an "Architecture" accessor that will return a single architecture if the active architectures is a single architecture, or throw an exception if multiple. This is useful in a majority of the cases where a paltform can only have a single architecture active in TargetRules (microsoft platforms, for instance, will create separate targets when compiling multiple architectures at once)
- Added UnrealArchitectureConfig class, which contains all the architecture information for a platform (what architectures are supported, what ones are currently active for given project, etc)
#preflight 63c81fb5b065224750a1759e
#rb mike.fricker,roman.dzieciol,joe.kirchoff,dmytro.vovk,brandon.schaefer [various parts]
#p4v-preflight-copy 23562471
[CL 23829977 by josh adams in ue5-main branch]
- Changed -arm64 and -x64 to arm64 and x64
- Removed the Arches array and other multi-architecture stuff from Adnroid compiling and linking, and using the higher level UEToolchain functionality to handle multi-architecture
- AndroidToolchain is now a proper ClangToolchain subclass instead of overriding everything it did (being a proper ISPCToolchain subclass coming later)
- Updated some of the UEToolchain side stuff (Android is the first platform to need separate Link output, but still need a single Target)
- All the architecture stuff is driven by UEBuildAndroid, not AndroidToolchain, so the make-a-temp-toolchain object just to get architectures was removed
- Removed unused stuff like bAllowMissingNDK, bExecuteCompilerThroughShell, Arches/GPUArches arrays
- Added a high-levle ConvertToPlatformArchitecture() function that UBT can use to turn "x86_64" into the achitecture that Android wants of "x64"
#rb chris.babcock
#preflight 63bdb04271079a8d1c2ef110
[CL 23634002 by Josh Adams in ue5-main branch]
Included update and fixes together because the update was affecting how the fixes would be implemented
UE-160024:
- Updated Google Billing Library to v5.
- Many types and methods changed.
- Cleaned up unused/non accessible/non needed methods and interfaces from GooglePlayStoreHelper.java, GameActivity.java.template and additions from OnlineSubsystemGooglePlay_UPL.xml
- Used a uniform code style on GooglePlayStoreHelper.java (tried to be near the C++ guidelines)
- Also follow C++ code guidelines and naming on the Java native functions implementation
- Fixed support for GooglePlay pending transactions
- General cleanup on OnlinePurchaseGooglePlay.h/cpp
- Do not add validation information for pending purchases so they are not redeemable (thus not consumed accidentally)
UE-160021 and UE-160022
- Use just one list of transactions to simplify handling them
- Clear the list of transactions and fill it with the result of the query. GooglePlay always returns the full list of non consumed transactions (and the list of non consumable ones, but those are not currently supported by UE)
- Added consume delegate to be able to remove consumed receipts
UE-160023:
- Checked result of BillingClient.launchBillingFlow and notify the native side in case of failure
OI-3209:
- When launch mode is set to single task in the manifest and the user moves to background and then to foreground using the Android launcher the onPurchasesUpdated listener reports BillingClient.BillingResponseCode.USER_CANCELLED with an empty list of purchases. Detect that as in progress purchase was cancelled
#jira UE-160021, UE-160022, UE-160023, UE-160024, OI-3209, UE-162461
#review @Bertrand.Carre, @Chris.Varnsverry, @Chris.Babcock
#preflight 630ddb31e54ec9d581788286
#9528
[CL 21737049 by Rafa Lecina in ue5-main branch]
UAT RunClient: Continuously redirect output to uat stdout while client is running.
UAT RunClient: Add a process wrapper to kill client process when uat exits and to write the adb device log file to the host pc directories.
UAT RunClient: Push the ClientCmdLine args as a UECommandLine.txt file to the device to the correct location (different for adb deploy and android file server) to override the stage/apk command line.
UAT MakeApk: Add a UECommandLine.txt cache file to the intermediate directory to invalidate the apk when the stage/apk command line changes (e.g. when switching between CBTB or COTF or cooking with/without Zen).
LaunchAndroid.cpp: Add debug output for which override command line file that is being used.
LaunchAndroid.cpp: Implement missing -waitforattach/-waitfordebugger feature.
DataDrivenPlatformInfo.ini: set bUATClosesAfterLaunch=false to stop the editor from passing -nokill to uat to let it stop all processes when the client exits..
#jira none
#rb chris.babcock
#rnx
#preflight 6245849873665f7d5e4f0a18
#preflight 624be1f3dc6183e3f5518801
[CL 19621549 by PJ Kack in ue5-main branch]
#jira none
#rb Chris.Babcock
#ushell-cherrypick of 19456583 by dmytro.vovk
#preflight 6238d24789625f0612a47330
[CL 19457054 by dmytro vovk in ue5-main branch]