Add keep - part 3

pull/137/head
FongMi 3 years ago
parent d040769302
commit bf7c515868
  1. 5
      app/build.gradle
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  3. 31
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/KeepActivity.java
  4. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/presenter/KeepPresenter.java
  5. 6
      app/src/main/java/com/fongmi/android/tv/bean/Config.java
  6. 16
      app/src/main/java/com/fongmi/android/tv/bean/Keep.java
  7. 3
      app/src/main/java/com/fongmi/android/tv/db/dao/ConfigDao.java
  8. 2
      settings.gradle

@ -52,6 +52,9 @@ android {
dependencies {
implementation project(':catvod')
implementation project(':exoplayer-library')
implementation project(':exoplayer-extension-rtmp')
implementation project(':exoplayer-extension-ffmpeg')
implementation 'androidx.appcompat:appcompat:1.5.1'
implementation 'androidx.core:core-splashscreen:1.0.0'
implementation 'androidx.preference:preference:1.2.0'
@ -62,8 +65,6 @@ dependencies {
implementation 'com.github.bassaer:materialdesigncolors:1.0.0'
implementation 'com.github.bumptech.glide:glide:4.14.1'
implementation 'com.google.android.material:material:1.6.1'
implementation 'com.google.android.exoplayer:exoplayer:2.18.1'
implementation 'com.google.android.exoplayer:extension-rtmp:2.18.1'
implementation 'com.google.code.gson:gson:2.9.1'
implementation 'com.google.zxing:core:3.5.0'
implementation 'com.makeramen:roundedimageview:2.3.0'

@ -352,7 +352,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
}
private void onDesc() {
DescDialog.show(this, mBinding.content.getTag().toString());
String desc = mBinding.content.getTag().toString().trim();
if (desc.length() > 0) DescDialog.show(this, desc);
}
private void onKeep() {
@ -520,6 +521,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDown.Listen
Keep keep = new Keep();
keep.setKey(getHistoryKey());
keep.setCid(ApiConfig.getCid());
keep.setSiteName(ApiConfig.getSiteName(getKey()));
keep.setVodPic(mBinding.video.getTag().toString());
keep.setVodName(mBinding.name.getText().toString());
keep.setCreateTime(System.currentTimeMillis());

@ -8,8 +8,12 @@ import androidx.leanback.widget.ItemBridgeAdapter;
import androidx.leanback.widget.ListRow;
import androidx.viewbinding.ViewBinding;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.bean.Keep;
import com.fongmi.android.tv.databinding.ActivityKeepBinding;
import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.net.Callback;
import com.fongmi.android.tv.ui.custom.CustomRowPresenter;
import com.fongmi.android.tv.ui.custom.CustomSelector;
import com.fongmi.android.tv.ui.presenter.KeepPresenter;
@ -58,9 +62,34 @@ public class KeepActivity extends BaseActivity implements KeepPresenter.OnClickL
mAdapter.addAll(0, rows);
}
private void loadConfig(Config config, Keep item) {
Prefers.putUrl(config.getUrl());
ApiConfig.get().setCid(config.update().getId());
ApiConfig.get().clear().loadConfig(new Callback() {
@Override
public void success(String json) {
DetailActivity.start(getActivity(), item.getSiteKey(), item.getVodId());
RefreshEvent.history();
RefreshEvent.video();
}
@Override
public void error(int resId) {
CollectActivity.start(getActivity(), item.getVodName());
}
});
}
@Override
public void onItemClick(Keep item) {
Config config = Config.find(item.getCid());
if (item.getCid() == ApiConfig.getCid()) {
DetailActivity.start(this, item.getSiteKey(), item.getVodId());
} else if (config == null) {
CollectActivity.start(this, item.getVodName());
} else {
loadConfig(config, item);
}
}
@Override

@ -10,7 +10,6 @@ import androidx.leanback.widget.Presenter;
import com.bumptech.glide.Glide;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.api.ApiConfig;
import com.fongmi.android.tv.bean.Keep;
import com.fongmi.android.tv.databinding.AdapterVodBinding;
import com.fongmi.android.tv.utils.Prefers;
@ -67,7 +66,7 @@ public class KeepPresenter extends Presenter {
holder.binding.name.setText(item.getVodName());
holder.binding.remark.setVisibility(View.GONE);
holder.binding.site.setVisibility(View.VISIBLE);
holder.binding.site.setText(ApiConfig.getSiteName(item.getSiteKey()));
holder.binding.site.setText(item.getSiteName());
holder.binding.delete.setVisibility(!delete ? View.GONE : View.VISIBLE);
Glide.with(App.get()).load(item.getVodPic()).centerCrop().error(R.drawable.ic_img_error).placeholder(R.drawable.ic_img_loading).into(holder.binding.image);
}

@ -67,6 +67,10 @@ public class Config {
return items;
}
public static Config find(int id) {
return AppDatabase.get().getConfigDao().find(id);
}
public static Config find(String url) {
Config item = AppDatabase.get().getConfigDao().find(url);
return item == null ? Config.create() : item.newTime();
@ -98,7 +102,7 @@ public class Config {
public void delete() {
AppDatabase.get().getConfigDao().delete(getUrl());
//TODO DELETE KEEP
History.delete(getId());
Keep.delete(getId());
}
}

@ -15,6 +15,7 @@ public class Keep {
@NonNull
@PrimaryKey
private String key;
private String siteName;
private String vodName;
private String vodPic;
private long createTime;
@ -29,6 +30,14 @@ public class Keep {
this.key = key;
}
public String getSiteName() {
return siteName;
}
public void setSiteName(String siteName) {
this.siteName = siteName;
}
public String getVodName() {
return vodName;
}
@ -73,13 +82,16 @@ public class Keep {
return AppDatabase.get().getKeepDao().find(ApiConfig.getCid(), key);
}
public static void delete(int cid) {
AppDatabase.get().getKeepDao().delete(cid);
}
public static List<Keep> getAll() {
return AppDatabase.get().getKeepDao().getAll();
}
public Keep save() {
public void save() {
AppDatabase.get().getKeepDao().insert(this);
return this;
}
public void delete() {

@ -13,6 +13,9 @@ public abstract class ConfigDao extends BaseDao<Config> {
@Query("SELECT * FROM Config ORDER BY time DESC")
public abstract List<Config> getAll();
@Query("SELECT * FROM Config WHERE id = :id")
public abstract Config find(int id);
@Query("SELECT * FROM Config WHERE url = :url")
public abstract Config find(String url);

@ -17,3 +17,5 @@ dependencyResolutionManagement {
include ':app'
include ':catvod'
rootProject.name = "TV"
gradle.ext.exoplayerModulePrefix = 'exoplayer-'
apply from: file("/exo/core_settings.gradle")
Loading…
Cancel
Save