Support hide site

pull/589/head
FongMi 9 months ago
parent 7fe6146883
commit a577afd7e5
  1. 16
      app/src/leanback/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java
  2. 12
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomTitleView.java
  3. 12
      app/src/main/java/com/fongmi/android/tv/bean/Site.java
  4. 12
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java
  5. 4
      app/src/mobile/java/com/fongmi/android/tv/ui/dialog/SiteDialog.java

@ -13,6 +13,7 @@ import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.databinding.AdapterSiteBinding;
import java.util.ArrayList;
import java.util.List;
public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
@ -23,7 +24,8 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
public SiteAdapter(OnClickListener listener) {
this.mListener = listener;
this.mItems = VodConfig.get().getSites();
this.mItems = new ArrayList<>();
this.addAll();
}
public interface OnClickListener {
@ -44,6 +46,14 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
setEnable(type == 3);
}
private void addAll() {
for (Site site : VodConfig.get().getSites()) if (!site.isHide()) mItems.add(site);
}
public List<Site> getItems() {
return mItems;
}
@Override
public int getItemCount() {
return mItems.size();
@ -88,8 +98,8 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
}
private void setEnable(boolean enable) {
if (type == 1) for (Site site : VodConfig.get().getSites()) site.setSearchable(enable).save();
if (type == 2) for (Site site : VodConfig.get().getSites()) site.setChangeable(enable).save();
if (type == 1) for (Site site : mItems) site.setSearchable(enable).save();
if (type == 2) for (Site site : mItems) site.setChangeable(enable).save();
notifyItemRangeChanged(0, getItemCount());
}

@ -18,6 +18,7 @@ import com.fongmi.android.tv.impl.SiteCallback;
import com.fongmi.android.tv.utils.KeyUtil;
import com.fongmi.android.tv.utils.ResUtil;
import java.util.ArrayList;
import java.util.List;
public class CustomTitleView extends AppCompatTextView {
@ -41,7 +42,7 @@ public class CustomTitleView extends AppCompatTextView {
}
private boolean hasEvent(KeyEvent event) {
return KeyUtil.isEnterKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event) || (KeyUtil.isUpKey(event) && !coolDown);
return !getSites().isEmpty() && (KeyUtil.isEnterKey(event) || KeyUtil.isLeftKey(event) || KeyUtil.isRightKey(event) || (KeyUtil.isUpKey(event) && !coolDown));
}
@Override
@ -53,7 +54,6 @@ public class CustomTitleView extends AppCompatTextView {
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (VodConfig.get().getSites().isEmpty()) return false;
if (hasEvent(event)) return onKeyDown(event);
else return super.dispatchKeyEvent(event);
}
@ -78,13 +78,19 @@ public class CustomTitleView extends AppCompatTextView {
}
private Site getSite(boolean next) {
List<Site> items = VodConfig.get().getSites();
List<Site> items = getSites();
int position = VodConfig.getHomeIndex();
if (next) position = position > 0 ? --position : items.size() - 1;
else position = position < items.size() - 1 ? ++position : 0;
return items.get(position);
}
private List<Site> getSites() {
List<Site> items = new ArrayList<>();
for (Site site : VodConfig.get().getSites()) if (!site.isHide()) items.add(site);
return items;
}
public interface Listener extends SiteCallback {
void showDialog();

@ -65,6 +65,10 @@ public class Site implements Parcelable {
@SerializedName("type")
private Integer type;
@Ignore
@SerializedName("hide")
private Integer hide;
@Ignore
@SerializedName("indexs")
private Integer indexs;
@ -174,6 +178,10 @@ public class Site implements Parcelable {
return type == null ? 0 : type;
}
public Integer getHide() {
return hide == null ? 0 : hide;
}
public Integer getIndexs() {
return indexs == null ? 0 : indexs;
}
@ -234,6 +242,10 @@ public class Site implements Parcelable {
this.activated = item.equals(this);
}
public boolean isHide() {
return getHide() == 1;
}
public boolean isIndex() {
return getIndexs() == 1;
}

@ -12,6 +12,7 @@ import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.databinding.AdapterSiteBinding;
import java.util.ArrayList;
import java.util.List;
public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
@ -23,7 +24,8 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
public SiteAdapter(OnClickListener listener) {
this.mListener = listener;
this.mItems = VodConfig.get().getSites();
this.mItems = new ArrayList<>();
this.addAll();
}
public SiteAdapter search(boolean search) {
@ -36,6 +38,14 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
return this;
}
private void addAll() {
for (Site site : VodConfig.get().getSites()) if (!site.isHide()) mItems.add(site);
}
public List<Site> getItems() {
return mItems;
}
public interface OnClickListener {
void onTextClick(Site item);

@ -103,7 +103,7 @@ public class SiteDialog implements SiteAdapter.OnClickListener {
@Override
public boolean onSearchLongClick(Site item) {
boolean result = !item.isSearchable();
for (Site site : VodConfig.get().getSites()) site.setSearchable(result).save();
for (Site site : adapter.getItems()) site.setSearchable(result).save();
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
callback.onChanged();
return true;
@ -112,7 +112,7 @@ public class SiteDialog implements SiteAdapter.OnClickListener {
@Override
public boolean onChangeLongClick(Site item) {
boolean result = !item.isChangeable();
for (Site site : VodConfig.get().getSites()) site.setChangeable(result).save();
for (Site site : adapter.getItems()) site.setChangeable(result).save();
adapter.notifyItemRangeChanged(0, adapter.getItemCount());
return true;
}

Loading…
Cancel
Save