Prevent launch while extras in unpacking

This commit is contained in:
mittorn 2016-08-09 10:52:32 +00:00
parent d35d54afa4
commit 2c73f5a0fa

View file

@ -18,28 +18,31 @@ public class InstallReceiver extends BroadcastReceiver {
} }
public static SharedPreferences mPref = null; public static SharedPreferences mPref = null;
private static final int PAK_VERSION = 5; private static final int PAK_VERSION = 5;
public static void extractPAK(Context context, Boolean force) { public static synchronized void extractPAK(Context context, Boolean force) {
InputStream is = null; InputStream is = null;
FileOutputStream os = null; FileOutputStream os = null;
try { try {
if( mPref == null ) if( mPref == null )
mPref = context.getSharedPreferences("engine", 0); mPref = context.getSharedPreferences("engine", 0);
if( mPref.getInt( "pakversion", 0 ) == PAK_VERSION && !force ) synchronized( mPref )
return; {
String path = context.getFilesDir().getPath()+"/extras.pak"; if( mPref.getInt( "pakversion", 0 ) == PAK_VERSION && !force )
return;
String path = context.getFilesDir().getPath()+"/extras.pak";
is = context.getAssets().open("extras.pak"); is = context.getAssets().open("extras.pak");
os = new FileOutputStream(path); os = new FileOutputStream(path);
byte[] buffer = new byte[1024]; byte[] buffer = new byte[1024];
int length; int length;
while ((length = is.read(buffer)) > 0) { while ((length = is.read(buffer)) > 0) {
os.write(buffer, 0, length); os.write(buffer, 0, length);
}
os.close();
is.close();
SharedPreferences.Editor editor = mPref.edit();
editor.putInt( "pakversion", PAK_VERSION );
editor.commit();
} }
os.close();
is.close();
SharedPreferences.Editor editor = mPref.edit();
editor.putInt( "pakversion", PAK_VERSION );
editor.commit();
} catch( Exception e ) } catch( Exception e )
{ {
Log.e( TAG, "Failed to extract PAK:" + e.toString() ); Log.e( TAG, "Failed to extract PAK:" + e.toString() );