Fix game outright crashing when a device conifugration change occurs (Thanks GuzzDoritos)

Although now you just get a blank window, so not exactly that much better
This commit is contained in:
UnknownShadow200 2020-11-10 21:59:25 +11:00
parent 6a8ca0ebd4
commit 27935713e8

View File

@ -125,16 +125,21 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 {
// ====================================== // ======================================
// --------------- EVENTS --------------- // --------------- EVENTS ---------------
// ====================================== // ======================================
static boolean gameHooked; static boolean gameRunning;
InputMethodManager input; InputMethodManager input;
void startGameAsync() {
Log.i("CC_WIN", "handing off to native..");
System.loadLibrary("classicube");
runGameAsync();
}
@Override @Override
protected void onCreate(Bundle savedInstanceState) { protected void onCreate(Bundle savedInstanceState) {
input = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE); input = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
Log.i("CC_WIN", "CREATE EVENT"); Log.i("CC_WIN", "CREATE EVENT");
Window window = getWindow(); Window window = getWindow();
Log.i("CC_WIN", "GAME RUNNING?" + gameHooked); Log.i("CC_WIN", "GAME RUNNING?" + gameRunning);
gameHooked = true;
//window.takeSurface(this); //window.takeSurface(this);
//window.takeInputQueue(this); //window.takeInputQueue(this);
// TODO: Should this be RGBA_8888?? // TODO: Should this be RGBA_8888??
@ -151,9 +156,8 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 {
ex.printStackTrace(); ex.printStackTrace();
} }
Log.i("CC_WIN", "handing off to native.."); if (!gameRunning) startGameAsync();
System.loadLibrary("classicube"); gameRunning = true;
runGameAsync();
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
} }
@ -568,7 +572,7 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 {
public int getKeyboardType() { public int getKeyboardType() {
if (keyboardType == 2) return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD; if (keyboardType == 2) return InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD;
if (keyboardType == 1) return InputType.TYPE_CLASS_NUMBER; if (keyboardType == 1) return InputType.TYPE_CLASS_NUMBER;
return InputType.TYPE_CLASS_TEXT; /* TODO: This still adds a . after space */ return InputType.TYPE_CLASS_TEXT;
} }
public String getClipboardText() { public String getClipboardText() {
@ -619,7 +623,7 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 {
public void enterFullscreen() { public void enterFullscreen() {
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
public void run() { public void run() {
curView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY); if (curView != null) curView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
} }
}); });
} }
@ -627,7 +631,7 @@ public class MainActivity extends Activity implements SurfaceHolder.Callback2 {
public void exitFullscreen() { public void exitFullscreen() {
runOnUiThread(new Runnable() { runOnUiThread(new Runnable() {
public void run() { public void run() {
curView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE); if (curView != null) curView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE);
} }
}); });
} }