pull/842/head v2.0.5
Li ZongYing 2 years ago
parent c1143afb4e
commit ef17427f64
  1. 4
      HISTORY.md
  2. 2
      app/src/main/AndroidManifest.xml
  3. 2
      app/src/main/java/com/lizongying/mytv/CardAdapter.kt
  4. 2
      app/src/main/java/com/lizongying/mytv/ChannelFragment.kt
  5. 2
      app/src/main/java/com/lizongying/mytv/ErrorFragment.kt
  6. 2
      app/src/main/java/com/lizongying/mytv/InfoFragment.kt
  7. 4
      app/src/main/java/com/lizongying/mytv/ItemDecoration.kt
  8. 2
      app/src/main/java/com/lizongying/mytv/LoadingFragment.kt
  9. 21
      app/src/main/java/com/lizongying/mytv/MainActivity.kt
  10. 4
      app/src/main/java/com/lizongying/mytv/MainFragment.kt
  11. 2
      app/src/main/java/com/lizongying/mytv/MyTVApplication.kt
  12. 64
      app/src/main/java/com/lizongying/mytv/SettingFragment.kt
  13. 2
      app/src/main/java/com/lizongying/mytv/TimeFragment.kt
  14. 12
      app/src/main/java/com/lizongying/mytv/api/YSP.kt
  15. 2
      app/src/main/java/com/lizongying/mytv/models/TVViewModel.kt
  16. 7
      app/src/main/res/layout/setting.xml
  17. 1
      app/src/main/res/values/strings.xml
  18. 2
      version.json

@ -1,5 +1,9 @@
## 更新日志 ## 更新日志
### v2.0.5
* 设置页增加恢复默认按钮,目前只用于同步系统时间
### v2.0.4 ### v2.0.4
* 修复不能播放的问题 * 修复不能播放的问题

@ -15,7 +15,7 @@
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<application <application
android:name=".MyTvApplication" android:name=".MyTVApplication"
android:allowBackup="true" android:allowBackup="true"
android:banner="@drawable/banner" android:banner="@drawable/banner"
android:icon="@drawable/logo" android:icon="@drawable/logo"

