package net.minetest.minetest; import android.app.NativeActivity; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.view.View; import android.view.WindowManager; public class MtNativeActivity extends NativeActivity { static { System.loadLibrary("c++_shared"); System.loadLibrary("openal"); System.loadLibrary("ogg"); System.loadLibrary("vorbis"); System.loadLibrary("iconv"); System.loadLibrary("minetest"); } private int m_MessagReturnCode; private String m_MessageReturnValue; public static native void putMessageBoxResult(String text); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); m_MessagReturnCode = -1; m_MessageReturnValue = ""; } @Override protected void onResume() { super.onResume(); makeFullScreen(); } public void makeFullScreen() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { this.getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY ); } } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); if (hasFocus) { makeFullScreen(); } } public void copyAssets() { Intent intent = new Intent(this, MinetestAssetCopy.class); startActivity(intent); } public void showDialog(String acceptButton, String hint, String current, int editType) { Intent intent = new Intent(this, MinetestTextEntry.class); Bundle params = new Bundle(); params.putString("acceptButton", acceptButton); params.putString("hint", hint); params.putString("current", current); params.putInt("editType", editType); intent.putExtras(params); startActivityForResult(intent, 101); m_MessageReturnValue = ""; m_MessagReturnCode = -1; } /* ugly code to workaround putMessageBoxResult not beeing found */ public int getDialogState() { return m_MessagReturnCode; } public String getDialogValue() { m_MessagReturnCode = -1; return m_MessageReturnValue; } public float getDensity() { return getResources().getDisplayMetrics().density; } public int getDisplayWidth() { return getResources().getDisplayMetrics().widthPixels; } public int getDisplayHeight() { return getResources().getDisplayMetrics().heightPixels; } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == 101) { if (resultCode == RESULT_OK) { String text = data.getStringExtra("text"); m_MessagReturnCode = 0; m_MessageReturnValue = text; } else { m_MessagReturnCode = 1; } } } }