diff --git a/README.md b/README.md
index 708a89ae2..64f8fbcc8 100644
--- a/README.md
+++ b/README.md
@@ -34,8 +34,7 @@ for you. If you prefer to build without Android Studio you must first
set up the Android SDK and then run the command: `./gradlew build `
from the root directory of the project.
-We utilize different build variants (flavours) to build various
-different versions of our app. Ensure your build variant is
+We utilize different build variants (flavors) to build various versions of our app. Ensure your build variant is
`kiwixDebug` to build the standard app.
## Libraries Used
diff --git a/app/src/main/assets/credits.html b/app/src/main/assets/credits.html
index d9cbca1cd..d4f7e78e2 100644
--- a/app/src/main/assets/credits.html
+++ b/app/src/main/assets/credits.html
@@ -20,22 +20,22 @@
Contributors
-Abdul Wadood
-Adeel Zafar
-Aditya Sood
-Ayoub Dardory
-Christian Pühringer
-Elad Keyshawn
-Emmanuel Engelhart
-Isaac Hutt
-Joseph E. Reeve
-Julian Harty
-Rashiq Ahmad
-Renaud Gaudin
-Seán Mac Gillicuddy
-Siddharth Sharma
-Souradip Mookerjee
-Translatewiki community
+Abdul Wadood
+Adeel Zafar
+Aditya Sood
+Ayoub Dardory
+Christian Pühringer
+Elad Keyshawn
+Emmanuel Engelhart
+Isaac Hutt
+Joseph E. Reeve
+Julian Harty
+Rashiq Ahmad
+Renaud Gaudin
+Seán Mac Gillicuddy
+Siddharth Sharma
+Souradip Mookerjee
+Translatewiki community
Licenses
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CompatFindActionModeCallback.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CompatFindActionModeCallback.java
index c1cccd8a3..326e13ce8 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CompatFindActionModeCallback.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CompatFindActionModeCallback.java
@@ -39,44 +39,44 @@ import org.kiwix.kiwixmobile.core.R;
public class CompatFindActionModeCallback
implements ActionMode.Callback, TextWatcher, View.OnClickListener {
- public boolean mIsActive;
+ public boolean isActive;
- private View mCustomView;
+ private View customView;
- private EditText mEditText;
+ private EditText editText;
- private TextView mFindResultsTextView;
+ private TextView findResultsTextView;
- private WebView mWebView;
+ private WebView webView;
- private InputMethodManager mInput;
+ private InputMethodManager input;
- private ActionMode mActionMode;
+ private ActionMode actionMode;
CompatFindActionModeCallback(Context context) {
- mCustomView = LayoutInflater.from(context).inflate(R.layout.webview_search, null);
- mEditText = mCustomView.findViewById(R.id.edit);
- mEditText.setOnClickListener(this);
- mFindResultsTextView = mCustomView.findViewById(R.id.find_results);
- mInput = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
- mIsActive = false;
+ customView = LayoutInflater.from(context).inflate(R.layout.webview_search, null);
+ editText = customView.findViewById(R.id.edit);
+ editText.setOnClickListener(this);
+ findResultsTextView = customView.findViewById(R.id.find_results);
+ input = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE);
+ isActive = false;
setText("");
}
public void setActive() {
- mIsActive = true;
+ isActive = true;
}
public void finish() {
- mActionMode.finish();
- mWebView.clearMatches();
+ actionMode.finish();
+ webView.clearMatches();
}
// Place text in the text field so it can be searched for. Need to press
// the find next or find previous button to find all of the matches.
public void setText(String text) {
- mEditText.setText(text);
- Spannable span = mEditText.getText();
+ editText.setText(text);
+ Spannable span = editText.getText();
int length = span.length();
// Ideally, we would like to set the selection to the whole field,
@@ -95,22 +95,22 @@ public class CompatFindActionModeCallback
throw new AssertionError(
"WebView supplied to CompatFindActionModeCallback cannot be null");
}
- mWebView = webView;
+ this.webView = webView;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- mFindResultsTextView.setVisibility(View.VISIBLE);
- mWebView.setFindListener((activeMatchOrdinal, numberOfMatches, isDoneCounting) -> {
+ findResultsTextView.setVisibility(View.VISIBLE);
+ this.webView.setFindListener((activeMatchOrdinal, numberOfMatches, isDoneCounting) -> {
String result;
- if (mEditText.getText().toString().isEmpty()) {
+ if (editText.getText().toString().isEmpty()) {
result = "";
} else if (numberOfMatches == 0) {
result = "0/0";
} else {
result = (activeMatchOrdinal + 1) + "/" + numberOfMatches;
}
- mFindResultsTextView.setText(result);
+ findResultsTextView.setText(result);
});
} else {
- mFindResultsTextView.setVisibility(View.GONE);
+ findResultsTextView.setVisibility(View.GONE);
}
}
@@ -119,31 +119,31 @@ public class CompatFindActionModeCallback
// If false, find the previous match, up in the document.
private void findNext(boolean next) {
- if (mWebView == null) {
+ if (webView == null) {
throw new AssertionError("No WebView for CompatFindActionModeCallback::findNext");
}
- mWebView.findNext(next);
+ webView.findNext(next);
}
// Highlight all the instances of the string from mEditText in mWebView.
public void findAll() {
- if (mWebView == null) {
+ if (webView == null) {
throw new AssertionError("No WebView for CompatFindActionModeCallback::findAll");
}
- CharSequence find = mEditText.getText();
+ CharSequence find = editText.getText();
if (find.length() == 0) {
- mWebView.clearMatches();
+ webView.clearMatches();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- mWebView.findAllAsync(null);
+ webView.findAllAsync(null);
} else {
- mWebView.findAll(null);
+ webView.findAll(null);
}
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- mWebView.findAllAsync(find.toString());
+ webView.findAllAsync(find.toString());
} else {
- mWebView.findAll(find.toString());
+ webView.findAll(find.toString());
}
// Enable word highlighting with reflection
@@ -151,7 +151,7 @@ public class CompatFindActionModeCallback
for (Method ms : WebView.class.getDeclaredMethods()) {
if (ms.getName().equals("setFindIsUp")) {
ms.setAccessible(true);
- ms.invoke(mWebView, true);
+ ms.invoke(webView, true);
break;
}
}
@@ -163,14 +163,15 @@ public class CompatFindActionModeCallback
// Show on screen keyboard
public void showSoftInput() {
- mEditText.requestFocus();
- mEditText.setFocusable(true);
- mEditText.setFocusableInTouchMode(true);
- mEditText.requestFocusFromTouch();
+ //wait for any hidden show/hide processes to finish
+ editText.postDelayed(() -> {
+
+ editText.requestFocus();
+ //show the keyboard
+ input.showSoftInput(editText, 0);
+
+ }, 100);
- if (mEditText.requestFocus()) {
- mInput.toggleSoftInput(InputMethodManager.SHOW_IMPLICIT, 0);
- }
}
@Override
@@ -180,21 +181,21 @@ public class CompatFindActionModeCallback
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
- mode.setCustomView(mCustomView);
+ mode.setCustomView(customView);
mode.getMenuInflater().inflate(R.menu.menu_webview, menu);
- mActionMode = mode;
- Editable edit = mEditText.getText();
+ actionMode = mode;
+ Editable edit = editText.getText();
Selection.setSelection(edit, edit.length());
- mEditText.requestFocus();
+ editText.requestFocus();
return true;
}
@Override
public void onDestroyActionMode(ActionMode mode) {
- mActionMode = null;
- mIsActive = false;
- mWebView.clearMatches();
- mInput.hideSoftInputFromWindow(mWebView.getWindowToken(), 0);
+ actionMode = null;
+ isActive = false;
+ webView.clearMatches();
+ input.hideSoftInputFromWindow(webView.getWindowToken(), 0);
}
@Override
@@ -204,12 +205,12 @@ public class CompatFindActionModeCallback
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- if (mWebView == null) {
+ if (webView == null) {
throw new AssertionError(
"No WebView for CompatFindActionModeCallback::onActionItemClicked");
}
- mInput.hideSoftInputFromWindow(mWebView.getWindowToken(), 0);
+ input.hideSoftInputFromWindow(webView.getWindowToken(), 0);
int itemId = item.getItemId();
if (itemId == R.id.find_prev) {
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.java
index 29bb47ea5..6306d8389 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreMainActivity.java
@@ -572,7 +572,7 @@ public abstract class CoreMainActivity extends BaseActivity implements WebViewCa
hideTabSwitcher();
} else if (isFullscreenOpened) {
closeFullScreen();
- } else if (compatCallback.mIsActive) {
+ } else if (compatCallback.isActive) {
compatCallback.finish();
} else if (drawerLayout.isDrawerOpen(GravityCompat.END)) {
drawerLayout.closeDrawers();