setting vod history

pull/320/head
okjack 2 years ago
parent d2e5449426
commit 6bad2326e7
  1. 10
      app/src/main/res/drawable/ic_setting_vod_history.xml
  2. 52
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  3. 8
      app/src/mobile/res/layout/fragment_vod.xml

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:tint="#FFFFFF"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M22.69,18.37l1.14,-1l-1,-1.73l-1.45,0.49c-0.32,-0.27 -0.68,-0.48 -1.08,-0.63L20,14h-2l-0.3,1.49c-0.4,0.15 -0.76,0.36 -1.08,0.63l-1.45,-0.49l-1,1.73l1.14,1c-0.08,0.5 -0.08,0.76 0,1.26l-1.14,1l1,1.73l1.45,-0.49c0.32,0.27 0.68,0.48 1.08,0.63L18,24h2l0.3,-1.49c0.4,-0.15 0.76,-0.36 1.08,-0.63l1.45,0.49l1,-1.73l-1.14,-1C22.77,19.13 22.77,18.87 22.69,18.37zM19,21c-1.1,0 -2,-0.9 -2,-2s0.9,-2 2,-2s2,0.9 2,2S20.1,21 19,21zM11,7v5.41l2.36,2.36l1.04,-1.79L13,11.59V7H11zM21,12c0,-4.97 -4.03,-9 -9,-9C9.17,3 6.65,4.32 5,6.36V4H3v6h6V8H6.26C7.53,6.19 9.63,5 12,5c3.86,0 7,3.14 7,7H21zM10.86,18.91C7.87,18.42 5.51,16.01 5.08,13H3.06c0.5,4.5 4.31,8 8.94,8c0.02,0 0.05,0 0.07,0L10.86,18.91z"/>
</vector>

@ -1,5 +1,6 @@
package com.fongmi.android.tv.ui.fragment;
import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.view.LayoutInflater;
@ -19,6 +20,7 @@ import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Setting;
import com.fongmi.android.tv.api.config.VodConfig;
import com.fongmi.android.tv.bean.Class;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.bean.Hot;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Site;
@ -27,6 +29,7 @@ import com.fongmi.android.tv.databinding.FragmentVodBinding;
import com.fongmi.android.tv.event.CastEvent;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.impl.Callback;
import com.fongmi.android.tv.impl.ConfigCallback;
import com.fongmi.android.tv.impl.FilterCallback;
import com.fongmi.android.tv.impl.SiteCallback;
import com.fongmi.android.tv.model.SiteViewModel;
@ -38,14 +41,17 @@ import com.fongmi.android.tv.ui.activity.VideoActivity;
import com.fongmi.android.tv.ui.adapter.TypeAdapter;
import com.fongmi.android.tv.ui.base.BaseFragment;
import com.fongmi.android.tv.ui.dialog.FilterDialog;
import com.fongmi.android.tv.ui.dialog.HistoryDialog;
import com.fongmi.android.tv.ui.dialog.LinkDialog;
import com.fongmi.android.tv.ui.dialog.ReceiveDialog;
import com.fongmi.android.tv.ui.dialog.SiteDialog;
import com.fongmi.android.tv.utils.FileChooser;
import com.fongmi.android.tv.utils.FileUtil;
import com.fongmi.android.tv.utils.Notify;
import com.github.catvod.net.OkHttp;
import com.github.catvod.utils.Trans;
import com.google.common.net.HttpHeaders;
import com.permissionx.guolindev.PermissionX;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
@ -60,7 +66,7 @@ import okhttp3.Call;
import okhttp3.Headers;
import okhttp3.Response;
public class VodFragment extends BaseFragment implements SiteCallback, FilterCallback, TypeAdapter.OnClickListener {
public class VodFragment extends BaseFragment implements SiteCallback, FilterCallback, TypeAdapter.OnClickListener, ConfigCallback {
private FragmentVodBinding mBinding;
private SiteViewModel mViewModel;
@ -103,6 +109,7 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
mBinding.link.setOnClickListener(this::onLink);
mBinding.logo.setOnClickListener(this::onLogo);
mBinding.logo.setOnLongClickListener(this::onRefresh);
mBinding.settingVodHistory.setOnClickListener(this::onSettingVodHistory);
mBinding.keep.setOnClickListener(this::onKeep);
mBinding.retry.setOnClickListener(this::onRetry);
mBinding.filter.setOnClickListener(this::onFilter);
@ -207,6 +214,10 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
return true;
}
private void onSettingVodHistory(View view) {
HistoryDialog.create(this).type(0).show();
}
private void onKeep(View view) {
KeepActivity.start(getActivity());
}
@ -252,6 +263,45 @@ public class VodFragment extends BaseFragment implements SiteCallback, FilterCal
return mResult == null ? new Result() : mResult;
}
private void setConfig() {
Notify.dismiss();
RefreshEvent.video();
RefreshEvent.config();
}
@Override
public void setConfig(Config config) {
if (config.getUrl().startsWith("file") && !PermissionX.isGranted(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
PermissionX.init(this).permissions(Manifest.permission.WRITE_EXTERNAL_STORAGE).request((allGranted, grantedList, deniedList) -> load(config));
} else {
load(config);
}
}
private void load(Config config) {
switch (config.getType()) {
case 0:
Notify.progress(getActivity());
VodConfig.load(config, getCallback());
break;
}
}
private Callback getCallback() {
return new Callback() {
@Override
public void success() {
setConfig();
}
@Override
public void error(String msg) {
Notify.show(msg);
setConfig();
}
};
}
@Subscribe(threadMode = ThreadMode.MAIN)
public void onRefreshEvent(RefreshEvent event) {
switch (event.getType()) {

@ -28,9 +28,17 @@
android:id="@+id/logo"
android:layout_width="24dp"
android:layout_height="24dp"
android:layout_marginEnd="12dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_logo" />
<ImageView
android:id="@+id/settingVodHistory"
android:layout_width="24dp"
android:layout_height="24dp"
android:background="?attr/selectableItemBackgroundBorderless"
android:src="@drawable/ic_setting_vod_history" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="wrap_content"

Loading…
Cancel
Save