Skip to content

Commit 541df95

Browse files
authored
fix: prevent invalid insets when notch preference is toggled (#765)
1 parent 6b54770 commit 541df95

File tree

2 files changed

+24
-1
lines changed

2 files changed

+24
-1
lines changed

app/src/main/kotlin/org/fossify/gallery/activities/BaseViewerActivity.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ import android.view.View
55
import androidx.core.view.ViewCompat
66
import androidx.core.view.WindowInsetsCompat
77
import androidx.core.view.WindowInsetsCompat.Type
8+
import androidx.lifecycle.Lifecycle
9+
import androidx.lifecycle.lifecycleScope
10+
import androidx.lifecycle.repeatOnLifecycle
811
import com.google.android.material.appbar.AppBarLayout
12+
import kotlinx.coroutines.launch
913
import org.fossify.commons.extensions.updatePaddingWithBase
1014
import org.fossify.gallery.extensions.config
1115

@@ -21,6 +25,17 @@ abstract class BaseViewerActivity : SimpleActivity() {
2125
setupEdgeToEdge(insets)
2226
insets
2327
}
28+
registerShowNotchCollector(contentRoot)
29+
}
30+
31+
private fun registerShowNotchCollector(view: View) {
32+
lifecycleScope.launch {
33+
repeatOnLifecycle(Lifecycle.State.RESUMED) {
34+
config.showNotchFlow.collect {
35+
view.requestApplyInsets()
36+
}
37+
}
38+
}
2439
}
2540

2641
private fun setupEdgeToEdge(insets: WindowInsetsCompat) {
@@ -32,6 +47,8 @@ abstract class BaseViewerActivity : SimpleActivity() {
3247
left = systemAndCutout.left,
3348
right = systemAndCutout.right
3449
)
50+
51+
contentHolder.updatePaddingWithBase(left = 0, top = 0, right = 0, bottom = 0)
3552
} else {
3653
val system = insets.getInsetsIgnoringVisibility(Type.systemBars())
3754
val cutout = insets.getInsetsIgnoringVisibility(Type.displayCutout())

app/src/main/kotlin/org/fossify/gallery/helpers/Config.kt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,11 @@ import android.content.res.Configuration
55
import android.os.Environment
66
import com.google.gson.Gson
77
import com.google.gson.reflect.TypeToken
8-
import org.fossify.commons.helpers.*
8+
import org.fossify.commons.helpers.BaseConfig
9+
import org.fossify.commons.helpers.PROTECTION_PATTERN
10+
import org.fossify.commons.helpers.SORT_BY_DATE_MODIFIED
11+
import org.fossify.commons.helpers.SORT_DESCENDING
12+
import org.fossify.commons.helpers.VIEW_TYPE_GRID
913
import org.fossify.gallery.R
1014
import org.fossify.gallery.models.AlbumCover
1115
import java.util.Arrays
@@ -528,6 +532,8 @@ class Config(context: Context) : BaseConfig(context) {
528532
get() = prefs.getBoolean(SHOW_NOTCH, true)
529533
set(showNotch) = prefs.edit().putBoolean(SHOW_NOTCH, showNotch).apply()
530534

535+
val showNotchFlow = ::showNotch.asFlowNonNull(true)
536+
531537
var spamFoldersChecked: Boolean
532538
get() = prefs.getBoolean(SPAM_FOLDERS_CHECKED, false)
533539
set(spamFoldersChecked) = prefs.edit().putBoolean(SPAM_FOLDERS_CHECKED, spamFoldersChecked).apply()

0 commit comments

Comments
 (0)