UI fails to AutoConnect in the CI
<del> Using 1.4.0 libraries and </del>  In espresso 3.4.0, I occasionally run into the following RuntimeException with a simple call to getInstance(InstrumentationRegistry.getInstrumentation())
>org.kiwix.kiwixmobile.intro.IntroFragmentTest > viewIsSwipeableAndNavigatesToMain[test(AVD) - 5.0.2] FAILED 
	java.lang.RuntimeException: Error while connecting UiAutomation
	at android.app.UiAutomation.connect(UiAutomation.java:210)

No tests particularly at this point. It fails sometimes on CI emulation at the start in both API 21 & API 30.
**More Context:**
https://issuetracker.google.com/issues/233914320

diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
index 7f5c362dc..b28b6a236 100644
--- a/.github/workflows/coverage.yml
+++ b/.github/workflows/coverage.yml
@@ -16,8 +16,9 @@ jobs:
     strategy:
       matrix:
         api-level: [21,30]
+        target: [ google_apis ]
       fail-fast: false
-    runs-on: macos-10.15
+    runs-on: macos-11
     steps:
       - name: checkout
         uses: actions/checkout@v3
@@ -32,12 +33,12 @@ jobs:
       - name: Restore Cache
         uses: actions/cache@v2
         with:
-            path: |
-              ~/.gradle/caches
-              ~/.gradle/wrapper
-            key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
-            restore-keys: |
-              ${{ runner.os }}-gradle-
+          path: |
+            ~/.gradle/caches
+            ~/.gradle/wrapper
+          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
+          restore-keys: |
+            ${{ runner.os }}-gradle-
 
       - name: create instrumentation coverage
         uses: ReactiveCircus/android-emulator-runner@v2.23.0
@@ -46,6 +47,7 @@ jobs:
         with:
           api-level: ${{ matrix.api-level }}
           arch: x86_64
+          profile: pixel_2
           ndk: 21.4.7075529
           sdcard-path-or-size: '1000M'
           disable-animations: false
diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml
index 1f345c24e..c6d2c6dd8 100644
--- a/.github/workflows/nightly.yml
+++ b/.github/workflows/nightly.yml
@@ -13,7 +13,7 @@ jobs:
         api-level: [21, 22, 23, 24, 25, 27, 28, 30]
         target: [google_apis]
       fail-fast: false
