diff --git a/app/build.gradle b/app/build.gradle index 1891b4e76..9dcc9f1db 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -123,8 +123,7 @@ dependencies { implementation 'com.google.android.material:material:1.3.0' implementation 'com.getkeepsafe.relinker:relinker:1.4.1' implementation 'com.getkeepsafe.taptargetview:taptargetview:1.13.0' - implementation 'com.github.seven332.a7zip:extract-lite:1b21783' - implementation 'com.github.seven332:android-resource:0.1.0' + implementation 'com.github.seven332.a7zip:extract-lite:cba0ce9586' implementation 'com.github.seven332:beerbelly:0.1.4' implementation 'com.github.seven332:glgallery:0.1.2' implementation 'com.github.seven332:glview:0.1.0' diff --git a/app/src/main/java/com/hippo/ehviewer/UrlOpener.java b/app/src/main/java/com/hippo/ehviewer/UrlOpener.java index 53f76ba45..a8d6c3b5e 100644 --- a/app/src/main/java/com/hippo/ehviewer/UrlOpener.java +++ b/app/src/main/java/com/hippo/ehviewer/UrlOpener.java @@ -28,12 +28,13 @@ import androidx.annotation.NonNull; import androidx.browser.customtabs.CustomTabColorSchemeParams; import androidx.browser.customtabs.CustomTabsIntent; -import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.client.EhUrlOpener; import com.hippo.ehviewer.ui.MainActivity; import com.hippo.scene.Announcer; import com.hippo.scene.StageActivity; +import rikka.core.res.ResourcesKt; + public final class UrlOpener { private UrlOpener() { @@ -64,7 +65,7 @@ public final class UrlOpener { CustomTabsIntent.Builder customTabsIntent = new CustomTabsIntent.Builder(); customTabsIntent.setShowTitle(true); CustomTabColorSchemeParams params = new CustomTabColorSchemeParams.Builder() - .setToolbarColor(AttrResources.getAttrColor(context, R.attr.toolbarColor)) + .setToolbarColor(ResourcesKt.resolveColor(context.getTheme(), R.attr.toolbarColor)) .build(); customTabsIntent.setDefaultColorSchemeParams(params); customTabsIntent.setColorScheme(isNight ? CustomTabsIntent.COLOR_SCHEME_DARK : CustomTabsIntent.COLOR_SCHEME_LIGHT); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java b/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java index 975765ad3..5dda22c4b 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/GalleryActivity.java @@ -58,7 +58,6 @@ import androidx.appcompat.app.AlertDialog; import androidx.core.content.ContextCompat; import androidx.core.content.FileProvider; -import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.AppConfig; import com.hippo.ehviewer.BuildConfig; import com.hippo.ehviewer.R; @@ -97,6 +96,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import rikka.core.res.ResourcesKt; import rikka.material.app.DayNightDelegate; public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChangeListener, @@ -361,15 +361,15 @@ public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChan .setScaleMode(Settings.getPageScaling()) .setStartPosition(Settings.getStartPosition()) .setStartPage(startPage) - .setBackgroundColor(AttrResources.getAttrColor(this, android.R.attr.colorBackground)) - .setEdgeColor(AttrResources.getAttrColor(this, R.attr.colorEdgeEffect) & 0xffffff | 0x33000000) + .setBackgroundColor(ResourcesKt.resolveColor(getTheme(), android.R.attr.colorBackground)) + .setEdgeColor(ResourcesKt.resolveColor(getTheme(), R.attr.colorEdgeEffect) & 0xffffff | 0x33000000) .setPagerInterval(Settings.getShowPageInterval() ? resources.getDimensionPixelOffset(R.dimen.gallery_pager_interval) : 0) .setScrollInterval(Settings.getShowPageInterval() ? resources.getDimensionPixelOffset(R.dimen.gallery_scroll_interval) : 0) .setPageMinHeight(resources.getDimensionPixelOffset(R.dimen.gallery_page_min_height)) .setPageInfoInterval(resources.getDimensionPixelOffset(R.dimen.gallery_page_info_interval)) .setProgressColor(ResourcesUtils.getAttrColor(this, R.attr.colorPrimary)) .setProgressSize(resources.getDimensionPixelOffset(R.dimen.gallery_progress_size)) - .setPageTextColor(AttrResources.getAttrColor(this, android.R.attr.textColorSecondary)) + .setPageTextColor(ResourcesKt.resolveColor(getTheme(), android.R.attr.textColorSecondary)) .setPageTextSize(resources.getDimensionPixelOffset(R.dimen.gallery_page_text_size)) .setPageTextTypeface(Typeface.DEFAULT) .setErrorTextColor(resources.getColor(R.color.red_500)) @@ -397,7 +397,7 @@ public class GalleryActivity extends EhActivity implements SeekBar.OnSeekBarChan flags &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } decorView.setSystemUiVisibility(flags); - window.setStatusBarColor(AttrResources.getAttrColor(this, android.R.attr.colorBackground)); + window.setStatusBarColor(ResourcesKt.resolveColor(getTheme(), android.R.attr.colorBackground)); } mMaskView = (ColorView) ViewUtils.$$(this, R.id.mask); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/FilterFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/FilterFragment.java index ffe91ac76..2f87fee5e 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/FilterFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/FilterFragment.java @@ -26,7 +26,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.checkbox.MaterialCheckBox; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.textfield.TextInputLayout; -import com.hippo.android.resource.AttrResources; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.LinearDividerItemDecoration; import com.hippo.ehviewer.R; @@ -38,6 +37,8 @@ import com.hippo.yorozuya.ViewUtils; import java.util.List; +import rikka.core.res.ResourcesKt; + public class FilterFragment extends BaseFragment { @Nullable @@ -76,7 +77,7 @@ public class FilterFragment extends BaseFragment { recyclerView.setClipChildren(false); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( LinearDividerItemDecoration.VERTICAL, - AttrResources.getAttrColor(requireActivity(), R.attr.dividerColor), + ResourcesKt.resolveColor(requireActivity().getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(requireActivity(), 1)); decoration.setShowLastDivider(true); recyclerView.addItemDecoration(decoration); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/HostsFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/HostsFragment.java index 5dcfc1a0f..c39d01e08 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/HostsFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/HostsFragment.java @@ -18,7 +18,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.floatingactionbutton.FloatingActionButton; import com.google.android.material.textfield.TextInputLayout; -import com.hippo.android.resource.AttrResources; import com.hippo.easyrecyclerview.LinearDividerItemDecoration; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.Hosts; @@ -30,6 +29,8 @@ import com.hippo.yorozuya.ViewUtils; import java.util.List; import java.util.Locale; +import rikka.core.res.ResourcesKt; + public class HostsFragment extends BaseFragment implements View.OnClickListener { @@ -67,7 +68,7 @@ public class HostsFragment extends BaseFragment recyclerView.setLayoutManager(new LinearLayoutManager(requireActivity(), RecyclerView.VERTICAL, false)); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( LinearDividerItemDecoration.VERTICAL, - AttrResources.getAttrColor(requireActivity(), R.attr.dividerColor), + ResourcesKt.resolveColor(requireActivity().getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(requireActivity(), 1)); decoration.setShowLastDivider(true); recyclerView.addItemDecoration(decoration); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/MyTagsFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/MyTagsFragment.java index 1a1559854..2615d09b6 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/MyTagsFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/MyTagsFragment.java @@ -14,7 +14,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.android.material.progressindicator.CircularProgressIndicator; -import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; import com.hippo.ehviewer.client.EhCookieStore; @@ -23,6 +22,7 @@ import com.hippo.ehviewer.widget.DialogWebChromeClient; import okhttp3.Cookie; import okhttp3.HttpUrl; +import rikka.core.res.ResourcesKt; public class MyTagsFragment extends BaseFragment { @@ -36,7 +36,7 @@ public class MyTagsFragment extends BaseFragment { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_webview, container, false); webView = view.findViewById(R.id.webview); - webView.setBackgroundColor(AttrResources.getAttrColor(requireActivity(), android.R.attr.colorBackground)); + webView.setBackgroundColor(ResourcesKt.resolveColor(requireActivity().getTheme(), android.R.attr.colorBackground)); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setDisplayZoomControls(false); webView.getSettings().setJavaScriptEnabled(true); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/UConfigFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/UConfigFragment.java index 17583111b..7e0bd3e36 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/UConfigFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/UConfigFragment.java @@ -17,7 +17,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.google.android.material.progressindicator.CircularProgressIndicator; -import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.R; import com.hippo.ehviewer.client.EhCookieStore; @@ -27,6 +26,7 @@ import com.hippo.ehviewer.widget.DialogWebChromeClient; import okhttp3.Cookie; import okhttp3.HttpUrl; +import rikka.core.res.ResourcesKt; public class UConfigFragment extends BaseFragment { @@ -41,7 +41,7 @@ public class UConfigFragment extends BaseFragment { public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View view = inflater.inflate(R.layout.activity_webview, container, false); webView = view.findViewById(R.id.webview); - webView.setBackgroundColor(AttrResources.getAttrColor(requireActivity(), android.R.attr.colorBackground)); + webView.setBackgroundColor(ResourcesKt.resolveColor(requireActivity().getTheme(), android.R.attr.colorBackground)); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setDisplayZoomControls(false); webView.getSettings().setJavaScriptEnabled(true); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java index bcb95d7a8..a31142d9f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/BaseScene.java @@ -264,4 +264,8 @@ public abstract class BaseScene extends SceneFragment { outState.putSparseParcelableArray(KEY_DRAWER_VIEW_STATE, drawerViewState); } } + + public Resources.Theme getTheme() { + return requireActivity().getTheme(); + } } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java index 993d83ae8..38c1828f5 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/DownloadsScene.java @@ -64,7 +64,6 @@ import com.h6ah4i.android.widget.advrecyclerview.draggable.DraggableItemAdapter; import com.h6ah4i.android.widget.advrecyclerview.draggable.ItemDraggableRange; import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager; import com.h6ah4i.android.widget.advrecyclerview.utils.AbstractDraggableItemViewHolder; -import com.hippo.android.resource.AttrResources; import com.hippo.app.CheckBoxDialogBuilder; import com.hippo.app.EditTextDialogBuilder; import com.hippo.conaco.DataContainer; @@ -112,6 +111,7 @@ import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import rikka.core.res.ResourcesKt; import rikka.recyclerview.RecyclerViewKt; @SuppressLint("RtlHardcoded") @@ -354,7 +354,7 @@ public class DownloadsScene extends ToolbarScene mLayoutManager.setColumnSize(resources.getDimensionPixelOffset(Settings.getDetailSizeResId())); mLayoutManager.setStrategy(AutoStaggeredGridLayoutManager.STRATEGY_MIN_SIZE); mRecyclerView.setLayoutManager(mLayoutManager); - //mRecyclerView.setSelector(Ripple.generateRippleDrawable(context, !AttrResources.getAttrBoolean(context, R.attr.isLightTheme), new ColorDrawable(Color.TRANSPARENT))); + //mRecyclerView.setSelector(Ripple.generateRippleDrawable(context, !ResourcesKt.resolveColor(getTheme(), .getAttrBoolean(context, R.attr.isLightTheme), new ColorDrawable(Color.TRANSPARENT))); //mRecyclerView.setDrawSelectorOnTop(true); mRecyclerView.setClipToPadding(false); mRecyclerView.setClipChildren(false); @@ -381,7 +381,7 @@ public class DownloadsScene extends ToolbarScene mFastScroller.attachToRecyclerView(mRecyclerView); HandlerDrawable handlerDrawable = new HandlerDrawable(); - handlerDrawable.setColor(AttrResources.getAttrColor(context, R.attr.widgetColorThemeAccent)); + handlerDrawable.setColor(ResourcesKt.resolveColor(getTheme(), R.attr.widgetColorThemeAccent)); mFastScroller.setHandlerDrawable(handlerDrawable); mFastScroller.setOnDragHandlerListener(this); @@ -653,7 +653,7 @@ public class DownloadsScene extends ToolbarScene recyclerView.setLayoutManager(new LinearLayoutManager(context)); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( LinearDividerItemDecoration.VERTICAL, - AttrResources.getAttrColor(context, R.attr.dividerColor), + ResourcesKt.resolveColor(getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(context, 1)); decoration.setShowLastDivider(true); recyclerView.addItemDecoration(decoration); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java index 05dbb9ecb..521679924 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/FavoritesScene.java @@ -49,7 +49,6 @@ import androidx.recyclerview.widget.RecyclerView; import com.getkeepsafe.taptargetview.TapTarget; import com.getkeepsafe.taptargetview.TapTargetView; import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.hippo.android.resource.AttrResources; import com.hippo.annotation.Implemented; import com.hippo.app.EditTextDialogBuilder; import com.hippo.drawable.AddDeleteDrawable; @@ -91,6 +90,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import rikka.core.res.ResourcesKt; + // TODO Get favorite, modify favorite, add favorite, what a mess! @SuppressLint("RtlHardcoded") public class FavoritesScene extends BaseScene implements @@ -324,7 +325,7 @@ public class FavoritesScene extends BaseScene implements fastScroller.setPadding(fastScroller.getPaddingLeft(), fastScroller.getPaddingTop() + paddingTopSB, fastScroller.getPaddingRight(), fastScroller.getPaddingBottom()); - mLeftDrawable = new DrawerArrowDrawable(context, AttrResources.getAttrColor(context, android.R.attr.colorControlNormal)); + mLeftDrawable = new DrawerArrowDrawable(context, ResourcesKt.resolveColor(getTheme(), android.R.attr.colorControlNormal)); mSearchBar.setLeftDrawable(mLeftDrawable); mSearchBar.setRightDrawable(ContextCompat.getDrawable(context, R.drawable.v_magnify_x24)); mSearchBar.setHelper(this); @@ -490,7 +491,7 @@ public class FavoritesScene extends BaseScene implements recyclerView.setLayoutManager(new LinearLayoutManager(context)); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( LinearDividerItemDecoration.VERTICAL, - AttrResources.getAttrColor(context, R.attr.dividerColor), + ResourcesKt.resolveColor(getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(context, 1)); decoration.setShowLastDivider(true); recyclerView.addItemDecoration(decoration); 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 1bbcd922b..c71e063fe 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 @@ -57,7 +57,6 @@ import androidx.recyclerview.widget.RecyclerView; import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.google.android.material.floatingactionbutton.FloatingActionButton; -import com.hippo.android.resource.AttrResources; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.LinearDividerItemDecoration; import com.hippo.ehviewer.EhApplication; @@ -95,6 +94,7 @@ import com.hippo.yorozuya.collect.IntList; import java.util.ArrayList; import java.util.List; +import rikka.core.res.ResourcesKt; import rikka.recyclerview.RecyclerViewKt; public final class GalleryCommentsScene extends ToolbarScene @@ -293,7 +293,7 @@ public final class GalleryCommentsScene extends ToolbarScene mRecyclerView.setLayoutManager(new LinearLayoutManager(context, RecyclerView.VERTICAL, false)); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( - LinearDividerItemDecoration.VERTICAL, AttrResources.getAttrColor(context, R.attr.dividerColor), + LinearDividerItemDecoration.VERTICAL, ResourcesKt.resolveColor(getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(context, 1)); decoration.setShowLastDivider(true); mRecyclerView.addItemDecoration(decoration); @@ -412,7 +412,7 @@ public final class GalleryCommentsScene extends ToolbarScene }); rv.setLayoutManager(new LinearLayoutManager(context)); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( - LinearDividerItemDecoration.VERTICAL, AttrResources.getAttrColor(context, R.attr.dividerColor), + LinearDividerItemDecoration.VERTICAL, ResourcesKt.resolveColor(getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(context, 1)); decoration.setPadding(ResourcesUtils.getAttrDimensionPixelOffset(context, R.attr.dialogPreferredPadding)); rv.addItemDecoration(decoration); @@ -950,7 +950,7 @@ public final class GalleryCommentsScene extends ToolbarScene SpannableString ss = new SpannableString(scoreString); ss.setSpan(new RelativeSizeSpan(0.8f), 0, scoreString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new StyleSpan(Typeface.BOLD), 0, scoreString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - ss.setSpan(new ForegroundColorSpan(AttrResources.getAttrColor(context, android.R.attr.textColorSecondary)) + ss.setSpan(new ForegroundColorSpan(ResourcesKt.resolveColor(getTheme(), android.R.attr.textColorSecondary)) , 0, scoreString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ssb.append(" ").append(ss); } @@ -960,7 +960,7 @@ public final class GalleryCommentsScene extends ToolbarScene SpannableString ss = new SpannableString(str); ss.setSpan(new RelativeSizeSpan(0.8f), 0, str.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ss.setSpan(new StyleSpan(Typeface.BOLD), 0, str.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); - ss.setSpan(new ForegroundColorSpan(AttrResources.getAttrColor(context, android.R.attr.textColorSecondary)), + ss.setSpan(new ForegroundColorSpan(ResourcesKt.resolveColor(getTheme(), android.R.attr.textColorSecondary)), 0, str.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); ssb.append("\n\n").append(ss); } diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java index 7f9904ad4..d23d6f1cb 100755 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryDetailScene.java @@ -66,7 +66,6 @@ import androidx.fragment.app.FragmentTransaction; import androidx.transition.TransitionInflater; import com.google.android.material.progressindicator.CircularProgressIndicator; -import com.hippo.android.resource.AttrResources; import com.hippo.app.EditTextDialogBuilder; import com.hippo.beerbelly.BeerBelly; import com.hippo.ehviewer.AppConfig; @@ -132,6 +131,7 @@ import java.util.ArrayList; import java.util.List; import okhttp3.HttpUrl; +import rikka.core.res.ResourcesKt; public class GalleryDetailScene extends BaseScene implements View.OnClickListener, com.hippo.ehviewer.download.DownloadManager.DownloadInfoListener, @@ -827,7 +827,7 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene } if ((oldState == STATE_INIT || oldState == STATE_FAILED || oldState == STATE_REFRESH) && - (state == STATE_NORMAL || state == STATE_REFRESH_HEADER) && AttrResources.getAttrBoolean(getContext(), R.attr.isLightTheme)) { + (state == STATE_NORMAL || state == STATE_REFRESH_HEADER) && ResourcesKt.resolveBoolean(getTheme(), R.attr.isLightTheme, false)) { if (!createCircularReveal()) { SimpleHandler.getInstance().post(this::createCircularReveal); } @@ -934,8 +934,8 @@ public class GalleryDetailScene extends BaseScene implements View.OnClickListene } EhTagDatabase ehTags = Settings.getShowTagTranslations() ? EhTagDatabase.getInstance(context) : null; - int colorTag = AttrResources.getAttrColor(context, R.attr.tagBackgroundColor); - int colorName = AttrResources.getAttrColor(context, R.attr.tagGroupBackgroundColor); + int colorTag = ResourcesKt.resolveColor(getTheme(), R.attr.tagBackgroundColor); + int colorName = ResourcesKt.resolveColor(getTheme(), R.attr.tagGroupBackgroundColor); for (GalleryTagGroup tg : tagGroups) { LinearLayout ll = (LinearLayout) inflater.inflate(R.layout.gallery_tag_group, mTags, false); ll.setOrientation(LinearLayout.HORIZONTAL); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryInfoScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryInfoScene.java index ea48cbfb3..0b7d552ad 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryInfoScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryInfoScene.java @@ -28,7 +28,6 @@ import androidx.annotation.Nullable; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; -import com.hippo.android.resource.AttrResources; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.LinearDividerItemDecoration; import com.hippo.ehviewer.R; @@ -44,6 +43,7 @@ import com.hippo.yorozuya.ViewUtils; import java.util.ArrayList; +import rikka.core.res.ResourcesKt; import rikka.recyclerview.RecyclerViewKt; public final class GalleryInfoScene extends ToolbarScene { @@ -167,7 +167,7 @@ public final class GalleryInfoScene extends ToolbarScene { mRecyclerView.setLayoutManager(new LinearLayoutManager(context, RecyclerView.VERTICAL, false)); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( LinearDividerItemDecoration.VERTICAL, - AttrResources.getAttrColor(context, R.attr.dividerColor), + ResourcesKt.resolveColor(getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(context, 1)); int keylineMargin = context.getResources().getDimensionPixelOffset(R.dimen.keyline_margin); decoration.setPadding(keylineMargin); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java index 881b32c11..85a91a5e7 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryListScene.java @@ -67,7 +67,6 @@ import com.h6ah4i.android.widget.advrecyclerview.draggable.DraggableItemAdapter; import com.h6ah4i.android.widget.advrecyclerview.draggable.ItemDraggableRange; import com.h6ah4i.android.widget.advrecyclerview.draggable.RecyclerViewDragDropManager; import com.h6ah4i.android.widget.advrecyclerview.utils.AbstractDraggableItemViewHolder; -import com.hippo.android.resource.AttrResources; import com.hippo.app.CheckBoxDialogBuilder; import com.hippo.app.EditTextDialogBuilder; import com.hippo.drawable.AddDeleteDrawable; @@ -125,6 +124,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import rikka.core.res.ResourcesKt; + @SuppressLint("RtlHardcoded") public final class GalleryListScene extends BaseScene implements SearchBar.Helper, SearchBar.OnStateChangeListener, FastScroller.OnDragHandlerListener, @@ -656,8 +657,8 @@ public final class GalleryListScene extends BaseScene fastScroller.setPadding(fastScroller.getPaddingLeft(), fastScroller.getPaddingTop() + paddingTopSB, fastScroller.getPaddingRight(), fastScroller.getPaddingBottom()); - mLeftDrawable = new DrawerArrowDrawable(context, AttrResources.getAttrColor(context, android.R.attr.colorControlNormal)); - mRightDrawable = new AddDeleteDrawable(context, AttrResources.getAttrColor(context, android.R.attr.colorControlNormal)); + mLeftDrawable = new DrawerArrowDrawable(context, ResourcesKt.resolveColor(getTheme(), android.R.attr.colorControlNormal)); + mRightDrawable = new AddDeleteDrawable(context, ResourcesKt.resolveColor(getTheme(), android.R.attr.colorControlNormal)); mSearchBar.setLeftDrawable(mLeftDrawable); mSearchBar.setRightDrawable(mRightDrawable); mSearchBar.setHelper(this); @@ -864,7 +865,7 @@ public final class GalleryListScene extends BaseScene recyclerView.setLayoutManager(new LinearLayoutManager(context)); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( LinearDividerItemDecoration.VERTICAL, - AttrResources.getAttrColor(context, R.attr.dividerColor), + ResourcesKt.resolveColor(getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(context, 1)); decoration.setShowLastDivider(true); recyclerView.addItemDecoration(decoration); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java index 9bb395966..186428ad9 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/HistoryScene.java @@ -50,7 +50,6 @@ import com.h6ah4i.android.widget.advrecyclerview.swipeable.action.SwipeResultAct import com.h6ah4i.android.widget.advrecyclerview.swipeable.action.SwipeResultActionRemoveItem; import com.h6ah4i.android.widget.advrecyclerview.touchguard.RecyclerViewTouchActionGuardManager; import com.h6ah4i.android.widget.advrecyclerview.utils.AbstractSwipeableItemViewHolder; -import com.hippo.android.resource.AttrResources; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.FastScroller; import com.hippo.easyrecyclerview.HandlerDrawable; @@ -86,6 +85,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import rikka.core.res.ResourcesKt; import rikka.recyclerview.RecyclerViewKt; public class HistoryScene extends ToolbarScene { @@ -237,7 +237,7 @@ public class HistoryScene extends ToolbarScene { mFastScroller.attachToRecyclerView(mRecyclerView); HandlerDrawable handlerDrawable = new HandlerDrawable(); - handlerDrawable.setColor(AttrResources.getAttrColor(context, R.attr.widgetColorThemeAccent)); + handlerDrawable.setColor(ResourcesKt.resolveColor(getTheme(), R.attr.widgetColorThemeAccent)); mFastScroller.setHandlerDrawable(handlerDrawable); updateLazyList(); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/WebViewSignInScene.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/WebViewSignInScene.java index fcf6f9dae..1fce4f994 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/WebViewSignInScene.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/WebViewSignInScene.java @@ -29,7 +29,6 @@ import android.webkit.WebViewClient; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.EhApplication; import com.hippo.ehviewer.client.EhCookieStore; import com.hippo.ehviewer.client.EhUrl; @@ -43,6 +42,7 @@ import java.util.List; import okhttp3.Cookie; import okhttp3.HttpUrl; +import rikka.core.res.ResourcesKt; public class WebViewSignInScene extends SolidScene { @@ -74,7 +74,7 @@ public class WebViewSignInScene extends SolidScene { cookieManager.removeSessionCookies(null); mWebView = new WebView(context); - mWebView.setBackgroundColor(AttrResources.getAttrColor(requireActivity(), android.R.attr.colorBackground)); + mWebView.setBackgroundColor(ResourcesKt.resolveColor(getTheme(), android.R.attr.colorBackground)); mWebView.getSettings().setBuiltInZoomControls(true); mWebView.getSettings().setDisplayZoomControls(false); mWebView.getSettings().setJavaScriptEnabled(true); diff --git a/app/src/main/java/com/hippo/ehviewer/widget/GalleryGuideView.java b/app/src/main/java/com/hippo/ehviewer/widget/GalleryGuideView.java index 3aee889c6..5cc25a0ef 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/GalleryGuideView.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/GalleryGuideView.java @@ -25,11 +25,12 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; -import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.R; import com.hippo.ehviewer.Settings; import com.hippo.yorozuya.ViewUtils; +import rikka.core.res.ResourcesKt; + public class GalleryGuideView extends ViewGroup implements View.OnClickListener { private final float[] mPoints = new float[3 * 4]; @@ -59,9 +60,9 @@ public class GalleryGuideView extends ViewGroup implements View.OnClickListener } private void init(Context context) { - mBgColor = AttrResources.getAttrColor(context, R.attr.guideBackgroundColor); + mBgColor = ResourcesKt.resolveColor(context.getTheme(), R.attr.guideBackgroundColor); mPaint = new Paint(); - mPaint.setColor(AttrResources.getAttrColor(context, R.attr.guideTitleColor)); + mPaint.setColor(ResourcesKt.resolveColor(context.getTheme(), R.attr.guideTitleColor)); mPaint.setStyle(Paint.Style.STROKE); mPaint.setStrokeWidth(context.getResources().getDimension(R.dimen.gallery_guide_divider_width)); setOnClickListener(this); diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java b/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java index 46f22143a..841f0e568 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchBar.java @@ -45,7 +45,6 @@ import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import com.google.android.material.card.MaterialCardView; -import com.hippo.android.resource.AttrResources; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.LinearDividerItemDecoration; import com.hippo.ehviewer.R; @@ -60,6 +59,8 @@ import com.hippo.yorozuya.ViewUtils; import java.util.ArrayList; import java.util.List; +import rikka.core.res.ResourcesKt; + public class SearchBar extends MaterialCardView implements View.OnClickListener, TextView.OnEditorActionListener, TextWatcher, SearchEditText.SearchEditTextListener { @@ -146,7 +147,7 @@ public class SearchBar extends MaterialCardView implements View.OnClickListener, LinearLayoutManager layoutManager = new LinearLayoutManager(context); LinearDividerItemDecoration decoration = new LinearDividerItemDecoration( LinearDividerItemDecoration.VERTICAL, - AttrResources.getAttrColor(context, R.attr.dividerColor), + ResourcesKt.resolveColor(context.getTheme(), R.attr.dividerColor), LayoutUtils.dp2pix(context, 1)); decoration.setShowLastDivider(false); mListView.addItemDecoration(decoration); diff --git a/app/src/main/java/com/hippo/scene/SceneFragment.java b/app/src/main/java/com/hippo/scene/SceneFragment.java index 55295b059..e86017a29 100644 --- a/app/src/main/java/com/hippo/scene/SceneFragment.java +++ b/app/src/main/java/com/hippo/scene/SceneFragment.java @@ -25,7 +25,6 @@ import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; -import com.hippo.android.resource.AttrResources; import com.hippo.ehviewer.R; import com.hippo.yorozuya.collect.IntList; @@ -34,6 +33,8 @@ import java.lang.annotation.RetentionPolicy; import java.util.ArrayList; import java.util.List; +import rikka.core.res.ResourcesKt; + public class SceneFragment extends Fragment { public static final int LAUNCH_MODE_STANDARD = 0; @@ -108,7 +109,7 @@ public class SceneFragment extends Fragment { super.onViewCreated(view, savedInstanceState); view.setTag(R.id.fragment_tag, getTag()); - view.setBackground(AttrResources.getAttrDrawable(getContext(), android.R.attr.windowBackground)); + view.setBackground(ResourcesKt.resolveDrawable(requireActivity().getTheme(), android.R.attr.windowBackground)); // Notify FragmentActivity activity = getActivity(); diff --git a/app/src/main/java/com/hippo/widget/ContentLayout.java b/app/src/main/java/com/hippo/widget/ContentLayout.java index 67ca6b179..a477a215c 100644 --- a/app/src/main/java/com/hippo/widget/ContentLayout.java +++ b/app/src/main/java/com/hippo/widget/ContentLayout.java @@ -38,7 +38,6 @@ import androidx.swiperefreshlayout.widget.SwipeRefreshLayout; import com.google.android.material.progressindicator.CircularProgressIndicator; import com.google.android.material.progressindicator.LinearProgressIndicator; -import com.hippo.android.resource.AttrResources; import com.hippo.easyrecyclerview.EasyRecyclerView; import com.hippo.easyrecyclerview.FastScroller; import com.hippo.easyrecyclerview.HandlerDrawable; @@ -56,6 +55,7 @@ import java.util.Collections; import java.util.Iterator; import java.util.List; +import rikka.core.res.ResourcesKt; import rikka.recyclerview.RecyclerViewKt; public class ContentLayout extends FrameLayout { @@ -105,7 +105,7 @@ public class ContentLayout extends FrameLayout { mFastScroller.attachToRecyclerView(mRecyclerView); HandlerDrawable drawable = new HandlerDrawable(); - drawable.setColor(AttrResources.getAttrColor(context, R.attr.widgetColorThemeAccent)); + drawable.setColor(ResourcesKt.resolveColor(context.getTheme(), R.attr.widgetColorThemeAccent)); mFastScroller.setHandlerDrawable(drawable); mRefreshLayout.setColorSchemeResources( diff --git a/app/src/main/java/com/hippo/widget/IndicatingScrollView.java b/app/src/main/java/com/hippo/widget/IndicatingScrollView.java deleted file mode 100644 index 315581a6d..000000000 --- a/app/src/main/java/com/hippo/widget/IndicatingScrollView.java +++ /dev/null @@ -1,97 +0,0 @@ -/* - * Copyright (C) 2015 Hippo Seven - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.hippo.widget; - -import android.content.Context; -import android.content.res.TypedArray; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Paint; -import android.graphics.Rect; -import android.util.AttributeSet; -import android.widget.ScrollView; - -import androidx.annotation.NonNull; - -import com.hippo.ehviewer.R; - -public class IndicatingScrollView extends ScrollView { - - private final Paint mPaint = new Paint(); - private final Rect mTemp = new Rect(); - private int mIndicatorHeight; - - public IndicatingScrollView(Context context) { - super(context); - init(context, null); - } - - public IndicatingScrollView(Context context, AttributeSet attrs) { - super(context, attrs); - init(context, attrs); - } - - public IndicatingScrollView(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - init(context, attrs); - } - - private void init(Context context, AttributeSet attrs) { - TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.Indicating); - mIndicatorHeight = a.getDimensionPixelOffset(R.styleable.Indicating_indicatorHeight, 1); - mPaint.setColor(a.getColor(R.styleable.Indicating_indicatorColor, Color.BLACK)); - mPaint.setStyle(Paint.Style.FILL); - a.recycle(); - } - - private void fillTopIndicatorDrawRect() { - mTemp.set(0, 0, getWidth(), mIndicatorHeight); - } - - private void fillBottomIndicatorDrawRect() { - mTemp.set(0, getHeight() - mIndicatorHeight, getWidth(), getHeight()); - } - - private boolean needShowTopIndicator() { - return canScrollVertically(-1); - } - - private boolean needShowBottomIndicator() { - return canScrollVertically(1); - } - - @Override - public void draw(@NonNull Canvas canvas) { - super.draw(canvas); - - final int restoreCount = canvas.save(); - canvas.translate(getScrollX(), getScrollY()); - - // Draw top indicator - if (needShowTopIndicator()) { - fillTopIndicatorDrawRect(); - canvas.drawRect(mTemp, mPaint); - } - // Draw bottom indicator - if (needShowBottomIndicator()) { - fillBottomIndicatorDrawRect(); - canvas.drawRect(mTemp, mPaint); - } - - canvas.restoreToCount(restoreCount); - } -}