Skip to content

Commit

Permalink
fix some crash
Browse files Browse the repository at this point in the history
  • Loading branch information
lizongying committed Sep 6, 2024
1 parent 1f5c7ca commit 1cd982e
Show file tree
Hide file tree
Showing 12 changed files with 49 additions and 34 deletions.
4 changes: 4 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
## 更新日誌

### v1.3.7.13

* 修復一些崩潰問題

### v1.3.7.12

* 修復txt分組錯誤問題
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ adb install my-tv-0.apk

## TODO

* 視頻解碼
* 軟解
* 支持回看
* 詳細EPG
* 淺色菜單
Expand Down
24 changes: 16 additions & 8 deletions app/src/main/java/com/lizongying/mytv0/InfoFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import android.graphics.Paint
import android.graphics.drawable.BitmapDrawable
import android.os.Bundle
import android.os.Handler
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
Expand Down Expand Up @@ -71,20 +72,27 @@ class InfoFragment : Fragment() {
(activity as MainActivity).ready(TAG)
}

fun show(tvViewModel: TVModel) {
fun show(tvModel: TVModel) {
// TODO make sure attached
if (!isAdded) {
Log.e(TAG, "Fragment not attached to a context.")
return
}

val context = requireContext()
binding.title.text = tvViewModel.tv.title

when (tvViewModel.tv.title) {
binding.title.text = tvModel.tv.title

when (tvModel.tv.title) {
else -> {
val width = Utils.dpToPx(100)
val height = Utils.dpToPx(60)
val bitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)

val text = "${tvViewModel.tv.id + 1}"
val text = "${tvModel.tv.id + 1}"
var size = 100f
if (tvViewModel.tv.id > 999) {
if (tvModel.tv.id > 999) {
size = 90f
}
val paint = Paint().apply {
Expand All @@ -96,14 +104,14 @@ class InfoFragment : Fragment() {
val y = height / 2f - (paint.descent() + paint.ascent()) / 2
canvas.drawText(text, x, y, paint)

if (tvViewModel.tv.logo.isNullOrBlank()) {
if (tvModel.tv.logo.isNullOrBlank()) {
Glide.with(this)
.load(BitmapDrawable(context.resources, bitmap))
// .centerInside()
.into(binding.logo)
} else {
Glide.with(this)
.load(tvViewModel.tv.logo)
.load(tvModel.tv.logo)
// .placeholder(BitmapDrawable(context.resources, bitmap))
.error(BitmapDrawable(context.resources, bitmap))
// .centerInside()
Expand All @@ -112,7 +120,7 @@ class InfoFragment : Fragment() {
}
}

val epg = tvViewModel.epg.value?.filter { it.beginTime < Utils.getDateTimestamp() }
val epg = tvModel.epg.value?.filter { it.beginTime < Utils.getDateTimestamp() }
if (!epg.isNullOrEmpty()) {
binding.desc.text = epg.last().title
} else {
Expand Down
8 changes: 1 addition & 7 deletions app/src/main/java/com/lizongying/mytv0/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class MainActivity : AppCompatActivity() {

private var server: SimpleServer? = null

lateinit var viewModel: MainViewModel
private lateinit var viewModel: MainViewModel

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
Expand Down Expand Up @@ -211,10 +211,6 @@ class MainActivity : AppCompatActivity() {
}
}

fun setServer(server: String) {
settingFragment.setServer(server)
}

private fun watch() {
viewModel.listModel.forEach { tvModel ->
tvModel.errInfo.observe(this) { _ ->
Expand Down Expand Up @@ -724,8 +720,6 @@ class MainActivity : AppCompatActivity() {
}

override fun attachBaseContext(base: Context) {
//Locale.SIMPLIFIED_CHINESE
//Locale.TRADITIONAL_CHINESE
val locale = Locale.TRADITIONAL_CHINESE
val context = LocaleContextWrapper.wrap(base, locale)
super.attachBaseContext(context)
Expand Down
20 changes: 14 additions & 6 deletions app/src/main/java/com/lizongying/mytv0/PlayerFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -116,11 +116,7 @@ class PlayerFragment : Fragment() {

override fun onPlayerError(error: PlaybackException) {
super.onPlayerError(error)
Log.i(
TAG,
"播放错误 ${error.errorCode}||| ${error.errorCodeName}||| ${error.message}||| $error"
)
tvModel?.setErrInfo("播放错误")
tvModel?.setErrInfo(R.string.play_error.getString())
if (tvModel?.getSourceType() == SourceType.UNKNOWN) {
tvModel?.nextSource()
}
Expand Down Expand Up @@ -187,7 +183,19 @@ class PlayerFragment : Fragment() {
if (dataSource != null) {
setMediaSource(dataSource)
} else {
setMediaItem(tvModel.getMediaItem())
val mediaItem = tvModel.getMediaItem()
if (mediaItem == null) {
tvModel.setErrInfo(R.string.play_error.getString())
if (tvModel.getSourceType() == SourceType.UNKNOWN) {
tvModel.nextSource()
}
if (tvModel.retryTimes < tvModel.retryMaxTimes) {
tvModel.setReady()
tvModel.retryTimes++
}
return
}
setMediaItem(mediaItem)
}

prepare()
Expand Down
7 changes: 2 additions & 5 deletions app/src/main/java/com/lizongying/mytv0/SettingFragment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import androidx.core.view.marginEnd
import androidx.core.view.marginTop
import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import com.lizongying.mytv0.SimpleServer.Companion.PORT
import com.lizongying.mytv0.databinding.SettingBinding
import kotlin.math.max
import kotlin.math.min
Expand All @@ -31,7 +32,7 @@ class SettingFragment : Fragment() {

private lateinit var updateManager: UpdateManager

private var server = ""
private var server = "http://${PortUtil.lan()}:$PORT"

private lateinit var viewModel: MainViewModel

Expand Down Expand Up @@ -350,10 +351,6 @@ class SettingFragment : Fragment() {
(activity as MainActivity).settingActive()
}

fun setServer(server: String) {
this.server = "http://$server"
}

private fun hideSelf() {
requireActivity().supportFragmentManager.beginTransaction()
.hide(this)
Expand Down
2 changes: 0 additions & 2 deletions app/src/main/java/com/lizongying/mytv0/SimpleServer.kt
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ class SimpleServer(private val context: Context, private val viewModel: MainView
init {
try {
start()
val host = PortUtil.lan()
(context as MainActivity).setServer("$host:$PORT")
} catch (e: Exception) {
e.printStackTrace()
}
Expand Down
11 changes: 7 additions & 4 deletions app/src/main/java/com/lizongying/mytv0/models/TVModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -110,13 +110,16 @@ class TVModel(var tv: TV) : ViewModel() {
// TODO Maybe _mediaItem has not been initialized when play
private lateinit var _mediaItem: MediaItem

fun getMediaItem(): MediaItem {
fun getMediaItem(): MediaItem? {
if (::_mediaItem.isInitialized) {
return _mediaItem
} else {
// TODO Maybe url is null
_mediaItem = MediaItem.fromUri(getVideoUrl()!!)
return _mediaItem
getVideoUrl()?.let {
_mediaItem = MediaItem.fromUri(it)
return _mediaItem
}

return null
}
}

Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-zh-rCN/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<string name="channel_format_error">频道格式错误</string>
<string name="channel_read_error">无法读取频道</string>
<string name="channel_request_error">频道请求错误</string>
<string name="play_error">播放错误</string>
<string name="file_not_exist">文件不存在</string>
<string name="channel_not_exist">频道为空</string>
<string name="config_restored">已恢复到默认配置</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values-zh-rTW/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<string name="channel_format_error">頻道格式錯誤</string>
<string name="channel_read_error">無法讀取頻道</string>
<string name="channel_request_error">頻道請求錯誤</string>
<string name="play_error">播放錯誤</string>
<string name="file_not_exist">文件不存在</string>
<string name="channel_not_exist">頻道為空</string>
<string name="config_restored">已恢復到默認配置</string>
Expand Down
1 change: 1 addition & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
<string name="channel_format_error">Channel format error</string>
<string name="channel_read_error">Unable to read channel</string>
<string name="channel_request_error">Channel request error</string>
<string name="play_error">Play error</string>
<string name="file_not_exist">File does not exist</string>
<string name="channel_not_exist">Channel does not exist</string>
<string name="config_restored">Configuration restored to default</string>
Expand Down
2 changes: 1 addition & 1 deletion version.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version_code": 16975628, "version_name": "v1.3.7.12"}
{"version_code": 16975629, "version_name": "v1.3.7.13"}

0 comments on commit 1cd982e

Please sign in to comment.