diff options
| author | Cameron Cawley | 2019-08-18 22:58:13 +0100 | 
|---|---|---|
| committer | Filippos Karapetis | 2019-08-20 14:32:50 +0300 | 
| commit | 12c232eefc7c78f7d40da9894e395dee4ce6d8c2 (patch) | |
| tree | 5a00b4bb1754d4fe6d2f6608851312206475f313 /backends/platform/android/org/scummvm | |
| parent | c2054682f0f20ad284582b0717d0298df401a228 (diff) | |
| download | scummvm-rg350-12c232eefc7c78f7d40da9894e395dee4ce6d8c2.tar.gz scummvm-rg350-12c232eefc7c78f7d40da9894e395dee4ce6d8c2.tar.bz2 scummvm-rg350-12c232eefc7c78f7d40da9894e395dee4ce6d8c2.zip | |
ANDROID: Add a button to show the virtual keyboard
Diffstat (limited to 'backends/platform/android/org/scummvm')
| -rw-r--r-- | backends/platform/android/org/scummvm/scummvm/ScummVM.java | 1 | ||||
| -rw-r--r-- | backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java | 44 | 
2 files changed, 45 insertions, 0 deletions
| diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVM.java b/backends/platform/android/org/scummvm/scummvm/ScummVM.java index 7b6627f667..37fe76ebda 100644 --- a/backends/platform/android/org/scummvm/scummvm/ScummVM.java +++ b/backends/platform/android/org/scummvm/scummvm/ScummVM.java @@ -61,6 +61,7 @@ public abstract class ScummVM implements SurfaceHolder.Callback, Runnable {  	abstract protected boolean isConnectionLimited();  	abstract protected void setWindowCaption(String caption);  	abstract protected void showVirtualKeyboard(boolean enable); +	abstract protected void showKeyboardControl(boolean enable);  	abstract protected String[] getSysArchives();  	public ScummVM(AssetManager asset_manager, SurfaceHolder holder) { diff --git a/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java b/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java index 58af703d56..7bb0fe8057 100644 --- a/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java +++ b/backends/platform/android/org/scummvm/scummvm/ScummVMActivity.java @@ -15,10 +15,12 @@ import android.os.Environment;  import android.text.ClipboardManager;  import android.util.DisplayMetrics;  import android.util.Log; +import android.view.View;  import android.view.SurfaceView;  import android.view.SurfaceHolder;  import android.view.MotionEvent;  import android.view.inputmethod.InputMethodManager; +import android.widget.ImageView;  import android.widget.Toast;  import java.io.File; @@ -39,6 +41,17 @@ public class ScummVMActivity extends Activity {  		}  	} +	public View.OnClickListener keyboardBtnOnClickListener = new View.OnClickListener() { +		@Override +		public void onClick(View v) { +			runOnUiThread(new Runnable() { +					public void run() { +						toggleKeyboard(); +					} +				}); +		} +	}; +  	private class MyScummVM extends ScummVM {  		private boolean usingSmallScreen() {  			// Multiple screen sizes came in with Android 1.6.  Have @@ -151,6 +164,15 @@ public class ScummVMActivity extends Activity {  		}  		@Override +		protected void showKeyboardControl(final boolean enable) { +			runOnUiThread(new Runnable() { +					public void run() { +						showKeyboardView(enable); +					} +				}); +		} + +		@Override  		protected String[] getSysArchives() {  			return new String[0];  		} @@ -233,6 +255,9 @@ public class ScummVMActivity extends Activity {  			_events = new ScummVMEventsHoneycomb(this, _scummvm, _mouseHelper);  		} +		// On screen button listener +		((ImageView)findViewById(R.id.show_keyboard)).setOnClickListener(keyboardBtnOnClickListener); +  		main_surface.setOnKeyListener(_events);  		main_surface.setOnTouchListener(_events); @@ -324,6 +349,25 @@ public class ScummVMActivity extends Activity {  										InputMethodManager.HIDE_IMPLICIT_ONLY);  	} +	private void toggleKeyboard() { +		SurfaceView main_surface = (SurfaceView)findViewById(R.id.main_surface); +		InputMethodManager imm = (InputMethodManager) +			getSystemService(INPUT_METHOD_SERVICE); + +		imm.toggleSoftInputFromWindow(main_surface.getWindowToken(), +		                              InputMethodManager.SHOW_IMPLICIT, +		                              InputMethodManager.HIDE_IMPLICIT_ONLY); +	} + +	private void showKeyboardView(boolean show) { +		ImageView keyboardBtn = (ImageView)findViewById(R.id.show_keyboard); + +		if (show) +			keyboardBtn.setVisibility(View.VISIBLE); +		else +			keyboardBtn.setVisibility(View.GONE); +	} +  	private void showMouseCursor(boolean show) {  		/* Currently hiding the system mouse cursor is only  		   supported on OUYA.  If other systems provide similar | 
