Update site dialog

pull/123/head
FongMi 3 years ago
parent ed843580e8
commit 69a42f2f6a
  1. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 8
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SearchActivity.java
  3. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java
  4. 24
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java
  5. 15
      app/src/leanback/java/com/fongmi/android/tv/ui/presenter/SitePresenter.java
  6. 2
      app/src/leanback/res/layout/adapter_site.xml

@ -253,7 +253,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
@Override
public void showDialog() {
SiteDialog.create(this).show();
SiteDialog.create(this).filter(true).show();
}
@Override

@ -4,6 +4,7 @@ import android.app.Activity;
import android.content.Intent;
import android.text.Editable;
import android.text.TextUtils;
import android.view.KeyEvent;
import android.view.View;
import android.view.inputmethod.EditorInfo;
@ -25,6 +26,7 @@ import com.fongmi.android.tv.ui.adapter.WordAdapter;
import com.fongmi.android.tv.ui.custom.CustomKeyboard;
import com.fongmi.android.tv.ui.custom.CustomListener;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.fongmi.android.tv.ui.custom.dialog.SiteDialog;
import com.fongmi.android.tv.utils.Utils;
import java.io.IOException;
@ -141,6 +143,12 @@ public class SearchActivity extends BaseActivity implements WordAdapter.OnClickL
App.post(() -> mHistoryAdapter.add(keyword), 250);
}
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (Utils.isMenuKey(event)) SiteDialog.create(this).search(true).show();
return super.dispatchKeyEvent(event);
}
@Override
public void onRemote() {
PushActivity.start(this);

@ -71,7 +71,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
@Override
protected void initEvent() {
mBinding.vodHome.setOnClickListener(view -> SiteDialog.create(this).show());
mBinding.vodHome.setOnClickListener(view -> SiteDialog.create(this).all().show());
mBinding.liveHome.setOnClickListener(view -> LiveDialog.create(this).show());
mBinding.vod.setOnClickListener(view -> ConfigDialog.create(this).type(0).show());
mBinding.live.setOnClickListener(view -> ConfigDialog.create(this).type(1).show());

@ -22,16 +22,35 @@ public class SiteDialog implements SitePresenter.OnClickListener {
private final DialogSiteBinding binding;
private final SiteCallback callback;
private final AlertDialog dialog;
private SitePresenter presenter;
private boolean search;
private boolean filter;
public static SiteDialog create(Activity activity) {
return new SiteDialog(activity);
}
public SiteDialog(Activity activity) {
this.callback = (SiteCallback) activity;
this.callback = (activity instanceof SiteCallback) ? (SiteCallback) activity : null;
this.binding = DialogSiteBinding.inflate(LayoutInflater.from(activity));
this.dialog = new MaterialAlertDialogBuilder(activity).setView(binding.getRoot()).create();
this.adapter = new ArrayObjectAdapter(new SitePresenter(this));
this.adapter = new ArrayObjectAdapter(presenter = new SitePresenter(this));
}
public SiteDialog search(boolean search) {
this.presenter.search(this.search = search);
return this;
}
public SiteDialog filter(boolean filter) {
this.presenter.filter(this.filter = filter);
return this;
}
public SiteDialog all() {
this.presenter.search(this.search = true);
this.presenter.filter(this.filter = true);
return this;
}
public void show() {
@ -58,6 +77,7 @@ public class SiteDialog implements SitePresenter.OnClickListener {
@Override
public void onTextClick(Site item) {
if (callback == null) return;
callback.setSite(item);
dialog.dismiss();
}

@ -1,6 +1,7 @@
package com.fongmi.android.tv.ui.presenter;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
@ -12,11 +13,23 @@ import com.fongmi.android.tv.databinding.AdapterSiteBinding;
public class SitePresenter extends Presenter {
private final OnClickListener mListener;
private boolean search;
private boolean filter;
public SitePresenter(OnClickListener listener) {
this.mListener = listener;
}
public SitePresenter search(boolean search) {
this.search = search;
return this;
}
public SitePresenter filter(boolean filter) {
this.filter = filter;
return this;
}
public interface OnClickListener {
void onTextClick(Site item);
@ -42,6 +55,8 @@ public class SitePresenter extends Presenter {
holder.binding.text.setText(item.getActivatedName());
holder.binding.filter.setImageResource(item.getFilterIcon());
holder.binding.search.setImageResource(item.getSearchIcon());
holder.binding.search.setVisibility(search ? View.VISIBLE : View.GONE);
holder.binding.filter.setVisibility(filter ? View.VISIBLE : View.GONE);
holder.binding.text.setOnClickListener(v -> mListener.onTextClick(item));
holder.binding.search.setOnClickListener(v -> mListener.onSearchClick(item));
holder.binding.filter.setOnClickListener(v -> mListener.onFilterClick(item));

@ -25,7 +25,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:layout_marginEnd="12dp"
android:background="@drawable/selector_text"
android:focusable="true"
android:focusableInTouchMode="true"
@ -37,6 +36,7 @@
android:id="@+id/filter"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="12dp"
android:background="@drawable/selector_text"
android:focusable="true"
android:focusableInTouchMode="true"

Loading…
Cancel
Save