From dfe446e6e1cc53e7c9b388b88420001f58b712d1 Mon Sep 17 00:00:00 2001 From: Li ZongYing Date: Tue, 5 Dec 2023 13:58:13 +0800 Subject: [PATCH] show current version --- .github/workflows/build.yml | 2 +- README.md | 21 +++++++++++++++++ app/build.gradle | 22 ++++++++++++++++++ .../java/com/lizongying/mytv/CardPresenter.kt | 4 ---- .../java/com/lizongying/mytv/MainActivity.kt | 16 ++++++++++--- .../java/com/lizongying/mytv/MainFragment.kt | 1 - .../lizongying/mytv/PlaybackControlGlue.kt | 9 +++---- .../com/lizongying/mytv/PlaybackFragment.kt | 1 - screenshots/appreciate.jpeg | Bin 0 -> 42328 bytes 9 files changed, 62 insertions(+), 14 deletions(-) create mode 100644 screenshots/appreciate.jpeg diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ccf08528..9caf1e84 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -52,5 +52,5 @@ jobs: with: upload_url: ${{ steps.create_release.outputs.upload_url }} asset_path: ${{ steps.sign_app.outputs.signedReleaseFile }} - asset_name: my_tv.apk + asset_name: my-tv.apk asset_content_type: application/vnd.android.package-archive \ No newline at end of file diff --git a/README.md b/README.md index e69de29b..d90cf1e4 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,21 @@ +# 我的电视 + +安卓电视直播软件,内置直播源 + +## 使用 + +下载安装[releases](https://github.com/lizongying/my-tv/releases) + +## 其他 + +小米电视可以使用小米电视助手进行安装 + +如电视可以启用ADB,也可以通过ADB进行安装: + +```shell +adb install my-tv.apk +``` + +## 赞赏 + +![image](./screenshots/appreciate.jpeg) \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index 83a5632f..0520bc72 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -13,6 +13,8 @@ android { targetSdk 33 versionCode 11 versionName "1.1" + versionCode getVersionCode() + versionName getVersionName() } buildTypes { @@ -32,6 +34,26 @@ android { } } +static def getVersionCode() { + try { + def process = 'git rev-list --count HEAD'.execute() + process.waitFor() + return process.text.toInteger() + } catch (ignored) { + return 0 + } +} + +static def getVersionName() { + try { + def process = 'git describe --tags --always'.execute() + process.waitFor() + return process.text.trim() + } catch (ignored) { + return "1.0.0" + } +} + dependencies { implementation 'androidx.core:core-ktx:1.11.0-beta02' diff --git a/app/src/main/java/com/lizongying/mytv/CardPresenter.kt b/app/src/main/java/com/lizongying/mytv/CardPresenter.kt index 7ee1b0d9..1da252b1 100644 --- a/app/src/main/java/com/lizongying/mytv/CardPresenter.kt +++ b/app/src/main/java/com/lizongying/mytv/CardPresenter.kt @@ -21,8 +21,6 @@ import kotlinx.coroutines.withContext class CardPresenter(private val lifecycleScope: LifecycleCoroutineScope) : Presenter() { override fun onCreateViewHolder(parent: ViewGroup): ViewHolder { - Log.d(TAG, "onCreateViewHolder") - val cardView = object : ImageCardView(ContextThemeWrapper(parent.context, R.style.CustomImageCardTheme)) { override fun setSelected(selected: Boolean) { @@ -40,7 +38,6 @@ class CardPresenter(private val lifecycleScope: LifecycleCoroutineScope) : Prese val tv = item as TV val cardView = viewHolder.view as ImageCardView - Log.d(TAG, "onBindViewHolder") if (tv.videoUrl != null) { cardView.titleText = tv.title cardView.setMainImageDimensions(CARD_WIDTH, CARD_HEIGHT) @@ -57,7 +54,6 @@ class CardPresenter(private val lifecycleScope: LifecycleCoroutineScope) : Prese } override fun onUnbindViewHolder(viewHolder: ViewHolder) { - Log.d(TAG, "onUnbindViewHolder") val cardView = viewHolder.view as ImageCardView // Remove references to images so that the garbage collector can free up memory cardView.badgeImage = null diff --git a/app/src/main/java/com/lizongying/mytv/MainActivity.kt b/app/src/main/java/com/lizongying/mytv/MainActivity.kt index 7d2226d9..b47a66ad 100644 --- a/app/src/main/java/com/lizongying/mytv/MainActivity.kt +++ b/app/src/main/java/com/lizongying/mytv/MainActivity.kt @@ -13,6 +13,7 @@ import android.widget.Toast import androidx.core.content.ContextCompat import androidx.fragment.app.FragmentActivity + /** * Loads [MainFragment]. */ @@ -64,7 +65,7 @@ class MainActivity : FragmentActivity() { mainFragment.focus() } - fun fragmentIsHidden(): Boolean { + fun mainFragmentIsHidden(): Boolean { return mainFragment.isHidden } @@ -79,12 +80,16 @@ class MainActivity : FragmentActivity() { override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean { when (keyCode) { KeyEvent.KEYCODE_BACK -> { + if (!mainFragmentIsHidden()) { + hideMainFragment() + return true + } + if (doubleBackToExitPressedOnce) { super.onBackPressed() return true } - hideMainFragment() this.doubleBackToExitPressedOnce = true Toast.makeText(this, "再按一次退出", Toast.LENGTH_SHORT).show() @@ -112,9 +117,14 @@ class MainActivity : FragmentActivity() { layoutParams.gravity = Gravity.BOTTOM imageView.layoutParams = layoutParams + + val packageInfo = packageManager.getPackageInfo(packageName, 0) + + val versionName = packageInfo.versionName + val builder: AlertDialog.Builder = AlertDialog.Builder(this) builder - .setTitle("https://github.com/lizongying/my-tv/releases") + .setTitle("当前版本: $versionName, 获取最新: https://github.com/lizongying/my-tv/releases/") .setView(linearLayout) val dialog: AlertDialog = builder.create() diff --git a/app/src/main/java/com/lizongying/mytv/MainFragment.kt b/app/src/main/java/com/lizongying/mytv/MainFragment.kt index 33a2011d..b7c78a5d 100644 --- a/app/src/main/java/com/lizongying/mytv/MainFragment.kt +++ b/app/src/main/java/com/lizongying/mytv/MainFragment.kt @@ -150,7 +150,6 @@ class MainFragment : BrowseSupportFragment() { ) { if (item is TV) { Log.i(TAG, "Item: ${item.id}") - } if (itemViewHolder == null) { view?.post { diff --git a/app/src/main/java/com/lizongying/mytv/PlaybackControlGlue.kt b/app/src/main/java/com/lizongying/mytv/PlaybackControlGlue.kt index 32b24287..057a6073 100644 --- a/app/src/main/java/com/lizongying/mytv/PlaybackControlGlue.kt +++ b/app/src/main/java/com/lizongying/mytv/PlaybackControlGlue.kt @@ -20,30 +20,31 @@ class PlaybackControlGlue( } KeyEvent.KEYCODE_DPAD_UP -> { - if ((context as? MainActivity)?.fragmentIsHidden() == true) { + if ((context as? MainActivity)?.mainFragmentIsHidden() == true) { (context as? MainActivity)?.prev() } } KeyEvent.KEYCODE_DPAD_DOWN -> { - if ((context as? MainActivity)?.fragmentIsHidden() == true) { + if ((context as? MainActivity)?.mainFragmentIsHidden() == true) { (context as? MainActivity)?.next() } } KeyEvent.KEYCODE_DPAD_LEFT -> { - if ((context as? MainActivity)?.fragmentIsHidden() == true) { + if ((context as? MainActivity)?.mainFragmentIsHidden() == true) { (context as? MainActivity)?.prev() } } KeyEvent.KEYCODE_DPAD_RIGHT -> { - if ((context as? MainActivity)?.fragmentIsHidden() == true) { + if ((context as? MainActivity)?.mainFragmentIsHidden() == true) { (context as? MainActivity)?.next() } } } } + return super.onKey(v, keyCode, event) } diff --git a/app/src/main/java/com/lizongying/mytv/PlaybackFragment.kt b/app/src/main/java/com/lizongying/mytv/PlaybackFragment.kt index 03254cd6..31cb0e0b 100644 --- a/app/src/main/java/com/lizongying/mytv/PlaybackFragment.kt +++ b/app/src/main/java/com/lizongying/mytv/PlaybackFragment.kt @@ -54,7 +54,6 @@ class PlaybackFragment : VideoSupportFragment() { try { playerAdapter?.setDataSource(Uri.parse(tv.videoUrl)) } catch (e: IOException) { - // Handle the exception return } hideControlsOverlay(false) diff --git a/screenshots/appreciate.jpeg b/screenshots/appreciate.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..05f10de8ba849e4ad9f9b2b4b932e795064557b7 GIT binary patch literal 42328 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Ξ7(Higbo__S$&k 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 G82w+Ls^=E~ literal 0 HcmV?d00001