From 191df67125d31b41d8267425c3506a7f4d54fb11 Mon Sep 17 00:00:00 2001 From: sifacaii Date: Tue, 16 May 2023 14:05:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=8A=95=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sifacai/vlcjellyfin/Ui/BaseActivity.java | 4 +++ .../vlcjellyfin/Ui/DetailActivity.java | 29 ++++++++++--------- .../org/sifacai/vlcjellyfin/Utils/Config.java | 12 +++++++- app/src/main/res/menu/activebar_menu.xml | 6 ++++ 4 files changed, 37 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/sifacai/vlcjellyfin/Ui/BaseActivity.java b/app/src/main/java/org/sifacai/vlcjellyfin/Ui/BaseActivity.java index cbb756f..9765a77 100644 --- a/app/src/main/java/org/sifacai/vlcjellyfin/Ui/BaseActivity.java +++ b/app/src/main/java/org/sifacai/vlcjellyfin/Ui/BaseActivity.java @@ -74,6 +74,7 @@ public class BaseActivity extends AppCompatActivity implements CustomAdapt { setmenu.findItem(R.id.actionBar_option_HAACC).setChecked(JfClient.config.isHAACC()); setmenu.findItem(R.id.actionBar_option_FORCE_HAACC).setChecked(JfClient.config.isFORCE_HAACC()); setmenu.findItem(R.id.actionBar_option_ExtensionPlayer).setChecked(JfClient.config.isExtensionPlayer()); + setmenu.findItem(R.id.actionBar_option_DlnaPlayer).setChecked(JfClient.config.isDlnaPlayer()); } }; @@ -97,6 +98,9 @@ public class BaseActivity extends AppCompatActivity implements CustomAdapt { case R.id.actionBar_option_ExtensionPlayer: JfClient.config.setExtensionPlayer(!JfClient.config.isExtensionPlayer()); break; + case R.id.actionBar_option_DlnaPlayer: + JfClient.config.setDlnaPlayer(!JfClient.config.isDlnaPlayer()); + break; } return true; } diff --git a/app/src/main/java/org/sifacai/vlcjellyfin/Ui/DetailActivity.java b/app/src/main/java/org/sifacai/vlcjellyfin/Ui/DetailActivity.java index 5b679da..7cf8ede 100644 --- a/app/src/main/java/org/sifacai/vlcjellyfin/Ui/DetailActivity.java +++ b/app/src/main/java/org/sifacai/vlcjellyfin/Ui/DetailActivity.java @@ -109,7 +109,7 @@ public class DetailActivity extends BaseActivity implements JAdapter.OnItemClick .into(tvCover); List backdrops = details.getBackdropImageTags(); - if(backdrops != null && backdrops.size() > 0){ + if (backdrops != null && backdrops.size() > 0) { Picasso.get() .load(JfClient.GetBackdropUrl(Id, backdrops.get(0))) .placeholder(R.drawable.img_loading_placeholder) @@ -118,11 +118,11 @@ public class DetailActivity extends BaseActivity implements JAdapter.OnItemClick } tvTitle.setText(Name); - ((TextView)findViewById(R.id.tvYear)).setText(details.getProductionYear() == null ? "" : details.getProductionYear()); - long duration = (details.getRunTimeTicks() / 10000 / 1000 / 60); - ((TextView)findViewById(R.id.tvDuration)).setText(duration > 0 ? String.valueOf(duration) + "分钟" : ""); - ((TextView)findViewById(R.id.tvRating)).setText(details.getCommunityRating() == null ? "" : details.getCommunityRating()); - ((TextView)findViewById(R.id.tvLevel)).setText(details.getOfficialRating() == null ? "" : details.getOfficialRating()); + ((TextView) findViewById(R.id.tvYear)).setText(details.getProductionYear() == null ? "" : details.getProductionYear()); + long duration = (details.getRunTimeTicks() / 10000 / 1000 / 60); + ((TextView) findViewById(R.id.tvDuration)).setText(duration > 0 ? String.valueOf(duration) + "分钟" : ""); + ((TextView) findViewById(R.id.tvRating)).setText(details.getCommunityRating() == null ? "" : details.getCommunityRating()); + ((TextView) findViewById(R.id.tvLevel)).setText(details.getOfficialRating() == null ? "" : details.getOfficialRating()); String Genres = String.join(",", details.getGenres()); tvDetails.append(Genres.equals("") ? "" : "风格:" + Genres + "\n"); @@ -144,8 +144,8 @@ public class DetailActivity extends BaseActivity implements JAdapter.OnItemClick } } tvDetails.append(video.equals("") ? "" : "格式:" + video + "\n"); - tvDetails.append(audio.size() > 1 ? "音轨:" + String.join(",",audio) + "\n" : ""); - tvDetails.append(subtitle.size() > 1 ? "字幕:" + String.join(",",subtitle) + "\n" : ""); + tvDetails.append(audio.size() > 1 ? "音轨:" + String.join(",", audio) + "\n" : ""); + tvDetails.append(subtitle.size() > 1 ? "字幕:" + String.join(",", subtitle) + "\n" : ""); } String overview = details.getOverview() == null ? "" : details.getOverview(); tvDetails.append("简介: " + Html.fromHtml(overview)); @@ -198,7 +198,7 @@ public class DetailActivity extends BaseActivity implements JAdapter.OnItemClick JfClient.GetSeasons(SeriesId, new JfClient.JJCallBack() { @Override public void onSuccess(Items seasons) { - for (int i=0;i 1){ + if (tabContainer.getTabCount() > 1) { tabContainer.setVisibility(View.VISIBLE); } } @@ -246,7 +246,7 @@ public class DetailActivity extends BaseActivity implements JAdapter.OnItemClick private void fillItems(List items) { int spanCount = 3; - if(getResources().getDisplayMetrics().widthPixels >getResources().getDisplayMetrics().heightPixels ){ + if (getResources().getDisplayMetrics().widthPixels > getResources().getDisplayMetrics().heightPixels) { spanCount = 6; } JTAdapter jtAdapter = new JTAdapter(items); @@ -376,7 +376,10 @@ public class DetailActivity extends BaseActivity implements JAdapter.OnItemClick public void toVlcPlayer() { Intent intent; - if (JfClient.config.isExtensionPlayer()) { + if (JfClient.config.isDlnaPlayer()) { + ShowToask("投屏播放"); + return; + } else if (JfClient.config.isExtensionPlayer()) { String videourl = JfClient.playList.get(JfClient.playIndex).Url; Uri uri = Uri.parse(videourl); intent = new Intent(); diff --git a/app/src/main/java/org/sifacai/vlcjellyfin/Utils/Config.java b/app/src/main/java/org/sifacai/vlcjellyfin/Utils/Config.java index c88a8ae..d5c6124 100644 --- a/app/src/main/java/org/sifacai/vlcjellyfin/Utils/Config.java +++ b/app/src/main/java/org/sifacai/vlcjellyfin/Utils/Config.java @@ -14,7 +14,7 @@ public class Config { private boolean HAACC; //硬解 private boolean FORCE_HAACC; //强制硬解 private boolean ExtensionPlayer; //调用外部播放器 - + private boolean DlnaPlayer; //投屏播放 public boolean isExtensionPlayer() { return ExtensionPlayer; } @@ -101,6 +101,15 @@ public class Config { saveConfigToSP("FORCE_HAACC",FORCE_HAACC); } + public boolean isDlnaPlayer() { + return DlnaPlayer; + } + + public void setDlnaPlayer(boolean dlnaPlayer) { + this.DlnaPlayer = dlnaPlayer; + saveConfigToSP("DlnaPlayer",dlnaPlayer); + } + /** * 读取配置 */ @@ -115,6 +124,7 @@ public class Config { this.FORCE_HAACC = sp.getBoolean("FORCE_HAACC",false); this.PlayStartInBegin = sp.getBoolean("PlayStartInBegin",true); this.ExtensionPlayer = sp.getBoolean("ExtensionPlayer",false); + this.DlnaPlayer = sp.getBoolean("DlnaPlayer",false); } /** diff --git a/app/src/main/res/menu/activebar_menu.xml b/app/src/main/res/menu/activebar_menu.xml index c33bd14..71e7085 100644 --- a/app/src/main/res/menu/activebar_menu.xml +++ b/app/src/main/res/menu/activebar_menu.xml @@ -28,6 +28,12 @@ android:checkable="true" android:title="调用外部播放器" /> + +