pull/842/merge v2.1.2
Li ZongYing 2 years ago
parent e55584c910
commit f4c1db33b3
  1. 4
      HISTORY.md
  2. BIN
      app/src/main/cpp/arm64-v8a/libnative.so
  3. BIN
      app/src/main/cpp/armeabi-v7a/libnative.so
  4. 24
      app/src/main/java/com/lizongying/mytv/ConfirmationFragment.kt
  5. 10
      app/src/main/java/com/lizongying/mytv/MyTVApplication.kt
  6. 18
      app/src/main/java/com/lizongying/mytv/SettingFragment.kt
  7. 2
      app/src/main/java/com/lizongying/mytv/UpdateManager.kt
  8. 8
      app/src/main/java/com/lizongying/mytv/UpdateWorker.kt
  9. 4
      app/src/main/java/com/lizongying/mytv/api/ApiClient.kt
  10. 19
      app/src/main/java/com/lizongying/mytv/models/MyViewModel.kt
  11. 24
      app/src/main/res/layout/confirmation.xml
  12. 9
      app/src/main/res/layout/setting.xml
  13. 1
      app/src/main/res/values/strings.xml
  14. 2
      version.json

@ -1,5 +1,9 @@
## 更新日誌
### v2.1.2
*
### v2.1.1
* 平衡聲音

