2
0
mirror of https://github.com/FWGS/xash3d-fwgs synced 2024-11-26 11:49:25 +01:00

Workaround strange getExternalFilesDir freeze

This commit is contained in:
mittorn 2018-04-02 03:55:23 +07:00 committed by Alibek Omarov
parent aa3af3bf67
commit 2b0a4f552b

View File

@ -24,6 +24,7 @@ import android.preference.*;
public class FWGSLib
{
private static final String TAG = "FWGSLib";
static String externalFilesDir;
public static boolean FBitSet( final int bits, final int mask )
{
return ((bits & mask) == mask);
@ -110,19 +111,52 @@ public class FWGSLib
return dir.getPath() + "/xash";
return "/sdcard/xash";
}
public static String getExternalFilesDir( Context ctx )
static class GetExternalFilesDir extends Thread
{
Context ctx;
GetExternalFilesDir( Context ctx1 )
{
ctx = ctx1;
}
@Override
public void run()
{
try
{
File f = ctx.getExternalFilesDir(null);
if( f == null )
{
f = new File( getDefaultXashPath() );
}
f.mkdirs();
return f.getAbsolutePath();
externalFilesDir = f.getAbsolutePath();
Log.d(TAG, "getExternalFilesDir success");
}
catch( Exception e )
{
Log.e( TAG, e.toString(), e);
}
}
}
public static String getExternalFilesDir( Context ctx )
{
if( externalFilesDir != null )
return externalFilesDir;
try
{
if( sdk >= 8 )
{
Thread t = new GetExternalFilesDir(ctx);
t.start();
t.join(2000);
}
}
catch(Exception e)
{
Log.e( TAG, e.toString(), e);
externalFilesDir = getDefaultXashPath();
}
if( externalFilesDir == null )
externalFilesDir = getDefaultXashPath();
return externalFilesDir;
}
public static boolean isLandscapeOrientation( Activity act )