diff --git a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java index 628bdf718..de3478915 100644 --- a/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java +++ b/app/src/main/java/com/hippo/ehviewer/widget/SearchLayout.java @@ -43,7 +43,6 @@ import com.hippo.util.UiUtils; import com.hippo.util.ViewUtils; import com.hippo.widget.FloatLabelEditText; import com.hippo.widget.FloatingActionButton; -import com.hippo.widget.PrefixEditText; import com.hippo.widget.recyclerview.EasyRecyclerView; public class SearchLayout extends FrameLayout implements CompoundButton.OnCheckedChangeListener, @@ -85,7 +84,7 @@ public class SearchLayout extends FrameLayout implements CompoundButton.OnChecke private View mNormalView; private CategoryTable mTableCategory; private CheckBox mCheckSpecifyAuthor; - private PrefixEditText mTextSearch; + private FloatLabelEditText mTextSearch; private SwitchCompat mSwitchEnableAdvance; private View mAdvanceView; @@ -391,7 +390,7 @@ public class SearchLayout extends FrameLayout implements CompoundButton.OnChecke mNormalView = holder.content.getChildAt(0); mTableCategory = (CategoryTable) mNormalView.findViewById(R.id.search_category_table); mCheckSpecifyAuthor = (CheckBox) mNormalView.findViewById(R.id.search_specify_author); - mTextSearch = (PrefixEditText) mNormalView.findViewById(R.id.search_text); + mTextSearch = (FloatLabelEditText) mNormalView.findViewById(R.id.search_text); mSwitchEnableAdvance = (SwitchCompat) mNormalView.findViewById(R.id.search_enable_advance); // Restore state diff --git a/app/src/main/java/com/hippo/widget/FixedAspectImageView.java b/app/src/main/java/com/hippo/widget/FixedAspectImageView.java index 6ee50e19e..ba32da7ca 100644 --- a/app/src/main/java/com/hippo/widget/FixedAspectImageView.java +++ b/app/src/main/java/com/hippo/widget/FixedAspectImageView.java @@ -78,7 +78,7 @@ public class FixedAspectImageView extends ImageView { a = context.obtainStyledAttributes( attrs, R.styleable.FixedAspectImageView, defStyle, 0); - setAspect(a.getFloat(R.styleable.FixedAspectImageView_faiAspect, -1f)); + setAspect(a.getFloat(R.styleable.FixedAspectImageView_aspect, -1f)); a.recycle(); } diff --git a/app/src/main/java/com/hippo/widget/FixedAspectLayout.java b/app/src/main/java/com/hippo/widget/FixedAspectLayout.java index 1ab319184..8d7b56966 100644 --- a/app/src/main/java/com/hippo/widget/FixedAspectLayout.java +++ b/app/src/main/java/com/hippo/widget/FixedAspectLayout.java @@ -54,7 +54,7 @@ public class FixedAspectLayout extends FrameLayout { private void init(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { TypedArray a = context.obtainStyledAttributes( attrs, R.styleable.FixedAspectLayout, defStyleAttr, defStyleRes); - setAspect(a.getFloat(R.styleable.FixedAspectLayout_falAspect, -1f)); + setAspect(a.getFloat(R.styleable.FixedAspectLayout_aspect, -1f)); a.recycle(); } diff --git a/app/src/main/java/com/hippo/widget/FloatLabelEditText.java b/app/src/main/java/com/hippo/widget/FloatLabelEditText.java index 5c82a00b4..0d65687ea 100644 --- a/app/src/main/java/com/hippo/widget/FloatLabelEditText.java +++ b/app/src/main/java/com/hippo/widget/FloatLabelEditText.java @@ -29,7 +29,6 @@ import android.util.AttributeSet; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; -import android.widget.EditText; import android.widget.FrameLayout; import android.widget.TextView; @@ -54,7 +53,7 @@ public class FloatLabelEditText extends FrameLayout { }; private TextView mLabel; - private EditText mEditText; + private PrefixEditText mEditText; private Trigger mTrigger = Trigger.TEXT; @@ -78,35 +77,39 @@ public class FloatLabelEditText extends FrameLayout { private void init(Context context, AttributeSet attrs) { mLabel = new TextView(context); - mLabel.setVisibility(View.INVISIBLE); - - final TypedArray a = context - .obtainStyledAttributes(attrs, R.styleable.FloatLabelEditText); - mLabel.setTextAppearance(context, - a.getResourceId(R.styleable.FloatLabelEditText_fllLabelAppearance, - android.R.style.TextAppearance_Small)); - final int index = a.getInt(R.styleable.FloatLabelEditText_fllTrigger, -1); - if (index >= 0) { - setTrigger(sTriggerArray[index]); - } - a.recycle(); addView(mLabel, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); - EditText attrCollector = new EditText(context, attrs); - mEditText = (EditText) LayoutInflater.from(getContext()).inflate( + PrefixEditText attrCollector = new PrefixEditText(context, attrs); + mEditText = (PrefixEditText) LayoutInflater.from(getContext()).inflate( R.layout.widget_float_label_edit_text, this, false); - - // Collect attr - mHint = attrCollector.getHint(); - mEditText.setInputType(attrCollector.getInputType()); - final LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); lp.gravity = Gravity.BOTTOM; lp.topMargin = (int) mLabel.getTextSize(); addView(mEditText, lp); + // Collect attr + mHint = attrCollector.getHint(); + mEditText.setInputType(attrCollector.getInputType()); + + final TypedArray a = context + .obtainStyledAttributes(attrs, R.styleable.FloatLabelEditText); + mLabel.setTextAppearance(context, + a.getResourceId(R.styleable.FloatLabelEditText_labelAppearance, + android.R.style.TextAppearance_Small)); + CharSequence labelHint = a.getText(R.styleable.FloatLabelEditText_labelHint); + if (labelHint == null) { + labelHint = mHint; + } + mLabel.setText(labelHint); + final int index = a.getInt(R.styleable.FloatLabelEditText_trigger, -1); + if (index >= 0) { + setTrigger(sTriggerArray[index]); + } + a.recycle(); + + mLabel.setVisibility(View.INVISIBLE); + mEditText.setHint(mHint); - mLabel.setText(mHint); // Add a TextWatcher so that we know when the text input has changed mEditText.addTextChangedListener(mTextWatcher); @@ -183,6 +186,14 @@ public class FloatLabelEditText extends FrameLayout { return mEditText.getText(); } + public void setPrefix(int resId) { + mEditText.setPrefix(resId); + } + + public void setPrefix(String prefix) { + mEditText.setPrefix(prefix); + } + private TextWatcher mTextWatcher = new TextWatcher() { @Override diff --git a/app/src/main/java/com/hippo/widget/FloatingActionButton.java b/app/src/main/java/com/hippo/widget/FloatingActionButton.java index 8bdb963aa..f68a024a5 100644 --- a/app/src/main/java/com/hippo/widget/FloatingActionButton.java +++ b/app/src/main/java/com/hippo/widget/FloatingActionButton.java @@ -60,8 +60,8 @@ public class FloatingActionButton extends View { TypedArray a; a = context.obtainStyledAttributes(attrs, R.styleable.FloatingActionButton, defStyleAttr, defStyleRes); - int bgColor = a.getColor(R.styleable.FloatingActionButton_fabColor, Color.BLACK); - mDrawable = a.getDrawable(R.styleable.FloatingActionButton_fabDrawable); + int bgColor = a.getColor(R.styleable.FloatingActionButton_color, Color.BLACK); + mDrawable = a.getDrawable(R.styleable.FloatingActionButton_drawable); a.recycle(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { diff --git a/app/src/main/res/layout/search_normal.xml b/app/src/main/res/layout/search_normal.xml index 2c40df68d..c5e9e7c74 100644 --- a/app/src/main/res/layout/search_normal.xml +++ b/app/src/main/res/layout/search_normal.xml @@ -32,13 +32,16 @@ android:layout_marginBottom="@dimen/search_item_interval" android:text="@string/search_specify_author"/> - + android:singleLine="true" + auto:labelHint="@string/keyword" + auto:labelAppearance="@style/TextAppearance.FloatLabelEditText.Lable"/> + auto:labelAppearance="@style/TextAppearance.FloatLabelEditText.Lable.Single"/> diff --git a/app/src/main/res/layout/widget_float_label_edit_text.xml b/app/src/main/res/layout/widget_float_label_edit_text.xml index a0c2010c8..a6340543b 100644 --- a/app/src/main/res/layout/widget_float_label_edit_text.xml +++ b/app/src/main/res/layout/widget_float_label_edit_text.xml @@ -13,9 +13,9 @@ ~ See the License for the specific language governing permissions and ~ limitations under the License. --> - - + diff --git a/app/src/main/res/layout/widget_search_layout.xml b/app/src/main/res/layout/widget_search_layout.xml index 85f6d5b40..7d2493288 100644 --- a/app/src/main/res/layout/widget_search_layout.xml +++ b/app/src/main/res/layout/widget_search_layout.xml @@ -30,7 +30,7 @@ style="@style/FloatingActionButton.Content" android:layout_width="wrap_content" android:layout_height="wrap_content" - auto:fabColor="?attr/colorAccent" - auto:fabDrawable="@drawable/ic_fab_search"/> + auto:color="?attr/colorAccent" + auto:drawable="@drawable/ic_fab_search"/> diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d30c8dbc1..7e1e2f223 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -47,4 +47,7 @@ 4 星 5 星 + + 关键字 + diff --git a/app/src/main/res/values/attrs.xml b/app/src/main/res/values/attrs.xml index 9e9abe6c8..28a0c2538 100644 --- a/app/src/main/res/values/attrs.xml +++ b/app/src/main/res/values/attrs.xml @@ -16,28 +16,29 @@ - + - + - - + + - - + + + - + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index c5773ae96..0e8fb43aa 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -65,4 +65,7 @@ 4 stars 5 stars + + Keyword + diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 1169dc041..7603c2468 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -44,7 +44,7 @@