Fix search edit text focus color

pull/102/head
FongMi 4 years ago
parent 835326bd6c
commit 3f364b1f28
  1. 9
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java
  2. 11
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomEditText.java
  3. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  4. 10
      app/src/leanback/res/layout/activity_search.xml
  5. 11
      app/src/main/java/com/fongmi/android/tv/utils/Utils.java
  6. 6
      app/src/main/res/drawable/shape_cursor.xml
  7. 2
      app/src/main/res/values/colors.xml

@ -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();
}

@ -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)));
}
}

@ -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());
}

@ -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" />
<androidx.leanback.widget.VerticalGridView

@ -2,11 +2,14 @@ package com.fongmi.android.tv.utils;
import android.app.Activity;
import android.app.PictureInPictureParams;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.IBinder;
import android.provider.Settings;
import android.util.Rational;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import com.fongmi.android.tv.App;
import com.google.android.exoplayer2.util.Util;
@ -50,4 +53,12 @@ public class Utils {
if (SNIFFER.matcher(url).find()) return !url.contains("cdn-tos") || (!url.contains(".js") && !url.contains(".css"));
return false;
}
public static void hideKeyboard(View view) {
InputMethodManager imm = (InputMethodManager) App.get().getSystemService(Context.INPUT_METHOD_SERVICE);
IBinder windowToken = view.getWindowToken();
if (imm != null && windowToken != null) {
imm.hideSoftInputFromWindow(windowToken, 0);
}
}
}

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:width="2dp" />
<solid android:color="@color/white" />
</shape>

@ -3,6 +3,7 @@
<color name="primary">@color/black</color>
<color name="primaryDark">@color/black</color>
<color name="transparent">#00000000</color>
<color name="black">#000000</color>
<color name="black_10">#1A000000</color>
<color name="black_20">#33000000</color>
<color name="black_30">#4D000000</color>
@ -11,6 +12,7 @@
<color name="black_60">#99000000</color>
<color name="black_70">#B3000000</color>
<color name="black_80">#CC000000</color>
<color name="white">#FFFFFF</color>
<color name="white_10">#1AFFFFFF</color>
<color name="white_20">#33FFFFFF</color>
<color name="white_30">#4DFFFFFF</color>

Loading…
Cancel
Save