Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ android {
}

dependencies {

// androidx
implementation("androidx.core:core-ktx:1.16.0") // 1.17 requires SDK 36
implementation("androidx.recyclerview:recyclerview:1.4.0")
Expand Down Expand Up @@ -212,3 +213,8 @@ dependencies {
testImplementation("androidx.test:runner:1.6.2")
testImplementation("androidx.test:core:1.6.1")
}
dependencies {
testImplementation("androidx.test.ext:junit:1.1.5")
testImplementation("androidx.compose.ui:ui-test-junit4")
debugImplementation("androidx.compose.ui:ui-test-manifest")
}
5 changes: 2 additions & 3 deletions app/src/main/java/helium314/keyboard/settings/Misc.kt
Original file line number Diff line number Diff line change
Expand Up @@ -119,9 +119,8 @@ fun <T>DropDownField(

@Composable
fun isWideScreen(): Boolean {
val width = LocalConfiguration.current.screenWidthDp
val height = LocalConfiguration.current.screenHeightDp
return height < 500 && width > height
val config = LocalConfiguration.current
return config.screenWidthDp > 600
}

val contentTextDirectionStyle = TextStyle(textDirection = TextDirection.Content)
63 changes: 63 additions & 0 deletions app/src/test/java/helium314/keyboard/settings/MiscTest.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
package helium314.keyboard.settings

import android.content.res.Configuration
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.test.junit4.createComposeRule
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config

@RunWith(RobolectricTestRunner::class)
@Config(sdk = [33]) // optional, explicitly setting SDK can sometimes resolve robolectric issues
class MiscTest {

@get:Rule
val composeTestRule = createComposeRule()

@Test
fun isWideScreen_true_whenWidthGreaterThan600() {
var result = false
composeTestRule.setContent {
val config = Configuration().apply {
screenWidthDp = 601
}
CompositionLocalProvider(LocalConfiguration provides config) {
result = isWideScreen()
}
}
assertTrue(result)
}

@Test
fun isWideScreen_false_whenWidthIs600() {
var result = true
composeTestRule.setContent {
val config = Configuration().apply {
screenWidthDp = 600
}
CompositionLocalProvider(LocalConfiguration provides config) {
result = isWideScreen()
}
}
assertFalse(result)
}

@Test
fun isWideScreen_false_whenWidthLessThan600() {
var result = true
composeTestRule.setContent {
val config = Configuration().apply {
screenWidthDp = 599
}
CompositionLocalProvider(LocalConfiguration provides config) {
result = isWideScreen()
}
}
assertFalse(result)
}
}
Loading