diff --git a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java index 2d6317b09..6aa7af761 100644 --- a/app/src/main/java/com/fongmi/android/tv/bean/Vod.java +++ b/app/src/main/java/com/fongmi/android/tv/bean/Vod.java @@ -231,10 +231,6 @@ public class Vod implements Parcelable { return getVodTag().equals("folder") || getCate() != null; } - public boolean isManga() { - return getVodTag().equals("manga"); - } - public Style getStyle(Style style) { return getStyle() != null ? getStyle() : style != null ? style : Style.rect(); } diff --git a/app/src/main/java/com/fongmi/android/tv/utils/Util.java b/app/src/main/java/com/fongmi/android/tv/utils/Util.java index d13392396..e85c95018 100644 --- a/app/src/main/java/com/fongmi/android/tv/utils/Util.java +++ b/app/src/main/java/com/fongmi/android/tv/utils/Util.java @@ -20,6 +20,7 @@ import android.view.WindowManager; import android.view.inputmethod.InputMethodManager; import com.fongmi.android.tv.App; +import com.fongmi.android.tv.R; import com.github.catvod.Init; import java.text.SimpleDateFormat; @@ -72,6 +73,7 @@ public class Util { public static void copy(String text) { ClipboardManager manager = (ClipboardManager) App.get().getSystemService(Context.CLIPBOARD_SERVICE); manager.setPrimaryClip(ClipData.newPlainText("", text)); + Notify.show(R.string.copied); } public static int getDigit(String text) { diff --git a/app/src/mobile/AndroidManifest.xml b/app/src/mobile/AndroidManifest.xml index c9ecbaecf..f9857ea57 100644 --- a/app/src/mobile/AndroidManifest.xml +++ b/app/src/mobile/AndroidManifest.xml @@ -118,11 +118,6 @@ android:supportsPictureInPicture="true" android:theme="@style/AppTheme.Detail" /> - - diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java deleted file mode 100644 index 6ff214113..000000000 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ /dev/null @@ -1,236 +0,0 @@ -package com.fongmi.android.tv.ui.activity; - -import android.app.Activity; -import android.content.Intent; -import android.os.Bundle; -import android.text.Html; -import android.text.TextUtils; -import android.view.View; -import android.widget.TextView; - -import androidx.lifecycle.Observer; -import androidx.lifecycle.ViewModelProvider; -import androidx.viewbinding.ViewBinding; - -import com.fongmi.android.tv.R; -import com.fongmi.android.tv.api.config.VodConfig; -import com.fongmi.android.tv.bean.Episode; -import com.fongmi.android.tv.bean.Flag; -import com.fongmi.android.tv.bean.History; -import com.fongmi.android.tv.bean.Result; -import com.fongmi.android.tv.bean.Site; -import com.fongmi.android.tv.bean.Vod; -import com.fongmi.android.tv.databinding.ActivityDetailBinding; -import com.fongmi.android.tv.db.AppDatabase; -import com.fongmi.android.tv.event.ErrorEvent; -import com.fongmi.android.tv.model.SiteViewModel; -import com.fongmi.android.tv.ui.adapter.EpisodeAdapter; -import com.fongmi.android.tv.ui.adapter.FlagAdapter; -import com.fongmi.android.tv.ui.base.BaseActivity; -import com.fongmi.android.tv.ui.base.ViewType; -import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; -import com.fongmi.android.tv.utils.ImgUtil; -import com.fongmi.android.tv.utils.Notify; - -import java.util.List; - -public class DetailActivity extends BaseActivity implements FlagAdapter.OnClickListener, EpisodeAdapter.OnClickListener { - - private ActivityDetailBinding mBinding; - private EpisodeAdapter mEpisodeAdapter; - private SiteViewModel mViewModel; - private FlagAdapter mFlagAdapter; - private History mHistory; - - public static void start(Activity activity, String key, String id, String name) { - start(activity, key, id, name, null, null); - } - - public static void start(Activity activity, String key, String id, String name, String pic) { - start(activity, key, id, name, pic, null); - } - - public static void start(Activity activity, String key, String id, String name, String pic, String mark) { - Intent intent = new Intent(activity, DetailActivity.class); - intent.putExtra("mark", mark); - intent.putExtra("name", name); - intent.putExtra("pic", pic); - intent.putExtra("key", key); - intent.putExtra("id", id); - activity.startActivity(intent); - } - - private String getName() { - return getIntent().getStringExtra("name"); - } - - private String getPic() { - return getIntent().getStringExtra("pic"); - } - - private String getMark() { - return getIntent().getStringExtra("mark"); - } - - private String getKey() { - return getIntent().getStringExtra("key"); - } - - private String getId() { - return getIntent().getStringExtra("id"); - } - - private String getHistoryKey() { - return getKey().concat(AppDatabase.SYMBOL).concat(getId()).concat(AppDatabase.SYMBOL) + VodConfig.getCid(); - } - - private Site getSite() { - return VodConfig.get().getSite(getKey()); - } - - private Flag getFlag() { - return mFlagAdapter.getActivated(); - } - - private Episode getEpisode() { - return mEpisodeAdapter.getActivated(); - } - - private boolean isFromCollect() { - return getCallingActivity() != null && getCallingActivity().getShortClassName().contains(CollectActivity.class.getSimpleName()); - } - - @Override - protected ViewBinding getBinding() { - return mBinding = ActivityDetailBinding.inflate(getLayoutInflater()); - } - - @Override - protected void initView(Bundle savedInstanceState) { - mBinding.progressLayout.showProgress(); - setRecyclerView(); - setViewModel(); - getDetail(); - } - - @Override - protected void initEvent() { - } - - private void setRecyclerView() { - mBinding.flag.setHasFixedSize(true); - mBinding.flag.setItemAnimator(null); - mBinding.flag.addItemDecoration(new SpaceItemDecoration(8)); - mBinding.flag.setAdapter(mFlagAdapter = new FlagAdapter(this)); - mBinding.episode.setHasFixedSize(true); - mBinding.episode.setItemAnimator(null); - mBinding.episode.setAdapter(mEpisodeAdapter = new EpisodeAdapter(this, ViewType.VERT)); - } - - private void setViewModel() { - mViewModel = new ViewModelProvider(this).get(SiteViewModel.class); - mViewModel.result.observe(this, this::setDetail); - mViewModel.player.observe(this, new Observer() { - @Override - public void onChanged(Result result) { - - } - }); - } - - private void getDetail() { - mViewModel.detailContent(getKey(), getId()); - } - - private void setDetail(Result result) { - if (result.getList().isEmpty()) setEmpty(); - else setDetail(result.getList().get(0)); - Notify.show(result.getMsg()); - } - - private void setEmpty() { - if (isFromCollect()) { - finish(); - } else { - showEmpty(); - } - } - - private void showEmpty() { - mBinding.progressLayout.showEmpty(); - } - - private void setDetail(Vod item) { - mBinding.progressLayout.showContent(); - mBinding.name.setText(item.getVodName(getName())); - setText(mBinding.site, R.string.detail_site, getSite().getName()); - setText(mBinding.content, 0, Html.fromHtml(item.getVodContent()).toString()); - setText(mBinding.director, R.string.detail_director, Html.fromHtml(item.getVodDirector()).toString()); - ImgUtil.rect(item.getVodName(), item.getVodPic(getPic()), mBinding.pic); - mFlagAdapter.addAll(item.getVodFlags()); - checkHistory(item); - checkFlag(item); - checkKeepImg(); - } - - private void setText(TextView view, int resId, String text) { - view.setVisibility(text.isEmpty() ? View.GONE : View.VISIBLE); - view.setText(resId > 0 ? getString(resId, text) : text); - view.setTag(text); - } - - private void checkHistory(Vod item) { - mHistory = History.find(getHistoryKey()); - mHistory = mHistory == null ? createHistory(item) : mHistory; - if (!TextUtils.isEmpty(getMark())) mHistory.setVodRemarks(getMark()); - } - - private History createHistory(Vod item) { - History history = new History(); - history.setKey(getHistoryKey()); - history.setCid(VodConfig.getCid()); - history.setVodPic(item.getVodPic()); - history.setVodName(item.getVodName()); - history.findEpisode(item.getVodFlags()); - return history; - } - - private void checkFlag(Vod item) { - boolean empty = item.getVodFlags().isEmpty(); - mBinding.flag.setVisibility(empty ? View.GONE : View.VISIBLE); - if (empty) { - ErrorEvent.flag(); - } else { - onItemClick(mHistory.getFlag()); - if (mHistory.isRevSort()) reverseEpisode(true); - } - } - - private void reverseEpisode(boolean scroll) { - mFlagAdapter.reverse(); - setEpisodeAdapter(getFlag().getEpisodes()); - if (scroll) mBinding.episode.scrollToPosition(mEpisodeAdapter.getPosition()); - } - - private void setEpisodeAdapter(List items) { - mBinding.episode.setVisibility(items.isEmpty() ? View.GONE : View.VISIBLE); - mEpisodeAdapter.addAll(items); - } - - private void checkKeepImg() { - //mBinding.keep.setImageResource(Keep.find(getHistoryKey()) == null ? R.drawable.ic_control_keep_off : R.drawable.ic_control_keep_on); - } - - @Override - public void onItemClick(Flag item) { - if (item.isActivated()) return; - mFlagAdapter.setActivated(item); - mBinding.flag.scrollToPosition(mFlagAdapter.getPosition()); - setEpisodeAdapter(item.getEpisodes()); - } - - @Override - public void onItemClick(Episode item) { - - } -} diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MangaActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MangaActivity.java deleted file mode 100644 index b6bfefcdb..000000000 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/MangaActivity.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.fongmi.android.tv.ui.activity; - -import androidx.viewbinding.ViewBinding; - -import com.fongmi.android.tv.ui.base.BaseActivity; - -public class MangaActivity extends BaseActivity { - - @Override - protected ViewBinding getBinding() { - return null; - } -} diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index 193d87b6f..32b6eacaa 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -333,6 +333,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo mBinding.content.setOnClickListener(view -> onContent()); mBinding.reverse.setOnClickListener(view -> onReverse()); mBinding.name.setOnLongClickListener(view -> onChange()); + mBinding.content.setOnLongClickListener(view -> onCopy()); mBinding.control.cast.setOnClickListener(view -> onCast()); mBinding.control.info.setOnClickListener(view -> onInfo()); mBinding.control.full.setOnClickListener(view -> onFull()); @@ -697,6 +698,11 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo return true; } + private boolean onCopy() { + Util.copy(mBinding.content.getText().toString()); + return true; + } + private void onCast() { CastDialog.create().history(mHistory).video(CastVideo.get(mBinding.name.getText().toString(), mPlayers.getUrl())).fm(true).show(this); } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/InfoDialog.java b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/InfoDialog.java index 9053c7eea..78f6cacbb 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/InfoDialog.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/dialog/InfoDialog.java @@ -7,9 +7,7 @@ import android.view.View; import androidx.appcompat.app.AlertDialog; -import com.fongmi.android.tv.R; import com.fongmi.android.tv.databinding.DialogInfoBinding; -import com.fongmi.android.tv.utils.Notify; import com.fongmi.android.tv.utils.Util; import com.google.android.material.dialog.MaterialAlertDialogBuilder; @@ -82,7 +80,6 @@ public class InfoDialog { } private boolean onCopy(String text) { - Notify.show(R.string.copied); Util.copy(text); return true; } diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java index 46633dcfa..ff76d5dde 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/fragment/TypeFragment.java @@ -23,7 +23,6 @@ import com.fongmi.android.tv.bean.Vod; import com.fongmi.android.tv.databinding.FragmentTypeBinding; import com.fongmi.android.tv.model.SiteViewModel; import com.fongmi.android.tv.ui.activity.CollectActivity; -import com.fongmi.android.tv.ui.activity.DetailActivity; import com.fongmi.android.tv.ui.activity.VideoActivity; import com.fongmi.android.tv.ui.adapter.VodAdapter; import com.fongmi.android.tv.ui.base.BaseFragment; @@ -221,8 +220,7 @@ public class TypeFragment extends BaseFragment implements CustomScroller.Callbac mPages.add(Page.get(item, findPosition())); getVideo(item.getVodId(), "1"); } else { - if (item.isManga()) DetailActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodPic()); - else VideoActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodPic(), isFolder() ? item.getVodName() : null, false); + VideoActivity.start(getActivity(), getKey(), item.getVodId(), item.getVodName(), item.getVodPic(), isFolder() ? item.getVodName() : null, false); } } diff --git a/app/src/mobile/res/layout/activity_detail.xml b/app/src/mobile/res/layout/activity_detail.xml deleted file mode 100644 index 92807861a..000000000 --- a/app/src/mobile/res/layout/activity_detail.xml +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file