From 31330f25ea3a9fc329aad0218752c65a6b0703bc Mon Sep 17 00:00:00 2001 From: Li ZongYing Date: Tue, 14 May 2024 10:59:48 +0800 Subject: [PATCH] fix crash --- HISTORY.md | 5 ++- README.md | 2 -- app/build.gradle.kts | 34 +++++++++++++------ app/src/main/AndroidManifest.xml | 3 +- .../com/lizongying/mytv0/ChannelFragment.kt | 2 +- .../com/lizongying/mytv0/ErrorFragment.kt | 2 +- app/src/main/java/com/lizongying/mytv0/Ext.kt | 5 +++ .../java/com/lizongying/mytv0/GroupAdapter.kt | 2 +- .../java/com/lizongying/mytv0/InfoFragment.kt | 2 +- .../java/com/lizongying/mytv0/ListAdapter.kt | 9 +++-- .../lizongying/mytv0/LiveDataExtensions.kt | 14 -------- .../com/lizongying/mytv0/LoadingFragment.kt | 2 +- .../com/lizongying/mytv0/ModalFragment.kt | 6 ++-- .../com/lizongying/mytv0/MyTVApplication.kt | 19 ++++++----- app/src/main/java/com/lizongying/mytv0/SP.kt | 4 +++ .../com/lizongying/mytv0/SettingFragment.kt | 3 +- .../java/com/lizongying/mytv0/TimeFragment.kt | 2 +- app/src/main/res/layout/menu.xml | 2 +- .../res/layout/{appreciate.xml => modal.xml} | 7 ++-- app/src/main/res/values/dimens.xml | 2 +- app/src/main/res/values/strings.xml | 8 ----- app/src/main/res/values/themes.xml | 3 -- version.json | 2 +- 23 files changed, 74 insertions(+), 66 deletions(-) delete mode 100644 app/src/main/java/com/lizongying/mytv0/LiveDataExtensions.kt rename app/src/main/res/layout/{appreciate.xml => modal.xml} (81%) diff --git a/HISTORY.md b/HISTORY.md index debee9eb..2ffa811d 100644 --- a/HISTORY.md +++ b/HISTORY.md @@ -2,7 +2,10 @@ ### v1.2.0 -* 修复网络地址获取错误的问题 +* 修复部分设备网络地址获取错误的问题 +* 恢复默认的时候会清除收藏 +* 修复一些崩溃问题 +* 手机支持收藏功能 ### v1.1.9 diff --git a/README.md b/README.md index 8c5d4b1f..fc91895c 100644 --- a/README.md +++ b/README.md @@ -81,8 +81,6 @@ adb install my-tv-0.apk * 插件商城 * UI * 视频解码 -* 频道更新时删除收藏 -* 手机上的收藏功能 ## 赞赏 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4a7b3ecc..a155b920 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,6 +15,7 @@ android { targetSdk = 34 versionCode = getVersionCode() versionName = getVersionName() + multiDexEnabled = true } buildFeatures { @@ -31,6 +32,11 @@ android { } } compileOptions { + // Flag to enable support for the new language APIs + + // For AGP 4.1+ + isCoreLibraryDesugaringEnabled = true + sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } @@ -49,7 +55,7 @@ fun getVersionCode(): Int { arr[0].toInt() * 16777216 + arr[1].toInt() * 65536 + arr[2].toInt() * 256 + arr[3].toInt() versionCode } catch (ignored: Exception) { - 0 + 1 } } @@ -57,15 +63,21 @@ fun getVersionName(): String { return try { val process = Runtime.getRuntime().exec("git describe --tags --always") process.waitFor() - process.inputStream.bufferedReader().use(BufferedReader::readText).trim().removePrefix("v") + val versionName = process.inputStream.bufferedReader().use(BufferedReader::readText).trim().removePrefix("v") + versionName.ifEmpty { + "1.0.0" + } } catch (ignored: Exception) { "1.0.0" } } dependencies { - // 19 - val media3Version = "1.3.0" + // For AGP 7.4+ + coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") + + // 19 java8 + val media3Version = "1.3.1" implementation("androidx.media3:media3-ui:$media3Version") // For media playback using ExoPlayer @@ -75,14 +87,16 @@ dependencies { implementation("androidx.media3:media3-exoplayer-dash:$media3Version") implementation("androidx.media3:media3-exoplayer-rtsp:$media3Version") - implementation("androidx.core:core-ktx:1.12.0") - implementation("androidx.leanback:leanback:1.0.0") - implementation("com.github.bumptech.glide:glide:4.11.0") + implementation("androidx.core:core-ktx:1.13.1") + implementation("androidx.multidex:multidex:2.0.1") + implementation("androidx.recyclerview:recyclerview:1.3.2") + + //java7 + implementation("com.github.bumptech.glide:glide:4.16.0") // 21:2.11.0 17:2.6.4 val retrofit2Version = "2.11.0" implementation("com.squareup.retrofit2:converter-gson:$retrofit2Version") - implementation ("com.squareup.retrofit2:converter-protobuf:$retrofit2Version") implementation ("com.squareup.retrofit2:retrofit:$retrofit2Version") // For yunos @@ -92,11 +106,11 @@ dependencies { implementation("com.google.android.exoplayer:exoplayer-hls:$exoplayerVersion") implementation("androidx.constraintlayout:constraintlayout:2.1.4") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.0-RC") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1") implementation(files("libs/lib-decoder-ffmpeg-release.aar")) - implementation("io.github.lizongying:gua64:1.4.3") + implementation("io.github.lizongying:gua64:1.4.4") implementation("org.nanohttpd:nanohttpd:2.3.1") diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index e292c962..094c763a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -2,7 +2,7 @@ LiveData.observeOnce(owner: LifecycleOwner, observer: (T) -> Unit) { - observe(owner, object : Observer { - override fun onChanged(value: T) { - removeObserver(this) - observer(value) - } - }) -} diff --git a/app/src/main/java/com/lizongying/mytv0/LoadingFragment.kt b/app/src/main/java/com/lizongying/mytv0/LoadingFragment.kt index 70b9795c..7159d6fe 100644 --- a/app/src/main/java/com/lizongying/mytv0/LoadingFragment.kt +++ b/app/src/main/java/com/lizongying/mytv0/LoadingFragment.kt @@ -17,7 +17,7 @@ class LoadingFragment : Fragment() { ): View { _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.height = application.px2Px(binding.bar.layoutParams.height) diff --git a/app/src/main/java/com/lizongying/mytv0/ModalFragment.kt b/app/src/main/java/com/lizongying/mytv0/ModalFragment.kt index a88edc06..7ff69231 100644 --- a/app/src/main/java/com/lizongying/mytv0/ModalFragment.kt +++ b/app/src/main/java/com/lizongying/mytv0/ModalFragment.kt @@ -10,12 +10,12 @@ import android.view.ViewGroup import android.view.WindowManager import androidx.fragment.app.DialogFragment import com.bumptech.glide.Glide -import com.lizongying.mytv0.databinding.AppreciateBinding +import com.lizongying.mytv0.databinding.ModalBinding class ModalFragment : DialogFragment() { - private var _binding: AppreciateBinding? = null + private var _binding: ModalBinding? = null private val binding get() = _binding!! private val handler = Handler(Looper.myLooper()!!) @@ -34,7 +34,7 @@ class ModalFragment : DialogFragment() { container: ViewGroup?, savedInstanceState: Bundle? ): View { - _binding = AppreciateBinding.inflate(inflater, container, false) + _binding = ModalBinding.inflate(inflater, container, false) return binding.root } diff --git a/app/src/main/java/com/lizongying/mytv0/MyTVApplication.kt b/app/src/main/java/com/lizongying/mytv0/MyTVApplication.kt index 1c64a535..338b6665 100644 --- a/app/src/main/java/com/lizongying/mytv0/MyTVApplication.kt +++ b/app/src/main/java/com/lizongying/mytv0/MyTVApplication.kt @@ -6,17 +6,19 @@ import android.content.res.Resources import android.os.Handler import android.os.Looper import android.util.DisplayMetrics -import android.util.Log import android.view.WindowManager import android.widget.Toast +import androidx.multidex.MultiDex +import androidx.multidex.MultiDexApplication -class MyTvApplication : Application() { +class MyTVApplication : MultiDexApplication() { companion object { - private const val TAG = "MyTvApplication" - private lateinit var instance: MyTvApplication + private const val TAG = "MyTVApplication" + private lateinit var instance: MyTVApplication - fun getInstance(): MyTvApplication { + @JvmStatic + fun getInstance(): MyTVApplication { return instance } } @@ -97,8 +99,9 @@ class MyTvApplication : Application() { fun sp2Px(sp: Float): Float { return (sp * ratio * scale).toFloat() } -} -fun String.showToast(duration: Int = Toast.LENGTH_SHORT) { - MyTvApplication.getInstance().toast(this, duration) + override fun attachBaseContext(base: Context?) { + super.attachBaseContext(base) + MultiDex.install(this) + } } \ No newline at end of file diff --git a/app/src/main/java/com/lizongying/mytv0/SP.kt b/app/src/main/java/com/lizongying/mytv0/SP.kt index 3ca82f20..1be917ee 100644 --- a/app/src/main/java/com/lizongying/mytv0/SP.kt +++ b/app/src/main/java/com/lizongying/mytv0/SP.kt @@ -104,4 +104,8 @@ object SP { sp.edit().putStringSet(KEY_LIKE, stringSet).apply() } + + fun deleteLike() { + sp.edit().remove(KEY_LIKE).apply() + } } \ No newline at end of file diff --git a/app/src/main/java/com/lizongying/mytv0/SettingFragment.kt b/app/src/main/java/com/lizongying/mytv0/SettingFragment.kt index ca1b801d..4e03e279 100644 --- a/app/src/main/java/com/lizongying/mytv0/SettingFragment.kt +++ b/app/src/main/java/com/lizongying/mytv0/SettingFragment.kt @@ -149,6 +149,7 @@ class SettingFragment : Fragment() { SP.channel = 0 defaultChannel.text = Editable.Factory.getInstance().newEditable("") context.deleteFile(TVList.FILE_NAME) + SP.deleteLike() SP.position = 0 TVList.setPosition(0) } @@ -172,7 +173,7 @@ class SettingFragment : Fragment() { requireActivity().finishAffinity() } - val application = requireActivity().applicationContext as MyTvApplication + val application = requireActivity().applicationContext as MyTVApplication binding.content.layoutParams.width = application.px2Px(binding.content.layoutParams.width) diff --git a/app/src/main/java/com/lizongying/mytv0/TimeFragment.kt b/app/src/main/java/com/lizongying/mytv0/TimeFragment.kt index 8dd5a4e3..66a056e6 100644 --- a/app/src/main/java/com/lizongying/mytv0/TimeFragment.kt +++ b/app/src/main/java/com/lizongying/mytv0/TimeFragment.kt @@ -24,7 +24,7 @@ class TimeFragment : Fragment() { ): View { _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.height = application.px2Px(binding.time.layoutParams.height) diff --git a/app/src/main/res/layout/menu.xml b/app/src/main/res/layout/menu.xml index 78f2f49e..259e5162 100644 --- a/app/src/main/res/layout/menu.xml +++ b/app/src/main/res/layout/menu.xml @@ -11,7 +11,7 @@ android:id="@+id/group" android:layout_width="150dp" android:layout_height="match_parent" - android:layout_marginEnd="1dp" + android:layout_marginEnd="2dp" android:padding="10dp" android:background="#FF263238"> diff --git a/app/src/main/res/layout/appreciate.xml b/app/src/main/res/layout/modal.xml similarity index 81% rename from app/src/main/res/layout/appreciate.xml rename to app/src/main/res/layout/modal.xml index 7b2f9365..f232405d 100644 --- a/app/src/main/res/layout/appreciate.xml +++ b/app/src/main/res/layout/modal.xml @@ -1,15 +1,16 @@ + android:layout_width="wrap_content" + android:layout_height="wrap_content" + > - 1dp + 2dp \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5919a592..db4b5914 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1,13 +1,5 @@ 我的電視·〇 - Error Fragment - Personal Settings - Movie - - - An error occurred - Dismiss - 换台反转 换台时显示频道号 更新应用 diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 343565fb..e5f8fdc2 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -1,5 +1,2 @@ - - \ No newline at end of file diff --git a/version.json b/version.json index c94ab178..b703bd28 100644 --- a/version.json +++ b/version.json @@ -1 +1 @@ -{"version_code": 16844800, "version_name": "v1.1.8"} +{"version_code": 16908288, "version_name": "v1.2.0"}