@ -3,13 +3,37 @@ package com.lizongying.mytv
import android.app.AlertDialog
import android.app.Dialog
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import androidx.fragment.app.DialogFragment
import com.lizongying.mytv.databinding.ConfirmationBinding
class ConfirmationFragment(
private val listener: ConfirmationListener,
private val message: String,
private val update: Boolean
) : DialogFragment() {
//
// private var _binding: ConfirmationBinding? = null
// private val binding get() = _binding!!
//
// override fun onCreateView(
// inflater: LayoutInflater, container: ViewGroup?,
// savedInstanceState: Bundle?
// ): View {
// _binding = ConfirmationBinding.inflate(inflater, container, false)
// return binding.root
// }
//
// fun updateProgress(progress: Int) {
// binding.progressBar.progress = progress
// }
//
// override fun onDestroyView() {
// super.onDestroyView()
// _binding = null
// }
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return activity?.let {

@ -5,7 +5,10 @@ import android.content.Context
import android.content.res.Resources
import android.util.DisplayMetrics
import android.view.WindowManager
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.ViewModelStore
import androidx.multidex.MultiDex
import com.lizongying.mytv.models.MyViewModel
class MyTVApplication : Application() {
@ -23,6 +26,8 @@ class MyTVApplication : Application() {
private var density = 2.0f
private var scale = 1.0f
lateinit var myViewModel: MyViewModel
override fun onCreate() {
super.onCreate()
@ -60,6 +65,11 @@ class MyTVApplication : Application() {
deviation = width - Resources.getSystem().displayMetrics.widthPixels
scale = Resources.getSystem().displayMetrics.scaledDensity
myViewModel = ViewModelProvider(
ViewModelStore(),
ViewModelProvider.NewInstanceFactory()
)[MyViewModel::class.java]
}
fun getDisplayMetrics(): DisplayMetrics {

@ -6,11 +6,14 @@ import android.os.Build
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.View.GONE
import android.view.View.VISIBLE
import android.view.ViewGroup
import android.view.WindowManager
import android.widget.Toast
import androidx.core.app.ActivityCompat
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
import androidx.core.view.marginEnd
import androidx.core.view.marginTop
import androidx.fragment.app.DialogFragment
@ -159,6 +162,21 @@ class SettingFragment : DialogFragment() {
requireActivity().finishAffinity()
}
// val myViewModel = application.myViewModel
// application.myViewModel.downloadProgress.observe(viewLifecycleOwner) { _ ->
// val downloadProgress = myViewModel.downloadProgress.value
// if (downloadProgress != null) {
// if (downloadProgress == 100) {
// binding.progressBar.visibility = GONE
// } else {
// if (!binding.progressBar.isVisible) {
// binding.progressBar.visibility = VISIBLE
// }
// binding.progressBar.progress = downloadProgress
// }
// }
// }
updateManager = UpdateManager(context, context.appVersionCode)
return binding.root

@ -31,7 +31,7 @@ class UpdateManager(
release = releaseRequest.getRelease()
val code = release?.version_code
if (code != null) {
if (code.toLong() > versionCode) {
if (code.toLong() >= versionCode) {
text = "最新版本:${release?.version_name}"
update = true
} else {

@ -13,6 +13,7 @@ import androidx.core.app.NotificationCompat
import androidx.core.content.FileProvider
import androidx.work.CoroutineWorker
import androidx.work.WorkerParameters
import com.lizongying.mytv.models.MyViewModel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import java.io.File
@ -22,6 +23,8 @@ class UpdateWorker(context: Context, params: WorkerParameters) : CoroutineWorker
private lateinit var notificationManager: NotificationManager
private lateinit var notificationBuilder: NotificationCompat.Builder
private lateinit var myViewModel: MyViewModel
override suspend fun doWork(): Result {
val downloadUrl = inputData.getString("DOWNLOAD_URL") ?: return Result.failure()
val apkFileName = inputData.getString("APK_FILENAME") ?: return Result.failure()
@ -29,6 +32,9 @@ class UpdateWorker(context: Context, params: WorkerParameters) : CoroutineWorker
showNotification(applicationContext)
val app = applicationContext as MyTVApplication
myViewModel = app.myViewModel
return withContext(Dispatchers.IO) {
try {
downloadAndInstall(applicationContext, downloadUrl, apkFileName, versionName)
@ -96,6 +102,8 @@ class UpdateWorker(context: Context, params: WorkerParameters) : CoroutineWorker
if (bytesTotal > 0) {
val progress = (bytesDownloaded * 100L / bytesTotal).toInt()
Log.i(TAG, "progress $progress")
// myViewModel.setDownloadProgress(progress)
notificationBuilder.setProgress(100, progress, false)
notificationManager.notify(1, notificationBuilder.build())
}

@ -12,6 +12,8 @@ import okhttp3.TlsVersion
import retrofit2.Retrofit
import retrofit2.converter.gson.GsonConverterFactory
import retrofit2.converter.protobuf.ProtoConverterFactory
import java.net.InetSocketAddress
import java.net.Proxy
import javax.net.ssl.SSLContext
import javax.net.ssl.TrustManager
import javax.net.ssl.X509TrustManager
@ -166,7 +168,7 @@ class ApiClient {
val sslContext = SSLContext.getInstance("SSL")
sslContext.init(null, trustAllCerts, java.security.SecureRandom())
// val proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("10.0.2.2", 8888))
val proxy = Proxy(Proxy.Type.HTTP, InetSocketAddress("10.0.2.2", 8888))
val builder = OkHttpClient.Builder()
.sslSocketFactory(sslContext.socketFactory, trustAllCerts[0] as X509TrustManager)

@ -0,0 +1,19 @@
package com.lizongying.mytv.models
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel
class MyViewModel : ViewModel() {
private var _downloadProgress = MutableLiveData<Int>()
val downloadProgress: LiveData<Int>
get() = _downloadProgress
fun setDownloadProgress(progress: Int) {
_downloadProgress.value = progress
}
init {
_downloadProgress.value = 0
}
}

@ -0,0 +1,24 @@
<!-- res/layout/fragment_progress_dialog.xml -->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:padding="20dp">
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/start_update"
tools:text="开始更新">
</Button>
<androidx.core.widget.ContentLoadingProgressBar
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:indeterminate="false"
android:max="100"
android:progress="0"
android:progressDrawable="@android:drawable/progress_horizontal" />
</LinearLayout>

@ -59,6 +59,15 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<!-- <androidx.core.widget.ContentLoadingProgressBar-->
<!-- android:id="@+id/progressBar"-->
<!-- android:layout_width="match_parent"-->
<!-- android:layout_height="wrap_content"-->
<!-- android:indeterminate="false"-->
<!-- android:max="100"-->
<!-- android:progress="0"-->
<!-- android:visibility="gone"-->
<!-- android:progressDrawable="@android:drawable/progress_horizontal" />-->
<Button
android:id="@+id/clear"
android:layout_width="wrap_content"

@ -8,4 +8,5 @@
<string name="title_time">显示时间</string>
<string name="clear">恢复默认</string>
<string name="exit">退出应用</string>
<string name="start_update">开始更新</string>
</resources>

@ -1 +1 @@
{"version_code": 33620224, "version_name": "v2.1.1"}
{"version_code": 33620480, "version_name": "v2.1.2"}

Loading…
Cancel
Save