Migrate from RikkaX Insets to Insetter

This commit is contained in:
FooIbar committed 2023-10-26 13:22:23 +08:00
1 parent 66d026cffa
commit b2b12f7b93
14 files changed
+51 -36

No files matched your search

@@ -25,8 +25,6 @@ import com.hippo.ehviewer.R
import com.hippo.ehviewer.Settings
import eu.kanade.tachiyomi.util.system.isNightMode
import eu.kanade.tachiyomi.util.view.setSecureScreen
import rikka.insets.WindowInsetsHelper
import rikka.layoutinflater.view.LayoutInflaterFactory
abstract class EhActivity : AppCompatActivity() {
@StyleRes
@@ -44,7 +42,6 @@ abstract class EhActivity : AppCompatActivity() {
}
override fun onCreate(savedInstanceState: Bundle?) {
layoutInflater.factory2 = LayoutInflaterFactory(delegate).addOnViewCreatedListener(WindowInsetsHelper.LISTENER)
super.onCreate(savedInstanceState)
WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightStatusBars = !isNightMode()
WindowCompat.getInsetsController(window, window.decorView).isAppearanceLightNavigationBars = !isNightMode()
@@ -102,6 +102,7 @@ import com.hippo.ehviewer.ui.tools.CropDefaults
import com.hippo.ehviewer.ui.tools.DialogState
import com.hippo.ehviewer.util.FileUtils
import com.hippo.ehviewer.util.LongList
import com.hippo.ehviewer.util.applyNavigationBarsPadding
import com.hippo.ehviewer.util.containsIgnoreCase
import com.hippo.ehviewer.util.sendTo
import com.hippo.unifile.UniFile
@@ -353,6 +354,8 @@ class DownloadsScene :
mKeyword = it.takeUnless { it.isEmpty() }
updateInfoList()
}
binding.fastScroller.applyNavigationBarsPadding()
binding.recyclerView.applyNavigationBarsPadding()
return binding.root
}
@@ -81,11 +81,13 @@ import com.hippo.ehviewer.ui.setMD3Content
import com.hippo.ehviewer.ui.tools.DialogState
import com.hippo.ehviewer.util.ExceptionUtils
import com.hippo.ehviewer.util.SimpleHandler
import com.hippo.ehviewer.util.applyNavigationBarsPadding
import com.hippo.ehviewer.util.getValue
import com.hippo.ehviewer.util.lazyMut
import com.hippo.ehviewer.util.setValue
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.withIOContext
import eu.kanade.tachiyomi.util.system.dpToPx
import java.time.Instant
import java.time.LocalDateTime
import java.time.ZoneId
@@ -333,6 +335,7 @@ class FavoritesScene : SearchBarScene() {
drawable.setBounds(0, 0, drawable.intrinsicWidth, drawable.intrinsicHeight)
binding.tip.setCompoundDrawables(null, drawable, null, null)
binding.tip.setOnClickListener { mAdapter?.retry() }
binding.refreshLayout.setProgressViewOffset(true, 0, 64.dpToPx)
binding.refreshLayout.setOnRefreshListener { switchFav(urlBuilder.favCat) }
val transition = ViewTransition(binding.refreshLayout, binding.progress, binding.tip)
val empty = getString(R.string.gallery_list_empty_hit)
@@ -428,6 +431,8 @@ class FavoritesScene : SearchBarScene() {
}
})
itemTouchHelper.attachToRecyclerView(binding.recyclerView)
binding.fastScroller.applyNavigationBarsPadding()
binding.recyclerView.applyNavigationBarsPadding()
return binding.root
}
@@ -87,6 +87,7 @@ import com.hippo.ehviewer.util.ReadableTime
import com.hippo.ehviewer.util.SimpleAnimatorListener
import com.hippo.ehviewer.util.TextUrl
import com.hippo.ehviewer.util.addTextToClipboard
import com.hippo.ehviewer.util.applyNavigationBarsPadding
import com.hippo.ehviewer.util.getParcelableCompat
import com.hippo.ehviewer.util.toBBCode
import eu.kanade.tachiyomi.util.lang.launchIO
@@ -258,6 +259,8 @@ class GalleryCommentsScene : BaseToolbarScene(), View.OnClickListener, OnRefresh
binding.fab.setOnClickListener(this)
mViewTransition = ViewTransition(binding.refreshLayout, tip)
updateView(false)
binding.editPanel.applyNavigationBarsPadding()
binding.fabLayout.applyNavigationBarsPadding()
return binding.root
}
@@ -100,6 +100,7 @@ import com.hippo.ehviewer.updater.AppUpdater
import com.hippo.ehviewer.util.AnimationUtils
import com.hippo.ehviewer.util.ExceptionUtils
import com.hippo.ehviewer.util.SimpleAnimatorListener
import com.hippo.ehviewer.util.applyNavigationBarsPadding
import com.hippo.ehviewer.util.getParcelableCompat
import com.hippo.ehviewer.util.getValue
import com.hippo.ehviewer.util.lazyMut
@@ -107,6 +108,7 @@ import com.hippo.ehviewer.util.setValue
import eu.kanade.tachiyomi.util.lang.launchIO
import eu.kanade.tachiyomi.util.lang.withIOContext
import eu.kanade.tachiyomi.util.lang.withUIContext
import eu.kanade.tachiyomi.util.system.dpToPx
import java.io.File
import java.time.Instant
import java.time.LocalDateTime
@@ -363,6 +365,7 @@ class GalleryListScene : SearchBarScene() {
drawable.setBounds(0, 0, drawable.intrinsicWidth, drawable.intrinsicHeight)
binding.tip.setCompoundDrawables(null, drawable, null, null)
binding.tip.setOnClickListener { mAdapter?.retry() }
binding.refreshLayout.setProgressViewOffset(true, 0, 64.dpToPx)
binding.refreshLayout.setOnRefreshListener {
mUrlBuilder.setIndex(null, true)
mUrlBuilder.mJumpTo = null
@@ -490,7 +493,12 @@ class GalleryListScene : SearchBarScene() {
}
binding.fabLayout.primaryFab!!.setImageDrawable(actionFabDrawable)
binding.searchFab.setOnClickListener { onApplySearch() }
(binding.searchFab.parent as View).bringToFront()
(binding.searchFab.parent as View).apply {
bringToFront()
applyNavigationBarsPadding()
}
binding.fastScroller.applyNavigationBarsPadding()
binding.recyclerView.applyNavigationBarsPadding()
// Update list url builder
onUpdateUrlBuilder()
@@ -43,6 +43,7 @@ import com.hippo.ehviewer.ui.legacy.FabLayout
import com.hippo.ehviewer.ui.setMD3Content
import com.hippo.ehviewer.util.AnimationUtils
import com.hippo.ehviewer.util.SimpleAnimatorListener
import com.hippo.ehviewer.util.applyNavigationBarsPadding
import com.jamal.composeprefs3.ui.ifNotNullThen
import com.jamal.composeprefs3.ui.ifTrueThen
import eu.kanade.tachiyomi.util.lang.launchIO
@@ -116,6 +117,7 @@ abstract class SearchBarScene : BaseScene(), ToolBarScene {
binding.searchview.addTransitionListener(mSearchViewOnBackPressedCallback)
requireActivity().onBackPressedDispatcher.addCallback(mSearchViewOnBackPressedCallback)
binding.appbar.bringToFront()
fabLayout.applyNavigationBarsPadding()
return binding.root
}
@@ -1,11 +1,13 @@
package com.hippo.ehviewer.util
import android.view.View
import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.runtime.Composable
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalLayoutDirection
import androidx.core.graphics.Insets
import androidx.core.view.WindowInsetsCompat
import dev.chrisbanes.insetter.applyInsetter
import kotlin.contracts.InvocationKind
import kotlin.contracts.contract
@@ -30,3 +32,11 @@ fun WindowInsetsCompat.Builder.set(type: Int, insets: WindowInsets): WindowInset
),
)
}
fun View.applyNavigationBarsPadding() {
applyInsetter {
type(navigationBars = true) {
padding()
}
}
}
+7 -7
View File
@@ -21,25 +21,26 @@
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
android:clipChildren="false"
app:layout_behavior="@string/searchbar_scrolling_view_behavior">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycler_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="@dimen/gallery_padding_top_search_bar"
android:paddingHorizontal="@dimen/gallery_list_margin_h"
android:paddingVertical="@dimen/gallery_list_margin_v"
app:fitsSystemWindowsInsets="bottom" />
android:paddingVertical="@dimen/gallery_list_margin_v" />
<com.hippo.ehviewer.ui.legacy.FastScroller
android:id="@+id/fast_scroller"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:layout_marginTop="@dimen/gallery_padding_top_search_bar"
android:paddingStart="20dp"
android:paddingEnd="4dp"
android:paddingBottom="8dp"
app:fitsSystemWindowsInsets="bottom" />
android:paddingBottom="8dp" />
</FrameLayout>
@@ -58,8 +59,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="@dimen/corner_fab_margin"
android:paddingBottom="@dimen/corner_fab_margin"
app:fitsSystemWindowsInsets="bottom">
android:paddingBottom="@dimen/corner_fab_margin">
<com.google.android.material.floatingactionbutton.FloatingActionButton
style="@style/Widget.Material3.FloatingActionButton.Small.Primary"
+1 -2
View File
@@ -26,8 +26,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="@dimen/corner_fab_margin"
android:paddingBottom="@dimen/corner_fab_margin"
app:fitsSystemWindowsInsets="bottom">
android:paddingBottom="@dimen/corner_fab_margin">
<com.google.android.material.floatingactionbutton.FloatingActionButton
style="@style/Widget.Material3.FloatingActionButton.Small.Primary"
@@ -30,8 +30,7 @@
android:clipToPadding="false"
android:paddingLeft="@dimen/keyline_margin"
android:paddingRight="@dimen/keyline_margin"
android:paddingBottom="@dimen/fab_rv_padding_size"
app:fitsSystemWindowsInsets="bottom" />
android:paddingBottom="@dimen/fab_rv_padding_size" />
</androidx.swiperefreshlayout.widget.ThemedSwipeRefreshLayout>
@@ -43,8 +42,7 @@
android:layout_gravity="center"
android:drawablePadding="8dp"
android:gravity="center_horizontal"
android:text="@string/no_one_comments_gallery"
app:fitsSystemWindowsInsets="bottom" />
android:text="@string/no_one_comments_gallery" />
<LinearLayout
android:id="@+id/edit_panel"
@@ -54,8 +52,7 @@
android:background="?attr/colorPrimaryContainer"
android:elevation="4dp"
android:orientation="horizontal"
android:visibility="invisible"
app:fitsSystemWindowsInsets="bottom">
android:visibility="invisible">
<EditText
android:id="@+id/edit_text"
@@ -90,8 +87,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="@dimen/corner_fab_margin"
android:paddingBottom="@dimen/corner_fab_margin"
app:fitsSystemWindowsInsets="bottom">
android:paddingBottom="@dimen/corner_fab_margin">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
@@ -27,16 +27,14 @@
android:layout_height="match_parent"
android:layout_marginStart="@dimen/gallery_search_bar_margin_v"
android:layout_marginEnd="@dimen/gallery_search_bar_margin_v"
android:paddingTop="80dp"
app:layout_fitsSystemWindowsInsets="top" />
android:paddingTop="@dimen/gallery_padding_top_search_bar" />
<com.hippo.ehviewer.ui.legacy.FabLayout
android:id="@+id/fab_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="@dimen/corner_fab_margin"
android:paddingBottom="@dimen/corner_fab_margin"
app:layout_fitsSystemWindowsInsets="bottom">
android:paddingBottom="@dimen/corner_fab_margin">
<com.google.android.material.floatingactionbutton.FloatingActionButton
style="@style/Widget.Material3.FloatingActionButton.Small.Primary"
@@ -66,8 +64,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingEnd="@dimen/corner_fab_margin"
android:paddingBottom="@dimen/corner_fab_margin"
app:fitsSystemWindowsInsets="top|bottom">
android:paddingBottom="@dimen/corner_fab_margin">
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/search_fab"
@@ -20,8 +20,6 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:paddingTop="16dp"
app:fitsSystemWindowsInsets="top"
app:layout_behavior="@string/searchbar_scrolling_view_behavior">
<com.google.android.material.progressindicator.CircularProgressIndicator
@@ -54,8 +52,7 @@
android:clipChildren="false"
android:clipToPadding="false"
android:paddingHorizontal="@dimen/gallery_list_margin_h"
android:paddingVertical="@dimen/gallery_list_margin_v"
app:fitsSystemWindowsInsets="bottom" />
android:paddingVertical="@dimen/gallery_list_margin_v" />
</androidx.swiperefreshlayout.widget.ThemedSwipeRefreshLayout>
@@ -67,7 +64,6 @@
android:layout_marginTop="@dimen/gallery_padding_top_search_bar"
android:paddingStart="20dp"
android:paddingEnd="4dp"
android:paddingVertical="8dp"
app:fitsSystemWindowsInsets="bottom" />
android:paddingVertical="8dp" />
</FrameLayout>
+1 -1
View File
@@ -41,7 +41,7 @@
<dimen name="gallery_search_bar_margin_v">10dp</dimen>
<dimen name="gallery_padding_top_search_bar">64dp</dimen>
<dimen name="gallery_padding_top_search_bar">80dp</dimen>
<dimen name="gallery_list_column_width_long">480dp</dimen>
<dimen name="gallery_list_column_width_short">320dp</dimen>
+1 -2
View File
@@ -125,7 +125,6 @@ photoview = "com.github.chrisbanes:PhotoView:2.3.0"
r8 = { module = "com.android.tools:r8", version.ref = "android-tools-r8" }
rikkax-core = "dev.rikka.rikkax.core:core-ktx:1.4.1"
rikkax-insets = "dev.rikka.rikkax.insets:insets:1.3.0"
rikkax-layoutinflater = "dev.rikka.rikkax.layoutinflater:layoutinflater:1.3.0"
splitties-appctx = { module = "com.louiscad.splitties:splitties-appctx", version.ref = "splitties" }
@@ -144,7 +143,7 @@ cronet = ["cronet-api", "cronet-gms"]
kotlinx-serialization = ["kotlinx-serialization-cbor", "kotlinx-serialization-json", "kotlinx-serialization-json-okio"]
ktor = ["ktor-io-jvm", "ktor-utils-jvm"]
okhttp = ["okhttp-android", "okhttp-coroutines"]
rikkax = ["rikkax-core", "rikkax-insets", "rikkax-layoutinflater"]
rikkax = ["rikkax-core", "rikkax-layoutinflater"]
splitties = ["splitties-appctx", "splitties-arch-room", "splitties-preferences", "splitties-systemservices"]
[plugins]