From b1cb8bb394a56f0039b4afdf87988efe37597744 Mon Sep 17 00:00:00 2001 From: FongMi Date: Thu, 16 Jan 2025 23:11:06 +0800 Subject: [PATCH] Update dlna - part 1 --- .../java/com/fongmi/android/tv/bean/Func.java | 3 +++ .../android/tv/receiver/BootReceiver.java | 3 --- .../android/tv/ui/activity/CastActivity.java | 23 ++++++++++-------- .../android/tv/ui/activity/HomeActivity.java | 6 +++-- .../android/tv/ui/activity/LiveActivity.java | 2 +- .../android/tv/ui/activity/PushActivity.java | 2 +- .../android/tv/ui/activity/VideoActivity.java | 2 +- .../res/drawable-hdpi/ic_home_cast.png | Bin 0 -> 1403 bytes .../res/drawable-mdpi/ic_home_cast.png | Bin 0 -> 1031 bytes .../res/drawable-xhdpi/ic_home_cast.png | Bin 0 -> 2096 bytes .../res/drawable-xxhdpi/ic_home_cast.png | Bin 0 -> 2873 bytes .../leanback/res/values-zh-rCN/strings.xml | 1 + .../leanback/res/values-zh-rTW/strings.xml | 1 + app/src/leanback/res/values/strings.xml | 1 + .../com/fongmi/android/tv/player/Players.java | 4 +-- 15 files changed, 27 insertions(+), 21 deletions(-) create mode 100644 app/src/leanback/res/drawable-hdpi/ic_home_cast.png create mode 100644 app/src/leanback/res/drawable-mdpi/ic_home_cast.png create mode 100644 app/src/leanback/res/drawable-xhdpi/ic_home_cast.png create mode 100644 app/src/leanback/res/drawable-xxhdpi/ic_home_cast.png diff --git a/app/src/leanback/java/com/fongmi/android/tv/bean/Func.java b/app/src/leanback/java/com/fongmi/android/tv/bean/Func.java index cfe00ebc7..c4ae9d98b 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/bean/Func.java +++ b/app/src/leanback/java/com/fongmi/android/tv/bean/Func.java @@ -46,6 +46,9 @@ public class Func { case R.string.home_push: this.drawable = R.drawable.ic_home_push; break; + case R.string.home_cast: + this.drawable = R.drawable.ic_home_cast; + break; case R.string.home_search: this.drawable = R.drawable.ic_home_search; break; diff --git a/app/src/leanback/java/com/fongmi/android/tv/receiver/BootReceiver.java b/app/src/leanback/java/com/fongmi/android/tv/receiver/BootReceiver.java index 513c7a8e2..dc817de3f 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/receiver/BootReceiver.java +++ b/app/src/leanback/java/com/fongmi/android/tv/receiver/BootReceiver.java @@ -11,9 +11,7 @@ import android.os.Build; import androidx.annotation.NonNull; -import com.android.cast.dlna.dmr.DLNARendererService; import com.fongmi.android.tv.App; -import com.fongmi.android.tv.R; import com.fongmi.android.tv.api.config.LiveConfig; public class BootReceiver extends BroadcastReceiver { @@ -45,7 +43,6 @@ public class BootReceiver extends BroadcastReceiver { private void doJob() { LiveConfig.get().init().load(); - DLNARendererService.Companion.start(App.get(), R.drawable.ic_logo); ((ConnectivityManager) App.get().getSystemService(Context.CONNECTIVITY_SERVICE)).unregisterNetworkCallback(this); } } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java index 8fd7b808d..9a771f896 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/CastActivity.java @@ -1,6 +1,7 @@ package com.fongmi.android.tv.ui.activity; import android.annotation.SuppressLint; +import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -55,7 +56,6 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List private CustomKeyDownCast mKeyDown; private RenderState mState; private CastAction mAction; - private DIDLParser mParser; private Players mPlayers; private Runnable mR1; private Runnable mR2; @@ -64,6 +64,10 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List private long duration; private int scale; + public static void start(Activity activity) { + activity.startActivity(new Intent(activity, CastActivity.class)); + } + @Override protected ViewBinding getBinding() { return mBinding = ActivityCastBinding.inflate(getLayoutInflater()); @@ -82,11 +86,9 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List mClock = Clock.create(mBinding.widget.clock); mKeyDown = CustomKeyDownCast.create(this); mPlayers = Players.create(this); - mParser = new DIDLParser(); mR1 = this::hideControl; mR2 = this::setTraffic; setVideoView(); - checkAction(); } @Override @@ -111,7 +113,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List private String getName() { try { - return mParser.parse(mAction.getCurrentURIMetaData()).getItems().get(0).getId(); + return new DIDLParser().parse(mAction.getCurrentURIMetaData()).getItems().get(0).getId(); } catch (Exception e) { return mAction.getCurrentURI(); } @@ -176,6 +178,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List private void onReset() { position = duration = C.TIME_UNSET; + if (mPlayers.isEmpty()) return; start(); } @@ -278,7 +281,6 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List public void onPlayerEvent(PlayerEvent event) { switch (event.getState()) { case PlayerEvent.PREPARE: - mPlayers.seekTo(position); setState(RenderState.PREPARING); break; case Player.STATE_IDLE: @@ -346,8 +348,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List } private void onPlay() { - if (!mPlayers.isEmpty() && mPlayers.isIdle()) mPlayers.prepare(); - if (mPlayers.isEnded()) mPlayers.seekTo(C.TIME_UNSET); + if (mPlayers.isEmpty()) return; setState(RenderState.PLAYING); mPlayers.play(); hideCenter(); @@ -360,7 +361,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List } private void setState(RenderState state) { - if (mService != null) mService.notifyAvTransportLastChange(this.mState = state); + if (mService != null) mService.notifyAvTransportLastChange(mState = state); } @NonNull @@ -387,7 +388,7 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List @Override public void onServiceConnected(ComponentName name, IBinder service) { - (mService = ((RendererServiceBinder) service).getService()).bindRealPlayer(this); + mService = ((RendererServiceBinder) service).getService(); } @Override @@ -434,15 +435,17 @@ public class CastActivity extends BaseActivity implements CustomKeyDownCast.List @Override public void onSeeking(int time) { + if (mPlayers.isEmpty()) return; + mBinding.widget.center.setVisibility(View.VISIBLE); mBinding.widget.exoDuration.setText(mPlayers.getDurationTime()); mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(time)); mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind); - mBinding.widget.center.setVisibility(View.VISIBLE); hideProgress(); } @Override public void onSeekTo(int time) { + if (mPlayers.isEmpty()) return; mKeyDown.resetTime(); mPlayers.seekTo(time); showProgress(); diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java index ef75d1699..af8801796 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java @@ -15,7 +15,6 @@ import androidx.lifecycle.ViewModelProvider; import androidx.recyclerview.widget.RecyclerView; import androidx.viewbinding.ViewBinding; -import com.android.cast.dlna.dmr.DLNARendererService; import com.bumptech.glide.Glide; import com.bumptech.glide.load.DataSource; import com.bumptech.glide.load.engine.GlideException; @@ -95,7 +94,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen @Override protected void initView() { - DLNARendererService.Companion.start(this, R.drawable.ic_logo); mClock = Clock.create(mBinding.clock).format("MM/dd HH:mm:ss"); mBinding.progressLayout.showProgress(); Updater.get().release().start(this); @@ -235,6 +233,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen adapter.add(Func.create(R.string.home_search)); adapter.add(Func.create(R.string.home_keep)); adapter.add(Func.create(R.string.home_push)); + adapter.add(Func.create(R.string.home_cast)); adapter.add(Func.create(R.string.home_setting)); return new ListRow(adapter); } @@ -384,6 +383,9 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen case R.string.home_push: PushActivity.start(this); break; + case R.string.home_cast: + CastActivity.start(this); + break; case R.string.home_setting: SettingActivity.start(this); break; diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java index fd619ab78..8bb679e48 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java @@ -868,10 +868,10 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick @Override public void onSeeking(int time) { if (mPlayers.isLive()) return; + mBinding.widget.center.setVisibility(View.VISIBLE); mBinding.widget.exoDuration.setText(mPlayers.getDurationTime()); mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(time)); mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind); - mBinding.widget.center.setVisibility(View.VISIBLE); hideProgress(); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java index 6e23aa84b..368f0534a 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/PushActivity.java @@ -26,7 +26,7 @@ public class PushActivity extends BaseActivity { } public static void start(Activity activity, int tab) { - Intent intent = new Intent(new Intent(activity, PushActivity.class)); + Intent intent = new Intent(activity, PushActivity.class); intent.putExtra("tab", tab); activity.startActivity(intent); } diff --git a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java index a1c582f30..063a6f4fe 100644 --- a/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java +++ b/app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java @@ -1311,10 +1311,10 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List @Override public void onSeeking(int time) { + mBinding.widget.center.setVisibility(View.VISIBLE); mBinding.widget.exoDuration.setText(mPlayers.getDurationTime()); mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(time)); mBinding.widget.action.setImageResource(time > 0 ? R.drawable.ic_widget_forward : R.drawable.ic_widget_rewind); - mBinding.widget.center.setVisibility(View.VISIBLE); hideProgress(); } diff --git a/app/src/leanback/res/drawable-hdpi/ic_home_cast.png b/app/src/leanback/res/drawable-hdpi/ic_home_cast.png new file mode 100644 index 0000000000000000000000000000000000000000..d547c82d6b0209a63289c69acc4ee5cd4863ec3e GIT binary patch literal 1403 zcmV->1%&#EP)Px)HAzH4RCr$Pnn}nURS?I2fAv$WUs$B16egngxsODcMu9r!*swJ*63^98<49A z;3Hsq@_^rfH~PJKg6_`(womj~0vs#pk3pa;1`bOeuw2q16J&HxRU+c6Vu3g~8MG8Q zCPT?kHg=rsDK!%*L&;E@h5Au=$~Hxg@)B@hqQXi^XEal3{G)~r#U_;rT$;~Buf%8k z7)BguC(XdA=ra;enTjHl^qUN&rPXIkz zZOx%kK&i`UZO<=&ciJ8(cHEqwY$6e{pGyM3r9xG%mGod6VA_PzvB%!Cp!nx@N$YBY z@V;d!kZzH9*zdq`ZDhdXfYRaceo-u5E$PD=Fej7&cv|J&B1xx?+FM2i#XE$D1Ma@{ z+EH|}c8;XiYQS6yJXr(4S?@ig1TzXKhHyZ+lI&4@aewtWg@H$OG34hW2wyJAOY;Va z2*;Jj0mDh<3rXpg?9llP9ZHt~>eS!H-R$khnlXO^vn084PQmP009{@L=RGUGnJvl9 z@sUU?P%4Hlv}e><^Sw_zRU6z9@dR*LW&Bb}o}MF-aX|5sePfx+_}E4&3nX1t<1Jp! zQ}OQqj3Re&4m5NbI+TcTO!0EMM$)Pt)9GPgZsoq~9H;e8@6%~?ZwWHJe0s5$s_~Zd(o>1$l&m{i zHBFLt3{tPMN9{i#omNgVSw}CsGbO!OF~Sw{Qxzj_lH@p&8f%ZTXQgsm;Vmvc({Y~y zM-B+3`tx^ylLtNXR^8(0yu`6(qnainjs`v`_lY{=K9{tSVG(gsxdV_Y?E2}B7N87# zIax zfwEJ%i|GDKN7hPmUpJi=E)zDuEN{%0bXR4Z$8;+x{>!ZLiR-ydo9O+HjQYOMrnuQu zC*Mlikc^eV)?NQ}C0Q?NS;bhNdr8l{`1TJqf!1R@b`WvDXSJkXn?9uPiR-2h`ag}! zP-?zrhLWK)o8;M3vZrKEX+|J>N;6J5resgap3;m!_LOFv{s9^!Ze;Qt;w1n8002ov JPDHLkV1g{Kp+Nuu literal 0 HcmV?d00001 diff --git a/app/src/leanback/res/drawable-mdpi/ic_home_cast.png b/app/src/leanback/res/drawable-mdpi/ic_home_cast.png new file mode 100644 index 0000000000000000000000000000000000000000..ac78014ca3535ade550d8125ef0e79f51cb7dc60 GIT binary patch literal 1031 zcmV+i1o-=jP)Px&!AV3xRA@u(m`li2RTze!*UE~h(4s*N8rY2}3%Wrx5VV2Ch0x<9jNsB6jN5oX%<2EHe&RSC?ebPJruS!P5YT(J7ybIU~ScNvsOjiMy z=VGfRJyjL_UEqwe-Au;ITcHOxXuA2g+WE%085h!_V<$l81raAnt=UtC*AdaVigTHq0J zUP2t~b%TgF6L=MPI3tgz{sBB!D!R8M`E%b^7yKFETHrh2=i={QXE!oZ+D3#+&j(5+ z_fqlotCMn1!hcl9=j(!ZqKZKe=L>8GR!MS8W%#pzY2_?9boxBlhJkw|IsW%$O@VhW z?w8mH%#<|J9i{RQ0vmFo=PZ{rzc1>e&#YC}-j!-Pid>q9(GRr!R(9YCz%Fqp;g^&| z)q!;}Hc8U={lM1(?<|<^FbSBEupO5;;P5EPvD_+61hxRz<$vFk{)(Cjl3pkS8 zo1KaKL7Ow^kfh-Zm+nzt&#@nYyCrQqS@K%o5pf6bQ|UXub)6z9(j}~-BaeZ--cYqsQlmSmmTGuwXqlypR7X~XALmORKMa0>_8sPB++UmMR(yoZO5b*7Q zm4`0x1WeQ>!R-Ki8mz8>HXhm_bR>B;c%%(CMUQRu?zXo+I$1BBF7wUR+h|a^|$*# z=Na(fU7MwH1@?bTnI>sdRq(gdRl4WjD#;ntTW^TRa&V=j7xMS%=`IF!GMd!|Za4CH z73=#7&JpCAo)zAgv^xRs1V(nimy;buBH{{16X2Y3IQQq-*dG!8?%zFL#rnVWtn&2# zb57g0u#LUz0K73ND?VtTctxQan>J9qF)1rP=x?|etUdxu2NM7Q002ovPDHLkV1k-R B>Jb0{ literal 0 HcmV?d00001 diff --git a/app/src/leanback/res/drawable-xhdpi/ic_home_cast.png b/app/src/leanback/res/drawable-xhdpi/ic_home_cast.png new file mode 100644 index 0000000000000000000000000000000000000000..a48c58945c183fad250edff75cbe7711d7b254f5 GIT binary patch literal 2096 zcmb7GYdq790{(BaxkQSFBXVgjXXX->E^l(#Y;!l)5Z+?$xh^Bqlu|ga(CVEHF>=eu zb;@PsbTXDpsWfV}u6wv)l@v4;0027_Fy$!Zk`ok#2zNrM4$( zyz`HncNtWizK^=Bmfx1GFDEcXBL%gQc7ckMb&*euTU(3|nFwO5d#<6phC;+KE7QFz zvs1^{(}c`qA>+Gv>&q;k`JE};dKS;nBjhnd6LT#O;Qz6E7MsXX9t9I-NZV%;5hfe(Jg z7nFd{5&MDeQN9f2&gU^ih~nu8iv+7l4Q?O+yR!2gR@$Q+D#r`gTa1Hk1Ou~>35zh1 z&3MF7Dg>vH(f>+O@*XHlB8GnAmPnLU9oMh(H`)zEdN%=tDC9NhL8TQmtGo04B9;DjOgB;Vuq@kXNdjQ01)^_ma#Cox_u z^-UHH^uq$M20SQ(j_k4oXJBv2*)M{y8VEUiy5KF@M!G*75Q1$l%5oqZzNh~6b{JUW zI~lLZHe*$3Z6-3mZIZq4X8CT-Jb4zxJpH7VS67P-6&alhw%AE^QjkLL;lukbohX~W zMBT0?)hQrtS7D%Gr)U5o&b2Ln8OdV-@wF?`k5PXH4nLioA&p3`1v z3G)VTk>T2RI{-7z^3CkrHG?nWG)u>Jp(qegCqh}R4Tke^kZwmo^~VD5-49=^VjiciEnD+QU$)<7`Ig$ux zgdiStLNe$}>ve#e*`2OIp9VL*@2PM8-5}R}`TFDbkS-1{ABH4i0c(hc&!~HSv_9{G zs^mX1RU`1)2mYS@`VIYj7=*Kfn+bJ54x7EK95@@*IH(f50~2j`AQ9Ryd&65&@0GlF zegK7%+*$E`m@pi4Lx(5J^Nc8?e3vJf2r!2Q z)T1gg5!Gj$qQY^UZZt+=)eqZClKSsPA3d03oe(L5Pa8deC^x0D6C+-|L5mB=d1699 ziU`wi&?-xFVfMadsD z23`N^+0spR^2T>fG>Mi@hlo%`NzAWY65@*{piVA(-I^M~5NFS|4UN9n%S(Ac#=)GQ z_7@~A82zlZ{Qmr9F&=4HmctIYUZ0Y>%CD=Z-VgUj(TXLS_}iOo&PJ@bce9sv_)$f# z2FJ^@scV<*_Nk+`QWEYpHf}77K_^5Bj16c*nwS;7OQOVYaq7sIE=vqz#(1VWi1Bd> zT$y`c_|7*dH#;eN zGkYJFz=&-7)oOu=Ru!aDuar;{4+-jV*e=gxAgudz-`qP>@w-jbGqXp9ES54e-f2il zw+o^9$?~wP)e2@uI~gvWo9o;@A4N2zWR~Y$5&vw;?@38g&l%uP`%?%&`$;@S64@9l zKVt4JJrCv;{3i8h%)LCt|Dj)yTop1ng9ulcUFEFhRXR03LckT)D5BOKho{=Nj?lWM zLfh98e6Rn;GlMeC()5NLcr${#;&Vj{11H5x(xww5b7?atu06ys;%=kNcZvD~=DEof)A<*a3RZ3#RJLi?MKgy!|mR z%>AtO3Fslr%wW5PjbWWP^K(sRl-lL4!4>oB`IN0ImANq`dHTpZq?-66MK(Je_mW~o z{jC}!D@vG2Qe<^@433`Ea%?uODyU5CT&7-}W}O>m^l%cS!&>shWUVh5oCP5Tp2WLz@6o~$T2*ddM*ZRsR8u-`&b^zLsj~AZ#S%zgtHgC)zY=88(ZVGZ4*Q_T zUVEPzn@RWdLr*sjn;!FaHL^+{z^Bm*i%)c<2I d|9fJWPqM16=1wWhZvDCd03PFpX4{8e`U_Gc-vR&t literal 0 HcmV?d00001 diff --git a/app/src/leanback/res/drawable-xxhdpi/ic_home_cast.png b/app/src/leanback/res/drawable-xxhdpi/ic_home_cast.png new file mode 100644 index 0000000000000000000000000000000000000000..66d251ed25db855b2e08ee9bf13e9c057821e6b8 GIT binary patch literal 2873 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搜索 收藏 推送 + 投屏 设置 最近观看 更新推荐 diff --git a/app/src/leanback/res/values-zh-rTW/strings.xml b/app/src/leanback/res/values-zh-rTW/strings.xml index 403a145b2..11b3ae2ed 100644 --- a/app/src/leanback/res/values-zh-rTW/strings.xml +++ b/app/src/leanback/res/values-zh-rTW/strings.xml @@ -6,6 +6,7 @@ 搜尋 收藏 推送 + 投屏 設定 最近觀看 更新推薦 diff --git a/app/src/leanback/res/values/strings.xml b/app/src/leanback/res/values/strings.xml index b091a85d3..0adcd3e7c 100644 --- a/app/src/leanback/res/values/strings.xml +++ b/app/src/leanback/res/values/strings.xml @@ -6,6 +6,7 @@ Search Keep Push + Cast Setting History Recommend diff --git a/app/src/main/java/com/fongmi/android/tv/player/Players.java b/app/src/main/java/com/fongmi/android/tv/player/Players.java index c13584160..91b1a8b51 100644 --- a/app/src/main/java/com/fongmi/android/tv/player/Players.java +++ b/app/src/main/java/com/fongmi/android/tv/player/Players.java @@ -40,7 +40,6 @@ import com.fongmi.android.tv.bean.Track; import com.fongmi.android.tv.event.ActionEvent; import com.fongmi.android.tv.event.ErrorEvent; import com.fongmi.android.tv.event.PlayerEvent; -import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.impl.ParseCallback; import com.fongmi.android.tv.impl.SessionCallback; import com.fongmi.android.tv.player.exo.ExoUtil; @@ -389,8 +388,7 @@ public class Players implements Player.Listener, ParseCallback { } private void setMediaItem() { - if (url == null) RefreshEvent.player(); - else setMediaItem(headers, url, format, drm, subs, Constant.TIMEOUT_PLAY); + if (url != null) setMediaItem(headers, url, format, drm, subs, Constant.TIMEOUT_PLAY); } public void setMediaItem(String url) {