From c6682ce718286423daa6709ec5b8a8172950a0a6 Mon Sep 17 00:00:00 2001 From: tarsin Date: Mon, 26 Dec 2022 19:01:35 +0800 Subject: [PATCH] Fix SwipeRefreshLayout theme --- .../widget/ThemedSwipeRefreshLayout.kt | 25 +++++++++++++++++++ .../ui/scene/GalleryCommentsScene.java | 1 - .../java/com/hippo/widget/ContentLayout.java | 2 -- .../res/layout/scene_gallery_comments.xml | 4 +-- .../main/res/layout/widget_content_layout.xml | 4 +-- 5 files changed, 29 insertions(+), 7 deletions(-) create mode 100644 app/src/main/java/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt diff --git a/app/src/main/java/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt b/app/src/main/java/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt new file mode 100644 index 000000000..a9407e62f --- /dev/null +++ b/app/src/main/java/androidx/swiperefreshlayout/widget/ThemedSwipeRefreshLayout.kt @@ -0,0 +1,25 @@ +package androidx.swiperefreshlayout.widget + +import android.annotation.SuppressLint +import android.content.Context +import android.graphics.drawable.ShapeDrawable +import android.util.AttributeSet +import androidx.core.graphics.ColorUtils +import rikka.core.res.resolveColor + + +@SuppressLint("PrivateResource") +class ThemedSwipeRefreshLayout @JvmOverloads constructor( + context: Context, attrs: AttributeSet? = null +) : SwipeRefreshLayout(context, attrs) { + + init { + val surfaceColor = + context.theme.resolveColor(com.google.android.material.R.attr.colorSurface) + val overlayColor = + context.getColor(com.google.android.material.R.color.m3_popupmenu_overlay_color) + val backgroundColor = ColorUtils.compositeColors(overlayColor, surfaceColor) + (mCircleView.background as ShapeDrawable).paint.color = backgroundColor + setColorSchemeColors(context.theme.resolveColor(com.google.android.material.R.attr.colorAccent)) + } +} \ No newline at end of file diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java index 9f51edfff..448ac131a 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryCommentsScene.java @@ -194,7 +194,6 @@ public final class GalleryCommentsScene extends ToolbarScene mEditPanel, mFabLayout )); - mRefreshLayout.setColorSchemeColors(ResourcesKt.resolveColor(getTheme(), androidx.appcompat.R.attr.colorPrimary)); mRefreshLayout.setOnRefreshListener(this); Context context = requireContext(); diff --git a/app/src/main/java/com/hippo/widget/ContentLayout.java b/app/src/main/java/com/hippo/widget/ContentLayout.java index 8cee7f757..d434e4a29 100644 --- a/app/src/main/java/com/hippo/widget/ContentLayout.java +++ b/app/src/main/java/com/hippo/widget/ContentLayout.java @@ -104,8 +104,6 @@ public class ContentLayout extends FrameLayout { mBottomProgress = mContentView.findViewById(R.id.bottom_progress); mFastScroller = mContentView.findViewById(R.id.fast_scroller); mRecyclerView = mRefreshLayout.findViewById(R.id.recycler_view); - - mRefreshLayout.setColorSchemeColors(ResourcesKt.resolveColor(context.getTheme(), androidx.appcompat.R.attr.colorPrimary)); mFastScroller.attachToRecyclerView(mRecyclerView); HandlerDrawable drawable = new HandlerDrawable(); drawable.setColor(ResourcesKt.resolveColor(context.getTheme(), androidx.appcompat.R.attr.colorPrimary)); diff --git a/app/src/main/res/layout/scene_gallery_comments.xml b/app/src/main/res/layout/scene_gallery_comments.xml index 1e44da461..1901ffd37 100644 --- a/app/src/main/res/layout/scene_gallery_comments.xml +++ b/app/src/main/res/layout/scene_gallery_comments.xml @@ -20,7 +20,7 @@ android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior"> - @@ -34,7 +34,7 @@ android:paddingRight="@dimen/keyline_margin" app:fitsSystemWindowsInsets="bottom" /> - + - - +