* The allocated buffer size exceeded due to the retry policy of our test cases. When we retry a test, more objects are allocated to memory, causing this issue.
* When retrying a test case that failed initially, the "MANAGE_EXTERNAL_STORAGE" permission dialog appears on the window due to clearing the preferences in our test case. Therefore, we have removed that code from our test cases.
* Enhanced the test code to detect the views inside the dialogs since our test cases fail due to these dialog's views, which take a moment to appear on the window, making our test cases flaky on CI. This is also the reason for allocating more objects in memory when we retry the test case.
* Improved the `LocalFileTransferTest` as it sometimes fails on API level 33 due to the unavailability of WIFI. When WIFI is not available, the "Enable WIFI P2P" dialog appears on the window, causing our test case to fail. Subsequently, our RetryRule attempts to run this test case again, leading to the allocation of more objects in memory.
* Created a `testFlakyView` function this function is helpful in testing the flakyViews.
* Improved the `LanguageFragmentTest` slightly to wait for the searched language to appear at the top of the list.
* Running the CI on `aosp_atd` instead of `google_apis`.
* Closing the tabs if visible in `NavigationHistoryTest`, since sometimes tabs are visible in this test case, and the test case does not find the views and fails.
* Added wait before deleting the ZIM files in the local library screen since it takes a few seconds to load the ZIM files that are available in storage.
* We are clearing the data of application on 2nd and 3rd run, and the test cases are running normally so now we are clearing the application data on first run as well.
* Additionally, we've implemented drawer closure in `LanguageFragmentTest`, `LocalFileTransferTest`, and `NoteFragmentTest`. These tests sometimes encountered an open navigation drawer due to test failures or process crashes.
* Enhancements have been made to the `testShowCaseFeatureShowOnce` test case. It's now independent of other test cases, ensuring it remains unaffected in the event of a test process crash or failure.
* Refactored the error message to show the correct information to the developers, since our projects needs JDK11 to run so we have added this JDK version in error message. Also, corrected the gradle wrapper version in this message.
* Fixed a static toast which is showing when there is an error in restoring the tabs. We have moved this static error message to our string file so that it will be translated in every language and user will see the error message in their own language.
* Our project requires `Java 11` to run. Therefore, developers should set the `Gradle JDK` to `Java 11`. We have included this information in the `Build Instructions` section of the `README` file.
* The error toast message is no longer displayed if a URL fails to load. Instead, a debug error message is logged.
* Restricting the loading of external resources when rendering the pages.
* Removing the URL decoding to verify whether the query string is present in the URL or not. This is because we only need to append the query string for URLs that contain "?", not for those containing "%3F" (indicating direct paths to ZIM entries). We decoded the URL to evaluate this condition, which inadvertently added "?" at the end of the URL unnecessarily. This is redundant as we extract the query string only after "?", and encoded URLs do not include "?".
* Added more test cases for all the scenarios.
* Adding the bookmarks in libkiwix even if the bookmark related files exists or not in fileSystem. This will ensure all the bookmarks will show on the bookmark screen, and it will improve the user experience.
* Implemented test cases to verify this functionality and to test the migration for new custom apps.
* The issue occurs because we are not opening the zim file in the reader because it does not exist in the fileSystem but we are loading the saved URL in webView of that file which does not exist. So when we are switching between fragments then we are opening the previously saved zim file but with the wrong URL which leads to this unexpected behavior. So to fix this we are closing the previously opened book if the new zim file does not exist in the fileSystem.
* Refresh the data before checking the loaded data in DownloadTest.
* Increasing the Retry count for loading data and downloading start to properly work with low internet connection.
* Improved the TopLevelDestinationTest. Because we were testing the drawer options fragments (Settings, Bookmarks etc) from the download screen and when we pressed the back button it came to the download screen and refreshed its data due to this our next functionality had to wait to finish this. Now we are testing all the navigation screens from the LocalLibraryScreen which makes this test case faster.