This commit is contained in:
ponzischeme89
2026-08-24 08:16:55 +12:00
parent 72cb3c376e
commit 30155e1c5f
2 changed files with 18 additions and 1 deletions
+1 -1
View File
@@ -62,7 +62,7 @@ val projectNoticeText =
rootProject.file("NOTICE").readText()
.replace("https://g.sublogue.com/admin/memby", membySourceUrl)
val defaultVersionName = "0.3.14"
val defaultVersionName = "0.3.15"
val membyVersionName: String =
(project.findProperty("memby.versionName") as String?)
?.trim()
@@ -15,6 +15,7 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.offset
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
@@ -22,8 +23,11 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.focus.FocusRequester
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.asImageBitmap
import androidx.compose.ui.input.InputMode
import androidx.compose.ui.input.InputModeManager
import androidx.compose.ui.input.key.Key
import androidx.compose.ui.layout.ContentScale
import androidx.compose.ui.platform.LocalInputModeManager
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.test.assertIsFocused
import androidx.compose.ui.test.junit4.v2.createComposeRule
@@ -51,6 +55,17 @@ import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import org.robolectric.annotation.GraphicsMode
/**
* Robolectric's window reports [InputMode.Touch] for the life of the test and never fires the
* real key press that would flip a television's InputModeManager into [InputMode.Keyboard], so a
* clickable card's Focusability.SystemDefined focus target stays unfocusable to a programmatic
* `requestFocus()`. This stands in for that key press.
*/
private object KeyboardOnlyInputModeManager : InputModeManager {
override val inputMode: InputMode = InputMode.Keyboard
override fun requestInputMode(inputMode: InputMode): Boolean = true
}
@RunWith(RobolectricTestRunner::class)
@GraphicsMode(GraphicsMode.Mode.NATIVE)
@Config(sdk = [34], qualifiers = "w960dp-h540dp-television-xhdpi")
@@ -328,6 +343,7 @@ class HomeMovieHeroScreenshotTest {
val railFocus = FocusRequester()
compose.setContent {
CompositionLocalProvider(LocalInputModeManager provides KeyboardOnlyInputModeManager) {
PreviewSurface(alignment = Alignment.TopStart, fontFamilyName = "inter") {
Row(Modifier.fillMaxSize()) {
TvNavigationRail(
@@ -396,6 +412,7 @@ class HomeMovieHeroScreenshotTest {
}
}
}
}
}
assertTrue(compose.onAllNodesWithText("Play").fetchSemanticsNodes().isEmpty())