diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
index 386afcc2a..4ce8cb6cb 100644
--- a/.idea/codeStyles/Project.xml
+++ b/.idea/codeStyles/Project.xml
@@ -10,9 +10,6 @@
-
-
-
@@ -328,4 +325,4 @@
-
+
\ No newline at end of file
diff --git a/app/detekt_baseline.xml b/app/detekt_baseline.xml
index 86dd07fb8..e8547da19 100644
--- a/app/detekt_baseline.xml
+++ b/app/detekt_baseline.xml
@@ -43,9 +43,6 @@
ReturnCount:Fat32Checker.kt$Fat32Checker$private fun canCreate4GbFile(storage: String): Boolean
ReturnCount:LanguageActivity.kt$LanguageActivity$override fun onOptionsItemSelected(item: MenuItem): Boolean
ReturnCount:LibraryFragment.kt$LibraryFragment$private fun onBookItemClick(item: BookItem)
- SpreadOperator:LanguageAdapter.kt$LanguageAdapter$(*delegates)
- SpreadOperator:LibraryAdapter.kt$LibraryAdapter$( *delegates )
- SpreadOperator:ZimManageViewModel.kt$ZimManageViewModel$(*disposables())
TooGenericExceptionCaught:FileWritingFileSystemChecker.kt$FileWritingFileSystemChecker$e: Exception
TooGenericExceptionCaught:KiwixMainActivity.kt$KiwixMainActivity$e: Exception
TooGenericExceptionThrown:ActivityExtensions.kt$throw RuntimeException( """ applicationContext is ${applicationContext::class.java.simpleName} application is ${application::class.java.simpleName} """.trimIndent() )
diff --git a/app/lint-baseline.xml b/app/lint-baseline.xml
index 5a257ed82..995d85b07 100644
--- a/app/lint-baseline.xml
+++ b/app/lint-baseline.xml
@@ -1,13 +1,20 @@
+
+
+
+
@@ -18,7 +25,7 @@
errorLine1=" bookmark -> bookmark.getBookmarkTitle().toLowerCase().contains(newText.toLowerCase()))"
errorLine2=" ~~~~~~~~~~~">
@@ -29,7 +36,7 @@
errorLine1=" bookmark -> bookmark.getBookmarkTitle().toLowerCase().contains(newText.toLowerCase()))"
errorLine2=" ~~~~~~~~~~~">
@@ -40,7 +47,7 @@
errorLine1=" if (historyItem.getHistoryTitle().toLowerCase()"
errorLine2=" ~~~~~~~~~~~">
@@ -51,7 +58,7 @@
errorLine1=" .contains(newText.toLowerCase())) {"
errorLine2=" ~~~~~~~~~~~">
@@ -60,47 +67,14 @@
id="InvalidPackage"
message="Invalid package reference in library; not included in Android: `javax.xml.stream.events`. Referenced from `org.simpleframework.xml.stream.StreamReader`.">
+ file="..\..\..\.gradle\caches\modules-2\files-2.1\org.simpleframework\simple-xml\2.7.1\dd91fb744c2ff921407475cb29a1e3fee397d411\simple-xml-2.7.1.jar"/>
-
-
-
-
-
-
-
-
-
-
-
-
+ file="..\..\..\.gradle\caches\modules-2\files-2.1\org.simpleframework\simple-xml\2.7.1\dd91fb744c2ff921407475cb29a1e3fee397d411\simple-xml-2.7.1.jar"/>
@@ -120,7 +94,7 @@
errorLine1=" android:width="449dp">"
errorLine2=" ~~~~~">
@@ -131,7 +105,7 @@
errorLine1=" <dimen name="abc_dropdownitem_text_padding_left">8dip</dimen>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -142,7 +116,7 @@
errorLine1=" <dimen name="abc_dropdownitem_text_padding_right">8dip</dimen>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -153,7 +127,7 @@
errorLine1=" <item android:alpha="@dimen/material_dark_hint_pressed_alpha" android:color="@color/foreground_material_dark" android:state_enabled="true" android:state_pressed="true" />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -164,44 +138,29 @@
errorLine1=" <item android:alpha="@dimen/material_light_hint_alpha" android:color="@color/foreground_material_dark" />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-
-
-
-
-
@@ -212,7 +171,7 @@
errorLine1=" <string name="menu_help">Help</string>"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -223,7 +182,7 @@
errorLine1=" <string name="detecting_file_system">Detecting if file system can create 4GB files</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -234,7 +193,7 @@
errorLine1=" <string name="menu_home">Home</string>"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -245,7 +204,7 @@
errorLine1=" <string name="cannot_open_file">Failed to open file\nPlease try looking for this file in the Device Tab of your Library</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -256,7 +215,7 @@
errorLine1=" <string name="menu_settings">Settings</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -267,7 +226,7 @@
errorLine1=" <string name="menu_search_in_text">Find in page</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -278,7 +237,7 @@
errorLine1=" <string name="bookmarks">Bookmarks</string>"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -289,7 +248,7 @@
errorLine1=" <string name="menu_random_article">Random article</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -300,7 +259,7 @@
errorLine1=" <string name="menu_full_screen">Full screen</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -311,7 +270,7 @@
errorLine1=" <string name="menu_exit_full_screen">Exit full screen</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -322,7 +281,7 @@
errorLine1=" <string name="menu_read_aloud">Read aloud</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -333,7 +292,7 @@
errorLine1=" <string name="menu_read_aloud_stop">Stop reading aloud</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -344,18 +303,18 @@
errorLine1=" <string name="menu_support_kiwix">Support Kiwix</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -366,7 +325,7 @@
errorLine1=" <string name="save_media">Save Media</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -377,18 +336,18 @@
errorLine1=" <string name="save_media_error">An error occurred when trying to save the media!</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -399,7 +358,7 @@
errorLine1=" <string name="rescan_fs_warning">Scanning for downloadable content, please wait…</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -410,18 +369,18 @@
errorLine1=" <string name="search_label">Search</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -432,29 +391,29 @@
errorLine1=" <string name="open_in_new_tab">Open link in new tab?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -465,40 +424,40 @@
errorLine1=" <string name="hotspot_failed_message">It seems like your hotspot is already turned on. Please disable your wifi hotspot to continue.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -509,7 +468,7 @@
errorLine1=" <string name="server_failed_message" tools:keep="@string/server_failed_message">Couldn’t start server. Please turn on your hotspot</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -520,30 +479,41 @@
errorLine1=" <string name="server_failed_toast_message" tools:keep="@string/server_failed_toast_message">Couldn’t start server.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ message=""server_started_successfully_toast_message" is not translated in "hi" (Hindi), "ps" (Pashto), "hr" (Croatian), "hu" (Hungarian), "yo" (Yoruba), "ia" (Interlingua (International Auxiliary Language Association)), "ie" (Interlingue; Occidental), "qq", "qu" (Quechua), "af" (Afrikaans), "in" (Indonesian), "it" (Italian), "am" (Amharic), "as" (Assamese), "ja" (Japanese), "az" (Azerbaijani), "rm" (Romansh), "ro" (Romanian), "ba" (Bashkir), "ji" (Yiddish), "be" (Belarusian), "ru" (Russian), "bg" (Bulgarian), "bm" (Bambara), "bn" (Bengali), "jv" (Javanese), "sa" (Sanskrit), "br" (Breton), "sh", "ka" (Georgian), "si" (Sinhala), "sk" (Slovak), "sl" (Slovenian), "so" (Somali), "ca" (Catalan), "sq" (Albanian), "sr" (Serbian), "km" (Khmer), "su" (Sundanese), "kn" (Kannada), "sw" (Swahili), "ku" (Kurdish), "ta" (Tamil), "ky" (Kyrgyz), "te" (Telugu), "cv" (Chuvash), "th" (Thai), "cy" (Welsh), "lb" (Luxembourgish), "tl" (Tagalog), "da" (Danish), "li" (Limburgan; Limburger; Limburgish), "de" (German), "ast" (Asturian; Bable; Leonese; Asturleonese), "lt" (Lithuanian), "lv" (Latvian), "diq", "uk" (Ukrainian), "mg" (Malagasy), "ur" (Urdu), "ml" (Malayalam), "mn" (Mongolian), "uz" (Uzbek), "ms" (Malay), "el" (Greek), "mt" (Maltese), "eo" (Esperanto), "my" (Burmese), "et" (Estonian), "eu" (Basque), "vi" (Vietnamese), "nb" (Norwegian Bokmål), "ne" (Nepali), "fa" (Persian), "nl" (Dutch), "nn" (Norwegian Nynorsk), "fi" (Finnish), "fo" (Faroese), "kab" (Kabyle), "oc" (Occitan (post 1500); Provençal), "or" (Oriya), "gl" (Galician), "gu" (Gujarati), "ckb""
+ errorLine1=" <string name="server_started_successfully_toast_message" tools:keep="@string/server_started_successfully_toast_message">Server started successfully.</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
@@ -553,8 +523,8 @@
errorLine1=" <string name="hotspot_details_message">Following are the details of your local hotspot. \nSSID : %1$s \nPass : %2$s</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -564,19 +534,19 @@
errorLine1=" <string name="server_textview_default_message" tools:keep="@string/server_textview_default_message">Select the files you wish to host on the server</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -586,8 +556,8 @@
errorLine1=" <string name="hotspot_dialog_title">Turn on your WIFI hotspot</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -597,8 +567,8 @@
errorLine1=" <string name="hotspot_dialog_message">In order for this feature to work you need to first turn on your WIFI hotspot manually.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -608,8 +578,8 @@
errorLine1=" <string name="hotspot_dialog_neutral_button">YES, I’VE TURNED IT ON</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -619,41 +589,41 @@
errorLine1=" <string name="hotspot_channel_description" tools:keep="@string/hotspot_channel_description">Updates about the state of your hotspot/server.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-
-
-
-
+ message=""hotspot_notification_content_title" is not translated in "hi" (Hindi), "ps" (Pashto), "hr" (Croatian), "hu" (Hungarian), "xmf", "yo" (Yoruba), "ia" (Interlingua (International Auxiliary Language Association)), "ie" (Interlingue; Occidental), "qq", "qu" (Quechua), "af" (Afrikaans), "in" (Indonesian), "it" (Italian), "am" (Amharic), "as" (Assamese), "ja" (Japanese), "az" (Azerbaijani), "rm" (Romansh), "ro" (Romanian), "ba" (Bashkir), "ji" (Yiddish), "be" (Belarusian), "ru" (Russian), "bg" (Bulgarian), "bm" (Bambara), "bn" (Bengali), "jv" (Javanese), "sa" (Sanskrit), "br" (Breton), "sh", "ka" (Georgian), "si" (Sinhala), "sk" (Slovak), "sl" (Slovenian), "so" (Somali), "ca" (Catalan), "sq" (Albanian), "sr" (Serbian), "km" (Khmer), "su" (Sundanese), "sv" (Swedish), "kn" (Kannada), "sw" (Swahili), "ku" (Kurdish), "ta" (Tamil), "ky" (Kyrgyz), "te" (Telugu), "cv" (Chuvash), "th" (Thai), "cy" (Welsh), "lb" (Luxembourgish), "tl" (Tagalog), "da" (Danish), "li" (Limburgan; Limburger; Limburgish), "de" (German), "ast" (Asturian; Bable; Leonese; Asturleonese), "lt" (Lithuanian), "lv" (Latvian), "uk" (Ukrainian), "mg" (Malagasy), "ur" (Urdu), "ml" (Malayalam), "mn" (Mongolian), "uz" (Uzbek), "ms" (Malay), "el" (Greek), "mt" (Maltese), "eo" (Esperanto), "my" (Burmese), "es" (Spanish), "et" (Estonian), "eu" (Basque), "vi" (Vietnamese), "nb" (Norwegian Bokmål), "ne" (Nepali), "fa" (Persian), "nl" (Dutch), "nn" (Norwegian Nynorsk), "fo" (Faroese), "kab" (Kabyle), "oc" (Occitan (post 1500); Provençal), "or" (Oriya), "gl" (Galician), "gu" (Gujarati), "ckb""
+ errorLine1=" <string name="hotspot_notification_content_title" tools:keep="@string/hotspot_notification_content_title">Kiwix Hotspot</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
@@ -663,8 +633,8 @@
errorLine1=" <string name="server_started_message" tools:keep="@string/server_started_message">Enter this ip address into your browser to access the server %s</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -674,8 +644,19 @@
errorLine1=" <string name="error_file_not_found">Error: The selected ZIM file could not be found.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
@@ -685,19 +666,19 @@
errorLine1=" <string name="error_file_invalid">Error: The selected file is not a valid ZIM file.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -707,8 +688,8 @@
errorLine1=" <string name="pref_display_title">Display</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -718,8 +699,8 @@
errorLine1=" <string name="pref_zoom_sub_title">Zoom</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -729,8 +710,8 @@
errorLine1=" <string name="pref_zoom_dialog">Zoom level</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -740,8 +721,8 @@
errorLine1=" <string name="pref_info_title">Information</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -751,8 +732,8 @@
errorLine1=" <string name="pref_info_version">Version</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -762,8 +743,8 @@
errorLine1=" <string name="pref_zoom_enable">Zoom controls</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -773,8 +754,8 @@
errorLine1=" <string name="pref_night_mode">Night mode</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -784,8 +765,8 @@
errorLine1=" <string name="pref_night_mode_summary">Show articles with inverted colors</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -795,8 +776,8 @@
errorLine1=" <string name="pref_back_to_top">Back to Top</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -806,8 +787,8 @@
errorLine1=" <string name="pref_back_to_top_summary">Display a button at the end of the page to scroll up to the top</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -817,8 +798,8 @@
errorLine1=" <string name="pref_hide_toolbar">Keep Toolbar Visible</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -828,8 +809,8 @@
errorLine1=" <string name="pref_hide_toolbar_summary">Keeps the toolbar from scrolling out of view when browsing content</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -839,8 +820,8 @@
errorLine1=" <string name="pref_language_title">Language</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -850,8 +831,8 @@
errorLine1=" <string name="pref_language_chooser">Choose a language</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -861,8 +842,8 @@
errorLine1=" <string name="pref_credits">Contributors and Licenses</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -872,8 +853,8 @@
errorLine1=" <string name="pref_credits_title">Credits</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -883,8 +864,8 @@
errorLine1=" <string name="tts_lang_not_supported">The language of this page is not supported, or appropriate language data was not installed. The article may not be properly read.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -894,8 +875,8 @@
errorLine1=" <string name="no_reader_application_installed">Could not find an installed application for this type of file</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -905,8 +886,8 @@
errorLine1=" <string name="no_section_info">No Content Headers Found</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -916,8 +897,8 @@
errorLine1=" <string name="request_storage">To access offline content we need access to your storage</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -927,8 +908,8 @@
errorLine1=" <string name="clear_recent_and_tabs_history_dialog">Are you sure you want to delete your search history and reset all active tabs?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -938,8 +919,8 @@
errorLine1=" <string name="delete_recent_search_item">Delete this item?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -949,8 +930,8 @@
errorLine1=" <string name="pref_clear_all_history_title">Clear history</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -960,52 +941,52 @@
errorLine1=" <string name="pref_clear_all_history_summary">Clear recent searches and tabs history</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-
-
-
-
-
-
-
-
+ message=""all_history_cleared" is not translated in "ps" (Pashto), "hr" (Croatian), "yo" (Yoruba), "ia" (Interlingua (International Auxiliary Language Association)), "ie" (Interlingue; Occidental), "qq", "qu" (Quechua), "af" (Afrikaans), "am" (Amharic), "as" (Assamese), "az" (Azerbaijani), "rm" (Romansh), "ba" (Bashkir), "ji" (Yiddish), "be" (Belarusian), "bm" (Bambara), "jv" (Javanese), "sa" (Sanskrit), "sh", "ka" (Georgian), "si" (Sinhala), "sk" (Slovak), "so" (Somali), "km" (Khmer), "kn" (Kannada), "sw" (Swahili), "ta" (Tamil), "ky" (Kyrgyz), "te" (Telugu), "cv" (Chuvash), "cy" (Welsh), "lb" (Luxembourgish), "tl" (Tagalog), "lt" (Lithuanian), "lv" (Latvian), "mg" (Malagasy), "ur" (Urdu), "ml" (Malayalam), "mn" (Mongolian), "uz" (Uzbek), "ms" (Malay), "mt" (Maltese), "et" (Estonian), "nb" (Norwegian Bokmål), "nl" (Dutch), "nn" (Norwegian Nynorsk), "fo" (Faroese), "kab" (Kabyle), "or" (Oriya), "gu" (Gujarati)"
+ errorLine1=" <string name="all_history_cleared">All History Cleared</string>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
+
+
+
+
@@ -1015,8 +996,8 @@
errorLine1=" <string name="share">Share</string>"
errorLine2=" ~~~~~~~~~~~~">
@@ -1026,8 +1007,8 @@
errorLine1=" <string name="selected_file_cab_app_chooser_title" tools:keep="@string/selected_file_cab_app_chooser_title">Share ZIM files with:</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1037,8 +1018,8 @@
errorLine1=" <string name="delete">Delete</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1048,8 +1029,8 @@
errorLine1=" <string name="delete_specific_search_toast">Recent search removed</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1059,8 +1040,8 @@
errorLine1=" <string name="hint_contents_drawer_message">You can swipe left to view the contents of this article</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1070,8 +1051,8 @@
errorLine1=" <string name="got_it">Got it</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1081,8 +1062,8 @@
errorLine1=" <string name="did_you_know">Did you know?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -1092,8 +1073,8 @@
errorLine1=" <string name="undo">Undo</string>"
errorLine2=" ~~~~~~~~~~~">
@@ -1103,8 +1084,8 @@
errorLine1=" <string name="tab_closed">Tab closed</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -1114,8 +1095,8 @@
errorLine1=" <string name="bookmark_added">Bookmark added</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -1125,8 +1106,8 @@
errorLine1=" <string name="rate_dialog_title">Please Rate Us</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1136,8 +1117,8 @@
errorLine1=" <string name="rate_dialog_msg_1">If you enjoy using</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1147,19 +1128,19 @@
errorLine1=" <string name="rate_dialog_msg_2">, please take a moment to rate it. Thanks for your support!</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1169,8 +1150,8 @@
errorLine1=" <string name="no_thanks">No, thanks</string>"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -1180,19 +1161,19 @@
errorLine1=" <string name="rate_dialog_neutral">Later</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1202,8 +1183,8 @@
errorLine1=" <string name="bookmark_removed">Bookmark removed</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1213,8 +1194,8 @@
errorLine1=" <string name="pref_newtab_background_title">Open new tab in background</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1224,8 +1205,8 @@
errorLine1=" <string name="pref_newtab_background_summary">When opening a new tab it will open in background</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1235,8 +1216,8 @@
errorLine1=" <string name="pref_extras">Extras</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -1246,41 +1227,41 @@
errorLine1=" <string name="new_tab_snack_bar">Article opened in new tab</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
@@ -1290,8 +1271,8 @@
errorLine1=" <string name="local_zims" tools:keep="@string/local_zims">Device</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -1301,30 +1282,30 @@
errorLine1=" <string name="remote_zims" tools:keep="@string/remote_zims">Online</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -1334,8 +1315,8 @@
errorLine1=" <string name="delete_specific_zim_toast" tools:keep="@string/delete_specific_zim_toast">File deleted</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1345,8 +1326,8 @@
errorLine1=" <string name="no_files_here" tools:keep="@string/no_files_here">No files here</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -1356,8 +1337,8 @@
errorLine1=" <string name="download_no_space" tools:keep="@string/download_no_space">Insufficient space to download this file.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1367,8 +1348,8 @@
errorLine1=" <string name="space_available" tools:keep="@string/space_available">Space Available:</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -1378,8 +1359,8 @@
errorLine1=" <string name="zim_simple">Simple</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -1389,8 +1370,8 @@
errorLine1=" <string name="zim_no_pic">No Pictures</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -1400,8 +1381,8 @@
errorLine1=" <string name="zim_no_vid">No Videos</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -1411,8 +1392,19 @@
errorLine1=" <string name="no_network_connection" tools:keep="@string/no_network_connection">No network connection</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
@@ -1422,8 +1414,8 @@
errorLine1=" <string name="help_2">What does Kiwix do?</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1433,8 +1425,8 @@
errorLine1=" <string name="help_3">Kiwix is an offline content reader. It acts very much like a browser but instead of accessing online web pages, it reads content from a file in ZIM format.</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1444,8 +1436,8 @@
errorLine1=" <string name="help_4">While Kiwix has been originally designed to provide Wikipedia offline, it also reads other contents.</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1455,8 +1447,8 @@
errorLine1=" <string name="help_5">Where is the content?</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1466,8 +1458,8 @@
errorLine1=" <string name="help_6">Our content is hosted on the Kiwix website.</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1477,8 +1469,8 @@
errorLine1=" <string name="help_7">They are available as ZIM files. There are a lot of them:</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1488,8 +1480,8 @@
errorLine1=" <string name="help_8">• Wikipedia is available separately for each language</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1499,8 +1491,8 @@
errorLine1=" <string name="help_9">• Other contents like Wikileaks or Wikisource are also available</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -1510,8 +1502,8 @@
errorLine1=" <string name="help_10">You can either download your chosen ZIM files in-app or carefuly select the one(s) you want and download from a Desktop computer before transferring the ZIM files to your SD card.</string>"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -1521,19 +1513,19 @@
errorLine1=" <string name="help_11">ZIM files download in-app are located in the external storage directory in a folder entitled Kiwix.</string>"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -1543,8 +1535,8 @@
errorLine1=" <string name="pref_current_folder">Current Folder</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1554,8 +1546,8 @@
errorLine1=" <string name="delete_zim_failed" tools:keep="@string/delete_zim_failed">Sorry we were unable to delete this file. You should try using a file manager instead.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1565,8 +1557,8 @@
errorLine1=" <string name="tts_pause">pause</string>"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -1576,8 +1568,8 @@
errorLine1=" <string name="tts_resume">resume</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -1587,8 +1579,8 @@
errorLine1=" <string name="stop">stop</string>"
errorLine2=" ~~~~~~~~~~~">
@@ -1598,8 +1590,8 @@
errorLine1=" <string name="internal_storage">Internal</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1609,8 +1601,8 @@
errorLine1=" <string name="external_storage">External</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1620,8 +1612,8 @@
errorLine1=" <string name="yes">Yes</string>"
errorLine2=" ~~~~~~~~~~">
@@ -1631,8 +1623,8 @@
errorLine1=" <string name="no">No</string>"
errorLine2=" ~~~~~~~~~">
@@ -1642,8 +1634,8 @@
errorLine1=" <string name="confirm_stop_download_title">Stop download?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1653,8 +1645,8 @@
errorLine1=" <string name="confirm_stop_download_msg">Are you sure you want to stop this download?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1664,8 +1656,8 @@
errorLine1=" <string name="download_change_storage" tools:keep="@string/download_change_storage">Storage device selector</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1675,8 +1667,41 @@
errorLine1=" <string name="tts_not_enabled">Text to speech is not enabled for this ZIM file</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
+
+
+
+
+
+
+
+
@@ -1686,8 +1711,8 @@
errorLine1=" <string name="next">Next</string>"
errorLine2=" ~~~~~~~~~~~">
@@ -1697,8 +1722,8 @@
errorLine1=" <string name="previous">Previous</string>"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -1708,19 +1733,19 @@
errorLine1=" <string name="wifi_only_title">Allow downloading content via mobile network?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -1730,8 +1755,8 @@
errorLine1=" <string name="pref_wifi_only">Download content only via WiFi</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -1741,8 +1766,8 @@
errorLine1=" <string name="time_day" tools:keep="@string/time_day">day</string>"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -1752,8 +1777,8 @@
errorLine1=" <string name="time_hour" tools:keep="@string/time_hour">h</string>"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -1763,8 +1788,8 @@
errorLine1=" <string name="time_minute" tools:keep="@string/time_minute">min</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -1774,8 +1799,8 @@
errorLine1=" <string name="time_second" tools:keep="@string/time_second">s</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -1785,19 +1810,19 @@
errorLine1=" <string name="time_left" tools:keep="@string/time_left">left</string>"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -1807,8 +1832,8 @@
errorLine1=" <string name="time_yesterday">Yesterday</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -1818,8 +1843,8 @@
errorLine1=" <string name="pref_external_link_popup_title">Warn when entering external links</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1829,8 +1854,8 @@
errorLine1=" <string name="pref_external_link_popup_summary">Display popup to warn about additional costs or not working in offline links.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1840,8 +1865,8 @@
errorLine1=" <string name="external_link_popup_dialog_title">Entering External Link</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1851,8 +1876,8 @@
errorLine1=" <string name="external_link_popup_dialog_message">You are entering an external link. This could lead to additional costs for data transfer or will just not work when you are offline. Do you want to continue?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1862,8 +1887,8 @@
errorLine1=" <string name="do_not_ask_anymore">Do not ask anymore</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1873,8 +1898,8 @@
errorLine1=" <string name="your_languages" tools:keep="@string/your_languages">Selected languages:</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -1884,8 +1909,8 @@
errorLine1=" <string name="other_languages" tools:keep="@string/other_languages">Other languages:</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -1895,8 +1920,8 @@
errorLine1=" <string name="no_items_msg" tools:keep="@string/no_items_msg">No items available</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -1906,8 +1931,8 @@
errorLine1=" <string name="crash_title">Well… This is Embarrassing</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -1917,8 +1942,8 @@
errorLine1=" <string name="crash_description">It looks like we crashed.\n\nWould you mind helping us fix this problem by sending the following information?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1928,8 +1953,8 @@
errorLine1=" <string name="crash_checkbox_language">Your Language Settings</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1939,8 +1964,8 @@
errorLine1=" <string name="crash_checkbox_zimfiles">A List of Your Zim Files</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1950,8 +1975,8 @@
errorLine1=" <string name="crash_checkbox_exception">Details of The Crash</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1961,8 +1986,8 @@
errorLine1=" <string name="crash_checkbox_logs">Application Logs</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1972,8 +1997,8 @@
errorLine1=" <string name="crash_checkbox_device">Device Details</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1983,8 +2008,8 @@
errorLine1=" <string name="crash_button_confirm">SEND DETAILS</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -1994,8 +2019,8 @@
errorLine1=" <string name="shortcut_disabled_message">Shortcut not available</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2005,8 +2030,8 @@
errorLine1=" <string name="new_tab_shortcut_label">New tab</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2016,8 +2041,8 @@
errorLine1=" <string name="get_content_shortcut_label" tools:keep="@string/get_content_shortcut_label">Get content</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2027,19 +2052,19 @@
errorLine1=" <string name="fav_icon">Favicon</string>"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -2049,8 +2074,8 @@
errorLine1=" <string name="get_started" tools:keep="@string/get_started">Get started</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -2060,8 +2085,8 @@
errorLine1=" <string name="download_books">Download books</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -2071,8 +2096,8 @@
errorLine1=" <string name="human_kind_knowledge" tools:keep="@string/human_kind_knowledge">Human kind\'s knowledge, on your phone.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2082,8 +2107,8 @@
errorLine1=" <string name="welcome_to_the_family" tools:keep="@string/welcome_to_the_family">Welcome to the family</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2093,8 +2118,8 @@
errorLine1=" <string name="save_books_offline" tools:keep="@string/save_books_offline">Save books offline</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2104,8 +2129,8 @@
errorLine1=" <string name="download_books_message" tools:keep="@string/download_books_message">Download books and read wherever you are.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2115,8 +2140,8 @@
errorLine1=" <string name="unable_to_add_to_bookmarks">Unable to add to bookmarks</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2126,8 +2151,8 @@
errorLine1=" <string name="go_to_previous_page">Go to previous page</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2137,8 +2162,8 @@
errorLine1=" <string name="go_to_next_page">Go to next page</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -2148,8 +2173,8 @@
errorLine1=" <string name="table_of_contents">Table of contents</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2159,8 +2184,8 @@
errorLine1=" <string name="select_languages" tools:keep="@string/select_languages">Select languages</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2170,8 +2195,8 @@
errorLine1=" <string name="save_languages" tools:keep="@string/save_languages">Save languages</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -2181,8 +2206,8 @@
errorLine1=" <string name="send_feedback">Send feedback</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -2192,8 +2217,8 @@
errorLine1=" <string name="expand">Expand</string>"
errorLine2=" ~~~~~~~~~~~~~">
@@ -2203,19 +2228,19 @@
errorLine1=" <string name="history">History</string>"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -2225,30 +2250,30 @@
errorLine1=" <string name="search_history">Search history</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -2258,8 +2283,8 @@
errorLine1=" <string name="search_bookmarks">Search bookmarks</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2269,8 +2294,8 @@
errorLine1=" <string name="switch_tabs">Switch tabs</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -2280,63 +2305,63 @@
errorLine1=" <string name="close_all_tabs">Close all tabs</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -2346,8 +2371,8 @@
errorLine1=" <string name="save">Save</string>"
errorLine2=" ~~~~~~~~~~~">
@@ -2357,8 +2382,8 @@
errorLine1=" <string name="note">Note</string>"
errorLine2=" ~~~~~~~~~~~">
@@ -2368,8 +2393,8 @@
errorLine1=" <string name="wiki_article_title">Wiki Article Title</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2379,8 +2404,8 @@
errorLine1=" <string name="ext_storage_permission_rationale_add_note">Storage access is required for Notes</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2390,8 +2415,8 @@
errorLine1=" <string name="ext_storage_write_permission_denied_add_note">Notes can\'t be used without access to storage</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2401,19 +2426,19 @@
errorLine1=" <string name="note_save_unsuccessful">Note save unsuccessful</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2423,8 +2448,8 @@
errorLine1=" <string name="note_save_error_storage_not_writable">Error saving note: Storage not writable</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2434,8 +2459,8 @@
errorLine1=" <string name="note_share_error_file_missing">Note file doesn\'t exist</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2445,8 +2470,8 @@
errorLine1=" <string name="note_share_app_chooser_title">Share note file with:</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2456,19 +2481,19 @@
errorLine1=" <string name="confirmation_alert_dialog_message">Discard unsaved changes?</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2478,8 +2503,8 @@
errorLine1=" <string name="ext_storage_permission_not_granted">Error: Storage permissions not granted</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2489,8 +2514,8 @@
errorLine1=" <string name="notes_deletion_successful">Entire notes folder deleted</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2500,8 +2525,8 @@
errorLine1=" <string name="notes_deletion_unsuccessful">Some files not deleted</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2511,8 +2536,8 @@
errorLine1=" <string name="books_count" tools:ignore="PluralsCandidate" tools:keep="@string/books_count">%d book(s)</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -2522,8 +2547,8 @@
errorLine1=" <string name="discovery_initiated" tools:keep="@string/discovery_initiated">Discovery initiated</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2533,8 +2558,8 @@
errorLine1=" <string name="discovery_failed" tools:keep="@string/discovery_failed">Discovery failed</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2544,8 +2569,8 @@
errorLine1=" <string name="severe_loss_error" tools:keep="@string/severe_loss_error">Severe error! Try Disable/Re-enable WiFi P2P</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2555,8 +2580,8 @@
errorLine1=" <string name="connection_failed" tools:keep="@string/connection_failed">Connection failed</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2566,8 +2591,8 @@
errorLine1=" <string name="permission_rationale_location">Location permission is required by Android to allow the app to detect peer devices</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2577,8 +2602,8 @@
errorLine1=" <string name="permission_refused_location" tools:keep="@string/permission_refused_location">Cannot locate peer devices without location permissions</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2588,8 +2613,8 @@
errorLine1=" <string name="permission_refused_storage" tools:keep="@string/permission_refused_storage">Cannot access zim files without storage permission</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2599,8 +2624,8 @@
errorLine1=" <string name="request_enable_location">Enable location to allow detection of peers</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2610,8 +2635,8 @@
errorLine1=" <string name="discovery_needs_location" tools:keep="@string/discovery_needs_location">Cannot discover peers without location services</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2621,8 +2646,8 @@
errorLine1=" <string name="request_enable_wifi">Enable WiFi P2P from system settings</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2632,19 +2657,19 @@
errorLine1=" <string name="discovery_needs_wifi" tools:keep="@string/discovery_needs_wifi">Cannot discover peers without WiFi ON</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2654,19 +2679,19 @@
errorLine1=" <string name="device_not_cooperating" tools:keep="@string/device_not_cooperating">Selected device not co-operating for transfer</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2676,19 +2701,19 @@
errorLine1=" <string name="error_during_transfer" tools:keep="@string/error_during_transfer">An error was encountered during transfer</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2698,8 +2723,8 @@
errorLine1=" <string name="get_content_from_nearby_device" tools:keep="@string/get_content_from_nearby_device">Get content from nearby device</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2709,8 +2734,8 @@
errorLine1=" <string name="search_for_peers" tools:keep="@string/search_for_peers">Search For Peers</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2720,8 +2745,8 @@
errorLine1=" <string name="your_device" tools:keep="@string/your_device">Your Device:</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -2731,8 +2756,8 @@
errorLine1=" <string name="nearby_devices" tools:keep="@string/nearby_devices">NEARBY DEVICES</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -2742,8 +2767,8 @@
errorLine1=" <string name="no_devices_found" tools:keep="@string/no_devices_found">No devices detected. Tap on search button to try again.</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2753,8 +2778,8 @@
errorLine1=" <string name="files_for_transfer" tools:keep="@string/files_for_transfer">FILES FOR TRANSFER</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2764,8 +2789,8 @@
errorLine1=" <string name="preparing_files" tools:keep="@string/preparing_files">Preparing files for transfer....</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -2775,19 +2800,19 @@
errorLine1=" <string name="performing_handshake" tools:keep="@string/performing_handshake">Performing handshake....</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2797,85 +2822,85 @@
errorLine1=" <string name="pref_clear_all_notes_summary">Clears all notes on all articles</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2885,52 +2910,74 @@
errorLine1=" <string name="go_to_settings">Go to Settings</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
+
+
+
+
@@ -2940,7 +2987,7 @@
errorLine1=" <string name="save_media">Lagre media som…</string>"
errorLine2=" ^">
@@ -2951,7 +2998,7 @@
errorLine1=" <string name="save_media_saved">Lagret media som %1$s i din bildemappe.</string>"
errorLine2=" ^">
@@ -2962,7 +3009,7 @@
errorLine1=" <string name="help_8">• Vikipedi her dil için ayrı ayrı kullanılabilir durumdadır.</string>"
errorLine2=" ^">
@@ -2973,8 +3020,8 @@
errorLine1=" <string name="selected_items">%1$d selected</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -2984,44 +3031,22 @@
errorLine1=" <string name="save_media_saved">Saved media as %s to Android/media/org.kiwix…/</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-
-
-
-
-
-
-
-
@@ -3032,7 +3057,7 @@
errorLine1=" <application"
errorLine2=" ^">
@@ -3043,7 +3068,7 @@
errorLine1=" android:pathData="M3564,1035c-3,-8 10,-44 30,-79l36,-65 -57,-11c-141,-28 -345,-96 -428,-143 -34,-19 -40,-28 -43,-60 -3,-33 -6,-37 -32,-37 -16,0 -39,-4 -52,-9 -13,-5 -137,-90 -275,-189 -189,-135 -262,-182 -290,-186 -21,-3 -422,-8 -892,-12l-854,-7 -22,-25c-16,-19 -32,-26 -58,-26 -43,0-72,23 -89,71 -11,30 -15,33 -48,31 -28,-2 -37,1 -45,20 -9,20 -17,22 -82,22 -42,0 -73,-4 -73,-10 0,-6 26,-10 59,-10 52,0 61,-3 75,-25 12,-18 25,-25 50,-25 28,0 36,-5 46,-30 29,-71 120,-94 177,-46l29,24 839,6c462,4 858,9 880,12 57,8 92,30 349,217 187,136 236,167 263,167 38,0 38,0 18,-68 -9,-29 -13,-57 -10,-62 3,-6 30,-10 59,-10 65,0 113,28 139,82 26,54 10,69 -20,19 -27,-46 -67,-71 -114,-71 -28,0 -31,3 -25,23 4,12 12,55 19,96l12,73 58,30c76,38 214,83 347,114l104,23 23,-21c34,-31 29,-15 -27,89 -54,101 -55,100 32,82 85,-18 162,-65 234,-142 68,-74 92,-83 53,-21l-23,37 68,-7c37,-4 102,-18 146,-31 75,-24 170,-78 177,-101 7,-22 -250,-124 -311,-124 -16,0 -27,10 -37,33 -19,43 -71,69 -126,64 -55,-6 -91,-30 -110,-74l-15,-36 -156,7c-86,4 -176,10 -201,13 -35,5 -43,3 -39,-8 3,-8 26,-17 59,-21 77,-11 349,-24 358,-18 5,3 10,11 13,19 2,9 12,1 26,-22 24,-41 63,-57 88,-36 14,11 19,10 36,-11 12,-15 18,-36 16,-57 -1,-18 2,-34 7,-35 6,-2 11,18 13,43 2,37 -2,52 -21,74 -21,25 -22,32 -13,67 12,46 28,44 40,-5 12,-46 25,-47 152,-13 151,41 264,99 264,136 0,10 -16,32 -35,49 -76,67 -219,118 -355,128 -76,6 -88,10 -130,41 -56,43 -112,68 -186,81 -77,15 -94,14 -100,-4z""
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3054,7 +3079,7 @@
errorLine1=" android:pathData="M3564,1035c-3,-8 10,-44 30,-79l36,-65 -57,-11c-141,-28 -345,-96 -428,-143 -34,-19 -40,-28 -43,-60 -3,-33 -6,-37 -32,-37 -16,0 -39,-4 -52,-9 -13,-5 -137,-90 -275,-189 -189,-135 -262,-182 -290,-186 -21,-3 -422,-8 -892,-12l-854,-7 -22,-25c-16,-19 -32,-26 -58,-26 -43,0-72,23 -89,71 -11,30 -15,33 -48,31 -28,-2 -37,1 -45,20 -9,20 -17,22 -82,22 -42,0 -73,-4 -73,-10 0,-6 26,-10 59,-10 52,0 61,-3 75,-25 12,-18 25,-25 50,-25 28,0 36,-5 46,-30 29,-71 120,-94 177,-46l29,24 839,6c462,4 858,9 880,12 57,8 92,30 349,217 187,136 236,167 263,167 38,0 38,0 18,-68 -9,-29 -13,-57 -10,-62 3,-6 30,-10 59,-10 65,0 113,28 139,82 26,54 10,69 -20,19 -27,-46 -67,-71 -114,-71 -28,0 -31,3 -25,23 4,12 12,55 19,96l12,73 58,30c76,38 214,83 347,114l104,23 23,-21c34,-31 29,-15 -27,89 -54,101 -55,100 32,82 85,-18 162,-65 234,-142 68,-74 92,-83 53,-21l-23,37 68,-7c37,-4 102,-18 146,-31 75,-24 170,-78 177,-101 7,-22 -250,-124 -311,-124 -16,0 -27,10 -37,33 -19,43 -71,69 -126,64 -55,-6 -91,-30 -110,-74l-15,-36 -156,7c-86,4 -176,10 -201,13 -35,5 -43,3 -39,-8 3,-8 26,-17 59,-21 77,-11 349,-24 358,-18 5,3 10,11 13,19 2,9 12,1 26,-22 24,-41 63,-57 88,-36 14,11 19,10 36,-11 12,-15 18,-36 16,-57 -1,-18 2,-34 7,-35 6,-2 11,18 13,43 2,37 -2,52 -21,74 -21,25 -22,32 -13,67 12,46 28,44 40,-5 12,-46 25,-47 152,-13 151,41 264,99 264,136 0,10 -16,32 -35,49 -76,67 -219,118 -355,128 -76,6 -88,10 -130,41 -56,43 -112,68 -186,81 -77,15 -94,14 -100,-4z""
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3065,22 +3090,44 @@
errorLine1=" android:pathData="M11.99,2C6.47,2 2,6.48 2,12s4.47,10 9.99,10C17.52,22 22,17.52 22,12S17.52,2 11.99,2zM18.92,8h-2.95c-0.32,-1.25 -0.78,-2.45 -1.38,-3.56 1.84,0.63 3.37,1.91 4.33,3.56zM12,4.04c0.83,1.2 1.48,2.53 1.91,3.96h-3.82c0.43,-1.43 1.08,-2.76 1.91,-3.96zM4.26,14C4.1,13.36 4,12.69 4,12s0.1,-1.36 0.26,-2h3.38c-0.08,0.66 -0.14,1.32 -0.14,2 0,0.68 0.06,1.34 0.14,2L4.26,14zM5.08,16h2.95c0.32,1.25 0.78,2.45 1.38,3.56 -1.84,-0.63 -3.37,-1.9 -4.33,-3.56zM8.03,8L5.08,8c0.96,-1.66 2.49,-2.93 4.33,-3.56C8.81,5.55 8.35,6.75 8.03,8zM12,19.96c-0.83,-1.2 -1.48,-2.53 -1.91,-3.96h3.82c-0.43,1.43 -1.08,2.76 -1.91,3.96zM14.34,14L9.66,14c-0.09,-0.66 -0.16,-1.32 -0.16,-2 0,-0.68 0.07,-1.35 0.16,-2h4.68c0.09,0.65 0.16,1.32 0.16,2 0,0.68 -0.07,1.34 -0.16,2zM14.59,19.56c0.6,-1.11 1.06,-2.31 1.38,-3.56h2.95c-0.96,1.65 -2.49,2.93 -4.33,3.56zM16.36,14c0.08,-0.66 0.14,-1.32 0.14,-2 0,-0.68 -0.06,-1.34 -0.14,-2h3.38c0.16,0.64 0.26,1.31 0.26,2s-0.1,1.36 -0.26,2h-3.38z" />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
+
+
+
+
@@ -3091,11 +3138,11 @@
errorLine1=" <string name="progress_dialog_starting_server">הרצת השרת</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3106,31 +3153,12 @@
errorLine1=" <string name="rate_dialog_neutral">دواتر</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-
-
-
-
-
-
@@ -3140,26 +3168,45 @@
errorLine1=" <string name="pref_language_chooser">選擇語言</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
+
+
@@ -3170,27 +3217,12 @@
errorLine1=" <string name="tts_pause">रोक्नुहोस्</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
-
-
-
-
-
@@ -3200,11 +3232,11 @@
errorLine1=" <string name="pref_extras">Další</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3215,26 +3247,41 @@
errorLine1=" <string name="tts_pause">rawestîne</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+
+
+
+
+
@@ -3245,12 +3292,12 @@
errorLine1=" <string name="tts_pause">暂停</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3260,11 +3307,11 @@
errorLine1=" <string name="tts_pause">暫停</string>"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3273,14 +3320,14 @@
id="IconLocation"
message="Found bitmap drawable `res/drawable/kiwix_icon_with_title.png` in densityless folder">
+ file="src\main\res\drawable\kiwix_icon_with_title.png"/>
+ file="src\main\res\drawable\search_widget_preview.png"/>
@@ -3300,7 +3347,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3311,7 +3358,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3322,7 +3369,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3333,7 +3380,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3344,7 +3391,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3355,7 +3402,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3366,96 +3413,96 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3465,29 +3512,29 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
-
-
-
-
+
+
+
+
@@ -3498,7 +3545,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3509,7 +3556,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3520,7 +3567,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3528,12 +3575,89 @@
+ errorLine1=" <TextView"
+ errorLine2=" ~~~~~~~~">
+ file="src\main\res\layout\item_library.xml"
+ line="34"
+ column="6"/>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3630,7 +3677,18 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
+
+
+
+
@@ -3641,18 +3699,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
-
-
-
-
@@ -3663,7 +3710,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -3674,7 +3721,7 @@
errorLine1="class KiwixMainActivity : CoreMainActivity() {"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -3685,7 +3732,7 @@
errorLine1=" android:layout_marginTop="-1dp""
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3696,11 +3743,11 @@
errorLine1=" app:showAsAction="always" />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3711,11 +3758,11 @@
errorLine1=" app:showAsAction="always" />"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -3726,7 +3773,7 @@
errorLine1=" <EditText"
errorLine2=" ~~~~~~~~">
@@ -3737,7 +3784,7 @@
errorLine1=" <EditText"
errorLine2=" ~~~~~~~~">
@@ -3748,7 +3795,7 @@
errorLine1=" public boolean onTouchEvent(MotionEvent event) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -3759,7 +3806,7 @@
errorLine1=" <ImageView"
errorLine2=" ~~~~~~~~~">
@@ -3770,8 +3817,8 @@
errorLine1=" <ImageView"
errorLine2=" ~~~~~~~~~">
@@ -3781,8 +3828,19 @@
errorLine1=" <ImageView"
errorLine2=" ~~~~~~~~~">
+
+
+
+
@@ -3792,18 +3850,7 @@
errorLine1=" <ImageView"
errorLine2=" ~~~~~~~~~">
-
-
-
-
@@ -3814,7 +3861,7 @@
errorLine1=" <ImageView"
errorLine2=" ~~~~~~~~~">
@@ -3825,62 +3872,18 @@
errorLine1=" <ImageView"
errorLine2=" ~~~~~~~~~">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -3891,7 +3894,7 @@
errorLine1=" public AnimatedProgressBar(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -3902,7 +3905,7 @@
errorLine1=" public AnimatedProgressBar(Context context, AttributeSet attrs, int defStyleAttr) {"
errorLine2=" ~~~~~~~">
@@ -3913,7 +3916,7 @@
errorLine1=" public AnimatedProgressBar(Context context, AttributeSet attrs, int defStyleAttr) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -3924,7 +3927,7 @@
errorLine1=" protected void onDraw(Canvas canvas) {"
errorLine2=" ~~~~~~">
@@ -3935,7 +3938,7 @@
errorLine1=" protected void onRestoreInstanceState(Parcelable state) {"
errorLine2=" ~~~~~~~~~~">
@@ -3946,7 +3949,7 @@
errorLine1=" protected Parcelable onSaveInstanceState() {"
errorLine2=" ~~~~~~~~~~">
@@ -3957,7 +3960,7 @@
errorLine1=" public static void expand(final View view) {"
errorLine2=" ~~~~">
@@ -3968,7 +3971,7 @@
errorLine1=" public static void collapse(final View view) {"
errorLine2=" ~~~~">
@@ -3979,7 +3982,7 @@
errorLine1=" public static void rotate(FloatingActionButton v) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -3990,7 +3993,7 @@
errorLine1=" void attachView(T view);"
errorLine2=" ~">
@@ -4001,7 +4004,7 @@
errorLine1=" protected T view;"
errorLine2=" ~">
@@ -4012,7 +4015,7 @@
errorLine1=" public void attachView(T view) {"
errorLine2=" ~">
@@ -4023,7 +4026,7 @@
errorLine1=" public BookDao(KiwixDatabase kiwixDatabase) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -4034,7 +4037,7 @@
errorLine1=" public ArrayList<Book> getBooks() {"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -4045,7 +4048,7 @@
errorLine1=" public ArrayList<Book> filterBookResults(ArrayList<Book> books) {"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -4056,7 +4059,7 @@
errorLine1=" public ArrayList<Book> filterBookResults(ArrayList<Book> books) {"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -4067,7 +4070,7 @@
errorLine1=" public String bookId;"
errorLine2=" ~~~~~~">
@@ -4078,7 +4081,7 @@
errorLine1=" public String title;"
errorLine2=" ~~~~~~">
@@ -4089,7 +4092,7 @@
errorLine1=" public String description;"
errorLine2=" ~~~~~~">
@@ -4100,7 +4103,7 @@
errorLine1=" public String language;"
errorLine2=" ~~~~~~">
@@ -4111,7 +4114,7 @@
errorLine1=" public String bookCreator;"
errorLine2=" ~~~~~~">
@@ -4122,7 +4125,7 @@
errorLine1=" public String publisher;"
errorLine2=" ~~~~~~">
@@ -4133,7 +4136,7 @@
errorLine1=" public String date;"
errorLine2=" ~~~~~~">
@@ -4144,7 +4147,7 @@
errorLine1=" public String url;"
errorLine2=" ~~~~~~">
@@ -4155,7 +4158,7 @@
errorLine1=" public String remoteUrl;"
errorLine2=" ~~~~~~">
@@ -4166,7 +4169,7 @@
errorLine1=" public String articleCount;"
errorLine2=" ~~~~~~">
@@ -4177,7 +4180,7 @@
errorLine1=" public String mediaCount;"
errorLine2=" ~~~~~~">
@@ -4188,7 +4191,7 @@
errorLine1=" public String size;"
errorLine2=" ~~~~~~">
@@ -4199,7 +4202,7 @@
errorLine1=" public String favicon;"
errorLine2=" ~~~~~~">
@@ -4210,7 +4213,7 @@
errorLine1=" public String name;"
errorLine2=" ~~~~~~">
@@ -4221,7 +4224,7 @@
errorLine1=" public String getLanguage(String languageCode) {"
errorLine2=" ~~~~~~">
@@ -4232,7 +4235,7 @@
errorLine1=" public String getLanguage(String languageCode) {"
errorLine2=" ~~~~~~">
@@ -4243,8 +4246,8 @@
errorLine1=" @Override protected void injection(CoreComponent coreComponent) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -4254,8 +4257,8 @@
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -4265,8 +4268,8 @@
errorLine1=" public boolean onCreateOptionsMenu(Menu menu) {"
errorLine2=" ~~~~">
@@ -4276,8 +4279,8 @@
errorLine1=" public boolean onOptionsItemSelected(MenuItem item) {"
errorLine2=" ~~~~~~~~">
@@ -4287,8 +4290,8 @@
errorLine1=" public void updateBookmarksList(List<BookmarkItem> bookmarksList) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -4298,8 +4301,8 @@
errorLine1=" public void notifyBookmarksListFiltered(List<BookmarkItem> bookmarksList) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -4309,8 +4312,8 @@
errorLine1=" public void onItemClick(ImageView favicon, BookmarkItem bookmark) {"
errorLine2=" ~~~~~~~~~">
@@ -4320,8 +4323,8 @@
errorLine1=" public void onItemClick(ImageView favicon, BookmarkItem bookmark) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -4331,8 +4334,8 @@
errorLine1=" public boolean onItemLongClick(ImageView favicon, BookmarkItem bookmark) {"
errorLine2=" ~~~~~~~~~">
@@ -4342,73 +4345,18 @@
errorLine1=" public boolean onItemLongClick(ImageView favicon, BookmarkItem bookmark) {"
errorLine2=" ~~~~~~~~~~~~">
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -4419,7 +4367,7 @@
errorLine1=" public List<Bookmark> getBookmarks() {"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -4430,7 +4378,7 @@
errorLine1=" public void processBookmark(StringOperation operation) {"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -4441,7 +4389,7 @@
errorLine1=" String apply(String string);"
errorLine2=" ~~~~~~">
@@ -4452,7 +4400,7 @@
errorLine1=" String apply(String string);"
errorLine2=" ~~~~~~">
@@ -4463,7 +4411,7 @@
errorLine1=" public String ZimId;"
errorLine2=" ~~~~~~">
@@ -4474,7 +4422,7 @@
errorLine1=" public String ZimName;"
errorLine2=" ~~~~~~">
@@ -4485,7 +4433,7 @@
errorLine1=" public String bookmarkUrl;"
errorLine2=" ~~~~~~">
@@ -4496,7 +4444,7 @@
errorLine1=" public String bookmarkTitle;"
errorLine2=" ~~~~~~">
@@ -4507,7 +4455,7 @@
errorLine1=" public Chunk(String rangeHeader, String fileName, String url, long contentLength,"
errorLine2=" ~~~~~~">
@@ -4518,7 +4466,7 @@
errorLine1=" public Chunk(String rangeHeader, String fileName, String url, long contentLength,"
errorLine2=" ~~~~~~">
@@ -4529,7 +4477,7 @@
errorLine1=" public Chunk(String rangeHeader, String fileName, String url, long contentLength,"
errorLine2=" ~~~~~~">
@@ -4540,7 +4488,7 @@
errorLine1=" public String getRangeHeader() {"
errorLine2=" ~~~~~~">
@@ -4551,7 +4499,7 @@
errorLine1=" public String getFileName() {"
errorLine2=" ~~~~~~">
@@ -4562,7 +4510,7 @@
errorLine1=" public String getUrl() {"
errorLine2=" ~~~~~~">
@@ -4573,7 +4521,7 @@
errorLine1=" public static List<Chunk> getChunks(String url, long contentLength, int notificationID) {"
errorLine2=" ~~~~~~~~~~~">
@@ -4584,7 +4532,7 @@
errorLine1=" public static List<Chunk> getChunks(String url, long contentLength, int notificationID) {"
errorLine2=" ~~~~~~">
@@ -4595,8 +4543,8 @@
errorLine1=" public void setText(String text) {"
errorLine2=" ~~~~~~">
@@ -4606,8 +4554,8 @@
errorLine1=" public void setWebView(WebView webView) {"
errorLine2=" ~~~~~~~">
@@ -4617,8 +4565,8 @@
errorLine1=" public void onClick(View v) {"
errorLine2=" ~~~~">
@@ -4628,8 +4576,8 @@
errorLine1=" public boolean onCreateActionMode(ActionMode mode, Menu menu) {"
errorLine2=" ~~~~~~~~~~">
@@ -4639,8 +4587,8 @@
errorLine1=" public boolean onCreateActionMode(ActionMode mode, Menu menu) {"
errorLine2=" ~~~~">
@@ -4650,8 +4598,8 @@
errorLine1=" public void onDestroyActionMode(ActionMode mode) {"
errorLine2=" ~~~~~~~~~~">
@@ -4661,8 +4609,8 @@
errorLine1=" public boolean onPrepareActionMode(ActionMode mode, Menu menu) {"
errorLine2=" ~~~~~~~~~~">
@@ -4672,8 +4620,8 @@
errorLine1=" public boolean onPrepareActionMode(ActionMode mode, Menu menu) {"
errorLine2=" ~~~~">
@@ -4683,8 +4631,8 @@
errorLine1=" public boolean onActionItemClicked(ActionMode mode, MenuItem item) {"
errorLine2=" ~~~~~~~~~~">
@@ -4694,8 +4642,8 @@
errorLine1=" public boolean onActionItemClicked(ActionMode mode, MenuItem item) {"
errorLine2=" ~~~~~~~~">
@@ -4705,8 +4653,8 @@
errorLine1=" public void beforeTextChanged(CharSequence s, int start, int count, int after) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -4716,8 +4664,8 @@
errorLine1=" public void onTextChanged(CharSequence s, int start, int before, int count) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -4727,8 +4675,8 @@
errorLine1=" public void afterTextChanged(Editable s) {"
errorLine2=" ~~~~~~~~">
@@ -4738,7 +4686,7 @@
errorLine1=" public static String TAG = "ConfirmationAlertDialog";"
errorLine2=" ~~~~~~">
@@ -4749,7 +4697,7 @@
errorLine1=" protected DialogShower alertDialogShower;"
errorLine2=" ~~~~~~~~~~~~">
@@ -4760,7 +4708,7 @@
errorLine1=" public ConfirmationAlertDialogFragment(SharedPreferenceUtil sharedPreferenceUtil,"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -4771,7 +4719,7 @@
errorLine1=" String parentDialogFragmentTAG, int stringResourceId) {"
errorLine2=" ~~~~~~">
@@ -4782,7 +4730,7 @@
errorLine1=" public Dialog onCreateDialog(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -4793,7 +4741,7 @@
errorLine1=" public Dialog onCreateDialog(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -4804,7 +4752,7 @@
errorLine1=" public static CoreApp getInstance() {"
errorLine2=" ~~~~~~~">
@@ -4815,7 +4763,7 @@
errorLine1=" public static CoreComponent getCoreComponent() {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -4826,7 +4774,7 @@
errorLine1=" public static void setCoreComponent(CoreComponent appComponent) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -4837,7 +4785,7 @@
errorLine1=" protected void attachBaseContext(Context base) {"
errorLine2=" ~~~~~~~">
@@ -4848,7 +4796,7 @@
errorLine1=" protected DrawerLayout drawerLayout;"
errorLine2=" ~~~~~~~~~~~~">
@@ -4859,7 +4807,7 @@
errorLine1=" protected FrameLayout contentFrame;"
errorLine2=" ~~~~~~~~~~~">
@@ -4870,7 +4818,7 @@
errorLine1=" protected LinearLayout bottomToolbar;"
errorLine2=" ~~~~~~~~~~~~">
@@ -4881,7 +4829,7 @@
errorLine1=" protected View tabSwitcherRoot;"
errorLine2=" ~~~~">
@@ -4892,7 +4840,7 @@
errorLine1=" protected MainContract.Presenter presenter;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~">
@@ -4903,7 +4851,7 @@
errorLine1=" protected ZimReaderContainer zimReaderContainer;"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -4914,7 +4862,7 @@
errorLine1=" protected NightModeConfig nightModeConfig;"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -4925,7 +4873,7 @@
errorLine1=" protected MainMenu.Factory menuFactory;"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -4936,7 +4884,7 @@
errorLine1=" protected NewBookmarksDao newBookmarksDao;"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -4947,7 +4895,7 @@
errorLine1=" protected NewBookDao newBookDao;"
errorLine2=" ~~~~~~~~~~">
@@ -4958,7 +4906,7 @@
errorLine1=" protected DialogShower alertDialogShower;"
errorLine2=" ~~~~~~~~~~~~">
@@ -4969,7 +4917,7 @@
errorLine1=" public void onActionModeStarted(ActionMode mode) {"
errorLine2=" ~~~~~~~~~~">
@@ -4980,7 +4928,7 @@
errorLine1=" public void onActionModeFinished(ActionMode mode) {"
errorLine2=" ~~~~~~~~~~">
@@ -4991,7 +4939,7 @@
errorLine1=" protected void configureWebViewSelectionHandler(Menu menu) {"
errorLine2=" ~~~~">
@@ -5002,7 +4950,7 @@
errorLine1=" public void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -5013,7 +4961,7 @@
errorLine1=" protected boolean isInvalidTitle(String zimFileTitle) {"
errorLine2=" ~~~~~~">
@@ -5024,7 +4972,7 @@
errorLine1=" protected abstract CoreWebViewClient createWebClient("
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -5035,7 +4983,7 @@
errorLine1=" WebViewCallback webViewCallback,"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -5046,7 +4994,7 @@
errorLine1=" ZimReaderContainer zimReaderContainer);"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -5057,7 +5005,7 @@
errorLine1=" protected KiwixWebView newMainPageTab() {"
errorLine2=" ~~~~~~~~~~~~">
@@ -5068,7 +5016,7 @@
errorLine1=" protected KiwixWebView newTab(String url) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -5079,7 +5027,7 @@
errorLine1=" protected KiwixWebView newTab(String url) {"
errorLine2=" ~~~~~~">
@@ -5090,8 +5038,8 @@
errorLine1=" protected KiwixWebView getCurrentWebView() {"
errorLine2=" ~~~~~~~~~~~~">
@@ -5101,8 +5049,8 @@
errorLine1=" public boolean onOptionsItemSelected(MenuItem item) {"
errorLine2=" ~~~~~~~~">
@@ -5112,8 +5060,8 @@
errorLine1=" public void openExternalUrl(Intent intent) {"
errorLine2=" ~~~~~~">
@@ -5123,8 +5071,8 @@
errorLine1=" protected void onNewIntent(Intent intent) {"
errorLine2=" ~~~~~~">
@@ -5134,8 +5082,8 @@
errorLine1=" public void onConfigurationChanged(Configuration newConfig) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -5145,8 +5093,8 @@
errorLine1=" public void onActivityResult(int requestCode, int resultCode, Intent data) {"
errorLine2=" ~~~~~~">
@@ -5156,8 +5104,8 @@
errorLine1=" public boolean onCreateOptionsMenu(Menu menu) {"
errorLine2=" ~~~~">
@@ -5167,8 +5115,8 @@
errorLine1=" @NotNull protected MainMenu createMainMenu(Menu menu) {"
errorLine2=" ~~~~">
@@ -5178,8 +5126,8 @@
errorLine1=" protected boolean hasValidFileAndUrl(String url, ZimFileReader zimFileReader) {"
errorLine2=" ~~~~~~">
@@ -5189,8 +5137,8 @@
errorLine1=" protected boolean hasValidFileAndUrl(String url, ZimFileReader zimFileReader) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -5200,8 +5148,8 @@
errorLine1=" public void webViewFailedLoading(String url) {"
errorLine2=" ~~~~~~">
@@ -5211,8 +5159,8 @@
errorLine1=" public void webViewTitleUpdated(String title) {"
errorLine2=" ~~~~~~">
@@ -5222,8 +5170,8 @@
errorLine1=" public void webViewLongClick(final String url) {"
errorLine2=" ~~~~~~">
@@ -5233,8 +5181,8 @@
errorLine1=" protected void showOpenInNewTabDialog(String url) {"
errorLine2=" ~~~~~~">
@@ -5244,8 +5192,8 @@
errorLine1=" public void setHomePage(View view) {"
errorLine2=" ~~~~">
@@ -5255,8 +5203,8 @@
errorLine1=" public void addBooks(List<BooksOnDiskListItem> books) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -5266,8 +5214,8 @@
errorLine1=" protected SharedPreferenceUtil sharedPreferenceUtil;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -5277,8 +5225,8 @@
errorLine1=" protected StorageCalculator storageCalculator;"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -5288,8 +5236,8 @@
errorLine1=" protected NightModeConfig nightModeConfig;"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -5299,8 +5247,8 @@
errorLine1=" protected DialogShower alertDialogShower;"
errorLine2=" ~~~~~~~~~~~~">
@@ -5310,8 +5258,8 @@
errorLine1=" public void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -5321,8 +5269,8 @@
errorLine1=" protected void setUpLanguageChooser(String preferenceId) {"
errorLine2=" ~~~~~~">
@@ -5332,8 +5280,8 @@
errorLine1=" public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -5343,8 +5291,8 @@
errorLine1=" public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {"
errorLine2=" ~~~~~~">
@@ -5354,8 +5302,8 @@
errorLine1=" public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen,"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -5365,8 +5313,8 @@
errorLine1=" Preference preference) {"
errorLine2=" ~~~~~~~~~~">
@@ -5376,7 +5324,7 @@
errorLine1=" public void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -5387,7 +5335,7 @@
errorLine1=" protected abstract Fragment createPreferenceFragment();"
errorLine2=" ~~~~~~~~">
@@ -5398,7 +5346,7 @@
errorLine1=" WebViewCallback callback, ZimReaderContainer zimReaderContainer) {"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -5409,7 +5357,7 @@
errorLine1=" WebViewCallback callback, ZimReaderContainer zimReaderContainer) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -5420,7 +5368,7 @@
errorLine1=" public boolean shouldOverrideUrlLoading(WebView view, String url) {"
errorLine2=" ~~~~~~~">
@@ -5431,7 +5379,7 @@
errorLine1=" public boolean shouldOverrideUrlLoading(WebView view, String url) {"
errorLine2=" ~~~~~~">
@@ -5442,7 +5390,7 @@
errorLine1=" public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {"
errorLine2=" ~~~~~~~">
@@ -5453,7 +5401,7 @@
errorLine1=" public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {"
errorLine2=" ~~~~~~">
@@ -5464,7 +5412,7 @@
errorLine1=" public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {"
errorLine2=" ~~~~~~">
@@ -5475,7 +5423,7 @@
errorLine1=" public void onPageFinished(WebView view, String url) {"
errorLine2=" ~~~~~~~">
@@ -5486,7 +5434,7 @@
errorLine1=" public void onPageFinished(WebView view, String url) {"
errorLine2=" ~~~~~~">
@@ -5497,7 +5445,7 @@
errorLine1=" protected abstract void onUrlEqualToHome(WebView view);"
errorLine2=" ~~~~~~~">
@@ -5508,7 +5456,7 @@
errorLine1=" protected abstract void onInvalidUrl(WebView view);"
errorLine2=" ~~~~~~~">
@@ -5519,7 +5467,7 @@
errorLine1=" protected void inflateHomeView(WebView view) {"
errorLine2=" ~~~~~~~">
@@ -5530,7 +5478,7 @@
errorLine1=" public CustomSwitchPreference(Context context, AttributeSet attrs, int defStyle) {"
errorLine2=" ~~~~~~~">
@@ -5541,7 +5489,7 @@
errorLine1=" public CustomSwitchPreference(Context context, AttributeSet attrs, int defStyle) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -5552,7 +5500,7 @@
errorLine1=" public CustomSwitchPreference(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~">
@@ -5563,7 +5511,7 @@
errorLine1=" public CustomSwitchPreference(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -5574,7 +5522,7 @@
errorLine1=" public CustomSwitchPreference(Context context) {"
errorLine2=" ~~~~~~~">
@@ -5585,7 +5533,7 @@
errorLine1=" protected void onBindView(View view) {"
errorLine2=" ~~~~">
@@ -5596,7 +5544,7 @@
errorLine1=" public CustomViewPager(Context context) {"
errorLine2=" ~~~~~~~">
@@ -5607,7 +5555,7 @@
errorLine1=" public CustomViewPager(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~">
@@ -5618,7 +5566,7 @@
errorLine1=" public CustomViewPager(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -5629,7 +5577,7 @@
errorLine1=" public DataSource provideDataSource(Repository repository) {"
errorLine2=" ~~~~~~~~~~">
@@ -5640,7 +5588,7 @@
errorLine1=" public DataSource provideDataSource(Repository repository) {"
errorLine2=" ~~~~~~~~~~">
@@ -5651,7 +5599,7 @@
errorLine1=" Single<List<BooksOnDiskListItem>> getLanguageCategorizedBooks();"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -5662,7 +5610,7 @@
errorLine1=" Completable saveBook(BooksOnDiskListItem.BookOnDisk book);"
errorLine2=" ~~~~~~~~~~~">
@@ -5673,7 +5621,7 @@
errorLine1=" Completable saveBook(BooksOnDiskListItem.BookOnDisk book);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -5684,7 +5632,7 @@
errorLine1=" Completable saveBooks(List<BooksOnDiskListItem.BookOnDisk> book);"
errorLine2=" ~~~~~~~~~~~">
@@ -5695,7 +5643,7 @@
errorLine1=" Completable saveBooks(List<BooksOnDiskListItem.BookOnDisk> book);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -5706,7 +5654,7 @@
errorLine1=" Completable saveLanguages(List<Language> languages);"
errorLine2=" ~~~~~~~~~~~">
@@ -5717,7 +5665,7 @@
errorLine1=" Completable saveLanguages(List<Language> languages);"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -5728,7 +5676,7 @@
errorLine1=" Single<List<HistoryListItem>> getDateCategorizedHistory(boolean showHistoryCurrentBook);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -5739,7 +5687,7 @@
errorLine1=" Completable saveHistory(HistoryListItem.HistoryItem history);"
errorLine2=" ~~~~~~~~~~~">
@@ -5750,7 +5698,7 @@
errorLine1=" Completable saveHistory(HistoryListItem.HistoryItem history);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -5761,7 +5709,7 @@
errorLine1=" Completable deleteHistory(List<HistoryListItem> historyList);"
errorLine2=" ~~~~~~~~~~~">
@@ -5772,7 +5720,7 @@
errorLine1=" Completable deleteHistory(List<HistoryListItem> historyList);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -5783,7 +5731,7 @@
errorLine1=" Completable clearHistory();"
errorLine2=" ~~~~~~~~~~~">
@@ -5794,7 +5742,7 @@
errorLine1=" Single<List<BookmarkItem>> getBookmarks(boolean showFromCurrentBook);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -5805,7 +5753,7 @@
errorLine1=" Single<List<String>> getCurrentZimBookmarksUrl();"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -5816,7 +5764,7 @@
errorLine1=" Completable saveBookmark(BookmarkItem bookmark);"
errorLine2=" ~~~~~~~~~~~">
@@ -5827,7 +5775,7 @@
errorLine1=" Completable saveBookmark(BookmarkItem bookmark);"
errorLine2=" ~~~~~~~~~~~~">
@@ -5838,7 +5786,7 @@
errorLine1=" Completable deleteBookmarks(List<BookmarkItem> bookmarks);"
errorLine2=" ~~~~~~~~~~~">
@@ -5849,7 +5797,7 @@
errorLine1=" Completable deleteBookmarks(List<BookmarkItem> bookmarks);"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -5860,7 +5808,7 @@
errorLine1=" Completable deleteBookmark(String bookmarkUrl);"
errorLine2=" ~~~~~~~~~~~">
@@ -5871,7 +5819,7 @@
errorLine1=" Completable deleteBookmark(String bookmarkUrl);"
errorLine2=" ~~~~~~">
@@ -5882,7 +5830,7 @@
errorLine1=" Flowable<List<BooksOnDiskListItem>> booksOnDiskAsListItems();"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -5893,7 +5841,7 @@
errorLine1=" public static int getToolbarHeight(Context context) {"
errorLine2=" ~~~~~~~">
@@ -5904,7 +5852,7 @@
errorLine1=" public static int getWindowHeight(Activity activity) {"
errorLine2=" ~~~~~~~~">
@@ -5915,7 +5863,7 @@
errorLine1=" public static int getWindowWidth(Activity activity) {"
errorLine2=" ~~~~~~~~">
@@ -5926,7 +5874,7 @@
errorLine1=" public void initInterface(WebView webView) {"
errorLine2=" ~~~~~~~">
@@ -5937,7 +5885,7 @@
errorLine1=" void sectionsLoaded(String title, List<DocumentSection> sections);"
errorLine2=" ~~~~~~">
@@ -5948,7 +5896,7 @@
errorLine1=" void sectionsLoaded(String title, List<DocumentSection> sections);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -5959,7 +5907,7 @@
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -5970,7 +5918,7 @@
errorLine1=" public void onActivityResult(int requestCode, int resultCode, Intent data) {"
errorLine2=" ~~~~~~">
@@ -5981,7 +5929,7 @@
errorLine1=" @Override protected void injection(CoreComponent coreComponent) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -5992,7 +5940,7 @@
errorLine1=" public String readFile(String filePath, Context context) {"
errorLine2=" ~~~~~~">
@@ -6003,7 +5951,7 @@
errorLine1=" public String readFile(String filePath, Context context) {"
errorLine2=" ~~~~~~">
@@ -6014,7 +5962,7 @@
errorLine1=" public String readFile(String filePath, Context context) {"
errorLine2=" ~~~~~~~">
@@ -6025,7 +5973,7 @@
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -6036,7 +5984,7 @@
errorLine1=" @Override protected void injection(CoreComponent coreComponent) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -6047,8 +5995,8 @@
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -6058,8 +6006,8 @@
errorLine1=" protected void onSaveInstanceState(Bundle state) {"
errorLine2=" ~~~~~~">
@@ -6069,8 +6017,8 @@
errorLine1=" protected void onRestoreInstanceState(Bundle state) {"
errorLine2=" ~~~~~~">
@@ -6080,8 +6028,8 @@
errorLine1=" public boolean onCreateOptionsMenu(Menu menu) {"
errorLine2=" ~~~~">
@@ -6091,8 +6039,8 @@
errorLine1=" public boolean onOptionsItemSelected(MenuItem item) {"
errorLine2=" ~~~~~~~~">
@@ -6102,8 +6050,8 @@
errorLine1=" public void updateHistoryList(List<HistoryListItem> historyList) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -6113,8 +6061,8 @@
errorLine1=" public void notifyHistoryListFiltered(List<HistoryListItem> historyList) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -6124,8 +6072,8 @@
errorLine1=" public void onItemClick(ImageView favicon, HistoryListItem.HistoryItem history) {"
errorLine2=" ~~~~~~~~~">
@@ -6135,8 +6083,8 @@
errorLine1=" public void onItemClick(ImageView favicon, HistoryListItem.HistoryItem history) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -6146,8 +6094,8 @@
errorLine1=" public boolean onItemLongClick(ImageView favicon, HistoryListItem.HistoryItem history) {"
errorLine2=" ~~~~~~~~~">
@@ -6157,20 +6105,20 @@
errorLine1=" public boolean onItemLongClick(ImageView favicon, HistoryListItem.HistoryItem history) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ errorLine1=" protected void injection(CoreComponent coreComponent) {"
+ errorLine2=" ~~~~~~~~~~~~~">
+ file="src\main\java\org\kiwix\kiwixmobile\core\history\HistoryActivity.java"
+ line="318"
+ column="28"/>
@@ -6190,7 +6138,7 @@
errorLine1=" void notifyHistoryListFiltered(List<HistoryListItem> historyList);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -6201,7 +6149,7 @@
errorLine1=" void filterHistory(List<HistoryListItem> historyList, String newText);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -6212,7 +6160,7 @@
errorLine1=" void filterHistory(List<HistoryListItem> historyList, String newText);"
errorLine2=" ~~~~~~">
@@ -6223,7 +6171,7 @@
errorLine1=" void deleteHistory(List<HistoryListItem> deleteList);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -6234,7 +6182,7 @@
errorLine1=" protected void onCreate(Bundle savedInstanceState) {"
errorLine2=" ~~~~~~">
@@ -6245,7 +6193,7 @@
errorLine1=" public JNIKiwix providesJNIKiwix(@NonNull Context context) {"
errorLine2=" ~~~~~~~~">
@@ -6256,7 +6204,7 @@
errorLine1=" public KiwixDatabase(Context context, NewBookDao bookDao, NewLanguagesDao languagesDao,"
errorLine2=" ~~~~~~~">
@@ -6267,7 +6215,7 @@
errorLine1=" public KiwixDatabase(Context context, NewBookDao bookDao, NewLanguagesDao languagesDao,"
errorLine2=" ~~~~~~~~~~">
@@ -6278,7 +6226,7 @@
errorLine1=" public KiwixDatabase(Context context, NewBookDao bookDao, NewLanguagesDao languagesDao,"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -6289,7 +6237,7 @@
errorLine1=" NewBookmarksDao bookmarksDao,"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -6300,7 +6248,7 @@
errorLine1=" NewRecentSearchDao recentSearchDao) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -6311,7 +6259,7 @@
errorLine1=" public String getName() {"
errorLine2=" ~~~~~~">
@@ -6322,7 +6270,7 @@
errorLine1=" protected Table[] getTables() {"
errorLine2=" ~~~~~~~">
@@ -6333,7 +6281,7 @@
errorLine1=" protected boolean onUpgrade(SQLiteDatabaseWrapper db, int oldVersion, int newVersion) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~">
@@ -6344,7 +6292,7 @@
errorLine1=" @GET(LIBRARY_NETWORK_PATH) Single<LibraryNetworkEntity> getLibrary();"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -6355,7 +6303,7 @@
errorLine1=" @GET Observable<MetaLinkNetworkEntity> getMetaLinks(@Url String url);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -6366,7 +6314,7 @@
errorLine1=" @GET Observable<MetaLinkNetworkEntity> getMetaLinks(@Url String url);"
errorLine2=" ~~~~~~">
@@ -6377,7 +6325,7 @@
errorLine1=" public static KiwixService newHacklistService(OkHttpClient okHttpClient, String baseUrl) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -6388,7 +6336,7 @@
errorLine1=" public static KiwixService newHacklistService(OkHttpClient okHttpClient, String baseUrl) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -6399,7 +6347,7 @@
errorLine1=" public static KiwixService newHacklistService(OkHttpClient okHttpClient, String baseUrl) {"
errorLine2=" ~~~~~~">
@@ -6410,7 +6358,7 @@
errorLine1=" public TTSTask currentTTSTask = null;"
errorLine2=" ~~~~~~~">
@@ -6421,7 +6369,7 @@
errorLine1=" public void readSelection(WebView webView) {"
errorLine2=" ~~~~~~~">
@@ -6432,7 +6380,7 @@
errorLine1=" public void readAloud(WebView webView) {"
errorLine2=" ~~~~~~~">
@@ -6443,8 +6391,8 @@
errorLine1=" public void initWebView(WebView webView) {"
errorLine2=" ~~~~~~~">
@@ -6454,7 +6402,7 @@
errorLine1=" public KiwixWebChromeClient(WebViewCallback callback, ViewGroup nonVideoView,"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -6465,7 +6413,7 @@
errorLine1=" public KiwixWebChromeClient(WebViewCallback callback, ViewGroup nonVideoView,"
errorLine2=" ~~~~~~~~~">
@@ -6476,7 +6424,7 @@
errorLine1=" ViewGroup videoView, KiwixWebView webView) {"
errorLine2=" ~~~~~~~~~">
@@ -6487,7 +6435,7 @@
errorLine1=" ViewGroup videoView, KiwixWebView webView) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -6498,7 +6446,7 @@
errorLine1=" public void onProgressChanged(WebView view, int progress) {"
errorLine2=" ~~~~~~~">
@@ -6509,7 +6457,7 @@
errorLine1=" @Override public void onReceivedTitle(WebView view, String title) {"
errorLine2=" ~~~~~~~">
@@ -6520,7 +6468,7 @@
errorLine1=" @Override public void onReceivedTitle(WebView view, String title) {"
errorLine2=" ~~~~~~">
@@ -6531,7 +6479,7 @@
errorLine1=" public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,"
errorLine2=" ~~~~~~~">
@@ -6542,7 +6490,7 @@
errorLine1=" public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -6553,7 +6501,7 @@
errorLine1=" public KiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,"
errorLine2=" ~~~~~~~~~~~~">
@@ -6564,7 +6512,7 @@
errorLine1=" ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient) {"
errorLine2=" ~~~~~~~~~">
@@ -6575,7 +6523,7 @@
errorLine1=" ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient) {"
errorLine2=" ~~~~~~~~~">
@@ -6586,7 +6534,7 @@
errorLine1=" ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient) {"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -6597,8 +6545,8 @@
errorLine1=" protected void onCreateContextMenu(ContextMenu menu) {"
errorLine2=" ~~~~~~~~~~~">
@@ -6608,7 +6556,7 @@
errorLine1=" public String libraryVersion;"
errorLine2=" ~~~~~~">
@@ -6619,7 +6567,7 @@
errorLine1=" public LinkedList<Book> book;"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -6630,7 +6578,7 @@
errorLine1=" public LinkedList<Book> getBooks() {"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -6641,7 +6589,7 @@
errorLine1=" public String getVersion() {"
errorLine2=" ~~~~~~">
@@ -6652,7 +6600,7 @@
errorLine1=" public String id;"
errorLine2=" ~~~~~~">
@@ -6663,7 +6611,7 @@
errorLine1=" public String title;"
errorLine2=" ~~~~~~">
@@ -6674,7 +6622,7 @@
errorLine1=" public String description;"
errorLine2=" ~~~~~~">
@@ -6685,7 +6633,7 @@
errorLine1=" public String language;"
errorLine2=" ~~~~~~">
@@ -6696,7 +6644,7 @@
errorLine1=" public String creator;"
errorLine2=" ~~~~~~">
@@ -6707,7 +6655,7 @@
errorLine1=" public String publisher;"
errorLine2=" ~~~~~~">
@@ -6718,7 +6666,7 @@
errorLine1=" public String favicon;"
errorLine2=" ~~~~~~">
@@ -6729,7 +6677,7 @@
errorLine1=" public String faviconMimeType;"
errorLine2=" ~~~~~~">
@@ -6740,7 +6688,7 @@
errorLine1=" public String date;"
errorLine2=" ~~~~~~">
@@ -6751,7 +6699,7 @@
errorLine1=" public String url;"
errorLine2=" ~~~~~~">
@@ -6762,7 +6710,7 @@
errorLine1=" public String articleCount;"
errorLine2=" ~~~~~~">
@@ -6773,7 +6721,7 @@
errorLine1=" public String mediaCount;"
errorLine2=" ~~~~~~">
@@ -6784,7 +6732,7 @@
errorLine1=" public String size;"
errorLine2=" ~~~~~~">
@@ -6795,7 +6743,7 @@
errorLine1=" public String bookName;"
errorLine2=" ~~~~~~">
@@ -6806,7 +6754,7 @@
errorLine1=" public String tags;"
errorLine2=" ~~~~~~">
@@ -6817,7 +6765,7 @@
errorLine1=" public File file;"
errorLine2=" ~~~~">
@@ -6828,7 +6776,7 @@
errorLine1=" public String remoteUrl;"
errorLine2=" ~~~~~~">
@@ -6839,7 +6787,7 @@
errorLine1=" public String getId() {"
errorLine2=" ~~~~~~">
@@ -6850,7 +6798,7 @@
errorLine1=" public String getTitle() {"
errorLine2=" ~~~~~~">
@@ -6861,7 +6809,7 @@
errorLine1=" public String getDescription() {"
errorLine2=" ~~~~~~">
@@ -6872,7 +6820,7 @@
errorLine1=" public String getLanguage() {"
errorLine2=" ~~~~~~">
@@ -6883,7 +6831,7 @@
errorLine1=" public String getCreator() {"
errorLine2=" ~~~~~~">
@@ -6894,7 +6842,7 @@
errorLine1=" public String getPublisher() {"
errorLine2=" ~~~~~~">
@@ -6905,7 +6853,7 @@
errorLine1=" public String getFavicon() {"
errorLine2=" ~~~~~~">
@@ -6916,7 +6864,7 @@
errorLine1=" public String getFaviconMimeType() {"
errorLine2=" ~~~~~~">
@@ -6927,7 +6875,7 @@
errorLine1=" public String getDate() {"
errorLine2=" ~~~~~~">
@@ -6938,7 +6886,7 @@
errorLine1=" public String getUrl() {"
errorLine2=" ~~~~~~">
@@ -6949,7 +6897,7 @@
errorLine1=" public String getArticleCount() {"
errorLine2=" ~~~~~~">
@@ -6960,7 +6908,7 @@
errorLine1=" public String getMediaCount() {"
errorLine2=" ~~~~~~">
@@ -6971,7 +6919,7 @@
errorLine1=" public String getName() {"
errorLine2=" ~~~~~~">
@@ -6982,7 +6930,7 @@
errorLine1=" public String getSize() {"
errorLine2=" ~~~~~~">
@@ -6993,7 +6941,7 @@
errorLine1=" void showBooks(LinkedList<Book> books);"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -7004,7 +6952,7 @@
errorLine1=" void downloadFile(LibraryNetworkEntity.Book book);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -7015,7 +6963,7 @@
errorLine1=" @Override protected void injection(CoreComponent coreComponent) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -7026,7 +6974,7 @@
errorLine1=" void saveBooks(List<BooksOnDiskListItem.BookOnDisk> books);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -7037,7 +6985,7 @@
errorLine1=" void saveHistory(HistoryListItem.HistoryItem history);"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -7048,7 +6996,7 @@
errorLine1=" void saveBookmark(BookmarkItem bookmark);"
errorLine2=" ~~~~~~~~~~~~">
@@ -7059,7 +7007,7 @@
errorLine1=" void deleteBookmark(String bookmarkUrl);"
errorLine2=" ~~~~~~">
@@ -7070,7 +7018,7 @@
errorLine1=" @Inject public MainPresenter(DataSource dataSource) {"
errorLine2=" ~~~~~~~~~~">
@@ -7081,7 +7029,7 @@
errorLine1=" public void saveBooks(List<BooksOnDiskListItem.BookOnDisk> book) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -7092,7 +7040,7 @@
errorLine1=" public void saveHistory(HistoryListItem.HistoryItem history) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -7103,7 +7051,7 @@
errorLine1=" public void saveBookmark(BookmarkItem bookmark) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -7114,7 +7062,7 @@
errorLine1=" public void deleteBookmark(String bookmarkUrl) {"
errorLine2=" ~~~~~~">
@@ -7125,7 +7073,7 @@
errorLine1=" public FileElement file;"
errorLine2=" ~~~~~~~~~~~">
@@ -7136,7 +7084,7 @@
errorLine1=" public List<Url> getUrls() {"
errorLine2=" ~~~~~~~~~">
@@ -7147,7 +7095,7 @@
errorLine1=" public Url getRelevantUrl() {"
errorLine2=" ~~~">
@@ -7158,7 +7106,7 @@
errorLine1=" public FileElement getFile() {"
errorLine2=" ~~~~~~~~~~~">
@@ -7169,7 +7117,7 @@
errorLine1=" public String name;"
errorLine2=" ~~~~~~">
@@ -7180,7 +7128,7 @@
errorLine1=" public List<Url> urls;"
errorLine2=" ~~~~~~~~~">
@@ -7191,7 +7139,7 @@
errorLine1=" public Map<String, String> hashes;"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -7202,7 +7150,7 @@
errorLine1=" public Pieces pieces;"
errorLine2=" ~~~~~~">
@@ -7213,7 +7161,7 @@
errorLine1=" public String getName() {"
errorLine2=" ~~~~~~">
@@ -7224,7 +7172,7 @@
errorLine1=" public String getPieceHashType() {"
errorLine2=" ~~~~~~">
@@ -7235,7 +7183,7 @@
errorLine1=" public List<String> getPieceHashes() {"
errorLine2=" ~~~~~~~~~~~~">
@@ -7246,7 +7194,7 @@
errorLine1=" public String getHash(String type) {"
errorLine2=" ~~~~~~">
@@ -7257,7 +7205,7 @@
errorLine1=" public String getHash(String type) {"
errorLine2=" ~~~~~~">
@@ -7268,7 +7216,7 @@
errorLine1=" public String hashType;"
errorLine2=" ~~~~~~">
@@ -7279,7 +7227,7 @@
errorLine1=" public List<String> pieceHashes;"
errorLine2=" ~~~~~~~~~~~~">
@@ -7290,7 +7238,7 @@
errorLine1=" public String location;"
errorLine2=" ~~~~~~">
@@ -7301,7 +7249,7 @@
errorLine1=" public String value;"
errorLine2=" ~~~~~~">
@@ -7312,7 +7260,7 @@
errorLine1=" public String getValue() {"
errorLine2=" ~~~~~~">
@@ -7323,7 +7271,7 @@
errorLine1=" public String getLocation() {"
errorLine2=" ~~~~~~">
@@ -7334,7 +7282,7 @@
errorLine1=" public NetworkLanguageDao(KiwixDatabase kiwixDatabase) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -7345,7 +7293,7 @@
errorLine1=" public ArrayList<Language> getFilteredLanguages() {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -7356,7 +7304,7 @@
errorLine1=" public String languageISO3;"
errorLine2=" ~~~~~~">
@@ -7367,7 +7315,7 @@
errorLine1=" public static boolean isNetworkAvailable(Context context) {"
errorLine2=" ~~~~~~~">
@@ -7378,7 +7326,7 @@
errorLine1=" public static boolean isWiFi(Context context) {"
errorLine2=" ~~~~~~~">
@@ -7389,7 +7337,7 @@
errorLine1=" public static String getFileNameFromUrl(String url) {"
errorLine2=" ~~~~~~">
@@ -7400,7 +7348,7 @@
errorLine1=" public static String getFileNameFromUrl(String url) {"
errorLine2=" ~~~~~~">
@@ -7411,7 +7359,7 @@
errorLine1=" public static String parseURL(Context context, String url) {"
errorLine2=" ~~~~~~">
@@ -7422,7 +7370,7 @@
errorLine1=" public static String parseURL(Context context, String url) {"
errorLine2=" ~~~~~~~">
@@ -7433,7 +7381,7 @@
errorLine1=" public static String parseURL(Context context, String url) {"
errorLine2=" ~~~~~~">
@@ -7444,7 +7392,7 @@
errorLine1=" public OnSwipeTouchListener(Context ctx) {"
errorLine2=" ~~~~~~~">
@@ -7455,7 +7403,7 @@
errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
errorLine2=" ~~~~">
@@ -7466,7 +7414,7 @@
errorLine1=" public boolean onTouch(View v, MotionEvent event) {"
errorLine2=" ~~~~~~~~~~~">
@@ -7477,7 +7425,7 @@
errorLine1=" public void onTap(MotionEvent e) {"
errorLine2=" ~~~~~~~~~~~">
@@ -7488,7 +7436,7 @@
errorLine1=" public RecentSearchDao(KiwixDatabase kiwixDatabase) {"
errorLine2=" ~~~~~~~~~~~~~">
@@ -7499,7 +7447,7 @@
errorLine1=" public List<RecentSearch> getRecentSearches() {"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -7510,7 +7458,7 @@
errorLine1=" public String searchString;"
errorLine2=" ~~~~~~">
@@ -7521,7 +7469,7 @@
errorLine1=" public String zimID;"
errorLine2=" ~~~~~~">
@@ -7532,7 +7480,7 @@
errorLine1=" public SharedPreferenceUtil(Context context) {"
errorLine2=" ~~~~~~~">
@@ -7543,7 +7491,7 @@
errorLine1=" public String getPrefLanguage() {"
errorLine2=" ~~~~~~">
@@ -7554,7 +7502,7 @@
errorLine1=" public String getPrefStorage() {"
errorLine2=" ~~~~~~">
@@ -7565,7 +7513,7 @@
errorLine1=" public String getPrefStorageTitle(String defaultTitle) {"
errorLine2=" ~~~~~~">
@@ -7576,7 +7524,7 @@
errorLine1=" public String getPrefStorageTitle(String defaultTitle) {"
errorLine2=" ~~~~~~">
@@ -7587,7 +7535,7 @@
errorLine1=" public void putPrefLanguage(String language) {"
errorLine2=" ~~~~~~">
@@ -7598,7 +7546,7 @@
errorLine1=" public void putPrefStorageTitle(String storageTitle) {"
errorLine2=" ~~~~~~">
@@ -7609,7 +7557,7 @@
errorLine1=" public void putPrefStorage(String storage) {"
errorLine2=" ~~~~~~">
@@ -7620,7 +7568,7 @@
errorLine1=" public Flowable<String> getPrefStorages() {"
errorLine2=" ~~~~~~~~~~~~~~~~">
@@ -7631,7 +7579,7 @@
errorLine1=" public Flowable<NightModeConfig.Mode> nightModes() {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -7642,7 +7590,7 @@
errorLine1=" public Set<String> getHostedBooks() {"
errorLine2=" ~~~~~~~~~~~">
@@ -7653,7 +7601,7 @@
errorLine1=" public void setHostedBooks(Set<String> hostedBooks) {"
errorLine2=" ~~~~~~~~~~~">
@@ -7664,7 +7612,7 @@
errorLine1=" protected CharSequence[] mSummaries;"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -7675,7 +7623,7 @@
errorLine1=" public SliderPreference(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~">
@@ -7686,7 +7634,7 @@
errorLine1=" public SliderPreference(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -7697,7 +7645,7 @@
errorLine1=" public SliderPreference(Context context, AttributeSet attrs, int defStyle) {"
errorLine2=" ~~~~~~~">
@@ -7708,7 +7656,7 @@
errorLine1=" public SliderPreference(Context context, AttributeSet attrs, int defStyle) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -7719,7 +7667,7 @@
errorLine1=" public void updateSummaryText(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~">
@@ -7730,7 +7678,7 @@
errorLine1=" public void updateSummaryText(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -7741,7 +7689,7 @@
errorLine1=" protected Object onGetDefaultValue(TypedArray a, int index) {"
errorLine2=" ~~~~~~">
@@ -7752,7 +7700,7 @@
errorLine1=" protected Object onGetDefaultValue(TypedArray a, int index) {"
errorLine2=" ~~~~~~~~~~">
@@ -7763,7 +7711,7 @@
errorLine1=" protected void onSetInitialValue(boolean restoreValue, Object defaultValue) {"
errorLine2=" ~~~~~~">
@@ -7774,7 +7722,7 @@
errorLine1=" public CharSequence getSummary() {"
errorLine2=" ~~~~~~~~~~~~">
@@ -7785,7 +7733,7 @@
errorLine1=" public void setSummary(CharSequence[] summaries) {"
errorLine2=" ~~~~~~~~~~~~~~">
@@ -7796,7 +7744,7 @@
errorLine1=" protected View onCreateDialogView() {"
errorLine2=" ~~~~">
@@ -7807,7 +7755,7 @@
errorLine1=" public static String getFileNameFromUrl(String url) {"
errorLine2=" ~~~~~~">
@@ -7818,7 +7766,7 @@
errorLine1=" public static String getFileNameFromUrl(String url) {"
errorLine2=" ~~~~~~">
@@ -7829,7 +7777,7 @@
errorLine1=" public static AttributeSet getAttributes(Context context, @XmlRes int xml) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -7840,7 +7788,7 @@
errorLine1=" public static AttributeSet getAttributes(Context context, @XmlRes int xml) {"
errorLine2=" ~~~~~~~">
@@ -7851,7 +7799,7 @@
errorLine1=" public static Spanned highlightUrl(String text, String url) {"
errorLine2=" ~~~~~~~">
@@ -7862,7 +7810,7 @@
errorLine1=" public static Spanned highlightUrl(String text, String url) {"
errorLine2=" ~~~~~~">
@@ -7873,7 +7821,7 @@
errorLine1=" public static Spanned highlightUrl(String text, String url) {"
errorLine2=" ~~~~~~">
@@ -7884,7 +7832,7 @@
errorLine1=" public static Spanned fromHtml(String source) {"
errorLine2=" ~~~~~~~">
@@ -7895,7 +7843,7 @@
errorLine1=" public static Spanned fromHtml(String source) {"
errorLine2=" ~~~~~~">
@@ -7906,7 +7854,7 @@
errorLine1=" public void setTitle(String title) {"
errorLine2=" ~~~~~~">
@@ -7917,7 +7865,7 @@
errorLine1=" void onHeaderClick(View view);"
errorLine2=" ~~~~">
@@ -7928,7 +7876,7 @@
errorLine1=" void onSectionClick(View view, int position);"
errorLine2=" ~~~~">
@@ -7939,7 +7887,7 @@
errorLine1=" TextView title;"
errorLine2=" ~~~~~~~~">
@@ -7950,7 +7898,7 @@
errorLine1=" public ViewHolder(View v) {"
errorLine2=" ~~~~">
@@ -7961,7 +7909,7 @@
errorLine1=" public String title;"
errorLine2=" ~~~~~~">
@@ -7972,7 +7920,7 @@
errorLine1=" public String id;"
errorLine2=" ~~~~~~">
@@ -7983,7 +7931,7 @@
errorLine1=" public static void bindResource(Class bindClass) {"
errorLine2=" ~~~~~">
@@ -7994,7 +7942,7 @@
errorLine1=" public static void unbindResource(Class bindClass) {"
errorLine2=" ~~~~~">
@@ -8005,7 +7953,7 @@
errorLine1=" public static void registerIdleCallback(TestingUtils.IdleListener listListener) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -8016,7 +7964,7 @@
errorLine1=" public ToolbarScrollingKiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,"
errorLine2=" ~~~~~~~">
@@ -8027,7 +7975,7 @@
errorLine1=" public ToolbarScrollingKiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -8038,7 +7986,7 @@
errorLine1=" public ToolbarScrollingKiwixWebView(Context context, WebViewCallback callback, AttributeSet attrs,"
errorLine2=" ~~~~~~~~~~~~">
@@ -8049,7 +7997,7 @@
errorLine1=" ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient, View toolbarView,"
errorLine2=" ~~~~~~~~~">
@@ -8060,7 +8008,7 @@
errorLine1=" ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient, View toolbarView,"
errorLine2=" ~~~~~~~~~">
@@ -8071,7 +8019,7 @@
errorLine1=" ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient, View toolbarView,"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -8082,7 +8030,7 @@
errorLine1=" ViewGroup nonVideoView, ViewGroup videoView, CoreWebViewClient webViewClient, View toolbarView,"
errorLine2=" ~~~~">
@@ -8093,7 +8041,7 @@
errorLine1=" View bottomBarView, SharedPreferenceUtil sharedPreferenceUtil) {"
errorLine2=" ~~~~">
@@ -8104,7 +8052,7 @@
errorLine1=" View bottomBarView, SharedPreferenceUtil sharedPreferenceUtil) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -8115,7 +8063,7 @@
errorLine1=" public boolean onTouchEvent(MotionEvent event) {"
errorLine2=" ~~~~~~~~~~~">
@@ -8126,7 +8074,7 @@
errorLine1=" public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback,"
errorLine2=" ~~~~~~~">
@@ -8137,7 +8085,7 @@
errorLine1=" public ToolbarStaticKiwixWebView(Context context, WebViewCallback callback,"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -8148,7 +8096,7 @@
errorLine1=" AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView,"
errorLine2=" ~~~~~~~~~~~~">
@@ -8159,7 +8107,7 @@
errorLine1=" AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView,"
errorLine2=" ~~~~~~~~~">
@@ -8170,7 +8118,7 @@
errorLine1=" AttributeSet attrs, ViewGroup nonVideoView, ViewGroup videoView,"
errorLine2=" ~~~~~~~~~">
@@ -8181,7 +8129,7 @@
errorLine1=" CoreWebViewClient webViewClient,"
errorLine2=" ~~~~~~~~~~~~~~~~~">
@@ -8192,7 +8140,7 @@
errorLine1=" SharedPreferenceUtil sharedPreferenceUtil) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -8203,7 +8151,7 @@
errorLine1=" public UserAgentInterceptor(String useragent) {"
errorLine2=" ~~~~~~">
@@ -8214,7 +8162,7 @@
errorLine1=" public Response intercept(Chain chain) throws IOException {"
errorLine2=" ~~~~~~~~">
@@ -8225,7 +8173,7 @@
errorLine1=" public Response intercept(Chain chain) throws IOException {"
errorLine2=" ~~~~~">
@@ -8236,7 +8184,7 @@
errorLine1=" public VideoEnabledWebChromeClient(View activityNonVideoView, ViewGroup activityVideoView) {"
errorLine2=" ~~~~">
@@ -8247,7 +8195,7 @@
errorLine1=" public VideoEnabledWebChromeClient(View activityNonVideoView, ViewGroup activityVideoView) {"
errorLine2=" ~~~~~~~~~">
@@ -8258,7 +8206,7 @@
errorLine1=" public VideoEnabledWebChromeClient(View activityNonVideoView, ViewGroup activityVideoView,"
errorLine2=" ~~~~">
@@ -8269,7 +8217,7 @@
errorLine1=" public VideoEnabledWebChromeClient(View activityNonVideoView, ViewGroup activityVideoView,"
errorLine2=" ~~~~~~~~~">
@@ -8280,7 +8228,7 @@
errorLine1=" View loadingView) {"
errorLine2=" ~~~~">
@@ -8291,7 +8239,7 @@
errorLine1=" public VideoEnabledWebChromeClient(View activityNonVideoView, ViewGroup activityVideoView,"
errorLine2=" ~~~~">
@@ -8302,7 +8250,7 @@
errorLine1=" public VideoEnabledWebChromeClient(View activityNonVideoView, ViewGroup activityVideoView,"
errorLine2=" ~~~~~~~~~">
@@ -8313,7 +8261,7 @@
errorLine1=" View loadingView, VideoEnabledWebView webView) {"
errorLine2=" ~~~~">
@@ -8324,7 +8272,7 @@
errorLine1=" View loadingView, VideoEnabledWebView webView) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -8335,7 +8283,7 @@
errorLine1=" public void setOnToggledFullscreen(ToggledFullscreenCallback callback) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -8346,7 +8294,7 @@
errorLine1=" public void onShowCustomView(View view, CustomViewCallback callback) {"
errorLine2=" ~~~~">
@@ -8357,7 +8305,7 @@
errorLine1=" public void onShowCustomView(View view, CustomViewCallback callback) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -8368,7 +8316,7 @@
errorLine1=" public void onShowCustomView(View view, int requestedOrientation,"
errorLine2=" ~~~~">
@@ -8379,7 +8327,7 @@
errorLine1=" CustomViewCallback callback) // Available in API level 14+, deprecated in API level 18+"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -8390,7 +8338,7 @@
errorLine1=" public View getVideoLoadingProgressView() // Video will start loading"
errorLine2=" ~~~~">
@@ -8401,7 +8349,7 @@
errorLine1=" MediaPlayer mp) // Video will start playing, only called in the case of android.widget.VideoView (typically API level <11)"
errorLine2=" ~~~~~~~~~~~">
@@ -8412,7 +8360,7 @@
errorLine1=" MediaPlayer mp) // Video finished playing, only called in the case of android.widget.VideoView (typically API level <11)"
errorLine2=" ~~~~~~~~~~~">
@@ -8423,7 +8371,7 @@
errorLine1=" public boolean onError(MediaPlayer mp, int what,"
errorLine2=" ~~~~~~~~~~~">
@@ -8434,7 +8382,7 @@
errorLine1=" public VideoEnabledWebView(Context context) {"
errorLine2=" ~~~~~~~">
@@ -8445,7 +8393,7 @@
errorLine1=" public VideoEnabledWebView(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~">
@@ -8456,7 +8404,7 @@
errorLine1=" public VideoEnabledWebView(Context context, AttributeSet attrs) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -8467,7 +8415,7 @@
errorLine1=" public VideoEnabledWebView(Context context, AttributeSet attrs, int defStyle) {"
errorLine2=" ~~~~~~~">
@@ -8478,7 +8426,7 @@
errorLine1=" public VideoEnabledWebView(Context context, AttributeSet attrs, int defStyle) {"
errorLine2=" ~~~~~~~~~~~~">
@@ -8489,7 +8437,7 @@
errorLine1=" public void setWebChromeClient(WebChromeClient client) {"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -8500,7 +8448,7 @@
errorLine1=" public void loadData(String data, String mimeType, String encoding) {"
errorLine2=" ~~~~~~">
@@ -8511,7 +8459,7 @@
errorLine1=" public void loadData(String data, String mimeType, String encoding) {"
errorLine2=" ~~~~~~">
@@ -8522,7 +8470,7 @@
errorLine1=" public void loadData(String data, String mimeType, String encoding) {"
errorLine2=" ~~~~~~">
@@ -8533,7 +8481,7 @@
errorLine1=" public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding,"
errorLine2=" ~~~~~~">
@@ -8544,7 +8492,7 @@
errorLine1=" public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding,"
errorLine2=" ~~~~~~">
@@ -8555,7 +8503,7 @@
errorLine1=" public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding,"
errorLine2=" ~~~~~~">
@@ -8566,7 +8514,7 @@
errorLine1=" public void loadDataWithBaseURL(String baseUrl, String data, String mimeType, String encoding,"
errorLine2=" ~~~~~~">
@@ -8577,7 +8525,7 @@
errorLine1=" String historyUrl) {"
errorLine2=" ~~~~~~">
@@ -8588,7 +8536,7 @@
errorLine1=" public void loadUrl(String url) {"
errorLine2=" ~~~~~~">
@@ -8599,7 +8547,7 @@
errorLine1=" public void loadUrl(String url, Map<String, String> additionalHttpHeaders) {"
errorLine2=" ~~~~~~">
@@ -8610,7 +8558,7 @@
errorLine1=" public void loadUrl(String url, Map<String, String> additionalHttpHeaders) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~">
@@ -8621,7 +8569,7 @@
errorLine1=" Map<Class<? extends ViewModel>, Provider<ViewModel>> creators) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
@@ -8632,7 +8580,7 @@
errorLine1=" public <T extends ViewModel> T create(Class<T> modelClass) {"
errorLine2=" ~">
@@ -8643,7 +8591,7 @@
errorLine1=" public <T extends ViewModel> T create(Class<T> modelClass) {"
errorLine2=" ~~~~~~~~">
@@ -8654,7 +8602,7 @@
errorLine1=" void webViewFailedLoading(String failingUrl);"
errorLine2=" ~~~~~~">
@@ -8665,7 +8613,7 @@
errorLine1=" void openExternalUrl(Intent intent);"
errorLine2=" ~~~~~~">
@@ -8676,7 +8624,7 @@
errorLine1=" void webViewTitleUpdated(String title);"
errorLine2=" ~~~~~~">
@@ -8687,7 +8635,7 @@
errorLine1=" void webViewLongClick(String url);"
errorLine2=" ~~~~~~">
@@ -8698,7 +8646,7 @@
errorLine1=" void setHomePage(View view);"
errorLine2=" ~~~~">
@@ -8709,7 +8657,7 @@
errorLine1=" public JNIKiwix jniKiwix;"
errorLine2=" ~~~~~~~~">
@@ -8720,7 +8668,7 @@
errorLine1=" public String getType(Uri uri) {"
errorLine2=" ~~~~~~">
@@ -8731,7 +8679,7 @@
errorLine1=" public String getType(Uri uri) {"
errorLine2=" ~~~">
@@ -8742,7 +8690,7 @@
errorLine1=" public ParcelFileDescriptor openFile(Uri uri, String mode) {"
errorLine2=" ~~~~~~~~~~~~~~~~~~~~">
@@ -8753,7 +8701,7 @@
errorLine1=" public ParcelFileDescriptor openFile(Uri uri, String mode) {"
errorLine2=" ~~~">
@@ -8764,7 +8712,7 @@
errorLine1=" public ParcelFileDescriptor openFile(Uri uri, String mode) {"
errorLine2=" ~~~~~~">
diff --git a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt
index d6c1b1267..1efe858e3 100644
--- a/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt
+++ b/app/src/main/java/org/kiwix/kiwixmobile/main/KiwixMainActivity.kt
@@ -33,13 +33,13 @@ import org.kiwix.kiwixmobile.core.main.CoreMainActivity
import org.kiwix.kiwixmobile.core.main.WebViewCallback
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer
-import org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_ZIM_FILE
-import org.kiwix.kiwixmobile.core.utils.Constants.TAG_CURRENT_ARTICLES
-import org.kiwix.kiwixmobile.core.utils.Constants.TAG_CURRENT_FILE
-import org.kiwix.kiwixmobile.core.utils.Constants.TAG_CURRENT_POSITIONS
-import org.kiwix.kiwixmobile.core.utils.Constants.TAG_CURRENT_TAB
-import org.kiwix.kiwixmobile.core.utils.Constants.TAG_KIWIX
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_KIWIX_MOBILE
+import org.kiwix.kiwixmobile.core.utils.EXTRA_ZIM_FILE
+import org.kiwix.kiwixmobile.core.utils.TAG_CURRENT_ARTICLES
+import org.kiwix.kiwixmobile.core.utils.TAG_CURRENT_FILE
+import org.kiwix.kiwixmobile.core.utils.TAG_CURRENT_POSITIONS
+import org.kiwix.kiwixmobile.core.utils.TAG_CURRENT_TAB
+import org.kiwix.kiwixmobile.core.utils.TAG_KIWIX
import org.kiwix.kiwixmobile.core.utils.UpdateUtils.reformatProviderUrl
import org.kiwix.kiwixmobile.core.utils.files.FileUtils
import org.kiwix.kiwixmobile.kiwixActivityComponent
diff --git a/app/src/main/java/org/kiwix/kiwixmobile/webserver/wifi_hotspot/HotspotNotificationManager.java b/app/src/main/java/org/kiwix/kiwixmobile/webserver/wifi_hotspot/HotspotNotificationManager.java
index d0f59df2c..163a35772 100644
--- a/app/src/main/java/org/kiwix/kiwixmobile/webserver/wifi_hotspot/HotspotNotificationManager.java
+++ b/app/src/main/java/org/kiwix/kiwixmobile/webserver/wifi_hotspot/HotspotNotificationManager.java
@@ -29,7 +29,7 @@ import androidx.annotation.NonNull;
import androidx.core.app.NotificationCompat;
import javax.inject.Inject;
import org.kiwix.kiwixmobile.R;
-import org.kiwix.kiwixmobile.core.utils.Constants;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.HOTSPOT_SERVICE_CHANNEL_ID;
import org.kiwix.kiwixmobile.webserver.ZimHostActivity;
public class HotspotNotificationManager {
@@ -50,7 +50,7 @@ public class HotspotNotificationManager {
private void hotspotNotificationChannel() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
NotificationChannel hotspotServiceChannel = new NotificationChannel(
- Constants.HOTSPOT_SERVICE_CHANNEL_ID,
+ HOTSPOT_SERVICE_CHANNEL_ID,
context.getString(R.string.hotspot_service_channel_name),
NotificationManager.IMPORTANCE_DEFAULT);
hotspotServiceChannel.setDescription(context.getString(R.string.hotspot_channel_description));
@@ -81,7 +81,7 @@ public class HotspotNotificationManager {
.addAction(R.drawable.ic_close_white_24dp,
context.getString(R.string.stop),
stopHotspot)
- .setChannelId(Constants.HOTSPOT_SERVICE_CHANNEL_ID)
+ .setChannelId(HOTSPOT_SERVICE_CHANNEL_ID)
.build();
}
diff --git a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/ZimFileSelectFragment.kt b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/ZimFileSelectFragment.kt
index cc889e64c..594ac64ed 100644
--- a/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/ZimFileSelectFragment.kt
+++ b/app/src/main/java/org/kiwix/kiwixmobile/zim_manager/fileselect_view/ZimFileSelectFragment.kt
@@ -40,7 +40,7 @@ import org.kiwix.kiwixmobile.core.base.BaseActivity
import org.kiwix.kiwixmobile.core.base.BaseFragment
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.viewModel
import org.kiwix.kiwixmobile.core.extensions.toast
-import org.kiwix.kiwixmobile.core.utils.Constants.REQUEST_STORAGE_PERMISSION
+import org.kiwix.kiwixmobile.core.utils.REQUEST_STORAGE_PERMISSION
import org.kiwix.kiwixmobile.core.utils.LanguageUtils
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
import org.kiwix.kiwixmobile.core.zim_manager.fileselect_view.adapter.BookOnDiskDelegate.BookDelegate
diff --git a/app/src/main/res/layout/item_download.xml b/app/src/main/res/layout/item_download.xml
index 4cb54778d..15cf1c129 100644
--- a/app/src/main/res/layout/item_download.xml
+++ b/app/src/main/res/layout/item_download.xml
@@ -1,5 +1,11 @@
-
+
+
@@ -56,13 +63,15 @@
+ android:orientation="horizontal"
+ android:layout_marginBottom="10dp">
@@ -71,6 +80,7 @@
style="@style/list_item_body"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
+ android:textColor="@color/text_tertiary"
tools:text="1min 10secs" />
@@ -93,3 +103,4 @@
app:srcCompat="@drawable/ic_stop_24dp" />
+
diff --git a/app/src/main/res/layout/item_library.xml b/app/src/main/res/layout/item_library.xml
index 3c82b31eb..52e49f16e 100644
--- a/app/src/main/res/layout/item_library.xml
+++ b/app/src/main/res/layout/item_library.xml
@@ -1,126 +1,150 @@
-
+ android:layout_margin="@dimen/card_margin"
+ xmlns:android="http://schemas.android.com/apk/res/android">
-
+ android:background="?selectableItemBackground"
+ android:minHeight="?listPreferredItemHeight"
+ android:orientation="horizontal"
+ tools:ignore="Overdraw, RTLHardcoded">
-
+
-
+
-
+
-
+
-
+
+
+
-
+
-
+
-
+
-
+
-
+
-
+
+
+
diff --git a/core/detekt_baseline.xml b/core/detekt_baseline.xml
index 680cd1446..ee0f581dd 100644
--- a/core/detekt_baseline.xml
+++ b/core/detekt_baseline.xml
@@ -15,7 +15,6 @@
MagicNumber:KiloByte.kt$KiloByte$1024.0
MagicNumber:MainMenu.kt$MainMenu$99
MagicNumber:SearchResultGenerator.kt$ZimSearchResultGenerator$200
- MagicNumber:SearchViewModel.kt$SearchViewModel$100
MagicNumber:Seconds.kt$Seconds$24
MagicNumber:Seconds.kt$Seconds$60
MagicNumber:Seconds.kt$Seconds$60.0
@@ -37,10 +36,6 @@
ReturnCount:FileUtils.kt$FileUtils$@JvmStatic fun hasPart(file: File): Boolean
ReturnCount:FileUtils.kt$FileUtils$@Synchronized private fun deleteZimFileParts(path: String): Boolean
ReturnCount:ImageUtils.kt$ImageUtils$private fun getBitmapFromView(width: Int, height: Int, viewToDrawFrom: View): Bitmap?
- SpreadOperator:AlertDialogShower.kt$AlertDialogShower$(dialog.message, *bodyArguments(dialog))
- SpreadOperator:BooksOnDiskAdapter.kt$BooksOnDiskAdapter$( *delegates )
- SpreadOperator:FileSearch.kt$FileSearch$(*zimFileExtensions)
- SpreadOperator:SearchAdapter.kt$SearchAdapter$(*delegates)
TooGenericExceptionThrown:AbstractContentProvider.kt$AbstractContentProvider$throw RuntimeException("Operation not supported")
TooGenericExceptionThrown:AdapterDelegateManager.kt$AdapterDelegateManager$throw RuntimeException("No delegate registered for $item")
TooGenericExceptionThrown:Bytes.kt$Bytes$throw RuntimeException("impossible value $size")
@@ -52,6 +47,7 @@
TooManyFunctions:CoreComponent.kt$CoreComponent$CoreComponent
TooManyFunctions:FetchDownloadMonitor.kt$FetchDownloadMonitor$<no name provided> : FetchListener
TooManyFunctions:FileUtils.kt$FileUtils$FileUtils
+ TooManyFunctions:MainMenu.kt$MainMenu$MainMenu
TooManyFunctions:NewBookDao.kt$NewBookDao$NewBookDao
TooManyFunctions:Repository.kt$Repository$Repository
TooManyFunctions:ZimFileReader.kt$ZimFileReader$ZimFileReader
diff --git a/core/src/main/ic_launcher-playstore.png b/core/src/main/ic_launcher-playstore.png
new file mode 100644
index 000000000..0b1fccff8
Binary files /dev/null and b/core/src/main/ic_launcher-playstore.png differ
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/base/BasePresenter.java b/core/src/main/java/org/kiwix/kiwixmobile/core/base/BasePresenter.kt
similarity index 59%
rename from core/src/main/java/org/kiwix/kiwixmobile/core/base/BasePresenter.java
rename to core/src/main/java/org/kiwix/kiwixmobile/core/base/BasePresenter.kt
index c7ec1f1d8..c68411aab 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/base/BasePresenter.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/base/BasePresenter.kt
@@ -15,30 +15,27 @@
* along with this program. If not, see .
*
*/
-package org.kiwix.kiwixmobile.core.base;
+package org.kiwix.kiwixmobile.core.base
-import io.reactivex.disposables.CompositeDisposable;
+import io.reactivex.disposables.CompositeDisposable
+import org.kiwix.kiwixmobile.core.base.BaseContract.Presenter
+import org.kiwix.kiwixmobile.core.base.BaseContract.View
/**
* All presenters should inherit from this presenter.
*/
+abstract class BasePresenter?> : Presenter {
+ @JvmField val compositeDisposable = CompositeDisposable()
+ @JvmField var view: T? = null
-public abstract class BasePresenter
- implements BaseContract.Presenter {
-
- protected final CompositeDisposable compositeDisposable = new CompositeDisposable();
- protected T view;
-
- @Override
- public void attachView(T view) {
- this.view = view;
+ override fun attachView(view: T) {
+ this.view = view
}
- @Override
- public void detachView() {
- view = null;
- if (!compositeDisposable.isDisposed()) {
- compositeDisposable.dispose();
+ override fun detachView() {
+ view = null
+ if (!compositeDisposable.isDisposed) {
+ compositeDisposable.dispose()
}
}
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/bookmark/BookmarksActivity.java b/core/src/main/java/org/kiwix/kiwixmobile/core/bookmark/BookmarksActivity.java
index e28b2eb55..4a486a8c4 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/bookmark/BookmarksActivity.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/bookmark/BookmarksActivity.java
@@ -51,9 +51,9 @@ import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer;
import org.kiwix.kiwixmobile.core.utils.DialogShower;
import org.kiwix.kiwixmobile.core.utils.KiwixDialog;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_CHOSE_X_FILE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_CHOSE_X_TITLE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_CHOSE_X_URL;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_CHOSE_X_FILE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_CHOSE_X_TITLE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_CHOSE_X_URL;
public class BookmarksActivity extends BaseActivity implements BookmarksContract.View,
BookmarksAdapter.OnItemClickListener {
@@ -85,6 +85,7 @@ public class BookmarksActivity extends BaseActivity implements BookmarksContract
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.menu_context_delete, menu);
+ bookmarksSwitch.setEnabled(false);
return true;
}
@@ -97,15 +98,18 @@ public class BookmarksActivity extends BaseActivity implements BookmarksContract
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
refreshAdapter = false;
if (item.getItemId() == R.id.menu_context_delete) {
- allBookmarks.removeAll(deleteList);
- for (BookmarkItem bookmark : deleteList) {
- int position = bookmarksList.indexOf(bookmark);
- bookmarksList.remove(bookmark);
- bookmarksAdapter.notifyItemRemoved(position);
- bookmarksAdapter.notifyItemRangeChanged(position, bookmarksAdapter.getItemCount());
- }
- presenter.deleteBookmarks(new ArrayList<>(deleteList));
- mode.finish();
+ dialogShower.show(KiwixDialog.DeleteBookmarks.INSTANCE,(Function0)() ->{
+ allBookmarks.removeAll(deleteList);
+ for (BookmarkItem bookmark : deleteList) {
+ int position = bookmarksList.indexOf(bookmark);
+ bookmarksList.remove(bookmark);
+ bookmarksAdapter.notifyItemRemoved(position);
+ bookmarksAdapter.notifyItemRangeChanged(position, bookmarksAdapter.getItemCount());
+ }
+ presenter.deleteBookmarks(new ArrayList<>(deleteList));
+ mode.finish();
+ return Unit.INSTANCE;
+ });
return true;
}
return false;
@@ -120,6 +124,7 @@ public class BookmarksActivity extends BaseActivity implements BookmarksContract
if (refreshAdapter) {
bookmarksAdapter.notifyDataSetChanged();
}
+ bookmarksSwitch.setEnabled(true);
}
};
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/data/local/KiwixDatabase.java b/core/src/main/java/org/kiwix/kiwixmobile/core/data/local/KiwixDatabase.java
index a6c517d7c..5a0c4d43c 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/data/local/KiwixDatabase.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/data/local/KiwixDatabase.java
@@ -45,7 +45,7 @@ import org.kiwix.kiwixmobile.core.data.local.entity.NetworkLanguageDatabaseEntit
import org.kiwix.kiwixmobile.core.data.local.entity.RecentSearch;
import org.kiwix.kiwixmobile.core.utils.UpdateUtils;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_KIWIX;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_KIWIX;
@Singleton
@Deprecated //delete once migrations are no longer needed
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/BookExtensions.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/BookExtensions.kt
index 3ec287a37..45ae77a10 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/BookExtensions.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/extensions/BookExtensions.kt
@@ -45,7 +45,7 @@ fun Book.buildSearchableText(bookUtils: BookUtils): String =
append(NetworkUtils.parseURL(CoreApp.getInstance(), url))
append("|")
if (bookUtils.localeMap.containsKey(language)) {
- append(bookUtils.localeMap[language]!!.displayLanguage)
+ append(bookUtils.localeMap[language]?.displayLanguage)
append("|")
}
}.toString()
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/help/HelpActivity.java b/core/src/main/java/org/kiwix/kiwixmobile/core/help/HelpActivity.java
index 0c265d9e6..b9d18a377 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/help/HelpActivity.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/help/HelpActivity.java
@@ -33,7 +33,7 @@ import org.kiwix.kiwixmobile.core.base.BaseActivity;
import org.kiwix.kiwixmobile.core.di.components.CoreComponent;
import org.kiwix.kiwixmobile.core.utils.LanguageUtils;
-import static org.kiwix.kiwixmobile.core.utils.Constants.CONTACT_EMAIL_ADDRESS;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.CONTACT_EMAIL_ADDRESS;
public class HelpActivity extends BaseActivity {
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/history/HistoryActivity.java b/core/src/main/java/org/kiwix/kiwixmobile/core/history/HistoryActivity.java
index 03ef457b6..1acc21494 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/history/HistoryActivity.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/history/HistoryActivity.java
@@ -53,8 +53,8 @@ import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer;
import org.kiwix.kiwixmobile.core.utils.DialogShower;
import org.kiwix.kiwixmobile.core.utils.KiwixDialog;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_CHOSE_X_FILE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_CHOSE_X_URL;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_CHOSE_X_FILE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_CHOSE_X_URL;
public class HistoryActivity extends BaseActivity implements HistoryContract.View,
HistoryAdapter.OnItemClickListener {
@@ -88,6 +88,7 @@ public class HistoryActivity extends BaseActivity implements HistoryContract.Vie
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
mode.getMenuInflater().inflate(R.menu.menu_context_delete, menu);
+ historySwitch.setEnabled(false);
return true;
}
@@ -137,6 +138,7 @@ public class HistoryActivity extends BaseActivity implements HistoryContract.Vie
if (refreshAdapter) {
historyAdapter.notifyDataSetChanged();
}
+ historySwitch.setEnabled(true);
}
};
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/AddNoteDialog.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/AddNoteDialog.java
index ddfbcefcb..3b253b3f4 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/AddNoteDialog.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/AddNoteDialog.java
@@ -136,8 +136,8 @@ public class AddNoteDialog extends DialogFragment
toolbar.setTitle(R.string.note);
toolbar.setNavigationIcon(R.drawable.ic_close_white_24dp);
toolbar.setNavigationOnClickListener(v -> {
- closeKeyboard();
exitAddNoteDialog();
+ closeKeyboard();
});
toolbar.setOnMenuItemClickListener(item -> {
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 499ba3f89..f0f1ebbc0 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
@@ -125,27 +125,27 @@ import static org.kiwix.kiwixmobile.core.downloader.fetch.FetchDownloadNotificat
import static org.kiwix.kiwixmobile.core.main.TableDrawerAdapter.DocumentSection;
import static org.kiwix.kiwixmobile.core.main.TableDrawerAdapter.TableClickListener;
import static org.kiwix.kiwixmobile.core.utils.AnimationUtils.rotate;
-import static org.kiwix.kiwixmobile.core.utils.Constants.BOOKMARK_CHOSEN_REQUEST;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_CHOSE_X_FILE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_CHOSE_X_TITLE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_CHOSE_X_URL;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_EXTERNAL_LINK;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_IS_WIDGET_VOICE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_SEARCH;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_ZIM_FILE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.REQUEST_FILE_SELECT;
-import static org.kiwix.kiwixmobile.core.utils.Constants.REQUEST_HISTORY_ITEM_CHOSEN;
-import static org.kiwix.kiwixmobile.core.utils.Constants.REQUEST_PREFERENCES;
-import static org.kiwix.kiwixmobile.core.utils.Constants.REQUEST_STORAGE_PERMISSION;
-import static org.kiwix.kiwixmobile.core.utils.Constants.REQUEST_WRITE_STORAGE_PERMISSION_ADD_NOTE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.RESULT_HISTORY_CLEARED;
-import static org.kiwix.kiwixmobile.core.utils.Constants.RESULT_RESTART;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_CURRENT_ARTICLES;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_CURRENT_FILE;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_CURRENT_POSITIONS;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_CURRENT_TAB;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_FILE_SEARCHED;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_KIWIX;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.BOOKMARK_CHOSEN_REQUEST;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_CHOSE_X_FILE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_CHOSE_X_TITLE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_CHOSE_X_URL;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_EXTERNAL_LINK;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_IS_WIDGET_VOICE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_SEARCH;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_ZIM_FILE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.REQUEST_FILE_SELECT;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.REQUEST_HISTORY_ITEM_CHOSEN;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.REQUEST_PREFERENCES;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.REQUEST_STORAGE_PERMISSION;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.REQUEST_WRITE_STORAGE_PERMISSION_ADD_NOTE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.RESULT_HISTORY_CLEARED;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.RESULT_RESTART;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_CURRENT_ARTICLES;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_CURRENT_FILE;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_CURRENT_POSITIONS;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_CURRENT_TAB;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_FILE_SEARCHED;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_KIWIX;
import static org.kiwix.kiwixmobile.core.utils.LanguageUtils.getResourceString;
import static org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_KIWIX_MOBILE;
@@ -413,7 +413,7 @@ public abstract class CoreMainActivity extends BaseActivity
private void handleIntentExtras(Intent intent) {
if (intent.hasExtra(TAG_FILE_SEARCHED)) {
- searchForTitle(intent.getStringExtra(TAG_FILE_SEARCHED));
+ searchForTitle(intent.getStringExtra(TAG_FILE_SEARCHED), mainMenu.isInTabSwitcher());
selectTab(webViewList.size() - 1);
}
if (intent.hasExtra(EXTRA_CHOSE_X_URL)) {
@@ -849,6 +849,9 @@ public abstract class CoreMainActivity extends BaseActivity
private void closeTab(int index) {
tempForUndo = webViewList.get(index);
webViewList.remove(index);
+ if (index <= currentWebViewIndex && currentWebViewIndex > 0) {
+ currentWebViewIndex--;
+ }
tabsAdapter.notifyItemRemoved(index);
tabsAdapter.notifyDataSetChanged();
Snackbar.make(tabSwitcherRoot, R.string.tab_closed, Snackbar.LENGTH_LONG)
@@ -1277,6 +1280,12 @@ public abstract class CoreMainActivity extends BaseActivity
painter.update(getCurrentWebView(), videoView);
}
+ private void openFullScreenIfEnabled() {
+ if (isInFullScreenMode()) {
+ openFullScreen();
+ }
+ }
+
private void updateBottomToolbarVisibility() {
if (checkNull(bottomToolbar)) {
if (!urlIsInvalid()
@@ -1367,6 +1376,13 @@ public abstract class CoreMainActivity extends BaseActivity
alertDialogShower.show(KiwixDialog.ContentsDrawerHint.INSTANCE);
}
+ private void openArticleInNewTab(String articleUrl) {
+ if (articleUrl != null) {
+ createNewTab();
+ loadUrlWithCurrentWebview(redirectOrOriginal(contentUrl(articleUrl)));
+ }
+ }
+
private void openArticle(String articleUrl) {
if (articleUrl != null) {
loadUrlWithCurrentWebview(redirectOrOriginal(contentUrl(articleUrl)));
@@ -1413,7 +1429,7 @@ public abstract class CoreMainActivity extends BaseActivity
tabRecyclerView.setAdapter(tabsAdapter);
}
- private void searchForTitle(String title) {
+ private void searchForTitle(String title, boolean openInNewTab) {
String articleUrl;
if (title.startsWith("A/")) {
@@ -1421,17 +1437,21 @@ public abstract class CoreMainActivity extends BaseActivity
} else {
articleUrl = zimReaderContainer.getPageUrlFromTitle(title);
}
- openArticle(articleUrl);
+ if (openInNewTab) {
+ openArticleInNewTab(articleUrl);
+ } else {
+ openArticle(articleUrl);
+ }
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
- hideTabSwitcher();
Log.i(TAG_KIWIX, "Intent data: " + data);
-
switch (requestCode) {
case MainMenuKt.REQUEST_FILE_SEARCH:
if (resultCode == RESULT_OK) {
+ boolean wasFromTabSwitcher = mainMenu.isInTabSwitcher();
+ hideTabSwitcher();
String title =
data.getStringExtra(TAG_FILE_SEARCHED).replace("", "").replace("", "");
boolean isSearchInText =
@@ -1446,7 +1466,7 @@ public abstract class CoreMainActivity extends BaseActivity
compatCallback.findAll();
compatCallback.showSoftInput();
} else {
- searchForTitle(title);
+ searchForTitle(title, wasFromTabSwitcher);
}
} else if (resultCode == RESULT_CANCELED) {
Log.w(TAG_KIWIX, "Search cancelled or exited");
@@ -1456,6 +1476,7 @@ public abstract class CoreMainActivity extends BaseActivity
}
break;
case REQUEST_PREFERENCES:
+ hideTabSwitcher();
if (resultCode == RESULT_RESTART) {
recreate();
}
@@ -1470,6 +1491,7 @@ public abstract class CoreMainActivity extends BaseActivity
case BOOKMARK_CHOSEN_REQUEST:
case REQUEST_FILE_SELECT:
case REQUEST_HISTORY_ITEM_CHOSEN:
+ hideTabSwitcher();
if (resultCode == RESULT_OK) {
if (data.getBooleanExtra(HistoryActivity.USER_CLEARED_HISTORY, false)) {
for (KiwixWebView kiwixWebView : webViewList) {
@@ -1542,9 +1564,7 @@ public abstract class CoreMainActivity extends BaseActivity
backToTopButton.hide();
}
- if (isInFullScreenMode()) {
- openFullScreen();
- }
+ openFullScreenIfEnabled();
painter.update(getCurrentWebView(), videoView);
}
@@ -1611,6 +1631,7 @@ public abstract class CoreMainActivity extends BaseActivity
presenter.saveHistory(history);
}
updateBottomToolbarVisibility();
+ openFullScreenIfEnabled();
painter.update(getCurrentWebView(), videoView);
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java
index e93fd1caa..f00effd23 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/CoreWebViewClient.java
@@ -34,8 +34,8 @@ import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer;
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil;
import static org.kiwix.kiwixmobile.core.main.CoreMainActivity.HOME_URL;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_EXTERNAL_LINK;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_KIWIX;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_EXTERNAL_LINK;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_KIWIX;
public abstract class CoreWebViewClient extends WebViewClient {
private static final HashMap DOCUMENT_TYPES = new HashMap() {{
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixTextToSpeech.java b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixTextToSpeech.java
index 24562b8eb..9d45376c6 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixTextToSpeech.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/KiwixTextToSpeech.java
@@ -42,7 +42,7 @@ import org.kiwix.kiwixmobile.core.extensions.ContextExtensionsKt;
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer;
import org.kiwix.kiwixmobile.core.utils.LanguageUtils;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_KIWIX;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_KIWIX;
public class KiwixTextToSpeech {
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/main/MainMenu.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/main/MainMenu.kt
index 1a268b34b..d062b9307 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/main/MainMenu.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/main/MainMenu.kt
@@ -32,8 +32,10 @@ import org.kiwix.kiwixmobile.core.history.HistoryActivity
import org.kiwix.kiwixmobile.core.reader.ZimFileReader
import org.kiwix.kiwixmobile.core.search.SearchActivity
import org.kiwix.kiwixmobile.core.settings.CoreSettingsActivity
-import org.kiwix.kiwixmobile.core.utils.Constants
-import org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_ZIM_FILE
+import org.kiwix.kiwixmobile.core.utils.EXTRA_ZIM_FILE
+import org.kiwix.kiwixmobile.core.utils.TAG_FROM_TAB_SWITCHER
+import org.kiwix.kiwixmobile.core.utils.REQUEST_HISTORY_ITEM_CHOSEN
+import org.kiwix.kiwixmobile.core.utils.REQUEST_PREFERENCES
const val REQUEST_FILE_SEARCH = 1236
@@ -91,6 +93,7 @@ class MainMenu(
private val help = menu.findItem(R.id.menu_help)
private val settings = menu.findItem(R.id.menu_settings)
private val supportKiwix = menu.findItem(R.id.menu_support_kiwix)
+ private var isInTabSwitcher: Boolean = false
init {
if (disableReadAloud) {
@@ -114,13 +117,13 @@ class MainMenu(
settings.menuItemClickListener {
activity.startActivityForResult(
internal(CoreSettingsActivity::class.java),
- Constants.REQUEST_PREFERENCES
+ REQUEST_PREFERENCES
)
}
history.menuItemClickListener {
activity.startActivityForResult(
activity.intent(),
- Constants.REQUEST_HISTORY_ITEM_CHOSEN
+ REQUEST_HISTORY_ITEM_CHOSEN
)
}
hostBooks.menuItemClickListener { menuClickListener.onHostBooksMenuClicked() }
@@ -155,10 +158,12 @@ class MainMenu(
}
fun showTabSwitcherOptions() {
- setVisibility(false, randomArticle, search, readAloud, addNote, fullscreen)
+ isInTabSwitcher = true
+ setVisibility(false, randomArticle, readAloud, addNote, fullscreen)
}
fun showWebViewOptions(urlIsValid: Boolean) {
+ isInTabSwitcher = false
fullscreen.isVisible = true
setVisibility(urlIsValid, randomArticle, search, readAloud, addNote)
}
@@ -171,6 +176,7 @@ class MainMenu(
activity.startActivityForResult(
activity.intent {
putExtra(EXTRA_ZIM_FILE, zimFileReader.zimFile.absolutePath)
+ putExtra(TAG_FROM_TAB_SWITCHER, isInTabSwitcher)
},
REQUEST_FILE_SEARCH
)
@@ -195,6 +201,8 @@ class MainMenu(
zimFileReader?.let(::navigateToSearch)
}
}
+
+ fun isInTabSwitcher(): Boolean = isInTabSwitcher
}
private fun MenuItem?.menuItemClickListener(function: (MenuItem) -> Unit) {
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimContentProvider.java b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimContentProvider.java
index 78ed5a8b6..7dd4cfc9c 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimContentProvider.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/reader/ZimContentProvider.java
@@ -31,7 +31,7 @@ import org.kiwix.kiwixlib.JNIKiwix;
import org.kiwix.kiwixmobile.core.CoreApp;
import org.kiwix.kiwixmobile.core.data.AbstractContentProvider;
-import static org.kiwix.kiwixmobile.core.utils.Constants.TAG_KIWIX;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_KIWIX;
public class ZimContentProvider extends AbstractContentProvider {
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchActivity.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchActivity.kt
index 1d129d880..4f1d4cd4e 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchActivity.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/SearchActivity.kt
@@ -50,6 +50,7 @@ import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ExitedSearch
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.Filter
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.OnItemClick
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.OnItemLongClick
+import org.kiwix.kiwixmobile.core.search.viewmodel.SearchOrigin.FromWebView
import org.kiwix.kiwixmobile.core.search.viewmodel.SearchViewModel
import org.kiwix.kiwixmobile.core.search.viewmodel.State
import org.kiwix.kiwixmobile.core.search.viewmodel.State.NoResults
@@ -131,15 +132,18 @@ class SearchActivity : BaseActivity() {
return true
}
- private fun render(state: State) = when (state) {
- is Results -> {
- searchViewAnimator.setDistinctDisplayedChild(0)
- searchAdapter.items = state.values
- render(state.searchString)
- }
- is NoResults -> {
- searchViewAnimator.setDistinctDisplayedChild(1)
- render(state.searchString)
+ private fun render(state: State) {
+ searchInTextMenuItem.isVisible = state.searchOrigin == FromWebView
+ when (state) {
+ is Results -> {
+ searchViewAnimator.setDistinctDisplayedChild(0)
+ searchAdapter.items = state.values
+ render(state.searchString)
+ }
+ is NoResults -> {
+ searchViewAnimator.setDistinctDisplayedChild(1)
+ render(state.searchString)
+ }
}
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/Action.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/Action.kt
index 564413864..f223d9a01 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/Action.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/Action.kt
@@ -30,6 +30,7 @@ sealed class Action {
data class OnItemClick(val searchListItem: SearchListItem) : Action()
data class OnItemLongClick(val searchListItem: SearchListItem) : Action()
data class Filter(val term: String) : Action()
+ data class ScreenWasStartedFrom(val searchOrigin: SearchOrigin) : Action()
data class ConfirmedDelete(val searchListItem: SearchListItem) : Action()
data class CreatedWithIntent(val intent: Intent?) : Action()
data class ActivityResultReceived(val requestCode: Int, val resultCode: Int, val data: Intent?) :
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModel.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModel.kt
index edc782223..a7d0aeffb 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModel.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModel.kt
@@ -22,7 +22,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
import io.reactivex.Flowable
import io.reactivex.disposables.CompositeDisposable
-import io.reactivex.functions.Function3
+import io.reactivex.functions.Function4
import io.reactivex.processors.BehaviorProcessor
import io.reactivex.processors.PublishProcessor
import io.reactivex.schedulers.Schedulers
@@ -40,7 +40,9 @@ import org.kiwix.kiwixmobile.core.search.viewmodel.Action.Filter
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.OnItemClick
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.OnItemLongClick
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ReceivedPromptForSpeechInput
+import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ScreenWasStartedFrom
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.StartSpeechInputFailed
+import org.kiwix.kiwixmobile.core.search.viewmodel.SearchOrigin.FromWebView
import org.kiwix.kiwixmobile.core.search.viewmodel.State.NoResults
import org.kiwix.kiwixmobile.core.search.viewmodel.State.Results
import org.kiwix.kiwixmobile.core.search.viewmodel.effects.DeleteRecentSearch
@@ -61,10 +63,11 @@ class SearchViewModel @Inject constructor(
private val searchResultGenerator: SearchResultGenerator
) : ViewModel() {
- val state = MutableLiveData().apply { value = NoResults("") }
+ val state = MutableLiveData().apply { value = NoResults("", FromWebView) }
val effects = PublishProcessor.create>()
val actions = PublishProcessor.create()
private val filter = BehaviorProcessor.createDefault("")
+ private val searchOrigin = BehaviorProcessor.createDefault(FromWebView)
private val compositeDisposable = CompositeDisposable()
@@ -93,6 +96,7 @@ class SearchViewModel @Inject constructor(
StartSpeechInputFailed -> effects.offer(ShowToast(R.string.speech_not_supported))
is ActivityResultReceived ->
effects.offer(ProcessActivityResult(it.requestCode, it.resultCode, it.data, actions))
+ is ScreenWasStartedFrom -> searchOrigin.offer(it.searchOrigin)
}
}.subscribe(
{},
@@ -125,19 +129,21 @@ class SearchViewModel @Inject constructor(
recentSearchDao.recentSearches(zimReaderContainer.id),
searchResultsFromZimReader(),
filter,
- Function3(this::reduce)
+ searchOrigin,
+ Function4(this::reduce)
).subscribe(state::postValue, Throwable::printStackTrace)
private fun reduce(
recentSearchResults: List,
zimSearchResults: List,
- searchString: String
+ searchString: String,
+ searchOrigin: SearchOrigin
) = when {
searchString.isNotEmpty() && zimSearchResults.isNotEmpty() ->
- Results(searchString, zimSearchResults)
+ Results(searchString, zimSearchResults, searchOrigin)
searchString.isEmpty() && recentSearchResults.isNotEmpty() ->
- Results(searchString, recentSearchResults)
- else -> NoResults(searchString)
+ Results(searchString, recentSearchResults, searchOrigin)
+ else -> NoResults(searchString, searchOrigin)
}
private fun searchResultsFromZimReader() = filter
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/State.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/State.kt
index 2546db534..dc7b4b93b 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/State.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/State.kt
@@ -20,9 +20,21 @@ package org.kiwix.kiwixmobile.core.search.viewmodel
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem
+enum class SearchOrigin {
+ FromWebView,
+ FromTabView
+}
+
sealed class State {
abstract val searchString: String
+ abstract val searchOrigin: SearchOrigin
- data class Results(override val searchString: String, val values: List) : State()
- data class NoResults(override val searchString: String) : State()
+ data class Results(
+ override val searchString: String,
+ val values: List,
+ override val searchOrigin: SearchOrigin
+ ) : State()
+
+ data class NoResults(override val searchString: String, override val searchOrigin: SearchOrigin) :
+ State()
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/OpenSearchItem.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/OpenSearchItem.kt
index d6726900d..62fd130b9 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/OpenSearchItem.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/OpenSearchItem.kt
@@ -23,13 +23,13 @@ import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import org.kiwix.kiwixmobile.core.base.SideEffect
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem
-import org.kiwix.kiwixmobile.core.utils.Constants
+import org.kiwix.kiwixmobile.core.utils.TAG_FILE_SEARCHED
data class OpenSearchItem(private val searchListItem: SearchListItem) : SideEffect {
override fun invokeWith(activity: AppCompatActivity) {
activity.setResult(
Activity.RESULT_OK,
- Intent().putExtra(Constants.TAG_FILE_SEARCHED, searchListItem.value)
+ Intent().putExtra(TAG_FILE_SEARCHED, searchListItem.value)
)
activity.finish()
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchInPreviousScreen.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchInPreviousScreen.kt
index 8746151eb..134fda1a8 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchInPreviousScreen.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchInPreviousScreen.kt
@@ -22,7 +22,7 @@ import android.app.Activity
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import org.kiwix.kiwixmobile.core.base.SideEffect
-import org.kiwix.kiwixmobile.core.utils.Constants
+import org.kiwix.kiwixmobile.core.utils.TAG_FILE_SEARCHED
data class SearchInPreviousScreen(private val searchString: String) : SideEffect {
override fun invokeWith(activity: AppCompatActivity) {
@@ -30,7 +30,7 @@ data class SearchInPreviousScreen(private val searchString: String) : SideEffect
Activity.RESULT_OK,
Intent().apply {
putExtra(EXTRA_SEARCH_IN_TEXT, true)
- putExtra(Constants.TAG_FILE_SEARCHED, searchString)
+ putExtra(TAG_FILE_SEARCHED, searchString)
}
)
activity.finish()
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchIntentProcessing.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchIntentProcessing.kt
index b12251845..fa5d6be79 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchIntentProcessing.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchIntentProcessing.kt
@@ -27,7 +27,12 @@ import org.kiwix.kiwixmobile.core.base.SideEffect
import org.kiwix.kiwixmobile.core.search.viewmodel.Action
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.Filter
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ReceivedPromptForSpeechInput
-import org.kiwix.kiwixmobile.core.utils.Constants
+import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ScreenWasStartedFrom
+import org.kiwix.kiwixmobile.core.search.viewmodel.SearchOrigin.FromTabView
+import org.kiwix.kiwixmobile.core.search.viewmodel.SearchOrigin.FromWebView
+import org.kiwix.kiwixmobile.core.utils.EXTRA_SEARCH
+import org.kiwix.kiwixmobile.core.utils.EXTRA_IS_WIDGET_VOICE
+import org.kiwix.kiwixmobile.core.utils.TAG_FROM_TAB_SWITCHER
data class SearchIntentProcessing(
private val intent: Intent?,
@@ -35,14 +40,20 @@ data class SearchIntentProcessing(
) : SideEffect {
@TargetApi(VERSION_CODES.M)
override fun invokeWith(activity: AppCompatActivity) {
- if (intent != null) {
- if (intent.hasExtra(Intent.EXTRA_PROCESS_TEXT)) {
- actions.offer(Filter(intent.getStringExtra(Intent.EXTRA_PROCESS_TEXT)))
+ intent?.let {
+ actions.offer(
+ ScreenWasStartedFrom(
+ if (it.getBooleanExtra(TAG_FROM_TAB_SWITCHER, false)) FromTabView
+ else FromWebView
+ )
+ )
+ if (it.hasExtra(Intent.EXTRA_PROCESS_TEXT)) {
+ actions.offer(Filter(it.getStringExtra(Intent.EXTRA_PROCESS_TEXT)))
}
- if (intent.hasExtra(Constants.EXTRA_SEARCH)) {
- actions.offer(Filter(intent.getStringExtra(Constants.EXTRA_SEARCH)))
+ if (intent.hasExtra(EXTRA_SEARCH)) {
+ actions.offer(Filter(intent.getStringExtra(EXTRA_SEARCH)))
}
- if (intent.getBooleanExtra(Constants.EXTRA_IS_WIDGET_VOICE, false)) {
+ if (intent.getBooleanExtra(EXTRA_IS_WIDGET_VOICE, false)) {
actions.offer(ReceivedPromptForSpeechInput)
}
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/settings/CorePrefsFragment.java b/core/src/main/java/org/kiwix/kiwixmobile/core/settings/CorePrefsFragment.java
index ca6bd5c44..759c344b6 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/settings/CorePrefsFragment.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/settings/CorePrefsFragment.java
@@ -55,7 +55,7 @@ import org.kiwix.kiwixmobile.core.utils.KiwixDialog;
import org.kiwix.kiwixmobile.core.utils.LanguageUtils;
import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil;
-import static org.kiwix.kiwixmobile.core.utils.Constants.RESULT_RESTART;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.RESULT_RESTART;
import static org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_NIGHT_MODE;
import static org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_STORAGE;
import static org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil.PREF_ZOOM;
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/settings/CoreSettingsActivity.java b/core/src/main/java/org/kiwix/kiwixmobile/core/settings/CoreSettingsActivity.java
index d1f3b4c96..e3fb22ccd 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/settings/CoreSettingsActivity.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/settings/CoreSettingsActivity.java
@@ -25,8 +25,8 @@ import androidx.appcompat.widget.Toolbar;
import org.kiwix.kiwixmobile.core.R;
import org.kiwix.kiwixmobile.core.base.BaseActivity;
-import static org.kiwix.kiwixmobile.core.utils.Constants.EXTRA_WEBVIEWS_LIST;
-import static org.kiwix.kiwixmobile.core.utils.Constants.RESULT_HISTORY_CLEARED;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.EXTRA_WEBVIEWS_LIST;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.RESULT_HISTORY_CLEARED;
public abstract class CoreSettingsActivity extends BaseActivity {
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/BookUtils.java b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/BookUtils.java
deleted file mode 100644
index 64ee81000..000000000
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/BookUtils.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Kiwix Android
- * Copyright (c) 2019 Kiwix
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-package org.kiwix.kiwixmobile.core.utils;
-
-import java.util.HashMap;
-import java.util.Locale;
-import java.util.Map;
-
-/**
- * Created by mhutti1 on 19/04/17.
- */
-
-public class BookUtils {
-
- public final Map localeMap;
-
- // Create a map of ISO 369-2 language codes
- public BookUtils() {
- String[] languages = Locale.getISOLanguages();
- localeMap = new HashMap<>(languages.length);
- for (String language : languages) {
- Locale locale = new Locale(language);
- localeMap.put(locale.getISO3Language(), locale);
- }
- }
-
- // Get the language from the language codes of the parsed xml stream
- public String getLanguage(String languageCode) {
-
- if (languageCode == null) {
- return "";
- }
-
- if (languageCode.length() == 2) {
- return new LanguageContainer(languageCode).getLanguageName();
- } else if (languageCode.length() == 3) {
- try {
- return localeMap.get(languageCode).getDisplayLanguage();
- } catch (Exception e) {
- return "";
- }
- }
- return "";
- }
-}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/BookUtils.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/BookUtils.kt
new file mode 100644
index 000000000..794e1017d
--- /dev/null
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/BookUtils.kt
@@ -0,0 +1,38 @@
+/*
+ * Kiwix Android
+ * Copyright (c) 2020 Kiwix
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+package org.kiwix.kiwixmobile.core.utils
+
+import java.util.Locale
+
+/**
+ * Created by mhutti1 on 19/04/17.
+ */
+class BookUtils {
+ val localeMap = Locale.getISOLanguages().map(::Locale).associateBy { it.isO3Language }
+
+ // Get the language from the language codes of the parsed xml stream
+ @Suppress("MagicNumber")
+ fun getLanguage(languageCode: String?): String {
+ return when {
+ languageCode == null -> ""
+ languageCode.length == 2 -> LanguageContainer(languageCode).languageName
+ languageCode.length == 3 -> localeMap[languageCode]?.displayLanguage.orEmpty()
+ else -> ""
+ }
+ }
+}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/Constants.java b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/Constants.java
deleted file mode 100644
index 0f0a902cf..000000000
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/Constants.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Kiwix Android
- * Copyright (c) 2019 Kiwix
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-package org.kiwix.kiwixmobile.core.utils;
-
-public final class Constants {
-
- public static final String TAG_KIWIX = "kiwix";
-
- public static final String CONTACT_EMAIL_ADDRESS = "android@kiwix.org";
-
- // Request stuff
-
- public static final int REQUEST_STORAGE_PERMISSION = 1;
-
- public static final int REQUEST_WRITE_STORAGE_PERMISSION_ADD_NOTE = 3;
-
- public static final int REQUEST_HISTORY_ITEM_CHOSEN = 99;
-
- public static final int REQUEST_FILE_SELECT = 1234;
-
- public static final int REQUEST_PREFERENCES = 1235;
-
- public static final int BOOKMARK_CHOSEN_REQUEST = 1;
-
- // Result stuff
- public static final int RESULT_RESTART = 1236;
-
- public static final int RESULT_HISTORY_CLEARED = 1239;
-
- // Tags
- public static final String TAG_FILE_SEARCHED = "searchedarticle";
-
- public static final String TAG_CURRENT_FILE = "currentzimfile";
-
- public static final String TAG_CURRENT_ARTICLES = "currentarticles";
-
- public static final String TAG_CURRENT_POSITIONS = "currentpositions";
-
- public static final String TAG_CURRENT_TAB = "currenttab";
-
- // Extras
- public static final String EXTRA_ZIM_FILE = "zimFile";
-
- public static final String EXTRA_CHOSE_X_URL = "choseXURL";
-
- public static final String EXTRA_CHOSE_X_TITLE = "choseXTitle";
-
- public static final String EXTRA_CHOSE_X_FILE = "choseXFile";
-
- public static final String EXTRA_EXTERNAL_LINK = "external_link";
-
- public static final String EXTRA_SEARCH = "search";
-
- public static final String EXTRA_IS_WIDGET_VOICE = "isWidgetVoice";
- public static final String HOTSPOT_SERVICE_CHANNEL_ID = "hotspotService";
-
- public static final String EXTRA_WEBVIEWS_LIST = "webviewsList";
-
- public static final String EXTRA_SEARCH_TEXT = "searchText";
-
- public static final String OLD_PROVIDER_DOMAIN = "org.kiwix.zim.base";
-}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/Constants.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/Constants.kt
new file mode 100644
index 000000000..83ca174c0
--- /dev/null
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/Constants.kt
@@ -0,0 +1,53 @@
+/*
+ * Kiwix Android
+ * Copyright (c) 2020 Kiwix
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ *
+ */
+package org.kiwix.kiwixmobile.core.utils
+
+const val TAG_KIWIX = "kiwix"
+const val CONTACT_EMAIL_ADDRESS = "android@kiwix.org"
+
+// Request stuff
+const val REQUEST_STORAGE_PERMISSION = 1
+const val REQUEST_WRITE_STORAGE_PERMISSION_ADD_NOTE = 3
+const val REQUEST_HISTORY_ITEM_CHOSEN = 99
+const val REQUEST_FILE_SELECT = 1234
+const val REQUEST_PREFERENCES = 1235
+const val BOOKMARK_CHOSEN_REQUEST = 1
+
+// Result stuff
+const val RESULT_RESTART = 1236
+const val RESULT_HISTORY_CLEARED = 1239
+
+// Tags
+const val TAG_FILE_SEARCHED = "searchedarticle"
+const val TAG_CURRENT_FILE = "currentzimfile"
+const val TAG_CURRENT_ARTICLES = "currentarticles"
+const val TAG_CURRENT_POSITIONS = "currentpositions"
+const val TAG_CURRENT_TAB = "currenttab"
+const val TAG_FROM_TAB_SWITCHER = "fromtabswitcher"
+
+// Extras
+const val EXTRA_ZIM_FILE = "zimFile"
+const val EXTRA_CHOSE_X_URL = "choseXURL"
+const val EXTRA_CHOSE_X_TITLE = "choseXTitle"
+const val EXTRA_CHOSE_X_FILE = "choseXFile"
+const val EXTRA_EXTERNAL_LINK = "external_link"
+const val EXTRA_SEARCH = "search"
+const val EXTRA_IS_WIDGET_VOICE = "isWidgetVoice"
+const val HOTSPOT_SERVICE_CHANNEL_ID = "hotspotService"
+const val EXTRA_WEBVIEWS_LIST = "webviewsList"
+const val OLD_PROVIDER_DOMAIN = "org.kiwix.zim.base"
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/KiwixDialog.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/KiwixDialog.kt
index 47dacfed7..fa9004eab 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/KiwixDialog.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/KiwixDialog.kt
@@ -110,16 +110,14 @@ sealed class KiwixDialog(
R.string.did_you_know,
R.string.hint_contents_drawer_message,
R.string.got_it,
- null,
- icon = R.drawable.icon_question
+ null
)
object ExternalLinkPopup : KiwixDialog(
R.string.external_link_popup_dialog_title,
R.string.external_link_popup_dialog_message,
- android.R.string.yes,
- android.R.string.no,
- icon = R.drawable.ic_warning,
+ R.string.yes,
+ R.string.no,
neutralMessage = R.string.do_not_ask_anymore
)
@@ -141,17 +139,15 @@ sealed class KiwixDialog(
object ClearAllHistory : KiwixDialog(
R.string.clear_all_history_dialog_title,
R.string.clear_recent_and_tabs_history_dialog,
- R.string.yes,
- R.string.no,
- icon = R.drawable.ic_warning
+ positiveMessage = R.string.delete,
+ negativeMessage = R.string.cancel
)
object ClearAllNotes : KiwixDialog(
R.string.delete_notes_confirmation_msg,
message = null,
- positiveMessage = R.string.yes,
- negativeMessage = R.string.no,
- icon = R.drawable.ic_warning
+ positiveMessage = R.string.delete,
+ negativeMessage = R.string.cancel
)
data class OpenCredits(val customGetView: (() -> View)?) : KiwixDialog(
@@ -187,17 +183,17 @@ sealed class KiwixDialog(
}
object DeleteHistory : KiwixDialog(
- null,
R.string.delete_history,
- R.string.yes,
- R.string.no
+ null,
+ positiveMessage = R.string.delete,
+ negativeMessage = R.string.cancel
)
object DeleteBookmarks : KiwixDialog(
- null,
R.string.delete_bookmarks,
- R.string.yes,
- R.string.no
+ null,
+ positiveMessage = R.string.delete,
+ negativeMessage = R.string.cancel
)
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt
index bb55a3ecd..609253c85 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/LanguageUtils.kt
@@ -32,7 +32,6 @@ import android.view.View
import android.widget.TextView
import androidx.core.os.ConfigurationCompat
import org.kiwix.kiwixmobile.core.extensions.locale
-import org.kiwix.kiwixmobile.core.utils.Constants.TAG_KIWIX
import org.kiwix.kiwixmobile.core.utils.files.FileUtils
import java.text.Collator
import java.util.Locale
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/NetworkUtils.java b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/NetworkUtils.java
index bb9a0f2e6..fb48135a6 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/NetworkUtils.java
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/NetworkUtils.java
@@ -25,6 +25,8 @@ import android.util.Log;
import java.util.UUID;
import org.kiwix.kiwixmobile.core.R;
+import static org.kiwix.kiwixmobile.core.utils.ConstantsKt.TAG_KIWIX;
+
public class NetworkUtils {
/**
* check availability of any network
@@ -115,7 +117,7 @@ public class NetworkUtils {
details = details.trim().replaceAll(" +", " ");
return details;
} catch (Exception e) {
- Log.d(Constants.TAG_KIWIX, "Context invalid url: " + url, e);
+ Log.d(TAG_KIWIX, "Context invalid url: " + url, e);
return "";
}
}
diff --git a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/UpdateUtils.kt b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/UpdateUtils.kt
index 90b03054f..b992f16ac 100644
--- a/core/src/main/java/org/kiwix/kiwixmobile/core/utils/UpdateUtils.kt
+++ b/core/src/main/java/org/kiwix/kiwixmobile/core/utils/UpdateUtils.kt
@@ -19,7 +19,6 @@
package org.kiwix.kiwixmobile.core.utils
import org.kiwix.kiwixmobile.core.CoreApp
-import org.kiwix.kiwixmobile.core.utils.Constants.OLD_PROVIDER_DOMAIN
object UpdateUtils {
@JvmStatic
diff --git a/core/src/main/res/drawable-night/ic_warning.xml b/core/src/main/res/drawable-night/ic_warning.xml
deleted file mode 100644
index e85404bdf..000000000
--- a/core/src/main/res/drawable-night/ic_warning.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/core/src/main/res/drawable/ic_warning.xml b/core/src/main/res/drawable/ic_warning.xml
deleted file mode 100644
index 5a8ad888a..000000000
--- a/core/src/main/res/drawable/ic_warning.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/core/src/main/res/drawable/icon_question.xml b/core/src/main/res/drawable/icon_question.xml
deleted file mode 100644
index 38dc85add..000000000
--- a/core/src/main/res/drawable/icon_question.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
diff --git a/core/src/main/res/layout/item_book.xml b/core/src/main/res/layout/item_book.xml
index 5d2127aa8..3acb37832 100644
--- a/core/src/main/res/layout/item_book.xml
+++ b/core/src/main/res/layout/item_book.xml
@@ -1,125 +1,129 @@
-
+ android:layout_margin="@dimen/card_margin">
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
+
+
+
diff --git a/core/src/main/res/layout/item_help.xml b/core/src/main/res/layout/item_help.xml
index 0ba2de417..223aa5400 100644
--- a/core/src/main/res/layout/item_help.xml
+++ b/core/src/main/res/layout/item_help.xml
@@ -34,6 +34,7 @@
android:layout_height="wrap_content"
android:paddingTop="@dimen/activity_vertical_margin"
android:visibility="gone"
+ android:textColor="@color/text_secondary"
app:layout_constraintTop_toBottomOf="@id/item_help_title"
tools:text="@string/help_3"
tools:visibility="visible" />
diff --git a/core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
index 501c69260..036d09bc5 100644
--- a/core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
+++ b/core/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -1,5 +1,5 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/core/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/core/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
index 501c69260..036d09bc5 100644
--- a/core/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
+++ b/core/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -1,5 +1,5 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/core/src/main/res/mipmap-hdpi/ic_launcher.png b/core/src/main/res/mipmap-hdpi/ic_launcher.png
index becdbf2af..906174829 100644
Binary files a/core/src/main/res/mipmap-hdpi/ic_launcher.png and b/core/src/main/res/mipmap-hdpi/ic_launcher.png differ
diff --git a/core/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/core/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
index 9ca465aa4..a66b7d59d 100644
Binary files a/core/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and b/core/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ
diff --git a/core/src/main/res/mipmap-hdpi/ic_launcher_round.png b/core/src/main/res/mipmap-hdpi/ic_launcher_round.png
index d6810c7e7..b2db6fba6 100644
Binary files a/core/src/main/res/mipmap-hdpi/ic_launcher_round.png and b/core/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
diff --git a/core/src/main/res/mipmap-mdpi/ic_launcher.png b/core/src/main/res/mipmap-mdpi/ic_launcher.png
index eb37ddec8..5a1e4908d 100644
Binary files a/core/src/main/res/mipmap-mdpi/ic_launcher.png and b/core/src/main/res/mipmap-mdpi/ic_launcher.png differ
diff --git a/core/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/core/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
index 003746dc5..21ea29a10 100644
Binary files a/core/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and b/core/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ
diff --git a/core/src/main/res/mipmap-mdpi/ic_launcher_round.png b/core/src/main/res/mipmap-mdpi/ic_launcher_round.png
index 4e84c2501..cfc0c2e3a 100644
Binary files a/core/src/main/res/mipmap-mdpi/ic_launcher_round.png and b/core/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
diff --git a/core/src/main/res/mipmap-xhdpi/ic_launcher.png b/core/src/main/res/mipmap-xhdpi/ic_launcher.png
index 3f72169c1..1478ee37e 100644
Binary files a/core/src/main/res/mipmap-xhdpi/ic_launcher.png and b/core/src/main/res/mipmap-xhdpi/ic_launcher.png differ
diff --git a/core/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/core/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
index 44765ca00..835d7dd33 100644
Binary files a/core/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and b/core/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ
diff --git a/core/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/core/src/main/res/mipmap-xhdpi/ic_launcher_round.png
index 9af07929d..87eb0d6f1 100644
Binary files a/core/src/main/res/mipmap-xhdpi/ic_launcher_round.png and b/core/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
diff --git a/core/src/main/res/mipmap-xxhdpi/ic_launcher.png b/core/src/main/res/mipmap-xxhdpi/ic_launcher.png
index 72e9a0ff9..f1519b876 100644
Binary files a/core/src/main/res/mipmap-xxhdpi/ic_launcher.png and b/core/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
diff --git a/core/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/core/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
index 134bbfc23..29f34cb5f 100644
Binary files a/core/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and b/core/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ
diff --git a/core/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/core/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
index 0e3a8b272..9f1ebf21d 100644
Binary files a/core/src/main/res/mipmap-xxhdpi/ic_launcher_round.png and b/core/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
diff --git a/core/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/core/src/main/res/mipmap-xxxhdpi/ic_launcher.png
index 45e71f146..fe6985753 100644
Binary files a/core/src/main/res/mipmap-xxxhdpi/ic_launcher.png and b/core/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
diff --git a/core/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/core/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
index f8bdfe864..55b798d84 100644
Binary files a/core/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and b/core/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ
diff --git a/core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
index 748d7de8c..3c8396309 100644
Binary files a/core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png and b/core/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
diff --git a/core/src/main/res/values-night/color.xml b/core/src/main/res/values-night/color.xml
index d0ea68bcc..890805f3e 100644
--- a/core/src/main/res/values-night/color.xml
+++ b/core/src/main/res/values-night/color.xml
@@ -13,4 +13,7 @@
@color/white
@color/white
@color/white
+
+ @color/gray500
+ @color/gray700
diff --git a/core/src/main/res/values/colors.xml b/core/src/main/res/values/colors.xml
index 0e9fd259f..ade3bc7cb 100644
--- a/core/src/main/res/values/colors.xml
+++ b/core/src/main/res/values/colors.xml
@@ -12,7 +12,10 @@
#1565c0
#f06292
#4285F4
-
+ #9E9E9E
+ #616161
+ @color/gray700
+ @color/gray500
diff --git a/core/src/main/res/values/dimens.xml b/core/src/main/res/values/dimens.xml
index d1a064931..08217b4c6 100644
--- a/core/src/main/res/values/dimens.xml
+++ b/core/src/main/res/values/dimens.xml
@@ -27,4 +27,6 @@
- 0.38
- 0.70
+
+ 5dp
diff --git a/core/src/main/res/values/ic_launcher_background.xml b/core/src/main/res/values/ic_launcher_background.xml
index 99cea76cc..c5d5899fd 100644
--- a/core/src/main/res/values/ic_launcher_background.xml
+++ b/core/src/main/res/values/ic_launcher_background.xml
@@ -1,4 +1,4 @@
- #FFFFFF
-
+ #FFFFFF
+
\ No newline at end of file
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index ef5257e57..924691b8d 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -73,10 +73,11 @@
All History Cleared
Clear bookmarks
All Bookmarks Cleared
- Clear All History
+ Clear All History?
Share
Share ZIM files with:
Delete
+ Cancel
Recent search removed
You can swipe left to view the contents of this article
Got it
@@ -153,7 +154,7 @@
Yesterday
Warn when entering external links
Display popup to warn about additional costs or not working in offline links.
- Entering External Link
+ Entering External Link!
You are entering an external link. This could lead to additional costs for data transfer or will just not work when you are offline. Do you want to continue?
Do not ask anymore
Selected languages:
diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntityTest.java b/core/src/test/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntityTest.java
deleted file mode 100644
index fa67611a6..000000000
--- a/core/src/test/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntityTest.java
+++ /dev/null
@@ -1,109 +0,0 @@
-/*
- * Kiwix Android
- * Copyright (c) 2019 Kiwix
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- *
- */
-package org.kiwix.kiwixmobile.core.entity;
-
-import org.hamcrest.CoreMatchers;
-import org.hamcrest.Description;
-import org.hamcrest.Matcher;
-import org.hamcrest.TypeSafeMatcher;
-import org.junit.Assert;
-import org.junit.jupiter.api.Test;
-import org.simpleframework.xml.Serializer;
-import org.simpleframework.xml.core.Persister;
-
-public class MetaLinkNetworkEntityTest {
- private static Matcher url(
- String location, int priority, String value) {
- return new UrlMatcher(location, priority, value);
- }
-
- @Test
- public void testDeserialize() throws Exception {
- Serializer serializer = new Persister();
- final MetaLinkNetworkEntity result = serializer.read(
- MetaLinkNetworkEntity.class,
- MetaLinkNetworkEntityTest.class.getClassLoader().getResourceAsStream(
- "wikipedia_af_all_nopic_2016-05.zim.meta4"
- ));
- Assert.assertThat(result.getUrls().size(), CoreMatchers.is(5));
- Assert.assertThat(result.getUrls(), CoreMatchers.hasItems(
- url("us", 1,
- "http://ftpmirror.your.org/pub/kiwix/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim"),
- url("gb", 2,
- "http://www.mirrorservice.org/sites/download.kiwix.org/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim"),
- url("us", 3,
- "http://download.wikimedia.org/kiwix/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim"),
- url("de", 4,
- "http://mirror.netcologne.de/kiwix/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim"),
- url("fr", 5, "http://mirror3.kiwix.org/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim")
- ));
-
- // Basic file attributes
- Assert.assertThat(result.getFile().getName(),
- CoreMatchers.is("wikipedia_af_all_nopic_2016-05.zim"));
- Assert.assertThat(result.getFile().getSize(), CoreMatchers.is(63973123L));
-
- // File hashes
- Assert.assertThat(result.getFile().getHash("md5"),
- CoreMatchers.is("6f06866b61c4a921b57f28cfd4307220"));
- Assert.assertThat(result.getFile().getHash("sha-1"),
- CoreMatchers.is("8aac4c7f89e3cdd45b245695e19ecde5aac59593"));
- Assert.assertThat(result.getFile().getHash("sha-256"),
- CoreMatchers.is("83126775538cf588a85edb10db04d6e012321a2025278a08a084b258849b3a5c"));
-
- // Pieces
- Assert.assertThat(result.getFile().getPieceHashType(), CoreMatchers.is("sha-1"));
- Assert.assertThat(result.getFile().getPieceLength(), CoreMatchers.is(1048576));
-
- // Check only the first and the last elements of the piece hashes
- Assert.assertThat(result.getFile().getPieceHashes().size(), CoreMatchers.is(62));
- Assert.assertThat(result.getFile().getPieceHashes().get(0),
- CoreMatchers.is("f36815d904d4fd563aaef4ee6ef2600fb1fd70b2"));
- Assert.assertThat(result.getFile().getPieceHashes().get(61),
- CoreMatchers.is("8055e515aa6e78f2810bbb0e0cd07330838b8920"));
- }
-
- /**
- * Implemented as a matcher only to avoid putting extra code into {@code MetaLinkNetworkEntity}.
- * However in case {@code equals} and {@code hashCode} methods are added to
- * {@code MetaLinkNetworkEntity.Url} class itself, this Matcher should be deleted.
- */
- private static class UrlMatcher extends TypeSafeMatcher {
- private String location;
- private int priority;
- private String value;
-
- public UrlMatcher(String location, int priority, String value) {
- this.location = location;
- this.priority = priority;
- this.value = value;
- }
-
- @Override
- protected boolean matchesSafely(MetaLinkNetworkEntity.Url item) {
- return location.equals(item.getLocation()) && priority == item.getPriority()
- && value.equals(item.getValue());
- }
-
- @Override
- public void describeTo(Description description) {
- description.appendText(String.format(
- "Url (location=%s, priority=%d, value=%s", location, priority, value));
- }
- }
-}
diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntityTest.kt b/core/src/test/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntityTest.kt
new file mode 100644
index 000000000..f4749eca9
--- /dev/null
+++ b/core/src/test/java/org/kiwix/kiwixmobile/core/entity/MetaLinkNetworkEntityTest.kt
@@ -0,0 +1,133 @@
+/*
+* Kiwix Android
+* Copyright (c) 2019 Kiwix
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program. If not, see .
+*
+*/
+package org.kiwix.kiwixmobile.core.entity
+
+import org.assertj.core.api.AbstractAssert
+import org.assertj.core.api.Assertions.assertThat
+import org.junit.jupiter.api.Test
+import org.simpleframework.xml.core.Persister
+
+class MetaLinkNetworkEntityTest {
+ @Test
+ @Throws(Exception::class)
+ fun testDeserialize() {
+ val serializer = Persister()
+ val result = serializer.read(
+ MetaLinkNetworkEntity::class.java,
+ MetaLinkNetworkEntityTest::class.java.classLoader.getResourceAsStream(
+ "wikipedia_af_all_nopic_2016-05.zim.meta4"
+ )
+ )
+
+ MetaLinkNetworkEntityUrlAssert(result.urls).hasItems(
+ listOf(
+ DummyUrl(
+ "us",
+ 1,
+ "http://ftpmirror.your.org/pub/kiwix/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim"
+ ),
+ DummyUrl(
+ "gb",
+ 2,
+ "http://www.mirrorservice.org/sites/download.kiwix.org/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim" // ktlint-disable
+ ),
+ DummyUrl(
+ "us",
+ 3,
+ "http://download.wikimedia.org/kiwix/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim"
+ ),
+ DummyUrl(
+ "de",
+ 4,
+ "http://mirror.netcologne.de/kiwix/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim"
+ ),
+ DummyUrl(
+ "fr",
+ 5,
+ "http://mirror3.kiwix.org/zim/wikipedia/wikipedia_af_all_nopic_2016-05.zim"
+ )
+ )
+ )
+
+ // Basic file attributes
+ assertThat(result.getFile().getName()).isEqualTo("wikipedia_af_all_nopic_2016-05.zim")
+
+ assertThat(result.getFile().size).isEqualTo(63973123L)
+
+ // File hashes
+ assertThat(result.getFile().getHash("md5")).isEqualTo("6f06866b61c4a921b57f28cfd4307220")
+ assertThat(
+ result.getFile().getHash("sha-1")
+ ).isEqualTo("8aac4c7f89e3cdd45b245695e19ecde5aac59593")
+ assertThat(
+ result.getFile().getHash("sha-256")
+ ).isEqualTo("83126775538cf588a85edb10db04d6e012321a2025278a08a084b258849b3a5c")
+
+ // Pieces
+ assertThat(result.getFile().pieceHashType).isEqualTo("sha-1")
+ assertThat(result.getFile().pieceLength).isEqualTo(1048576)
+
+ // Check only the first and the last elements of the piece hashes
+ assertThat(result.getFile().pieceHashes.size).isEqualTo(62)
+ assertThat(
+ result.getFile().pieceHashes[0]
+ )
+ .isEqualTo("f36815d904d4fd563aaef4ee6ef2600fb1fd70b2")
+ assertThat(
+ result.getFile().pieceHashes[61]
+ )
+ .isEqualTo("8055e515aa6e78f2810bbb0e0cd07330838b8920")
+ }
+
+ data class DummyUrl(val location: String, val priority: Int, val value: String)
+
+ /**
+ * Implemented as a matcher only to avoid putting extra code into {@code MetaLinkNetworkEntity}.
+ * However in case {@code equals} and {@code hashCode} methods are added to
+ * {@code MetaLinkNetworkEntity.Url} class itself, this Matcher should be deleted.
+ */
+ class MetaLinkNetworkEntityUrlAssert(
+ actual: List
+ ) :
+ AbstractAssert>(
+ actual,
+ MetaLinkNetworkEntityUrlAssert::class.java
+ ) {
+ private fun intersectionWith(
+ first: List,
+ second: List,
+ function: (S, T) -> Boolean
+ ): Boolean {
+ val filtered = first.filter { a -> second.any { b -> function(a, b) } }
+ if (filtered.isNotEmpty())
+ return true
+ return false
+ }
+
+ fun hasItems(items: List): Boolean {
+ return intersectionWith(actual, items) { a, b ->
+ a.location == b.location && a.priority == b.priority && a.value == b.value
+ }
+ }
+ }
+
+ companion object {
+ fun assertThat(actual: List): MetaLinkNetworkEntityUrlAssert =
+ MetaLinkNetworkEntityUrlAssert(actual)
+ }
+}
diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModelTest.kt b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModelTest.kt
index 7f51f9756..0ab4deb8a 100644
--- a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModelTest.kt
+++ b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/SearchViewModelTest.kt
@@ -47,6 +47,9 @@ import org.kiwix.kiwixmobile.core.search.viewmodel.Action.OnItemClick
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.OnItemLongClick
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ReceivedPromptForSpeechInput
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.StartSpeechInputFailed
+import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ScreenWasStartedFrom
+import org.kiwix.kiwixmobile.core.search.viewmodel.SearchOrigin.FromTabView
+import org.kiwix.kiwixmobile.core.search.viewmodel.SearchOrigin.FromWebView
import org.kiwix.kiwixmobile.core.search.viewmodel.State.NoResults
import org.kiwix.kiwixmobile.core.search.viewmodel.State.Results
import org.kiwix.kiwixmobile.core.search.viewmodel.effects.DeleteRecentSearch
@@ -98,19 +101,21 @@ internal class SearchViewModelTest {
inner class StateTests {
@Test
fun `initial state is Initialising`() {
- viewModel.state.test().assertValue(NoResults(""))
+ viewModel.state.test().assertValue(NoResults("", FromWebView))
}
@Test
fun `non empty search term with search results shows Results`() {
val item = ZimSearchResultListItem("")
val searchTerm = "searchTerm"
+ val searchOrigin = FromWebView
emissionOf(
searchTerm = searchTerm,
searchResults = listOf(item),
- databaseResults = listOf(RecentSearchListItem(""))
+ databaseResults = listOf(RecentSearchListItem("")),
+ searchOrigin = searchOrigin
)
- resultsIn(Results(searchTerm, listOf(item)))
+ resultsIn(Results(searchTerm, listOf(item), searchOrigin))
}
@Test
@@ -118,9 +123,10 @@ internal class SearchViewModelTest {
emissionOf(
searchTerm = "a",
searchResults = emptyList(),
- databaseResults = listOf(RecentSearchListItem(""))
+ databaseResults = listOf(RecentSearchListItem("")),
+ searchOrigin = FromWebView
)
- resultsIn(NoResults("a"))
+ resultsIn(NoResults("a", FromWebView))
}
@Test
@@ -129,9 +135,10 @@ internal class SearchViewModelTest {
emissionOf(
searchTerm = "",
searchResults = listOf(ZimSearchResultListItem("")),
- databaseResults = listOf(item)
+ databaseResults = listOf(item),
+ searchOrigin = FromWebView
)
- resultsIn(Results("", listOf(item)))
+ resultsIn(Results("", listOf(item), FromWebView))
}
@Test
@@ -139,9 +146,10 @@ internal class SearchViewModelTest {
emissionOf(
searchTerm = "",
searchResults = listOf(ZimSearchResultListItem("")),
- databaseResults = emptyList()
+ databaseResults = emptyList(),
+ searchOrigin = FromWebView
)
- resultsIn(NoResults(""))
+ resultsIn(NoResults("", FromWebView))
}
@Test
@@ -151,12 +159,16 @@ internal class SearchViewModelTest {
emissionOf(
searchTerm = searchString,
searchResults = listOf(item),
- databaseResults = emptyList()
+ databaseResults = emptyList(),
+ searchOrigin = FromWebView
)
viewModel.actions.offer(Filter(searchString))
viewModel.state.test()
.also { testScheduler.advanceTimeBy(100, MILLISECONDS) }
- .assertValueHistory(NoResults(""), Results(searchString, listOf(item)))
+ .assertValueHistory(
+ NoResults("", FromWebView),
+ Results(searchString, listOf(item), FromWebView)
+ )
}
@Test
@@ -165,16 +177,40 @@ internal class SearchViewModelTest {
emissionOf(
searchTerm = "a",
searchResults = listOf(item),
- databaseResults = emptyList()
+ databaseResults = emptyList(),
+ searchOrigin = FromWebView
)
emissionOf(
searchTerm = "b",
searchResults = listOf(item),
- databaseResults = emptyList()
+ databaseResults = emptyList(),
+ searchOrigin = FromWebView
)
viewModel.state.test()
.also { testScheduler.advanceTimeBy(100, MILLISECONDS) }
- .assertValueHistory(NoResults(""), Results("b", listOf(item)))
+ .assertValueHistory(NoResults("", FromWebView), Results("b", listOf(item), FromWebView))
+ }
+
+ @Test
+ fun `webView search origin leads to webView in NoResults`() {
+ emissionOf(
+ searchTerm = "",
+ searchResults = listOf(ZimSearchResultListItem("")),
+ databaseResults = emptyList(),
+ searchOrigin = FromWebView
+ )
+ resultsIn(NoResults("", FromWebView))
+ }
+
+ @Test
+ fun `tabView search origin leads to tabView in Results`() {
+ emissionOf(
+ searchTerm = "",
+ searchResults = listOf(ZimSearchResultListItem("")),
+ databaseResults = emptyList(),
+ searchOrigin = FromTabView
+ )
+ resultsIn(NoResults("", FromTabView))
}
}
@@ -272,10 +308,12 @@ internal class SearchViewModelTest {
private fun emissionOf(
searchTerm: String,
searchResults: List,
- databaseResults: List
+ databaseResults: List,
+ searchOrigin: SearchOrigin
) {
every { searchResultGenerator.generateSearchResults(searchTerm) } returns searchResults
viewModel.actions.offer(Filter(searchTerm))
recentsFromDb.offer(databaseResults)
+ viewModel.actions.offer(ScreenWasStartedFrom(searchOrigin))
}
}
diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/OpenSearchItemTest.kt b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/OpenSearchItemTest.kt
index 29f409a1a..22997ebb2 100644
--- a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/OpenSearchItemTest.kt
+++ b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/OpenSearchItemTest.kt
@@ -27,7 +27,7 @@ import io.mockk.mockkConstructor
import io.mockk.verify
import org.junit.jupiter.api.Test
import org.kiwix.kiwixmobile.core.search.adapter.SearchListItem.RecentSearchListItem
-import org.kiwix.kiwixmobile.core.utils.Constants
+import org.kiwix.kiwixmobile.core.utils.TAG_FILE_SEARCHED
internal class OpenSearchItemTest {
@@ -38,7 +38,7 @@ internal class OpenSearchItemTest {
mockkConstructor(Intent::class)
val intent = mockk()
every {
- anyConstructed().putExtra(Constants.TAG_FILE_SEARCHED, searchListItem.value)
+ anyConstructed().putExtra(TAG_FILE_SEARCHED, searchListItem.value)
} returns intent
OpenSearchItem(searchListItem).invokeWith(activity)
verify {
diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchInPreviousScreenTest.kt b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchInPreviousScreenTest.kt
index bf04f26d0..8ec894411 100644
--- a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchInPreviousScreenTest.kt
+++ b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchInPreviousScreenTest.kt
@@ -25,7 +25,7 @@ import io.mockk.mockk
import io.mockk.mockkConstructor
import io.mockk.verify
import org.junit.jupiter.api.Test
-import org.kiwix.kiwixmobile.core.utils.Constants
+import org.kiwix.kiwixmobile.core.utils.TAG_FILE_SEARCHED
internal class SearchInPreviousScreenTest {
@@ -37,7 +37,7 @@ internal class SearchInPreviousScreenTest {
SearchInPreviousScreen(searchString).invokeWith(activity)
verify {
anyConstructed().putExtra(SearchInPreviousScreen.EXTRA_SEARCH_IN_TEXT, true)
- anyConstructed().putExtra(Constants.TAG_FILE_SEARCHED, searchString)
+ anyConstructed().putExtra(TAG_FILE_SEARCHED, searchString)
activity.setResult(Activity.RESULT_OK, any())
activity.finish()
}
diff --git a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchIntentProcessingTest.kt b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchIntentProcessingTest.kt
index 8d91a2e8b..b4d25aa85 100644
--- a/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchIntentProcessingTest.kt
+++ b/core/src/test/java/org/kiwix/kiwixmobile/core/search/viewmodel/effects/SearchIntentProcessingTest.kt
@@ -32,7 +32,12 @@ import org.junit.jupiter.api.Test
import org.kiwix.kiwixmobile.core.search.viewmodel.Action
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.Filter
import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ReceivedPromptForSpeechInput
-import org.kiwix.kiwixmobile.core.utils.Constants
+import org.kiwix.kiwixmobile.core.search.viewmodel.Action.ScreenWasStartedFrom
+import org.kiwix.kiwixmobile.core.search.viewmodel.SearchOrigin.FromTabView
+import org.kiwix.kiwixmobile.core.search.viewmodel.SearchOrigin.FromWebView
+import org.kiwix.kiwixmobile.core.utils.TAG_FROM_TAB_SWITCHER
+import org.kiwix.kiwixmobile.core.utils.EXTRA_SEARCH
+import org.kiwix.kiwixmobile.core.utils.EXTRA_IS_WIDGET_VOICE
internal class SearchIntentProcessingTest {
@@ -59,22 +64,49 @@ internal class SearchIntentProcessingTest {
every { intent.hasExtra(Intent.EXTRA_PROCESS_TEXT) } returns true
every { intent.getStringExtra(Intent.EXTRA_PROCESS_TEXT) } returns extra
SearchIntentProcessing(intent, actions).invokeWith(activity)
- verifySequence { actions.offer(Filter(extra)) }
+ verifySequence {
+ actions.offer(any())
+ actions.offer(Filter(extra))
+ }
}
@Test
fun `invoke with offers action when EXTRA_SEARCH present`() {
val extra = ""
- every { intent.hasExtra(Constants.EXTRA_SEARCH) } returns true
- every { intent.getStringExtra(Constants.EXTRA_SEARCH) } returns extra
+ every { intent.hasExtra(EXTRA_SEARCH) } returns true
+ every { intent.getStringExtra(EXTRA_SEARCH) } returns extra
SearchIntentProcessing(intent, actions).invokeWith(activity)
- verifySequence { actions.offer(Filter(extra)) }
+ verifySequence {
+ actions.offer(any())
+ actions.offer(Filter(extra))
+ }
}
@Test
fun `invoke with offers action when EXTRA_IS_WIDGET_VOICE present`() {
- every { intent.getBooleanExtra(Constants.EXTRA_IS_WIDGET_VOICE, false) } returns true
+ every { intent.getBooleanExtra(EXTRA_IS_WIDGET_VOICE, false) } returns true
SearchIntentProcessing(intent, actions).invokeWith(activity)
- verifySequence { actions.offer(ReceivedPromptForSpeechInput) }
+ verifySequence {
+ actions.offer(any())
+ actions.offer(ReceivedPromptForSpeechInput)
+ }
+ }
+
+ @Test
+ fun `invoke with offers action when TAG_FROM_TAB_SWITCHER present`() {
+ every { intent.getBooleanExtra(TAG_FROM_TAB_SWITCHER, false) } returns true
+ SearchIntentProcessing(intent, actions).invokeWith(activity)
+ verifySequence {
+ actions.offer(ScreenWasStartedFrom(FromTabView))
+ }
+ }
+
+ @Test
+ fun `invoke with offers action when TAG_FROM_TAB_SWITCHER not present`() {
+ every { intent.getBooleanExtra(TAG_FROM_TAB_SWITCHER, false) } returns false
+ SearchIntentProcessing(intent, actions).invokeWith(activity)
+ verifySequence {
+ actions.offer(ScreenWasStartedFrom(FromWebView))
+ }
}
}
diff --git a/custom/lint-baseline.xml b/custom/lint-baseline.xml
index e5f39f0ab..a56dd65c6 100644
--- a/custom/lint-baseline.xml
+++ b/custom/lint-baseline.xml
@@ -7,7 +7,7 @@
errorLine1=" <string name="retry">Retry</string>"
errorLine2=" ~~~~~~~~~~~~">
@@ -18,18 +18,18 @@
errorLine1=" <string name="download">Download</string>"
errorLine2=" ~~~~~~~~~~~~~~~">
@@ -40,7 +40,7 @@
errorLine1=" <application"
errorLine2=" ^">
@@ -51,7 +51,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -62,7 +62,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -73,7 +73,7 @@
errorLine1=" <TextView"
errorLine2=" ~~~~~~~~">
@@ -84,7 +84,7 @@
errorLine1="class CustomMainActivity : CoreMainActivity() {"
errorLine2=" ~~~~~~~~~~~~~~~~~~">
@@ -95,7 +95,7 @@
errorLine1=" <ImageView"
errorLine2=" ~~~~~~~~~">
diff --git a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomWebViewClient.kt b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomWebViewClient.kt
index e180b7624..e61c5183f 100644
--- a/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomWebViewClient.kt
+++ b/custom/src/main/java/org/kiwix/kiwixmobile/custom/main/CustomWebViewClient.kt
@@ -22,7 +22,7 @@ import android.webkit.WebView
import org.kiwix.kiwixmobile.core.main.CoreWebViewClient
import org.kiwix.kiwixmobile.core.main.WebViewCallback
import org.kiwix.kiwixmobile.core.reader.ZimReaderContainer
-import org.kiwix.kiwixmobile.core.utils.Constants.TAG_KIWIX
+import org.kiwix.kiwixmobile.core.utils.TAG_KIWIX
class CustomWebViewClient internal constructor(
callback: WebViewCallback,