-    runs-on: macos-latest
+    runs-on: macos-11
     steps:
 
       - name: checkout
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpRobot.kt
index 7ccc07291..efbc89db0 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpRobot.kt
@@ -28,7 +28,7 @@ fun help(func: HelpRobot.() -> Unit) = HelpRobot().apply(func)
 
 class HelpRobot : BaseRobot() {
 
-  init {
+  fun assertToolbarDisplayed() {
     isVisible(ViewId(id.toolbar))
   }
 
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/main/TopLevelDestinationTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/main/TopLevelDestinationTest.kt
index 16e5b63e5..200416785 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/main/TopLevelDestinationTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/main/TopLevelDestinationTest.kt
@@ -23,6 +23,9 @@ import androidx.test.rule.ActivityTestRule
 import org.junit.Test
 import org.kiwix.kiwixmobile.BaseActivityTest
 import org.kiwix.kiwixmobile.core.utils.SharedPreferenceUtil
+import org.kiwix.kiwixmobile.help.HelpRobot
+import org.kiwix.kiwixmobile.settings.SettingsRobot
+import org.kiwix.kiwixmobile.webserver.ZimHostRobot
 
 class TopLevelDestinationTest : BaseActivityTest() {
 
@@ -39,27 +42,28 @@ class TopLevelDestinationTest : BaseActivityTest() {
       clickReaderOnBottomNav {
       }
       clickLibraryOnBottomNav {
+        assertGetZimNearbyDeviceDisplayed()
         clickFileTransferIcon {
         }
       }
       clickDownloadOnBottomNav {
+        assertLibraryListDisplayed()
         clickOnGlobeIcon {
         }
       }
       clickBookmarksOnNavDrawer {
+        assertBookMarksDisplayed()
         clickOnTrashIcon()
         assertDeleteBookmarksDialogDisplayed()
       }
       clickHistoryOnSideNav {
+        assertHistoryDisplayed()
         clickOnTrashIcon()
         assertDeleteHistoryDialogDisplayed()
       }
-      clickHostBooksOnSideNav {
-      }
-      clickSettingsOnSideNav {
-      }
-      clickHelpOnSideNav {
-      }
+      clickHostBooksOnSideNav(ZimHostRobot::assertMenuWifiHotspotDiplayed)
+      clickSettingsOnSideNav(SettingsRobot::assertMenuSettingsDisplayed)
+      clickHelpOnSideNav(HelpRobot::assertToolbarDisplayed)
       clickSupportKiwixOnSideNav()
       assertExternalLinkDialogDisplayed()
       pressBack()
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LibraryRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LibraryRobot.kt
index 3dd8f9ade..fdf6cc3e9 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LibraryRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LibraryRobot.kt
@@ -28,7 +28,8 @@ import org.kiwix.kiwixmobile.localFileTransfer.localFileTransfer
 fun library(func: LibraryRobot.() -> Unit) = LibraryRobot().applyWithViewHierarchyPrinting(func)
 
 class LibraryRobot : BaseRobot() {
-  init {
+
+  fun assertGetZimNearbyDeviceDisplayed() {
     isVisible(ViewId(R.id.get_zim_nearby_device))
   }
 
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryRobot.kt
index 784f90263..d16f5a297 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryRobot.kt
@@ -29,7 +29,8 @@ fun onlineLibrary(func: OnlineLibraryRobot.() -> Unit) =
   OnlineLibraryRobot().applyWithViewHierarchyPrinting(func)
 
 class OnlineLibraryRobot : BaseRobot() {
-  init {
+
+  fun assertLibraryListDisplayed() {
     isVisible(ViewId(R.id.libraryList))
   }
 
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/BookmarksRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/BookmarksRobot.kt
index 7a3ce423b..df59cd09a 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/BookmarksRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/BookmarksRobot.kt
@@ -29,7 +29,8 @@ fun bookmarks(func: BookmarksRobot.() -> Unit) =
   BookmarksRobot().applyWithViewHierarchyPrinting(func)
 
 class BookmarksRobot : BaseRobot() {
-  init {
+
+  fun assertBookMarksDisplayed() {
     assertDisplayed(R.string.bookmarks_from_current_book)
   }
 
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/HistoryRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/HistoryRobot.kt
index fca27c951..7e9d3b723 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/HistoryRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/HistoryRobot.kt
@@ -28,7 +28,8 @@ import org.kiwix.kiwixmobile.R
 fun history(func: HistoryRobot.() -> Unit) = HistoryRobot().applyWithViewHierarchyPrinting(func)
 
 class HistoryRobot : BaseRobot() {
-  init {
+
+  fun assertHistoryDisplayed() {
     assertDisplayed(R.string.history_from_current_book)
   }
 
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/settings/SettingsRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/settings/SettingsRobot.kt
index d538219d0..14c548920 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/settings/SettingsRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/settings/SettingsRobot.kt
@@ -42,7 +42,7 @@ fun settingsRobo(func: SettingsRobot.() -> Unit) =
 
 class SettingsRobot : BaseRobot() {
 
-  init {
+  fun assertMenuSettingsDisplayed() {
     assertDisplayed(R.string.menu_settings)
   }
 
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt
index f6cb9184f..26db0ca50 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt
@@ -26,7 +26,8 @@ import org.kiwix.kiwixmobile.R
 fun zimHost(func: ZimHostRobot.() -> Unit) = ZimHostRobot().applyWithViewHierarchyPrinting(func)
 
 class ZimHostRobot : BaseRobot() {
-  init {
+
+  fun assertMenuWifiHotspotDiplayed() {
     isVisible(TextId(R.string.menu_wifi_hotspot))
   }
 }
diff --git a/jacoco.gradle b/jacoco.gradle
index 2e7372e5a..1bde2f7b0 100644
--- a/jacoco.gradle
+++ b/jacoco.gradle
@@ -49,6 +49,7 @@ task jacocoInstrumentationTestReport(type: JacocoReport, dependsOn: ['createDebu
     kotlinSrc << "$proj.projectDir/src/main/kotlin"
     execution << fileTree(dir: proj.buildDir,
       includes: ['jacoco/testDebugUnitTest.exec',
+        'outputs/code-coverage/connected/*coverage.ec',
         'outputs/code_coverage/debugAndroidTest/connected/**/*.ec'])
   }
   sourceDirectories.from = files(javaSrc, kotlinSrc)
['.github/workflows/coverage.yml', 'app/src/androidTest/java/org/kiwix/kiwixmobile/main/TopLevelDestinationTest.kt', 'app/src/androidTest/java/org/kiwix/kiwixmobile/page/history/HistoryRobot.kt', 'app/src/androidTest/java/org/kiwix/kiwixmobile/settings/SettingsRobot.kt', 'app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpRobot.kt', '.github/workflows/nightly.yml', 'app/src/androidTest/java/org/kiwix/kiwixmobile/page/bookmarks/BookmarksRobot.kt', 'app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt', 'jacoco.gradle', 'app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/LibraryRobot.kt', 'app/src/androidTest/java/org/kiwix/kiwixmobile/nav/destination/library/OnlineLibraryRobot.kt']