[mobile] revert site dialog

pull/123/head
FongMi 3 years ago
parent bd448c6098
commit aabcc7fa16
  1. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/CollectActivity.java
  2. 1
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/SiteAdapter.java
  3. 83
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java
  4. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  5. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  6. 31
      app/src/mobile/res/layout/adapter_site.xml
  7. 1
      app/src/mobile/res/layout/dialog_site.xml

@ -205,7 +205,7 @@ public class CollectActivity extends BaseActivity implements SiteCallback, WordA
private void onSite(View view) {
Utils.hideKeyboard(mBinding.keyword);
App.post(() -> SiteDialog.create().search().show(this), 50);
App.post(() -> SiteDialog.create(this).search().show(), 50);
}
private void toggleView(View view) {

@ -65,6 +65,7 @@ public class SiteAdapter extends RecyclerView.Adapter<SiteAdapter.ViewHolder> {
holder.binding.text.setText(item.getName());
holder.binding.text.setEnabled(!search || change);
holder.binding.text.setFocusable(!search || change);
holder.binding.text.setSelected(item.isActivated());
holder.binding.text.setActivated(item.isActivated());
holder.binding.search.setImageResource(item.getSearchIcon());
holder.binding.change.setImageResource(item.getChangeIcon());

@ -1,14 +1,10 @@
package com.fongmi.android.tv.ui.custom.dialog;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import androidx.recyclerview.widget.GridLayoutManager;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Site;
@ -16,78 +12,71 @@ import com.fongmi.android.tv.databinding.DialogSiteBinding;
import com.fongmi.android.tv.impl.SiteCallback;
import com.fongmi.android.tv.ui.adapter.SiteAdapter;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class SiteDialog extends BaseDialog implements SiteAdapter.OnClickListener {
public class SiteDialog implements SiteAdapter.OnClickListener {
private final DialogSiteBinding binding;
private final SiteCallback callback;
private final SiteAdapter adapter;
private DialogSiteBinding binding;
private SiteCallback callback;
private int count;
private final AlertDialog dialog;
public static SiteDialog create() {
return new SiteDialog();
public static SiteDialog create(Activity activity) {
return new SiteDialog(activity);
}
public SiteDialog() {
public static SiteDialog create(Fragment fragment) {
return new SiteDialog(fragment);
}
public SiteDialog(Activity 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 SiteAdapter(this);
}
public SiteDialog(Fragment fragment) {
this.callback = (fragment instanceof SiteCallback) ? (SiteCallback) fragment : null;
this.binding = DialogSiteBinding.inflate(LayoutInflater.from(fragment.getContext()));
this.dialog = new MaterialAlertDialogBuilder(fragment.getActivity()).setView(binding.getRoot()).create();
this.adapter = new SiteAdapter(this);
}
public SiteDialog search() {
this.adapter.search(true);
this.count = 2;
return this;
}
public SiteDialog change() {
this.adapter.change(true);
this.count = 2;
return this;
}
public SiteDialog all() {
this.adapter.search(true);
this.adapter.change(true);
this.count = 1;
return this;
}
public void show(FragmentActivity activity) {
for (Fragment f : activity.getSupportFragmentManager().getFragments()) if (f instanceof BottomSheetDialogFragment) return;
show(activity.getSupportFragmentManager(), null);
this.callback = (SiteCallback) activity;
public void show() {
setRecyclerView();
setDialog();
}
public void show(Fragment fragment) {
for (Fragment f : fragment.getChildFragmentManager().getFragments()) if (f instanceof BottomSheetDialogFragment) return;
show(fragment.getChildFragmentManager(), null);
this.callback = (SiteCallback) fragment;
}
private int getCount() {
return adapter.getItemCount() < 2 ? 1 : count;
}
@Override
protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return binding = DialogSiteBinding.inflate(inflater, container, false);
}
@Override
protected void initView() {
private void setRecyclerView() {
binding.recycler.setAdapter(adapter);
binding.recycler.setItemAnimator(null);
binding.recycler.setHasFixedSize(true);
binding.recycler.addItemDecoration(new SpaceItemDecoration(getCount(), 16));
binding.recycler.setLayoutManager(new GridLayoutManager(getContext(), getCount()));
binding.recycler.addItemDecoration(new SpaceItemDecoration(1, 16));
binding.recycler.scrollToPosition(ApiConfig.getHomeIndex());
}
private void setDialog() {
if (adapter.getItemCount() == 0) return;
dialog.getWindow().setDimAmount(0);
dialog.show();
}
@Override
public void onTextClick(Site item) {
if (callback == null) return;
callback.setSite(item);
dismiss();
dialog.dismiss();
}
@Override

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

@ -182,7 +182,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
}
private void onLogo(View view) {
SiteDialog.create().change().show(this);
SiteDialog.create(this).change().show();
}
private void onKeep(View view) {

@ -1,36 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_text"
android:gravity="center_vertical"
android:orientation="horizontal">
<TextView
android:id="@+id/text"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_height="40dp"
android:layout_weight="1"
android:background="@drawable/shape_text_round"
android:ellipsize="marquee"
android:gravity="center"
android:singleLine="true"
android:textColor="@color/text"
android:textSize="14sp"
android:textSize="16sp"
tools:text="泥巴" />
<ImageView
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="12dp"
android:background="@drawable/shape_text_round"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_site_search_on" />
android:src="@drawable/ic_site_search_on"
app:tint="@color/text" />
<ImageView
android:id="@+id/change"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginStart="12dp"
android:background="@drawable/shape_text_round"
android:padding="8dp"
android:scaleType="fitCenter"
android:src="@drawable/ic_site_change_on" />
android:src="@drawable/ic_site_change_on"
app:tint="@color/text" />
</LinearLayout>

@ -5,4 +5,5 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
app:maxHeight="352dp" />
Loading…
Cancel
Save