diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/deeplinks/DeepLinksTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/deeplinks/DeepLinksTest.kt
index 95e2a77b4..eceb7495e 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/deeplinks/DeepLinksTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/deeplinks/DeepLinksTest.kt
@@ -22,6 +22,7 @@ import android.content.Intent
import android.net.Uri
import androidx.core.content.FileProvider
import androidx.test.core.app.ActivityScenario
+import androidx.test.espresso.accessibility.AccessibilityChecks
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import org.junit.Before
@@ -45,6 +46,10 @@ class DeepLinksTest : BaseActivityTest() {
var retryRule = RetryRule()
private lateinit var sharedPreferenceUtil: SharedPreferenceUtil
+ init {
+ AccessibilityChecks.enable().setRunChecksFromRootView(true)
+ }
+
@Before
override fun waitForIdle() {
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).apply {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadRobot.kt
index 243d18e1f..9e4284789 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadRobot.kt
@@ -102,7 +102,7 @@ class DownloadRobot : BaseRobot() {
}
private fun stopDownload() {
- clickOn(ViewId(R.id.stop))
+ testFlakyView({ onView(withId(R.id.stop)).perform(click()) })
}
fun pauseDownload() {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadTest.kt
index a9b56ef76..d745f2410 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/download/DownloadTest.kt
@@ -23,6 +23,7 @@ import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.IdlingPolicies
import androidx.test.espresso.IdlingRegistry
+import androidx.test.espresso.accessibility.AccessibilityChecks
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import androidx.test.platform.app.InstrumentationRegistry
@@ -58,6 +59,10 @@ class DownloadTest : BaseActivityTest() {
@JvmField
var retryRule = RetryRule()
+ init {
+ AccessibilityChecks.enable().setRunChecksFromRootView(true)
+ }
+
@Before
override fun waitForIdle() {
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).apply {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpFragmentTest.kt
index 3ef42ad4e..6d74501cd 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpFragmentTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpFragmentTest.kt
@@ -21,6 +21,7 @@ import android.os.Build
import androidx.lifecycle.Lifecycle
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.IdlingRegistry
+import androidx.test.espresso.accessibility.AccessibilityChecks
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import leakcanary.LeakAssertions
@@ -66,6 +67,10 @@ class HelpFragmentTest : BaseActivityTest() {
@JvmField
var retryRule = RetryRule()
+ init {
+ AccessibilityChecks.enable().setRunChecksFromRootView(true)
+ }
+
@Test
fun verifyHelpActivity() {
setShowPlayStoreRestriction(false)
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 90bcf8bb9..37887c686 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/help/HelpRobot.kt
@@ -18,6 +18,7 @@
package org.kiwix.kiwixmobile.help
import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.assertion.ViewAssertions.doesNotExist
import androidx.test.espresso.matcher.ViewMatchers.withText
import org.kiwix.kiwixmobile.BaseRobot
@@ -27,6 +28,7 @@ import org.kiwix.kiwixmobile.Findable.ViewId
import org.kiwix.kiwixmobile.core.R.id
import org.kiwix.kiwixmobile.core.R.string
import org.kiwix.kiwixmobile.core.main.KIWIX_APK_WEBSITE_URL
+import org.kiwix.kiwixmobile.testutils.TestUtils.testFlakyView
fun help(func: HelpRobot.() -> Unit) = HelpRobot().apply(func)
@@ -37,7 +39,7 @@ class HelpRobot : BaseRobot() {
}
fun clickOnWhatDoesKiwixDo() {
- clickOn(TextId(string.help_2))
+ testFlakyView({ onView(withText(string.help_2)).perform(click()) })
}
fun assertWhatDoesKiwixDoIsExpanded() {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/initial/download/InitialDownloadRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/initial/download/InitialDownloadRobot.kt
index ec2950a9f..3a250ef68 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/initial/download/InitialDownloadRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/initial/download/InitialDownloadRobot.kt
@@ -69,7 +69,7 @@ class InitialDownloadRobot : BaseRobot() {
}
fun downloadZimFile() {
- clickOn(Text(zimFileTitle))
+ testFlakyView({ onView(withText(zimFileTitle)).perform(click()) })
}
fun assertStorageConfigureDialogDisplayed() {
@@ -89,7 +89,7 @@ class InitialDownloadRobot : BaseRobot() {
}
fun stopDownload() {
- clickOn(ViewId(R.id.stop))
+ testFlakyView({ onView(withId(R.id.stop)).perform(click()) })
}
fun assertDownloadStop() {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/initial/download/InitialDownloadTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/initial/download/InitialDownloadTest.kt
index 1d162cfef..96a6780fa 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/initial/download/InitialDownloadTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/initial/download/InitialDownloadTest.kt
@@ -22,6 +22,7 @@ import androidx.core.content.edit
import androidx.lifecycle.Lifecycle
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
+import androidx.test.espresso.accessibility.AccessibilityChecks
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import androidx.test.platform.app.InstrumentationRegistry
@@ -51,6 +52,10 @@ class InitialDownloadTest : BaseActivityTest() {
@JvmField
var retryRule = RetryRule()
+ init {
+ AccessibilityChecks.enable().setRunChecksFromRootView(true)
+ }
+
@Before
override fun waitForIdle() {
UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()).apply {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/intro/IntroFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/intro/IntroFragmentTest.kt
index 164bb6edf..c9ad29652 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/intro/IntroFragmentTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/intro/IntroFragmentTest.kt
@@ -21,6 +21,7 @@ import androidx.core.content.edit
import androidx.lifecycle.Lifecycle
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
+import androidx.test.espresso.accessibility.AccessibilityChecks
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import leakcanary.LeakAssertions
@@ -42,6 +43,10 @@ class IntroFragmentTest : BaseActivityTest() {
@JvmField
var retryRule = RetryRule()
+ init {
+ AccessibilityChecks.enable().setRunChecksFromRootView(true)
+ }
+
@Test
fun viewIsSwipeableAndNavigatesToMain() {
activityScenario.onActivity {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/intro/IntroRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/intro/IntroRobot.kt
index ac5013182..f3aec2bf5 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/intro/IntroRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/intro/IntroRobot.kt
@@ -18,6 +18,9 @@
package org.kiwix.kiwixmobile.intro
+import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
+import androidx.test.espresso.matcher.ViewMatchers.withId
import applyWithViewHierarchyPrinting
import attempt
import org.kiwix.kiwixmobile.BaseRobot
@@ -26,15 +29,14 @@ import org.kiwix.kiwixmobile.Findable.ViewId
import org.kiwix.kiwixmobile.R
import org.kiwix.kiwixmobile.main.TopLevelDestinationRobot
import org.kiwix.kiwixmobile.main.topLevel
+import org.kiwix.kiwixmobile.testutils.TestUtils.testFlakyView
fun intro(func: IntroRobot.() -> Unit) = IntroRobot().applyWithViewHierarchyPrinting(func)
class IntroRobot : BaseRobot() {
- private val getStarted = ViewId(R.id.get_started)
-
fun swipeLeft() {
- isVisible(getStarted)
+ isVisible(ViewId(R.id.get_started))
isVisible(TextId(R.string.welcome_to_the_family))
isVisible(TextId(R.string.humankind_knowledge))
attempt(10) {
@@ -44,7 +46,7 @@ class IntroRobot : BaseRobot() {
}
infix fun clickGetStarted(func: TopLevelDestinationRobot.() -> Unit): TopLevelDestinationRobot {
- clickOn(getStarted)
+ testFlakyView({ onView(withId(R.id.get_started)).perform(click()) })
return topLevel(func)
}
}
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/language/LanguageFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/language/LanguageFragmentTest.kt
index 64cd33391..4c380bb16 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/language/LanguageFragmentTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/language/LanguageFragmentTest.kt
@@ -23,6 +23,7 @@ import androidx.core.content.edit
import androidx.lifecycle.Lifecycle
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
+import androidx.test.espresso.accessibility.AccessibilityChecks
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.filters.LargeTest
import androidx.test.platform.app.InstrumentationRegistry
@@ -63,6 +64,10 @@ class LanguageFragmentTest {
InstrumentationRegistry.getInstrumentation()
}
+ init {
+ AccessibilityChecks.enable().setRunChecksFromRootView(true)
+ }
+
@Before
fun setUp() {
UiDevice.getInstance(instrumentation).apply {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/language/LanguageRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/language/LanguageRobot.kt
index 530f4c005..0a27f8d75 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/language/LanguageRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/language/LanguageRobot.kt
@@ -23,6 +23,7 @@ import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.isChecked
import androidx.test.espresso.matcher.ViewMatchers.isNotChecked
+import androidx.test.espresso.matcher.ViewMatchers.withId
import applyWithViewHierarchyPrinting
import com.adevinta.android.barista.interaction.BaristaSleepInteractions
import junit.framework.AssertionFailedError
@@ -63,7 +64,7 @@ class LanguageRobot : BaseRobot() {
}
fun clickOnLanguageSearchIcon() {
- clickOn(ViewId(R.id.menu_language_search))
+ testFlakyView({ onView(withId(R.id.menu_language_search)).perform(click()) })
}
fun searchLanguage(searchLanguage: String) {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferRobot.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferRobot.kt
index 13b99771f..53b582fe2 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferRobot.kt
@@ -20,6 +20,7 @@ package org.kiwix.kiwixmobile.localFileTransfer
import android.util.Log
import androidx.test.espresso.Espresso.onView
+import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.assertion.ViewAssertions.doesNotExist
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
@@ -85,7 +86,7 @@ class LocalFileTransferRobot : BaseRobot() {
fun clickOnGotItButton() {
pauseForBetterTestPerformance()
- clickOn(TextId(R.string.got_it))
+ testFlakyView({ onView(withText(R.string.got_it)).perform(click()) })
}
fun assertDeviceNameMessageVisible() {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferTest.kt
index 77794ead7..0a3855c26 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/localFileTransfer/LocalFileTransferTest.kt
@@ -26,10 +26,18 @@ import androidx.core.content.edit
import androidx.lifecycle.Lifecycle
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
+import androidx.test.espresso.accessibility.AccessibilityChecks
+import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
import androidx.test.uiautomator.UiDevice
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesCheck
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesViews
+import com.google.android.apps.common.testing.accessibility.framework.checks.SpeakableTextPresentCheck
+import com.google.android.apps.common.testing.accessibility.framework.checks.TouchTargetSizeCheck
import leakcanary.LeakAssertions
+import org.hamcrest.core.AllOf.allOf
+import org.hamcrest.core.AnyOf.anyOf
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@@ -71,6 +79,28 @@ class LocalFileTransferTest {
InstrumentationRegistry.getInstrumentation()
}
+ init {
+ AccessibilityChecks.enable().apply {
+ setRunChecksFromRootView(true)
+ setSuppressingResultMatcher(
+ anyOf(
+ allOf(
+ matchesCheck(SpeakableTextPresentCheck::class.java),
+ matchesViews(withId(R.id.tv_skip))
+ ),
+ allOf(
+ matchesCheck(TouchTargetSizeCheck::class.java),
+ matchesViews(withId(R.id.tv_skip))
+ ),
+ allOf(
+ matchesCheck(TouchTargetSizeCheck::class.java),
+ matchesViews(withId(R.id.text_view_device_name))
+ )
+ )
+ )
+ }
+ }
+
@Before
fun setup() {
context = instrumentation.targetContext.applicationContext
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt
index 2fa2581b6..4cb1ecd61 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/search/SearchFragmentTest.kt
@@ -23,13 +23,19 @@ import androidx.core.net.toUri
import androidx.lifecycle.Lifecycle
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
+import androidx.test.espresso.accessibility.AccessibilityChecks
+import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesCheck
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesViews
+import com.google.android.apps.common.testing.accessibility.framework.checks.TouchTargetSizeCheck
import leakcanary.LeakAssertions
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.ResponseBody
+import org.hamcrest.Matchers.allOf
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@@ -88,6 +94,18 @@ class SearchFragmentTest : BaseActivityTest() {
}
}
+ init {
+ AccessibilityChecks.enable().apply {
+ setRunChecksFromRootView(true)
+ setSuppressingResultMatcher(
+ allOf(
+ matchesCheck(TouchTargetSizeCheck::class.java),
+ matchesViews(ViewMatchers.withId(R.id.menu_searchintext))
+ )
+ )
+ }
+ }
+
@Test
fun searchFragmentSimple() {
activityScenario.onActivity {
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/settings/KiwixSettingsFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/settings/KiwixSettingsFragmentTest.kt
index 8a60dde35..d64ceb4b5 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/settings/KiwixSettingsFragmentTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/settings/KiwixSettingsFragmentTest.kt
@@ -18,6 +18,7 @@
package org.kiwix.kiwixmobile.settings
import android.Manifest
+import androidx.test.espresso.accessibility.AccessibilityChecks
import androidx.test.ext.junit.rules.ActivityScenarioRule
import androidx.test.internal.runner.junit4.statement.UiThreadStatement
import androidx.test.platform.app.InstrumentationRegistry
@@ -57,6 +58,10 @@ class KiwixSettingsFragmentTest {
var permissionRules: GrantPermissionRule =
GrantPermissionRule.grant(*permissions)
+ init {
+ AccessibilityChecks.enable().setRunChecksFromRootView(true)
+ }
+
@Before
fun setup() {
// Go to IntroFragment
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/splash/KiwixSplashActivityTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/splash/KiwixSplashActivityTest.kt
index 0d6c3607b..2f3bd05ad 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/splash/KiwixSplashActivityTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/splash/KiwixSplashActivityTest.kt
@@ -22,6 +22,7 @@ import android.content.Context
import androidx.preference.PreferenceManager
import androidx.test.core.app.ActivityScenario
import androidx.test.espresso.Espresso
+import androidx.test.espresso.accessibility.AccessibilityChecks
import androidx.test.espresso.assertion.ViewAssertions
import androidx.test.espresso.intent.Intents
import androidx.test.espresso.intent.matcher.IntentMatchers
@@ -67,6 +68,10 @@ class KiwixSplashActivityTest {
GrantPermissionRule.grant(*permissions)
private lateinit var context: Context
+ init {
+ AccessibilityChecks.enable().setRunChecksFromRootView(true)
+ }
+
@Before
fun setUp() {
Intents.init()
diff --git a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostFragmentTest.kt b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostFragmentTest.kt
index 1f6b0886b..f0f9a89cb 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostFragmentTest.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostFragmentTest.kt
@@ -23,10 +23,16 @@ import android.content.Context
import android.os.Build
import androidx.lifecycle.Lifecycle
import androidx.test.core.app.ActivityScenario
+import androidx.test.espresso.accessibility.AccessibilityChecks
+import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.rule.GrantPermissionRule
import androidx.test.uiautomator.UiDevice
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesCheck
+import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesViews
+import com.google.android.apps.common.testing.accessibility.framework.checks.DuplicateClickableBoundsCheck
import leakcanary.LeakAssertions
+import org.hamcrest.Matchers.allOf
import org.junit.Before
import org.junit.Rule
import org.junit.Test
@@ -73,6 +79,18 @@ class ZimHostFragmentTest {
GrantPermissionRule.grant(*permissions)
private var context: Context? = null
+ init {
+ AccessibilityChecks.enable().apply {
+ setRunChecksFromRootView(true)
+ setSuppressingResultMatcher(
+ allOf(
+ matchesCheck(DuplicateClickableBoundsCheck::class.java),
+ matchesViews(withId(R.id.get_zim_nearby_device))
+ )
+ )
+ }
+ }
+
@Before
fun waitForIdle() {
context = InstrumentationRegistry.getInstrumentation().targetContext
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 6b5ec649a..27dd2cdfd 100644
--- a/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt
+++ b/app/src/androidTest/java/org/kiwix/kiwixmobile/webserver/ZimHostRobot.kt
@@ -23,6 +23,7 @@ import androidx.test.espresso.action.ViewActions.click
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.espresso.matcher.ViewMatchers.assertThat
+import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
import applyWithViewHierarchyPrinting
import com.adevinta.android.barista.interaction.BaristaSleepInteractions
@@ -153,7 +154,7 @@ class ZimHostRobot : BaseRobot() {
}
fun stopServer() {
- clickOn(ViewId(R.id.startServerButton))
+ testFlakyView({ onView(withId(R.id.startServerButton)).perform(click()) })
}
fun assertServerStopped() {
diff --git a/buildSrc/src/main/kotlin/Libs.kt b/buildSrc/src/main/kotlin/Libs.kt
index c3959acb6..31e1fe147 100644
--- a/buildSrc/src/main/kotlin/Libs.kt
+++ b/buildSrc/src/main/kotlin/Libs.kt
@@ -50,6 +50,12 @@ object Libs {
const val espresso_web: String = "androidx.test.espresso:espresso-web:" +
Versions.androidx_test_espresso
+ /**
+ * https://developer.android.com/testing
+ */
+ const val espresso_accessibility: String = "androidx.test.espresso:espresso-accessibility:" +
+ Versions.androidx_test_espresso
+
/**
* https://github.com/square/retrofit
*/
@@ -343,5 +349,6 @@ object Libs {
/**
* https://github.com/deano2390/MaterialShowcaseView
*/
- const val material_show_case_view: String = "com.github.deano2390:MaterialShowcaseView:" + Versions.material_show_case_view
+ const val material_show_case_view: String =
+ "com.github.deano2390:MaterialShowcaseView:" + Versions.material_show_case_view
}
diff --git a/buildSrc/src/main/kotlin/plugin/AppConfigurer.kt b/buildSrc/src/main/kotlin/plugin/AppConfigurer.kt
index c725e5cde..0fabc0d06 100644
--- a/buildSrc/src/main/kotlin/plugin/AppConfigurer.kt
+++ b/buildSrc/src/main/kotlin/plugin/AppConfigurer.kt
@@ -104,6 +104,7 @@ class AppConfigurer {
androidTestImplementation(Libs.espresso_web)
androidTestImplementation(Libs.espresso_intents)
androidTestImplementation(Libs.espresso_contrib)
+ androidTestImplementation(Libs.espresso_accessibility)
androidTestImplementation(Libs.annotation)
androidTestImplementation(Libs.junit)
androidTestImplementation(Libs.junit_jupiter)
diff --git a/core/src/main/res/layout/activity_zim_host.xml b/core/src/main/res/layout/activity_zim_host.xml
index eb6f94040..d79abfd7b 100644
--- a/core/src/main/res/layout/activity_zim_host.xml
+++ b/core/src/main/res/layout/activity_zim_host.xml
@@ -32,9 +32,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
- android:layout_marginTop="16dp"
android:layout_marginEnd="50dp"
android:autoLink="web"
+ android:gravity="center|start"
+ android:minHeight="@dimen/material_minimum_height_and_width"
android:text="@string/server_textview_default_message"
app:layout_constraintEnd_toStartOf="@id/shareServerUrlIcon"
app:layout_constraintStart_toStartOf="parent"
@@ -46,6 +47,9 @@
android:layout_height="wrap_content"
android:layout_marginTop="3dp"
android:layout_marginEnd="16dp"
+ android:scaleType="centerInside"
+ android:minHeight="@dimen/material_minimum_height_and_width"
+ android:minWidth="@dimen/material_minimum_height_and_width"
android:contentDescription="@string/share_host_address"
android:src="@drawable/ic_share_35dp"
android:visibility="gone"
diff --git a/core/src/main/res/layout/fragment_search.xml b/core/src/main/res/layout/fragment_search.xml
index 7f9592511..f0d6b1fee 100644
--- a/core/src/main/res/layout/fragment_search.xml
+++ b/core/src/main/res/layout/fragment_search.xml
@@ -21,6 +21,7 @@
app:layout_constraintBottom_toTopOf="@+id/loadingMoreDataIndicator"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
+ android:contentDescription="@string/searched_list"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="?actionBarSize"
tools:listitem="@layout/list_item_search" />
diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml
index 76886254b..78dcd7b4a 100644
--- a/core/src/main/res/values/strings.xml
+++ b/core/src/main/res/values/strings.xml
@@ -18,6 +18,7 @@
An error occurred when trying to save the media!
Saved media as %s to Downloads/org.kiwix…/
Search
+ Searched list
Select a Content File (*.zim)
Open link in new tab?
Hotspot Service Channel