Waiting for proper screen orientation in a proper way
This commit is contained in:
@@ -71,6 +71,7 @@ import android.os.Handler;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import java.util.concurrent.Semaphore;
|
import java.util.concurrent.Semaphore;
|
||||||
import android.content.pm.ActivityInfo;
|
import android.content.pm.ActivityInfo;
|
||||||
|
import android.view.Display;
|
||||||
|
|
||||||
public class MainActivity extends Activity
|
public class MainActivity extends Activity
|
||||||
{
|
{
|
||||||
@@ -236,10 +237,49 @@ public class MainActivity extends Activity
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void initSDL()
|
public void initSDL()
|
||||||
|
{
|
||||||
|
(new Thread(new Runnable()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
//int tries = 30;
|
||||||
|
while( isCurrentOrientationHorizontal() != Globals.HorizontalOrientation )
|
||||||
|
{
|
||||||
|
System.out.println("libSDL: Waiting for screen orientation to change - the device is probably in the lockscreen mode");
|
||||||
|
try {
|
||||||
|
Thread.sleep(500);
|
||||||
|
} catch( Exception e ) {}
|
||||||
|
/*
|
||||||
|
tries--;
|
||||||
|
if( tries <= 0 )
|
||||||
|
{
|
||||||
|
System.out.println("libSDL: Giving up waiting for screen orientation change");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
if( _isPaused )
|
||||||
|
{
|
||||||
|
System.out.println("libSDL: Application paused, cancelling SDL initialization until it will be brought to foreground");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
runOnUiThread(new Runnable()
|
||||||
|
{
|
||||||
|
public void run()
|
||||||
|
{
|
||||||
|
initSDLInternal();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
})).start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void initSDLInternal()
|
||||||
{
|
{
|
||||||
if(sdlInited)
|
if(sdlInited)
|
||||||
return;
|
return;
|
||||||
System.out.println("libSDL: Initializing video and SDL application");
|
System.out.println("libSDL: Initializing video and SDL application");
|
||||||
|
|
||||||
sdlInited = true;
|
sdlInited = true;
|
||||||
if(Globals.UseAccelerometerAsArrowKeys || Globals.AppUsesAccelerometer)
|
if(Globals.UseAccelerometerAsArrowKeys || Globals.AppUsesAccelerometer)
|
||||||
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
|
getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
|
||||||
@@ -304,25 +344,6 @@ public class MainActivity extends Activity
|
|||||||
if( downloader.DownloadComplete )
|
if( downloader.DownloadComplete )
|
||||||
{
|
{
|
||||||
initSDL();
|
initSDL();
|
||||||
/*
|
|
||||||
// This code does not work
|
|
||||||
(new Thread(new Runnable()
|
|
||||||
{
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
Thread.sleep(300); // Allow some time for Os to change screen orientation
|
|
||||||
} catch(Exception e) {}
|
|
||||||
runOnUiThread(new Runnable()
|
|
||||||
{
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
initSDL();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})).start();
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -936,6 +957,12 @@ public class MainActivity extends Activity
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isCurrentOrientationHorizontal()
|
||||||
|
{
|
||||||
|
Display getOrient = getWindowManager().getDefaultDisplay();
|
||||||
|
return getOrient.getWidth() >= getOrient.getHeight();
|
||||||
|
}
|
||||||
|
|
||||||
public FrameLayout getVideoLayout() { return _videoLayout; }
|
public FrameLayout getVideoLayout() { return _videoLayout; }
|
||||||
|
|
||||||
static int NOTIFY_ID = 12367098; // Random ID
|
static int NOTIFY_ID = 12367098; // Random ID
|
||||||
|
|||||||
Reference in New Issue
Block a user