summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormert <mert.tumer@collabora.com>2020-11-12 13:15:24 +0300
committermert <mert.tumer@collabora.com>2020-11-12 20:07:30 +0300
commit1a8ab62f0993f8e35180baba61956708136c43be (patch)
tree02992b227cef69362bd4fb35e555e6c1ebc31b43
parentChromebook: fix unable to re-gain textarea focus (diff)
downloadonline-private/mert/improve-chromeos-keyboard-shortcuts.tar.gz
online-private/mert/improve-chromeos-keyboard-shortcuts.zip
Fix android does not send keyevents correctly private/mert/improve-chromeos-keyboard-shortcuts
This issue is fixing some unidentifed keys being sent such es 'space' also some keydown and up events not being sent correctly. Fixes some shortcut problems. Change-Id: I6706a7581ef3c4e4fa8cf26209af93d77423740c Signed-off-by: mert <mert.tumer@collabora.com>
-rw-r--r--android/lib/src/main/java/org/libreoffice/androidlib/COWebView.java42
-rw-r--r--android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java4
-rw-r--r--android/lib/src/main/res/layout/lolib_activity_main.xml2
3 files changed, 45 insertions, 3 deletions
diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/COWebView.java b/android/lib/src/main/java/org/libreoffice/androidlib/COWebView.java
new file mode 100644
index 0000000000..290366ef1e
--- /dev/null
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/COWebView.java
@@ -0,0 +1,42 @@
+/* -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+package org.libreoffice.androidlib;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.inputmethod.BaseInputConnection;
+import android.view.inputmethod.EditorInfo;
+import android.view.inputmethod.InputConnection;
+import android.webkit.WebView;
+
+public class COWebView extends WebView {
+ public COWebView(Context context) {
+ super(context);
+ }
+
+ public COWebView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public COWebView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public COWebView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ /*
+ * This fixes Unidentified key events in javascript such as 'space' key and
+ * shortcuts that require such keys
+ * */
+ @Override
+ public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
+ return new BaseInputConnection(this, false);
+ }
+}
diff --git a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
index 7b7317b1f5..6e202100db 100644
--- a/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
+++ b/android/lib/src/main/java/org/libreoffice/androidlib/LOActivity.java
@@ -106,7 +106,7 @@ public class LOActivity extends AppCompatActivity {
private URI documentUri;
private String urlToLoad;
- private WebView mWebView = null;
+ private COWebView mWebView = null;
private SharedPreferences sPrefs;
private Handler mMainHandler = null;
private RateAppController rateAppController;
@@ -334,7 +334,7 @@ public class LOActivity extends AppCompatActivity {
finish();
}
- mWebView = findViewById(R.id.browser);
+ mWebView = (COWebView) findViewById(R.id.browser);
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
diff --git a/android/lib/src/main/res/layout/lolib_activity_main.xml b/android/lib/src/main/res/layout/lolib_activity_main.xml
index 8d1f1d9fff..2a6a6e7058 100644
--- a/android/lib/src/main/res/layout/lolib_activity_main.xml
+++ b/android/lib/src/main/res/layout/lolib_activity_main.xml
@@ -6,7 +6,7 @@
android:layout_height="match_parent"
tools:context=".LOActivity">
- <WebView
+ <org.libreoffice.androidlib.COWebView
android:id="@+id/browser"
android:layout_width="match_parent"
android:layout_height="match_parent"