Skip to content

Commit

Permalink
avoid the JNI/Java overhead on input events
Browse files Browse the repository at this point in the history
  • Loading branch information
pazos committed Aug 3, 2019
1 parent 788d0f0 commit f3c03a5
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 50 deletions.
41 changes: 11 additions & 30 deletions assets/android.lua
Expand Up @@ -1407,46 +1407,27 @@ local function run(android_app_state)
end)
end
-- input settings
android.input = {}
-- ignore some events
android.input.ignore_touchscreen = false
android.input.ignore_volume_keys = false
android.getVolumeKeysIgnored = function()
return JNI:context(android.app.activity.vm, function(JNI)
return JNI:callIntMethod(
android.app.activity.clazz,
"getVolumeKeysIgnored",
"()I"
) == 1
end)
return android.input.ignore_volume_keys
end
android.setVolumeKeysIgnored = function(ignored)
android.DEBUG("ignoring volume keys: " .. tostring(ignored))
JNI:context(android.app.activity.vm, function(JNI)
JNI:callVoidMethod(
android.app.activity.clazz,
"setVolumeKeysIgnored",
"(Z)V",
ffi.new("bool", ignored)
)
end)
android.input.ignore_volume_keys = ignored
end
android.isTouchscreenIgnored = function()
return JNI:context(android.app.activity.vm, function(JNI)
return JNI:callIntMethod(
android.app.activity.clazz,
"isTouchscreenIgnored",
"()I"
) == 1
end)
return android.input.ignore_touchscreen
end
android.toggleTouchscreenIgnored = function()
JNI:context(android.app.activity.vm, function(JNI)
JNI:callVoidMethod(
android.app.activity.clazz,
"toggleTouchscreenIgnored",
"()V"
)
end)
android.input.ignore_touchscreen = not android.input.ignore_touchscreen
end
-- properties that don't change during the execution of the program.
Expand Down
20 changes: 0 additions & 20 deletions launcher/src/org/koreader/launcher/MainActivity.java
Expand Up @@ -48,9 +48,6 @@ public class MainActivity extends android.app.NativeActivity implements SurfaceH
// size in pixels of the top notch, if any
private int notch_height = 0;

private boolean touchscreen_ignored = false;
private boolean volume_keys_ignored = false;

/* Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
Expand Down Expand Up @@ -269,23 +266,6 @@ public void dictLookup(String text, String pkg, String action) {
}
}

/* input */
public int isTouchscreenIgnored() {
return touchscreen_ignored ? 1 : 0;
}

public int getVolumeKeysIgnored() {
return volume_keys_ignored ? 1 : 0;
}

public void toggleTouchscreenIgnored() {
touchscreen_ignored = !touchscreen_ignored;
}

public void setVolumeKeysIgnored(boolean ignored) {
volume_keys_ignored = ignored;
}

/* native dialogs and widgets run on UI Thread */
public void showToast(final String message) {
runOnUiThread(new Runnable() {
Expand Down

0 comments on commit f3c03a5

Please sign in to comment.