Commit a6862095 authored by wanglei's avatar wanglei

...

parent a15ae477
...@@ -2,28 +2,30 @@ package com.base.datarecovery.activity.appmanager ...@@ -2,28 +2,30 @@ package com.base.datarecovery.activity.appmanager
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent
import android.content.pm.ApplicationInfo import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo import android.content.pm.PackageInfo
import android.graphics.Color import android.graphics.Color
import android.os.Bundle import android.net.Uri
import androidx.activity.enableEdgeToEdge import android.provider.Settings
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.R
import com.base.datarecovery.adapter.AppManagerAdapter import com.base.datarecovery.adapter.AppManagerAdapter
import com.base.datarecovery.ads.AdmobMaxHelper
import com.base.datarecovery.bean.AppBean import com.base.datarecovery.bean.AppBean
import com.base.datarecovery.databinding.ActivityAppManagerBinding import com.base.datarecovery.databinding.ActivityAppManagerBinding
import com.base.datarecovery.help.BaseActivity import com.base.datarecovery.help.BaseActivity
import com.base.datarecovery.help.KotlinExt.toFormatSize
import com.base.datarecovery.help.PermissionHelp.checkStorePermission import com.base.datarecovery.help.PermissionHelp.checkStorePermission
import com.base.datarecovery.help.PermissionHelp.requestStorePermission import com.base.datarecovery.help.PermissionHelp.requestStorePermission
import com.base.datarecovery.utils.BarUtils import com.base.datarecovery.utils.BarUtils
import com.base.datarecovery.utils.RamUtils.ramPair
import com.base.datarecovery.view.DialogViews.showExitFunctionDialog
import com.base.datarecovery.view.DialogViews.showGerPermission import com.base.datarecovery.view.DialogViews.showGerPermission
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() { class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
override val binding: ActivityAppManagerBinding by lazy { override val binding: ActivityAppManagerBinding by lazy {
...@@ -33,12 +35,23 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() { ...@@ -33,12 +35,23 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
private lateinit var adapter: AppManagerAdapter private lateinit var adapter: AppManagerAdapter
@SuppressLint("SetTextI18n")
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, true) BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT) BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight()) binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
adapter = AppManagerAdapter {
val ramPair = ramPair()
val percent = ((ramPair.first.toFloat() / ramPair.second.toFloat()) * 100).toInt()
binding.tvPercent.text = percent.toString()
binding.pbRam.progress = percent
binding.tvSize.text = "${ramPair.first.toFormatSize()}/${ramPair.second.toFormatSize()}"
adapter = AppManagerAdapter { pkg ->
val intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS)
val uri = Uri.fromParts("package", pkg, null) // 替换为需要跳转的应用包名
intent.setData(uri)
startActivity(intent)
} }
binding.rv.adapter = adapter binding.rv.adapter = adapter
...@@ -53,6 +66,21 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() { ...@@ -53,6 +66,21 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
} }
} }
override fun initListener() {
super.initListener()
binding.flFanhui.setOnClickListener {
showExitFunctionDialog { showAd ->
if (showAd) {
AdmobMaxHelper.admobMaxShowInterstitialAd(this) {
finishToMain()
}
} else {
finishToMain()
}
}
}
}
@SuppressLint("QueryPermissionsNeeded") @SuppressLint("QueryPermissionsNeeded")
private fun initData() = lifecycleScope.launch(Dispatchers.IO) { private fun initData() = lifecycleScope.launch(Dispatchers.IO) {
val pm = packageManager val pm = packageManager
...@@ -72,6 +100,8 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() { ...@@ -72,6 +100,8 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
} }
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
adapter.setData(list) adapter.setData(list)
} }
} }
......
package com.base.datarecovery.utils
import android.app.ActivityManager
import android.content.Context
object RamUtils {
fun Context.ramPair(): Pair<Long, Long> {
val outInfo = ActivityManager.MemoryInfo()
val activityManager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager?
activityManager!!.getMemoryInfo(outInfo)
val totalMem = outInfo.totalMem
val usedMem = outInfo.totalMem - outInfo.availMem
return Pair(usedMem, totalMem)
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment