[mobile] revert live dialog

pull/123/head
FongMi 3 years ago
parent aabcc7fa16
commit 4d09f1e5cc
  1. 61
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/LiveDialog.java
  2. 22
      app/src/mobile/java/com/fongmi/android/tv/ui/custom/dialog/SiteDialog.java
  3. 2
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  4. 8
      app/src/mobile/res/layout/adapter_live.xml
  5. 3
      app/src/mobile/res/layout/dialog_live.xml

@ -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.LiveConfig;
import com.fongmi.android.tv.bean.Live;
@ -16,55 +12,60 @@ import com.fongmi.android.tv.databinding.DialogLiveBinding;
import com.fongmi.android.tv.impl.LiveCallback;
import com.fongmi.android.tv.ui.adapter.LiveAdapter;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
import com.google.android.material.bottomsheet.BottomSheetDialogFragment;
import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class LiveDialog extends BaseDialog implements LiveAdapter.OnClickListener {
public class LiveDialog implements LiveAdapter.OnClickListener {
private final LiveAdapter adapter;
private final LiveCallback callback;
private DialogLiveBinding binding;
private LiveCallback callback;
private LiveAdapter adapter;
private AlertDialog dialog;
public static LiveDialog create() {
return new LiveDialog();
public static LiveDialog create(Activity activity) {
return new LiveDialog(activity);
}
public LiveDialog() {
this.adapter = new LiveAdapter(this);
public static LiveDialog create(Fragment fragment) {
return new LiveDialog(fragment);
}
public void show(FragmentActivity activity) {
for (Fragment f : activity.getSupportFragmentManager().getFragments()) if (f instanceof BottomSheetDialogFragment) return;
show(activity.getSupportFragmentManager(), null);
public LiveDialog(Activity activity) {
this.callback = (LiveCallback) activity;
init(activity);
}
public void show(Fragment fragment) {
for (Fragment f : fragment.getChildFragmentManager().getFragments()) if (f instanceof BottomSheetDialogFragment) return;
show(fragment.getChildFragmentManager(), null);
public LiveDialog(Fragment fragment) {
this.callback = (LiveCallback) fragment;
init(fragment.getActivity());
}
private int getCount() {
return adapter.getItemCount() < 2 ? 1 : 2;
private void init(Activity activity) {
this.binding = DialogLiveBinding.inflate(LayoutInflater.from(activity));
this.dialog = new MaterialAlertDialogBuilder(activity).setView(binding.getRoot()).create();
this.adapter = new LiveAdapter(this);
}
@Override
protected ViewBinding getBinding(@NonNull LayoutInflater inflater, @Nullable ViewGroup container) {
return binding = DialogLiveBinding.inflate(inflater, container, false);
public void show() {
setRecyclerView();
setDialog();
}
@Override
protected void initView() {
private void setRecyclerView() {
binding.recycler.setAdapter(adapter);
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(LiveConfig.getHomeIndex());
}
private void setDialog() {
if (adapter.getItemCount() == 0) return;
dialog.getWindow().setDimAmount(0);
dialog.show();
}
@Override
public void onItemClick(Live item) {
callback.setLive(item);
dismiss();
dialog.dismiss();
}
}

@ -16,10 +16,10 @@ import com.google.android.material.dialog.MaterialAlertDialogBuilder;
public class SiteDialog implements SiteAdapter.OnClickListener {
private final DialogSiteBinding binding;
private final SiteCallback callback;
private final SiteAdapter adapter;
private final AlertDialog dialog;
private DialogSiteBinding binding;
private SiteAdapter adapter;
private AlertDialog dialog;
public static SiteDialog create(Activity activity) {
return new SiteDialog(activity);
@ -30,16 +30,18 @@ public class SiteDialog implements SiteAdapter.OnClickListener {
}
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);
this.callback = (SiteCallback) activity;
init(activity);
}
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.callback = (SiteCallback) fragment;
init(fragment.getActivity());
}
private void init(Activity activity) {
this.binding = DialogSiteBinding.inflate(LayoutInflater.from(activity));
this.dialog = new MaterialAlertDialogBuilder(activity).setView(binding.getRoot()).create();
this.adapter = new SiteAdapter(this);
}

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

@ -3,9 +3,11 @@
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/shape_text"
android:layout_height="40dp"
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="https://fongmi.github.io/live.json" />

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