diff --git a/app/src/main/java/com/hippo/ehviewer/client/data/ListUrlBuilder.java b/app/src/main/java/com/hippo/ehviewer/client/data/ListUrlBuilder.java index 3e77f5499..20056c6d1 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/data/ListUrlBuilder.java +++ b/app/src/main/java/com/hippo/ehviewer/client/data/ListUrlBuilder.java @@ -405,6 +405,21 @@ public class ListUrlBuilder implements Cloneable, Parcelable { advanceSearch |= AdvanceSearchTable.SH; } break; + case "f_sfl": + if ("on".equals(value)) { + advanceSearch |= AdvanceSearchTable.SFL; + } + break; + case "f_sfu": + if ("on".equals(value)) { + advanceSearch |= AdvanceSearchTable.SFU; + } + break; + case "f_sft": + if ("on".equals(value)) { + advanceSearch |= AdvanceSearchTable.SFT; + } + break; case "f_sr": if ("on".equals(value)) { enableMinRating = true; @@ -490,6 +505,9 @@ public class ListUrlBuilder implements Cloneable, Parcelable { if((mAdvanceSearch & AdvanceSearchTable.SDT1) != 0) ub.addQuery("f_sdt1", "on"); if((mAdvanceSearch & AdvanceSearchTable.SDT2) != 0) ub.addQuery("f_sdt2", "on"); if((mAdvanceSearch & AdvanceSearchTable.SH) != 0) ub.addQuery("f_sh", "on"); + if((mAdvanceSearch & AdvanceSearchTable.SFL) != 0) ub.addQuery("f_sfl", "on"); + if((mAdvanceSearch & AdvanceSearchTable.SFU) != 0) ub.addQuery("f_sfu", "on"); + if((mAdvanceSearch & AdvanceSearchTable.SFT) != 0) ub.addQuery("f_sft", "on"); // Set min star if (mMinRating != -1) { ub.addQuery("f_sr", "on"); diff --git a/app/src/main/java/com/hippo/ehviewer/widget/AdvanceSearchTable.java b/app/src/main/java/com/hippo/ehviewer/widget/AdvanceSearchTable.java index 8862106a9..480b91327 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/AdvanceSearchTable.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/AdvanceSearchTable.java @@ -25,12 +25,12 @@ import android.view.View; import android.view.ViewGroup; import android.widget.CheckBox; import android.widget.EditText; +import android.widget.LinearLayout; import android.widget.Spinner; -import android.widget.TableLayout; import com.hippo.ehviewer.R; import com.hippo.yorozuya.NumberUtils; -public class AdvanceSearchTable extends TableLayout { +public class AdvanceSearchTable extends LinearLayout { private static final String STATE_KEY_SUPER = "super"; private static final String STATE_KEY_ADVANCE_SEARCH = "advance_search"; @@ -46,6 +46,9 @@ public class AdvanceSearchTable extends TableLayout { public static final int SDT1 = 0x20; public static final int SDT2 = 0x40; public static final int SH = 0x80; + public static final int SFL = 0x100; + public static final int SFU = 0x200; + public static final int SFT = 0x400; private CheckBox mSname; private CheckBox mStags; @@ -60,6 +63,9 @@ public class AdvanceSearchTable extends TableLayout { private CheckBox mSp; private EditText mSpf; private EditText mSpt; + private CheckBox mSfl; + private CheckBox mSfu; + private CheckBox mSft; public AdvanceSearchTable(Context context) { super(context); @@ -72,6 +78,8 @@ public class AdvanceSearchTable extends TableLayout { } public void init(Context context) { + setOrientation(LinearLayout.VERTICAL); + LayoutInflater inflater = LayoutInflater.from(getContext()); inflater.inflate(R.layout.widget_advance_search_table, this); @@ -100,6 +108,11 @@ public class AdvanceSearchTable extends TableLayout { mSpf = (EditText) row5.getChildAt(1); mSpt = (EditText) row5.getChildAt(3); + ViewGroup row7 = (ViewGroup) getChildAt(7); + mSfl = (CheckBox) row7.getChildAt(0); + mSfu = (CheckBox) row7.getChildAt(1); + mSft = (CheckBox) row7.getChildAt(2); + // Avoid java.lang.IllegalStateException: focus search returned a view that wasn't able to take focus! mSpt.setOnEditorActionListener((v, actionId, event) -> { View nextView = v.focusSearch(View.FOCUS_DOWN); @@ -120,6 +133,9 @@ public class AdvanceSearchTable extends TableLayout { if (mSdt1.isChecked()) advanceSearch |= SDT1; if (mSdt2.isChecked()) advanceSearch |= SDT2; if (mSh.isChecked()) advanceSearch |= SH; + if (mSfl.isChecked()) advanceSearch |= SFL; + if (mSfu.isChecked()) advanceSearch |= SFU; + if (mSft.isChecked()) advanceSearch |= SFT; return advanceSearch; } @@ -155,6 +171,9 @@ public class AdvanceSearchTable extends TableLayout { mSdt1.setChecked(NumberUtils.int2boolean(advanceSearch & SDT1)); mSdt2.setChecked(NumberUtils.int2boolean(advanceSearch & SDT2)); mSh.setChecked(NumberUtils.int2boolean(advanceSearch & SH)); + mSfl.setChecked(NumberUtils.int2boolean(advanceSearch & SFL)); + mSfu.setChecked(NumberUtils.int2boolean(advanceSearch & SFU)); + mSft.setChecked(NumberUtils.int2boolean(advanceSearch & SFT)); } public void setMinRating(int minRating) { diff --git a/app/src/main/res/layout/widget_advance_search_table.xml b/app/src/main/res/layout/widget_advance_search_table.xml index 40b999891..45685fee8 100644 --- a/app/src/main/res/layout/widget_advance_search_table.xml +++ b/app/src/main/res/layout/widget_advance_search_table.xml @@ -16,13 +16,17 @@ - + + @@ -30,96 +34,115 @@ android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" - android:layout_marginBottom="@dimen/advance_search_table_item_margin" android:layout_marginLeft="@dimen/advance_search_table_item_margin" + android:layout_gravity="center_vertical" android:checked="true" android:text="@string/search_stags"/> - + + + - - + + + - - + + + - - + + + - - + + + - @@ -137,15 +161,63 @@ android:layout_height="wrap_content" android:layout_marginLeft="@dimen/advance_search_table_item_margin" android:layout_marginRight="@dimen/advance_search_table_item_margin" - android:text="@string/search_sp_to"/> + android:layout_gravity="center_vertical" + android:text="@string/search_sp_to" + android:textColor="?android:attr/textColorPrimary"/> - + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 5a866b393..4c011bd53 100755 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -154,6 +154,10 @@ 最低评分: 页数: 到 + 禁用排除项: + 语言 + 上传者 + 标签 选择图片 使用相似搜索 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index a5e5c7b0e..0890a3a64 100755 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -154,6 +154,10 @@ 最低評分: 頁數: 到 + 禁用排除項: + 語言 + 上傳者 + 標籤 選擇圖片 使用相似搜索 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 02e4fd197..d40144cdc 100755 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -154,6 +154,10 @@ 最低評分: 頁數: 到 + 禁用排除項: + 語言 + 上傳者 + 標籤 選擇圖片 使用相似性搜尋 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3860f6f6b..77db2766d 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -196,6 +196,10 @@ Minimum Rating: Pages: to + Disable default filters for: + Language + Uploader + Tags Select image Use similarity scan