Move hideNavBar to java for native android keyboard

This commit is contained in:
Benau
2019-05-21 16:31:59 +08:00
parent 1814472214
commit 27f0f8c961
3 changed files with 35 additions and 100 deletions

View File

@@ -3,6 +3,7 @@ package org.supertuxkart.stk_dbg;
import android.app.NativeActivity;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.os.Bundle;
import android.view.inputmethod.InputMethodManager;
import android.view.KeyEvent;
@@ -14,6 +15,19 @@ public class SuperTuxKartActivity extends NativeActivity
private native void saveFromJavaChars(String chars);
private native void saveKeyboardHeight(int height);
private void hideNavBar(View decor_view)
{
if (Build.VERSION.SDK_INT < 19)
return;
decor_view.setSystemUiVisibility(
View.SYSTEM_UI_FLAG_FULLSCREEN |
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION |
View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY |
View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN |
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
}
@Override
public void onCreate(Bundle instance)
{
@@ -34,6 +48,18 @@ public class SuperTuxKartActivity extends NativeActivity
saveKeyboardHeight(keyboard_height);
}
});
final View decor_view = getWindow().getDecorView();
decor_view.setOnSystemUiVisibilityChangeListener(
new View.OnSystemUiVisibilityChangeListener()
{
@Override
public void onSystemUiVisibilityChange(int visibility)
{
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0)
hideNavBar(decor_view);
}
});
}
@Override
@@ -55,6 +81,14 @@ public class SuperTuxKartActivity extends NativeActivity
return super.dispatchKeyEvent(event);
}
@Override
public void onWindowFocusChanged(boolean has_focus)
{
super.onWindowFocusChanged(has_focus);
if (has_focus)
hideNavBar(getWindow().getDecorView());
}
public void showKeyboard()
{
InputMethodManager imm = (InputMethodManager)