From d0be1c1ce16d4f2f766b9be85ce00c9e1ac320a6 Mon Sep 17 00:00:00 2001 From: Sergii Pylypenko Date: Wed, 16 Mar 2016 22:48:13 +0200 Subject: [PATCH] SDL: truncate .obb file if Google Play downloads it again, happens all the time during updates --- project/java/DataDownloader.java | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/project/java/DataDownloader.java b/project/java/DataDownloader.java index ef78fa037..a66b417e7 100644 --- a/project/java/DataDownloader.java +++ b/project/java/DataDownloader.java @@ -265,6 +265,20 @@ class DataDownloader extends Thread if( ! matched ) throw new IOException(); Status.setText( res.getString(R.string.download_unneeded) ); + for( int i = 1; i < downloadUrls.length; i++ ) + { + if( downloadUrls[i].indexOf("obb:") == 0 ) // APK expansion file provided by Google Play + { + String url = getObbFilePath(downloadUrls[i]); + if (new File(url).length() > 256) + { + Writer writer = new OutputStreamWriter(new FileOutputStream(url), "UTF-8"); + writer.write("Extracted and truncated\n"); + writer.close(); + Log.i("SDL", "Truncated file from expansion: " + url); + } + } + } return true; } catch ( IOException e ) { forceOverwrite = true; @@ -322,9 +336,7 @@ class DataDownloader extends Thread Status.setText( downloadCount + "/" + downloadTotal + ": " + res.getString(R.string.connecting_to, url) ); if( url.indexOf("obb:") == 0 ) // APK expansion file provided by Google Play { - url = url.substring("obb:".length()); - url = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/obb/" + - Parent.getPackageName() + "/" + url + "." + Parent.getPackageName() + ".obb"; + url = getObbFilePath(url); InputStream stream1 = null; try { stream1 = new FileInputStream(url); @@ -764,7 +776,13 @@ class DataDownloader extends Thread { return outFilesDir + "/" + filename; }; - + + private String getObbFilePath(final String url) + { + return Environment.getExternalStorageDirectory().getAbsolutePath() + "/Android/obb/" + + Parent.getPackageName() + "/" + url.substring("obb:".length()) + "." + Parent.getPackageName() + ".obb"; + } + private static DefaultHttpClient HttpWithDisabledSslCertCheck() { return new DefaultHttpClient();