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();