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