Skip to content

Commit ce8206f

Browse files
committed
feat: android make screen pixel density dynamic
1 parent 9b68ae4 commit ce8206f

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

android/src/main/java/com/unistyles/Platform.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ import kotlin.math.max
1010

1111
class Platform(private val reactApplicationContext: ReactApplicationContext) {
1212
private val displayMetrics: DisplayMetrics = reactApplicationContext.resources.displayMetrics
13-
private val density: Float = reactApplicationContext.resources.displayMetrics.density
1413
private var insetsCompat: InsetsCompat = InsetsCompat.getDefaults()
1514

1615
var defaultNavigationBarColor: Int? = null
1716
var defaultStatusBarColor: Int? = null
1817

1918
fun getScreenDimensions(): Dimensions {
19+
val density = reactApplicationContext.resources.displayMetrics.density
2020
val screenWidth = (displayMetrics.widthPixels / density).toInt()
2121
val screenHeight = (displayMetrics.heightPixels / density).toInt()
2222

@@ -36,12 +36,14 @@ class Platform(private val reactApplicationContext: ReactApplicationContext) {
3636
}
3737

3838
fun getStatusBarDimensions(): Dimensions {
39+
val density = reactApplicationContext.resources.displayMetrics.density
3940
val screenWidth = (displayMetrics.widthPixels / density).toInt()
4041

4142
return Dimensions(screenWidth, getStatusBarHeight())
4243
}
4344

4445
fun getNavigationBarDimensions(): Dimensions {
46+
val density = reactApplicationContext.resources.displayMetrics.density
4547
val screenWidth = (displayMetrics.widthPixels / density).toInt()
4648

4749
return Dimensions(screenWidth, getNavigationBarHeight())
@@ -84,6 +86,7 @@ class Platform(private val reactApplicationContext: ReactApplicationContext) {
8486
}
8587

8688
fun getInsets(): Insets {
89+
val density = reactApplicationContext.resources.displayMetrics.density
8790
val top = max(this.insetsCompat.cutout.top, this.insetsCompat.statusBar.top)
8891
val bottom = this.insetsCompat.navigationBar.bottom
8992
val left = this.insetsCompat.statusBar.left
@@ -98,10 +101,14 @@ class Platform(private val reactApplicationContext: ReactApplicationContext) {
98101
}
99102

100103
private fun getStatusBarHeight(): Int {
104+
val density = reactApplicationContext.resources.displayMetrics.density
105+
101106
return (this.insetsCompat.statusBar.top / density).toInt()
102107
}
103108

104109
private fun getNavigationBarHeight(): Int {
110+
val density = reactApplicationContext.resources.displayMetrics.density
111+
105112
return (this.insetsCompat.navigationBar.bottom / density).toInt()
106113
}
107114
}

0 commit comments

Comments
 (0)