diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.java b/app/src/main/java/com/hippo/ehviewer/Settings.java index 57c09ca8f..89be8bd14 100644 --- a/app/src/main/java/com/hippo/ehviewer/Settings.java +++ b/app/src/main/java/com/hippo/ehviewer/Settings.java @@ -255,6 +255,24 @@ public class Settings { return getIntFromStr(KEY_LIST_MODE, DEFAULT_LIST_MODE); } + public static final String KEY_DETAIL_SIZE = "detail_size"; + private static final int DEFAULT_DETAIL_SIZE = 0; + + public static int getDetailSize() { + return getIntFromStr(KEY_DETAIL_SIZE, DEFAULT_DETAIL_SIZE); + } + + @DimenRes + public static int getDetailSizeResId() { + switch (getDetailSize()) { + default: + case 0: + return R.dimen.gallery_list_column_width_long; + case 1: + return R.dimen.gallery_list_column_width_short; + } + } + public static final String KEY_THUMB_SIZE = "thumb_size"; private static final int DEFAULT_THUMB_SIZE = 1; diff --git a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.java b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.java index a5de7cb80..9beae252f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/fragment/EhFragment.java @@ -34,10 +34,12 @@ public class EhFragment extends PreferenceFragment Preference gallerySite = findPreference(Settings.KEY_GALLERY_SITE); Preference listMode = findPreference(Settings.KEY_LIST_MODE); + Preference detailSize = findPreference(Settings.KEY_DETAIL_SIZE); Preference thumbSize = findPreference(Settings.KEY_THUMB_SIZE); gallerySite.setOnPreferenceChangeListener(this); listMode.setOnPreferenceChangeListener(this); + detailSize.setOnPreferenceChangeListener(this); thumbSize.setOnPreferenceChangeListener(this); } @@ -50,6 +52,8 @@ public class EhFragment extends PreferenceFragment } else if (Settings.KEY_LIST_MODE.equals(key)) { getActivity().setResult(Activity.RESULT_OK); return true; + } else if (Settings.KEY_DETAIL_SIZE.equals(key)) { + getActivity().setResult(Activity.RESULT_OK); } else if (Settings.KEY_THUMB_SIZE.equals(key)) { getActivity().setResult(Activity.RESULT_OK); } 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 bfce5d656..de3d975f7 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 @@ -297,7 +297,7 @@ public class DownloadsScene extends ToolbarScene mAdapter.setHasStableIds(true); mRecyclerView.setAdapter(mAdapter); mLayoutManager = new AutoStaggeredGridLayoutManager(0, StaggeredGridLayoutManager.VERTICAL); - mLayoutManager.setColumnSize(resources.getDimensionPixelOffset(R.dimen.gallery_list_column_width)); + mLayoutManager.setColumnSize(resources.getDimensionPixelOffset(Settings.getDetailSizeResId())); mLayoutManager.setStrategy(AutoStaggeredGridLayoutManager.STRATEGY_MIN_SIZE); mRecyclerView.setLayoutManager(mLayoutManager); mRecyclerView.setSelector(Ripple.generateRippleDrawable(context, false)); diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java index 92f35e56f..d49ea2d7f 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryAdapter.java @@ -95,7 +95,7 @@ abstract class GalleryAdapter extends RecyclerView.Adapter { switch (type) { default: case GalleryAdapter.TYPE_LIST: { - int columnWidth = mResources.getDimensionPixelOffset(R.dimen.gallery_list_column_width); + int columnWidth = mResources.getDimensionPixelOffset(Settings.getDetailSizeResId()); mLayoutManager.setColumnSize(columnWidth); mLayoutManager.setStrategy(AutoStaggeredGridLayoutManager.STRATEGY_MIN_SIZE); if (null != mGirdDecoration) { 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 8d8c6e08f..672bb76ab 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 @@ -48,6 +48,7 @@ import com.hippo.easyrecyclerview.HandlerDrawable; import com.hippo.easyrecyclerview.MarginItemDecoration; import com.hippo.ehviewer.EhDB; import com.hippo.ehviewer.R; +import com.hippo.ehviewer.Settings; import com.hippo.ehviewer.client.EhCacheKeyFactory; import com.hippo.ehviewer.client.EhUtils; import com.hippo.ehviewer.client.data.GalleryInfo; @@ -122,7 +123,7 @@ public class HistoryScene extends ToolbarScene mRecyclerView.setItemAnimator(animator); AutoStaggeredGridLayoutManager layoutManager = new AutoStaggeredGridLayoutManager( 0, StaggeredGridLayoutManager.VERTICAL); - layoutManager.setColumnSize(resources.getDimensionPixelOffset(R.dimen.gallery_list_column_width)); + layoutManager.setColumnSize(resources.getDimensionPixelOffset(Settings.getDetailSizeResId())); layoutManager.setStrategy(AutoStaggeredGridLayoutManager.STRATEGY_MIN_SIZE); mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setSelector(Ripple.generateRippleDrawable(context, false)); diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index bb3413dac..9f8a608fc 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -361,6 +361,9 @@ 列表模式 详情 缩略图 + 详情大小 + 长 + 短 缩略图大小 大 中 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index feae0d320..05d773f5c 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -361,6 +361,9 @@ 列表模式 詳情 縮略圖 + 詳情大小 + 長 + 短 縮略圖大小 大 中 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 658835c4d..51aed953f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -361,6 +361,9 @@ 列表模式 詳情 縮圖 + 詳情大小 + 長 + 短 縮圖大小 大 中 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index cdbf28c5d..0676fc3ef 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -37,12 +37,28 @@ 1 + + @string/settings_eh_detail_size_long + @string/settings_eh_detail_size_short + + + + 0 + 1 + + @string/settings_eh_thumb_size_large @string/settings_eh_thumb_size_middle @string/settings_eh_thumb_size_small + + 0 + 1 + 2 + + @string/settings_eh_thumb_resolution_auto 250x @@ -55,12 +71,6 @@ 2 - - 0 - 1 - 2 - - @string/star_2 @string/star_3 diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml index 8c2308a3e..91d754dcd 100644 --- a/app/src/main/res/values/dimens.xml +++ b/app/src/main/res/values/dimens.xml @@ -59,7 +59,9 @@ 64dp 80dp - 480dp + 480dp + 320dp + 160dp 120dp 80dp diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index bd2059ac8..5b331fbeb 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -403,6 +403,9 @@ List mode Detail Thumb + Detail size + Long + Short Thumb size Large Middle diff --git a/app/src/main/res/xml/eh_settings.xml b/app/src/main/res/xml/eh_settings.xml index a5fd2c4ac..5f9bcd2da 100644 --- a/app/src/main/res/xml/eh_settings.xml +++ b/app/src/main/res/xml/eh_settings.xml @@ -40,6 +40,14 @@ app:entryValues="@array/list_mode_entry_values" android:defaultValue="0"/> + +