mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-16 11:06:49 +01:00
Android: Fixed trying to read from APK expansion files without version hint set.
This also fixed overwriting the asset error message which is more useful if no APK expansion files are available and the requested file was not found.
This commit is contained in:
parent
92ca42d940
commit
6e7c479ec2
@ -688,12 +688,23 @@ public class SDLActivity extends Activity {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This method is called by SDL using JNI.
|
* This method is called by SDL using JNI.
|
||||||
|
* @return an InputStream on success or null if no expansion file was used.
|
||||||
|
* @throws IOException on errors. Message is set for the SDL error message.
|
||||||
*/
|
*/
|
||||||
public InputStream openAPKExpansionInputStream(String fileName) throws IOException {
|
public InputStream openAPKExpansionInputStream(String fileName) throws IOException {
|
||||||
// Get a ZipResourceFile representing a merger of both the main and patch files
|
// Get a ZipResourceFile representing a merger of both the main and patch files
|
||||||
if (expansionFile == null) {
|
if (expansionFile == null) {
|
||||||
Integer mainVersion = Integer.valueOf(nativeGetHint("SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"));
|
String mainHint = nativeGetHint("SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION");
|
||||||
Integer patchVersion = Integer.valueOf(nativeGetHint("SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"));
|
if (mainHint == null) {
|
||||||
|
return null; // no expansion use if no main version was set
|
||||||
|
}
|
||||||
|
String patchHint = nativeGetHint("SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION");
|
||||||
|
if (patchHint == null) {
|
||||||
|
return null; // no expansion use if no patch version was set
|
||||||
|
}
|
||||||
|
|
||||||
|
Integer mainVersion = Integer.valueOf(mainHint);
|
||||||
|
Integer patchVersion = Integer.valueOf(patchHint);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
// To avoid direct dependency on Google APK expansion library that is
|
// To avoid direct dependency on Google APK expansion library that is
|
||||||
|
@ -790,7 +790,10 @@ fallback:
|
|||||||
"openAPKExpansionInputStream", "(Ljava/lang/String;)Ljava/io/InputStream;");
|
"openAPKExpansionInputStream", "(Ljava/lang/String;)Ljava/io/InputStream;");
|
||||||
inputStream = (*mEnv)->CallObjectMethod(mEnv, context, mid, fileNameJString);
|
inputStream = (*mEnv)->CallObjectMethod(mEnv, context, mid, fileNameJString);
|
||||||
|
|
||||||
if (Android_JNI_ExceptionOccurred(SDL_FALSE)) {
|
/* Exception is checked first because it always needs to be cleared.
|
||||||
|
* If no exception occurred then the last SDL error message is kept.
|
||||||
|
*/
|
||||||
|
if (Android_JNI_ExceptionOccurred(SDL_FALSE) || !inputStream) {
|
||||||
goto failure;
|
goto failure;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user