From fffd4a2b11906238979f7d90fe97d2e4ecd961e7 Mon Sep 17 00:00:00 2001 From: rafal1137 Date: Sat, 10 Apr 2021 16:48:33 +0200 Subject: [PATCH] java: run it on UiThread --- .../java/org/etlegacy/app/ETLActivity.java | 149 +++++++++--------- 1 file changed, 77 insertions(+), 72 deletions(-) diff --git a/app/src/main/java/org/etlegacy/app/ETLActivity.java b/app/src/main/java/org/etlegacy/app/ETLActivity.java index 8fcfd2b..e5c2439 100644 --- a/app/src/main/java/org/etlegacy/app/ETLActivity.java +++ b/app/src/main/java/org/etlegacy/app/ETLActivity.java @@ -330,85 +330,90 @@ public class ETLActivity extends SDLActivity implements JoyStickListener { if (isAndroidTV() || isChromebook()) { Log.v("ETL", "AndroidTV / ChromeBook Detected, Display UI Disabled!"); } else { - final ImageButton buttonPopUpMenu = new ImageButton(getApplicationContext()); - buttonPopUpMenu.setImageResource(R.drawable.ic_one_line); - buttonPopUpMenu.setBackgroundResource(0); - - etl_PopMenu = new PopupMenu(getApplicationContext(), buttonPopUpMenu); - etl_PopMenu.getMenu().add(0, 0, 0, "~"); - - buttonPopUpMenu.setOnClickListener(new View.OnClickListener() { + runOnUiThread(new Runnable() { @Override - public void onClick(View v) { - etl_PopMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + public void run() { + final ImageButton buttonPopUpMenu = new ImageButton(getApplicationContext()); + buttonPopUpMenu.setImageResource(R.drawable.ic_one_line); + buttonPopUpMenu.setBackgroundResource(0); + + etl_PopMenu = new PopupMenu(getApplicationContext(), buttonPopUpMenu); + etl_PopMenu.getMenu().add(0, 0, 0, "~"); + + buttonPopUpMenu.setOnClickListener(new View.OnClickListener() { @Override - public boolean onMenuItemClick(MenuItem item) { - switch (item.getItemId()) { - case 0: - SDLActivity.onNativeKeyDown(68); - SDLActivity.onNativeKeyUp(68); - break; - case 1: - SDLActivity.onNativeKeyDown(131); - SDLActivity.onNativeKeyUp(131); - break; - case 2: - SDLActivity.onNativeKeyDown(132); - SDLActivity.onNativeKeyUp(132); - break; - } - return false; + public void onClick(View v) { + etl_PopMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + switch (item.getItemId()) { + case 0: + SDLActivity.onNativeKeyDown(68); + SDLActivity.onNativeKeyUp(68); + break; + case 1: + SDLActivity.onNativeKeyDown(131); + SDLActivity.onNativeKeyUp(131); + break; + case 2: + SDLActivity.onNativeKeyDown(132); + SDLActivity.onNativeKeyUp(132); + break; + } + return false; + } + }); + etl_PopMenu.show(); } }); - etl_PopMenu.show(); + + mLayout.addView(buttonPopUpMenu); + + btn = new ImageButton(getApplicationContext()); + btn.setImageResource(R.drawable.ic_keyboard); + btn.setBackgroundResource(0); + btn.setId(1); + btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); + imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); + } + }); + + RelativeLayout.LayoutParams keyboard_layout = new RelativeLayout.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT); + + keyboard_layout.leftMargin = pxToDp(390); + keyboard_layout.topMargin = pxToDp(-20); + mLayout.addView(btn, keyboard_layout); + + ImageButton esc_btn = new ImageButton(getApplicationContext()); + esc_btn.setImageResource(R.drawable.ic_escape); + esc_btn.setBackgroundResource(0); + esc_btn.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + SDLActivity.onNativeKeyDown(111); + SDLActivity.onNativeKeyUp(111); + } + }); + + RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams( + ViewGroup.LayoutParams.WRAP_CONTENT, + ViewGroup.LayoutParams.WRAP_CONTENT); + + lp2.addRule(RelativeLayout.RIGHT_OF, btn.getId()); + lp2.leftMargin = pxToDp(-15); + lp2.topMargin = -pxToDp(20); + + mLayout.addView(esc_btn, lp2); + + runUI(); } }); - mLayout.addView(buttonPopUpMenu); - - btn = new ImageButton(getApplicationContext()); - btn.setImageResource(R.drawable.ic_keyboard); - btn.setBackgroundResource(0); - btn.setId(1); - btn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0); - } - }); - - RelativeLayout.LayoutParams keyboard_layout = new RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, - ViewGroup.LayoutParams.WRAP_CONTENT); - - keyboard_layout.leftMargin = pxToDp(390); - keyboard_layout.topMargin = pxToDp(-20); - mLayout.addView(btn, keyboard_layout); - - ImageButton esc_btn = new ImageButton(getApplicationContext()); - esc_btn.setImageResource(R.drawable.ic_escape); - esc_btn.setBackgroundResource(0); - esc_btn.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - SDLActivity.onNativeKeyDown(111); - SDLActivity.onNativeKeyUp(111); - } - }); - - RelativeLayout.LayoutParams lp2 = new RelativeLayout.LayoutParams( - ViewGroup.LayoutParams.WRAP_CONTENT, - ViewGroup.LayoutParams.WRAP_CONTENT); - - lp2.addRule(RelativeLayout.RIGHT_OF, btn.getId()); - lp2.leftMargin = pxToDp(-15); - lp2.topMargin = -pxToDp(20); - - mLayout.addView(esc_btn, lp2); - - runUI(); - } }