Update search

pull/123/head
FongMi 3 years ago
parent 94e9b5b426
commit 4955d63abc
  1. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java
  2. 68
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java
  3. 30
      app/src/leanback/res/layout/activity_search.xml
  4. 15
      app/src/leanback/res/layout/adapter_search_site.xml

@ -21,6 +21,7 @@ import com.fongmi.android.tv.databinding.ActivitySearchBinding;
import com.fongmi.android.tv.net.Callback;
import com.fongmi.android.tv.net.OkHttp;
import com.fongmi.android.tv.ui.adapter.HistoryAdapter;
import com.fongmi.android.tv.ui.adapter.SiteAdapter;
import com.fongmi.android.tv.ui.adapter.WordAdapter;
import com.fongmi.android.tv.ui.custom.CustomKeyboard;
import com.fongmi.android.tv.ui.custom.CustomListener;
@ -90,6 +91,9 @@ public class SearchActivity extends BaseActivity implements WordAdapter.OnClickL
}
private void setRecyclerView() {
mBinding.siteRecycler.setHasFixedSize(true);
mBinding.siteRecycler.addItemDecoration(new SpaceItemDecoration(1, 16));
mBinding.siteRecycler.setAdapter(new SiteAdapter());
mBinding.wordRecycler.setHasFixedSize(true);
mBinding.wordRecycler.addItemDecoration(new SpaceItemDecoration(1, 16));
mBinding.wordRecycler.setAdapter(mWordAdapter = new WordAdapter(this));

@ -0,0 +1,68 @@
package com.fongmi.android.tv.ui.adapter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.databinding.AdapterSearchSiteBinding;
import java.util.List;
public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
private final List<Site> mItems;
public SiteAdapter() {
this.mItems = ApiConfig.get().getSites();
}
@Override
public int getItemCount() {
return mItems.size();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
return new ViewHolder(AdapterSearchSiteBinding.inflate(LayoutInflater.from(parent.getContext()), parent, false));
}
@Override
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Site item = mItems.get(position);
holder.binding.site.setText((item.isSearchable() ? "√ " : "").concat(item.getName()));
}
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener, View.OnLongClickListener {
private final AdapterSearchSiteBinding binding;
public ViewHolder(@NonNull AdapterSearchSiteBinding binding) {
super(binding.getRoot());
this.binding = binding;
itemView.setOnClickListener(this);
itemView.setOnLongClickListener(this);
}
@Override
public void onClick(View view) {
Site item = mItems.get(getLayoutPosition());
item.setSearchable(!item.isSearchable()).save();
notifyItemChanged(getLayoutPosition());
}
@Override
public boolean onLongClick(View v) {
Site item = mItems.get(getLayoutPosition());
boolean result = !item.isSearchable();
for (Site site : mItems) site.setSearchable(result).save();
notifyItemRangeChanged(0, mItems.size());
return true;
}
}
}

@ -11,9 +11,37 @@
android:paddingTop="24dp"
android:paddingEnd="24dp">
<LinearLayout
android:id="@+id/siteLayout"
android:layout_width="120dp"
android:layout_height="match_parent"
android:layout_marginEnd="36dp"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:text="站點"
android:textColor="@color/white"
android:textSize="24sp" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/siteRecycler"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipChildren="false"
android:clipToPadding="false"
android:paddingBottom="24dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:itemCount="10"
tools:listitem="@layout/adapter_search_site" />
</LinearLayout>
<LinearLayout
android:id="@+id/historyLayout"
android:layout_width="128dp"
android:layout_width="120dp"
android:layout_height="match_parent"
android:layout_marginEnd="36dp"
android:orientation="vertical">

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/site"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/selector_item_round"
android:drawablePadding="4dp"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="泥巴影院" />
Loading…
Cancel
Save