From 3f364b1f287bf6f5ed6991ffd1595686dbf5fa18 Mon Sep 17 00:00:00 2001 From: FongMi Date: Mon, 15 Aug 2022 18:58:11 +0800 Subject: [PATCH] Fix search edit text focus color --- .../fongmi/android/tv/ui/activity/SearchActivity.java | 9 ++++++++- .../fongmi/android/tv/ui/custom/CustomEditText.java | 11 ++++++++--- .../fongmi/android/tv/ui/fragment/VodFragment.java | 2 +- app/src/leanback/res/layout/activity_search.xml | 10 ++++++---- .../main/java/com/fongmi/android/tv/utils/Utils.java | 11 +++++++++++ app/src/main/res/drawable/shape_cursor.xml | 6 ++++++ app/src/main/res/values/colors.xml | 2 ++ 7 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 app/src/main/res/drawable/shape_cursor.xml diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java index f78f363f6..cb20e0dbe 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java @@ -34,6 +34,7 @@ import com.fongmi.android.tv.ui.presenter.TitlePresenter; import com.fongmi.android.tv.ui.presenter.VodPresenter; import com.fongmi.android.tv.ui.presenter.WordPresenter; import com.fongmi.android.tv.utils.ResUtil; +import com.fongmi.android.tv.utils.Utils; import java.io.IOException; import java.util.ArrayList; @@ -85,7 +86,6 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick protected void initView() { mHandler = new Handler(Looper.getMainLooper()); CustomKeyboard.init(mBinding); - mBinding.keyword.requestFocus(); setRecyclerView(); setViewModel(); checkKeyword(); @@ -99,6 +99,12 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick mBinding.search.setOnClickListener(view -> onSearch()); mBinding.clear.setOnClickListener(view -> mBinding.keyword.setText("")); mBinding.remote.setOnClickListener(view -> PushActivity.start(this)); + mBinding.voice.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + + } + }); mBinding.keyword.setOnEditorActionListener((textView, actionId, event) -> { if (actionId == EditorInfo.IME_ACTION_DONE) mBinding.search.performClick(); return true; @@ -153,6 +159,7 @@ public class SearchActivity extends BaseActivity implements VodPresenter.OnClick if (TextUtils.isEmpty(keyword)) return; mService = Executors.newFixedThreadPool(5); for (Site site : mSites) mService.execute(() -> mSiteViewModel.searchContent(site.getKey(), keyword)); + Utils.hideKeyboard(mBinding.keyword); showProgress(); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomEditText.java b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomEditText.java index 7a614587d..8d0f54600 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomEditText.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomEditText.java @@ -1,12 +1,16 @@ package com.fongmi.android.tv.ui.custom; import android.content.Context; +import android.content.res.ColorStateList; +import android.graphics.Rect; import android.util.AttributeSet; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.widget.AppCompatEditText; +import com.fongmi.android.tv.R; + public class CustomEditText extends AppCompatEditText { public CustomEditText(@NonNull Context context) { @@ -22,12 +26,13 @@ public class CustomEditText extends AppCompatEditText { } @Override - public boolean isCursorVisible() { + public boolean isFocused() { return true; } @Override - public boolean isFocused() { - return true; + protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) { + super.onFocusChanged(focused, direction, previouslyFocusedRect); + setBackgroundTintList(ColorStateList.valueOf(getResources().getColor(focused ? R.color.white : R.color.transparent))); } } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java index d23403d04..391f8b59a 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java @@ -146,7 +146,7 @@ public class VodFragment extends Fragment implements CustomScroller.Callback, Vo public void toggleFilter(boolean open) { if (open) { addFilter(); - mBinding.recycler.postDelayed(() -> mBinding.recycler.smoothScrollToPosition(0), 100); + mBinding.recycler.postDelayed(() -> mBinding.recycler.smoothScrollToPosition(0), 50); } else { mAdapter.removeItems(0, mFilters.size()); } diff --git a/app/src/leanback/res/layout/activity_search.xml b/app/src/leanback/res/layout/activity_search.xml index 7297e1ab3..9060bd360 100644 --- a/app/src/leanback/res/layout/activity_search.xml +++ b/app/src/leanback/res/layout/activity_search.xml @@ -15,20 +15,22 @@ android:id="@+id/keyword" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@null" + android:layout_marginStart="24dp" + android:layout_marginTop="24dp" + android:layout_marginEnd="24dp" + android:layout_marginBottom="8dp" android:hint="@string/search_hint" android:imeOptions="actionDone" android:inputType="textCapCharacters|textAutoCorrect|textAutoComplete" android:letterSpacing="0.02" android:maxLength="50" android:nextFocusDown="@id/word" - android:paddingStart="24dp" - android:paddingTop="24dp" - android:paddingEnd="24dp" + android:paddingTop="0dp" android:paddingBottom="12dp" android:singleLine="true" android:textColor="@color/white" android:textColorHint="@color/white" + android:textCursorDrawable="@drawable/shape_cursor" android:textSize="24sp" /> + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index d62e59668..a006744e9 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -3,6 +3,7 @@ @color/black @color/black #00000000 + #000000 #1A000000 #33000000 #4D000000 @@ -11,6 +12,7 @@ #99000000 #B3000000 #CC000000 + #FFFFFF #1AFFFFFF #33FFFFFF #4DFFFFFF