@ -34,7 +34,7 @@ class CardAdapter(
val inflater = LayoutInflater.from(parent.context) val inflater = LayoutInflater.from(parent.context)
val binding = CardBinding.inflate(inflater, parent, false) val binding = CardBinding.inflate(inflater, parent, false)
val application = mainFragment.requireActivity().applicationContext as MyTvApplication val application = mainFragment.requireActivity().applicationContext as MyTVApplication
binding.card.layoutParams.width = application.px2Px(binding.card.layoutParams.width) binding.card.layoutParams.width = application.px2Px(binding.card.layoutParams.width)
binding.card.layoutParams.height = application.px2Px(binding.card.layoutParams.height) binding.card.layoutParams.height = application.px2Px(binding.card.layoutParams.height)

@ -28,7 +28,7 @@ class ChannelFragment : Fragment() {
_binding = ChannelBinding.inflate(inflater, container, false) _binding = ChannelBinding.inflate(inflater, container, false)
_binding!!.root.visibility = View.GONE _binding!!.root.visibility = View.GONE
val application = requireActivity().applicationContext as MyTvApplication val application = requireActivity().applicationContext as MyTVApplication
binding.channel.layoutParams.width = application.px2Px(binding.channel.layoutParams.width) binding.channel.layoutParams.width = application.px2Px(binding.channel.layoutParams.width)
binding.channel.layoutParams.height = application.px2Px(binding.channel.layoutParams.height) binding.channel.layoutParams.height = application.px2Px(binding.channel.layoutParams.height)

@ -19,7 +19,7 @@ class ErrorFragment : Fragment() {
): View { ): View {
_binding = ErrorBinding.inflate(inflater, container, false) _binding = ErrorBinding.inflate(inflater, container, false)
val application = requireActivity().applicationContext as MyTvApplication val application = requireActivity().applicationContext as MyTVApplication
binding.logo.layoutParams.width = application.px2Px(binding.logo.layoutParams.width) binding.logo.layoutParams.width = application.px2Px(binding.logo.layoutParams.width)
binding.logo.layoutParams.height = application.px2Px(binding.logo.layoutParams.height) binding.logo.layoutParams.height = application.px2Px(binding.logo.layoutParams.height)

@ -29,7 +29,7 @@ class InfoFragment : Fragment() {
): View { ): View {
_binding = InfoBinding.inflate(inflater, container, false) _binding = InfoBinding.inflate(inflater, container, false)
val application = requireActivity().applicationContext as MyTvApplication val application = requireActivity().applicationContext as MyTVApplication
binding.info.layoutParams.width = application.px2Px(binding.info.layoutParams.width) binding.info.layoutParams.width = application.px2Px(binding.info.layoutParams.width)
binding.info.layoutParams.height = application.px2Px(binding.info.layoutParams.height) binding.info.layoutParams.height = application.px2Px(binding.info.layoutParams.height)

@ -7,10 +7,10 @@ import androidx.recyclerview.widget.RecyclerView
class ItemDecoration(context: Context) : RecyclerView.ItemDecoration() { class ItemDecoration(context: Context) : RecyclerView.ItemDecoration() {
private var application: MyTvApplication private var application: MyTVApplication
init { init {
application = context.applicationContext as MyTvApplication application = context.applicationContext as MyTVApplication
} }
override fun getItemOffsets( override fun getItemOffsets(

@ -17,7 +17,7 @@ class LoadingFragment : Fragment() {
): View { ): View {
_binding = LoadingBinding.inflate(inflater, container, false) _binding = LoadingBinding.inflate(inflater, container, false)
val application = requireActivity().applicationContext as MyTvApplication val application = requireActivity().applicationContext as MyTVApplication
binding.bar.layoutParams.width = application.px2Px(binding.bar.layoutParams.width) binding.bar.layoutParams.width = application.px2Px(binding.bar.layoutParams.width)
binding.bar.layoutParams.height = application.px2Px(binding.bar.layoutParams.height) binding.bar.layoutParams.height = application.px2Px(binding.bar.layoutParams.height)

@ -8,6 +8,7 @@ import android.util.Log
import android.view.GestureDetector import android.view.GestureDetector
import android.view.KeyEvent import android.view.KeyEvent
import android.view.MotionEvent import android.view.MotionEvent
import android.view.View
import android.view.View.SYSTEM_UI_FLAG_FULLSCREEN import android.view.View.SYSTEM_UI_FLAG_FULLSCREEN
import android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION import android.view.View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
import android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN import android.view.View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
@ -50,7 +51,7 @@ class MainActivity : FragmentActivity(), Request.RequestListener, OnSharedPrefer
Utils.setRequestListener(this) Utils.setRequestListener(this)
} }
private fun syncTime() { fun syncTime() {
lifecycleScope.launch(Dispatchers.IO) { lifecycleScope.launch(Dispatchers.IO) {
val utilsJob = async(start = CoroutineStart.LAZY) { Utils.init() } val utilsJob = async(start = CoroutineStart.LAZY) { Utils.init() }
utilsJob.start() utilsJob.start()
@ -59,9 +60,6 @@ class MainActivity : FragmentActivity(), Request.RequestListener, OnSharedPrefer
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Request.setRequestListener(this)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
val lp = window.attributes val lp = window.attributes
@ -70,6 +68,17 @@ class MainActivity : FragmentActivity(), Request.RequestListener, OnSharedPrefer
window.setAttributes(lp) window.setAttributes(lp)
} }
window.decorView.apply {
systemUiVisibility =
SYSTEM_UI_FLAG_FULLSCREEN or
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
SYSTEM_UI_FLAG_HIDE_NAVIGATION or
SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_IMMERSIVE
}
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
window.decorView.systemUiVisibility = window.decorView.systemUiVisibility =
@ -82,6 +91,10 @@ class MainActivity : FragmentActivity(), Request.RequestListener, OnSharedPrefer
// window.navigationBarColor = Color.TRANSPARENT // window.navigationBarColor = Color.TRANSPARENT
// } // }
setContentView(R.layout.activity_main)
Request.setRequestListener(this)
if (savedInstanceState == null) { if (savedInstanceState == null) {
val transaction = supportFragmentManager.beginTransaction() val transaction = supportFragmentManager.beginTransaction()
.add(R.id.main_browse_fragment, playerFragment) .add(R.id.main_browse_fragment, playerFragment)

@ -42,7 +42,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
private var lastVideoUrl = "" private var lastVideoUrl = ""
private lateinit var application: MyTvApplication private lateinit var application: MyTVApplication
private lateinit var gestureDetector: GestureDetector private lateinit var gestureDetector: GestureDetector
@ -53,7 +53,7 @@ class MainFragment : Fragment(), CardAdapter.ItemListener {
val context = requireContext() val context = requireContext()
_binding = MenuBinding.inflate(inflater, container, false) _binding = MenuBinding.inflate(inflater, container, false)
application = requireActivity().applicationContext as MyTvApplication application = requireActivity().applicationContext as MyTVApplication
binding.menu.layoutParams.width = application.shouldWidthPx() binding.menu.layoutParams.width = application.shouldWidthPx()
binding.menu.layoutParams.height = application.shouldHeightPx() binding.menu.layoutParams.height = application.shouldHeightPx()

@ -8,7 +8,7 @@ import android.view.WindowManager
import androidx.multidex.MultiDex import androidx.multidex.MultiDex
class MyTvApplication : Application() { class MyTVApplication : Application() {
private lateinit var displayMetrics: DisplayMetrics private lateinit var displayMetrics: DisplayMetrics
private lateinit var realDisplayMetrics: DisplayMetrics private lateinit var realDisplayMetrics: DisplayMetrics

@ -14,6 +14,7 @@ import androidx.core.content.ContextCompat
import androidx.core.view.marginEnd import androidx.core.view.marginEnd
import androidx.core.view.marginTop import androidx.core.view.marginTop
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import com.lizongying.mytv.api.YSP
import com.lizongying.mytv.databinding.SettingBinding import com.lizongying.mytv.databinding.SettingBinding
@ -97,7 +98,14 @@ class SettingFragment : DialogFragment() {
requestInstallPermissions() requestInstallPermissions()
} }
val application = requireActivity().applicationContext as MyTvApplication binding.clear.setOnClickListener {
(requireActivity() as MainActivity).syncTime()
SP.guid = ""
YSP.getGuid()
}
val application = requireActivity().applicationContext as MyTVApplication
val textSize = application.px2PxFont(binding.switchChannelReversal.textSize)
binding.content.layoutParams.width = binding.content.layoutParams.width =
application.px2Px(binding.content.layoutParams.width) application.px2Px(binding.content.layoutParams.width)
@ -108,51 +116,41 @@ class SettingFragment : DialogFragment() {
application.px2Px(binding.content.paddingBottom) application.px2Px(binding.content.paddingBottom)
) )
binding.name.textSize = application.px2PxFont(binding.name.textSize) binding.name.textSize = application.px2PxFont(binding.name.textSize)
binding.version.textSize = application.px2PxFont(binding.version.textSize) binding.version.textSize = textSize
val layoutParamsVersion = binding.version.layoutParams as ViewGroup.MarginLayoutParams val layoutParamsVersion = binding.version.layoutParams as ViewGroup.MarginLayoutParams
layoutParamsVersion.topMargin = application.px2Px(binding.version.marginTop) layoutParamsVersion.topMargin = application.px2Px(binding.version.marginTop)
binding.version.layoutParams = layoutParamsVersion binding.version.layoutParams = layoutParamsVersion
binding.checkVersion.textSize = application.px2PxFont(binding.checkVersion.textSize) binding.checkVersion.textSize = textSize
val layoutParamsCheckVersion = val layoutParamsCheckVersion =
binding.checkVersion.layoutParams as ViewGroup.MarginLayoutParams binding.checkVersion.layoutParams as ViewGroup.MarginLayoutParams
layoutParamsCheckVersion.marginEnd = application.px2Px(binding.checkVersion.marginEnd) layoutParamsCheckVersion.marginEnd = application.px2Px(binding.checkVersion.marginEnd)
binding.checkVersion.layoutParams = layoutParamsCheckVersion binding.checkVersion.layoutParams = layoutParamsCheckVersion
binding.versionName.textSize = application.px2PxFont(binding.versionName.textSize) binding.versionName.textSize = textSize
binding.exit.textSize = application.px2PxFont(binding.exit.textSize) binding.clear.textSize = textSize
binding.exit.textSize = textSize
binding.switchChannelReversal.textSize = val layoutParamsChannelSwitch =
application.px2PxFont(binding.switchChannelReversal.textSize)
val layoutParamsChannelReversal =
binding.switchChannelReversal.layoutParams as ViewGroup.MarginLayoutParams binding.switchChannelReversal.layoutParams as ViewGroup.MarginLayoutParams
layoutParamsChannelReversal.topMargin = layoutParamsChannelSwitch.topMargin =
application.px2Px(binding.switchChannelReversal.marginTop) application.px2Px(binding.switchChannelReversal.marginTop)
binding.switchChannelReversal.layoutParams = layoutParamsChannelReversal
binding.switchChannelReversal.textSize = textSize
binding.switchChannelNum.textSize = application.px2PxFont(binding.switchChannelNum.textSize) binding.switchChannelReversal.layoutParams = layoutParamsChannelSwitch
val layoutParamsChannelNum =
binding.switchChannelNum.layoutParams as ViewGroup.MarginLayoutParams binding.switchChannelNum.textSize = textSize
layoutParamsChannelNum.topMargin = application.px2Px(binding.switchChannelNum.marginTop) binding.switchChannelNum.layoutParams = layoutParamsChannelSwitch
binding.switchChannelNum.layoutParams = layoutParamsChannelNum
binding.switchTime.textSize = textSize
binding.switchTime.textSize = application.px2PxFont(binding.switchTime.textSize) binding.switchTime.layoutParams = layoutParamsChannelSwitch
val layoutParamsTime = binding.switchTime.layoutParams as ViewGroup.MarginLayoutParams
layoutParamsTime.topMargin = application.px2Px(binding.switchTime.marginTop) binding.switchBootStartup.textSize = textSize
binding.switchTime.layoutParams = layoutParamsTime binding.switchBootStartup.layoutParams = layoutParamsChannelSwitch
binding.switchBootStartup.textSize = binding.switchGrid.textSize = textSize
application.px2PxFont(binding.switchBootStartup.textSize) binding.switchGrid.layoutParams = layoutParamsChannelSwitch
val layoutParamsBootStartup =
binding.switchBootStartup.layoutParams as ViewGroup.MarginLayoutParams
layoutParamsBootStartup.topMargin = application.px2Px(binding.switchBootStartup.marginTop)
binding.switchBootStartup.layoutParams = layoutParamsBootStartup
binding.switchGrid.textSize = application.px2PxFont(binding.switchGrid.textSize)
val layoutParamsGrid = binding.switchGrid.layoutParams as ViewGroup.MarginLayoutParams
layoutParamsGrid.topMargin = application.px2Px(binding.switchGrid.marginTop)
binding.switchGrid.layoutParams = layoutParamsGrid
binding.appreciate.layoutParams.width = binding.appreciate.layoutParams.width =
application.px2Px(binding.appreciate.layoutParams.width) application.px2Px(binding.appreciate.layoutParams.width)

@ -24,7 +24,7 @@ class TimeFragment : Fragment() {
): View { ): View {
_binding = TimeBinding.inflate(inflater, container, false) _binding = TimeBinding.inflate(inflater, container, false)
val application = requireActivity().applicationContext as MyTvApplication val application = requireActivity().applicationContext as MyTVApplication
binding.time.layoutParams.width = application.px2Px(binding.time.layoutParams.width) binding.time.layoutParams.width = application.px2Px(binding.time.layoutParams.width)
binding.time.layoutParams.height = application.px2Px(binding.time.layoutParams.height) binding.time.layoutParams.height = application.px2Px(binding.time.layoutParams.height)

@ -1,7 +1,6 @@
package com.lizongying.mytv.api package com.lizongying.mytv.api
import android.content.Context import android.content.Context
import android.util.Log
import com.lizongying.mytv.SP import com.lizongying.mytv.SP
import com.lizongying.mytv.Utils.getDateTimestamp import com.lizongying.mytv.Utils.getDateTimestamp
import com.lizongying.mytv.models.TVViewModel import com.lizongying.mytv.models.TVViewModel
@ -103,18 +102,18 @@ object YSP {
cKey = cKey =
encryptor.encrypt(cnlid, timeStr, appVer, guid, platform) encryptor.encrypt(cnlid, timeStr, appVer, guid, platform)
Log.i(TAG,"yspsdkinput ${"""{"cnlid":"$cnlid","livepid":"$livepid","stream":"$stream","guid":"$guid","cKey":"$cKey","adjust":$adjust,"sphttps":"$sphttps","platform":"$platform","cmd":"$cmd","encryptVer":"$encryptVer","dtype":"$dtype","devid":"$devid","otype":"$otype","appVer":"$appVer","app_version":"$appVersion","channel":"$channel","defn":"$defn"}"""}" ) yspsdkinput =
md("adjust=$adjust&app_version=$appVersion&appVer=$appVer&channel=$channel&cKey=$cKey&cmd=$cmd&cnlid=$cnlid&defn=$defn&devid=$devid&dtype=$dtype&encryptVer=$encryptVer&guid=$guid&livepid=$livepid&otype=$otype&platform=$platform&sphttps=$sphttps&stream=$stream")
yspsdkinput = md("adjust=$adjust&app_version=$appVersion&appVer=$appVer&channel=$channel&cKey=$cKey&cmd=$cmd&cnlid=$cnlid&defn=$defn&devid=$devid&dtype=$dtype&encryptVer=$encryptVer&guid=$guid&livepid=$livepid&otype=$otype&platform=$platform&sphttps=$sphttps&stream=$stream")
nseqId++ nseqId++
nrequest_id = "999999" + getRand() + getTimeStr() nrequest_id = "999999" + getRand() + getTimeStr()
openapi_signature = md("yspappid:519748109;host:www.yangshipin.cn;protocol:https:;token:$token2;input:$yspsdkinput-$guid-$nseqId-$nrequest_id;") openapi_signature =
md("yspappid:519748109;host:www.yangshipin.cn;protocol:https:;token:$token2;input:$yspsdkinput-$guid-$nseqId-$nrequest_id;")
} }
fun md(str:String):String { fun md(str: String): String {
val md = MessageDigest.getInstance("MD5") val md = MessageDigest.getInstance("MD5")
md.update(str.toByteArray()) md.update(str.toByteArray())
val digest = md.digest() val digest = md.digest()
@ -148,6 +147,7 @@ object YSP {
var guid = SP.guid var guid = SP.guid
if (guid.length < 18) { if (guid.length < 18) {
guid = generateGuid() guid = generateGuid()
this.guid = guid
SP.guid = guid SP.guid = guid
} }
return guid return guid

@ -15,7 +15,7 @@ class TVViewModel(private var tv: TV) : ViewModel() {
private var itemPosition: Int = 0 private var itemPosition: Int = 0
var retryTimes = 0 var retryTimes = 0
var retryMaxTimes = 1 var retryMaxTimes = 8
var authYSPRetryTimes = 0 var authYSPRetryTimes = 0
var authYSPRetryMaxTimes = 3 var authYSPRetryMaxTimes = 3
var tokenYSPRetryTimes = 0 var tokenYSPRetryTimes = 0

@ -55,6 +55,13 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" /> android:layout_height="wrap_content" />
</LinearLayout> </LinearLayout>
<Button
android:id="@+id/clear"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp"
android:text="@string/clear"
/>
<Button <Button
android:id="@+id/exit" android:id="@+id/exit"
android:layout_width="wrap_content" android:layout_width="wrap_content"

@ -6,5 +6,6 @@
<string name="title_boot_startup">开机自启</string> <string name="title_boot_startup">开机自启</string>
<string name="title_grid">频道列表采用网格样式</string> <string name="title_grid">频道列表采用网格样式</string>
<string name="title_time">显示时间</string> <string name="title_time">显示时间</string>
<string name="clear">恢复默认</string>
<string name="exit">退出应用</string> <string name="exit">退出应用</string>
</resources> </resources>

@ -1 +1 @@
{"version_code": 33555456, "version_name": "v2.0.4"} {"version_code": 33555712, "version_name": "v2.0.5"}

Loading…
Cancel
Save