Commit 53a9b9ae authored by wanglei's avatar wanglei

...

parent 92319f65
......@@ -19,7 +19,6 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.APP_PROCESS
import com.base.filerecoveryrecyclebin.bean.ConstObject.BATTERY_INFO
import com.base.filerecoveryrecyclebin.bean.ConstObject.JUNK_CLEANER
import com.base.filerecoveryrecyclebin.bean.ConstObject.LARGE_FILE
import com.base.filerecoveryrecyclebin.bean.ConstObject.PRIVACY_SPACE
import com.base.filerecoveryrecyclebin.bean.ConstObject.RECOVERY_DOCUMENTS
import com.base.filerecoveryrecyclebin.bean.ConstObject.RECOVERY_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.RECOVERY_VIDEOS
......@@ -30,7 +29,6 @@ import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_PHOTOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.SCAN_VIDEOS
import com.base.filerecoveryrecyclebin.bean.ConstObject.SCREENSHOT_CLEANER
import com.base.filerecoveryrecyclebin.bean.ConstObject.WHATSAPP_CLEANER
import com.base.filerecoveryrecyclebin.bean.ConstObject.privacyPinPassword
import com.base.filerecoveryrecyclebin.databinding.ActivityLayoutResultBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize
......
......@@ -10,6 +10,7 @@ import android.text.style.UnderlineSpan
import android.view.View
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.MyApplication
import com.base.filerecoveryrecyclebin.activity.appmanager.AppManagerAnimationActivity
import com.base.filerecoveryrecyclebin.activity.appprocess.AppProcessAnimationActivity
import com.base.filerecoveryrecyclebin.activity.battery.BatteryInfoAnimationActivity
import com.base.filerecoveryrecyclebin.activity.guide.GuideActivity
......@@ -20,6 +21,7 @@ import com.base.filerecoveryrecyclebin.activity.repeat.RepeatActivity
import com.base.filerecoveryrecyclebin.activity.whatsapp.WhatsAppCleanerAnimationActivity
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.ConstObject
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_MANAGER
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_PROCESS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_BATTERY_INFO
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH
......@@ -171,6 +173,10 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
startActivity(Intent(this, AppProcessAnimationActivity::class.java))
}
ID_APP_MANAGER -> {
startActivity(Intent(this, AppManagerAnimationActivity::class.java))
}
ID_BATTERY_INFO -> {
startActivity(Intent(this, BatteryInfoAnimationActivity::class.java))
}
......
......@@ -7,27 +7,24 @@ import android.content.pm.ApplicationInfo
import android.content.pm.PackageInfo
import android.graphics.Color
import android.net.Uri
import android.provider.Settings
import android.view.View
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.adapter.AppManagerAdapter
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.AppBean
import com.base.filerecoveryrecyclebin.databinding.ActivityAppManagerBinding
import com.base.filerecoveryrecyclebin.databinding.ActivityAppProcessBinding
import com.base.filerecoveryrecyclebin.databinding.ActivityPhotoManagerBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize
import com.base.filerecoveryrecyclebin.utils.BarUtils
import com.base.filerecoveryrecyclebin.utils.RamUtils.ramPair
import com.base.filerecoveryrecyclebin.view.DialogViews.showAppProcessExitDialog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
var uninstallTimes = 0
override val binding: ActivityAppManagerBinding by lazy {
ActivityAppManagerBinding.inflate(layoutInflater)
}
......@@ -46,30 +43,43 @@ class AppManagerActivity : BaseActivity<ActivityAppManagerBinding>() {
val ramPair = ramPair()
val percent = ((ramPair.first.toFloat() / ramPair.second.toFloat()) * 100).toInt()
ePercent = percent
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)
adapter = AppManagerAdapter(true) { pkg ->
if (uninstallTimes % 3 == 0 && uninstallTimes > 0) {
AdmobMaxHelper.admobMaxShowInterstitialAd(this) { unInstall(pkg) }
} else {
unInstall(pkg)
}
}
binding.rv.adapter = adapter
initData()
}
private fun unInstall(pkg: String) {
val intent = Intent(Intent.ACTION_DELETE, Uri.parse("package:${pkg}"))
launcher.launch(intent) {
if (!isInstalled(this, pkg)) {
adapter.removeBean(pkg)
uninstallTimes++
}
}
}
private fun isInstalled(context: Context, pkg: String, error: (() -> Unit)? = null): Boolean {
return try {
context.packageManager.getPackageInfo(pkg, 0)
true
} catch (e: Exception) {
error?.invoke()
false
}
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
showAppProcessExitDialog(ePercent) {
// AdmobMaxHelper.admobMaxShowInterstitialAd(this@AppProcessActivity) {
//
// }
finishToMain()
}
finishToMain()
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
......
......@@ -7,6 +7,7 @@ import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.bean.ConstObject.APP_MANAGER
import com.base.filerecoveryrecyclebin.bean.ConstObject.APP_PROCESS
import com.base.filerecoveryrecyclebin.bean.ConstObject.BATTERY_INFO
import com.base.filerecoveryrecyclebin.bean.ConstObject.JUNK_CLEANER
......@@ -36,6 +37,7 @@ class AppFunctionAdapter(val click: (name: String) -> Unit) :
Fun(SCREENSHOT_CLEANER, R.mipmap.screenshots),
Fun(WHATSAPP_CLEANER, R.mipmap.h_whatsapp),
Fun(APP_PROCESS, R.mipmap.h_process),
Fun(APP_MANAGER, R.mipmap.c_appmanager),
Fun(LARGE_FILE, R.mipmap.c_large),
Fun(BATTERY_INFO, R.mipmap.c_battery),
)
......
......@@ -9,7 +9,8 @@ import com.base.filerecoveryrecyclebin.bean.AppBean
import com.base.filerecoveryrecyclebin.databinding.ItemAppManagerBinding
import com.base.filerecoveryrecyclebin.view.XmlEx.inflate
class AppManagerAdapter(val click: (packageName: String) -> Unit) : RecyclerView.Adapter<AppManagerAdapter.AAA>() {
class AppManagerAdapter(val isUninstall: Boolean = false, val click: (packageName: String) -> Unit) :
RecyclerView.Adapter<AppManagerAdapter.AAA>() {
private val beanList = arrayListOf<AppBean>()
......@@ -23,6 +24,7 @@ class AppManagerAdapter(val click: (packageName: String) -> Unit) : RecyclerView
return beanList.size
}
@SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: AAA, position: Int) {
val binding = ItemAppManagerBinding.bind(holder.itemView)
val bean = beanList[position]
......@@ -31,6 +33,9 @@ class AppManagerAdapter(val click: (packageName: String) -> Unit) : RecyclerView
binding.tvStop.setOnClickListener {
click.invoke(bean.packageName)
}
if (isUninstall) {
binding.tvStop.text = "UnInstall"
}
}
@SuppressLint("NotifyDataSetChanged")
......
......@@ -12,6 +12,7 @@ object ConstObject {
const val ID_RECOVERY_DOCUMENTS = 13002
const val ID_WHATSAPP = 12001
const val ID_APP_PROCESS = 12056
const val ID_APP_MANAGER = 12076
const val ID_BATTERY_INFO = 12086
const val RECOVERY_PHOTOS = "Recovery Photos"
......@@ -24,6 +25,7 @@ object ConstObject {
const val RECYCLE_BIN = "Recycle Bin"
const val WHATSAPP_CLEANER = "WhatsApp Cleaner"
const val APP_PROCESS = "App Process"
const val APP_MANAGER = "App Manager"
const val LARGE_FILE = "Large File"
const val BATTERY_INFO = "Battery Info"
......
......@@ -17,6 +17,7 @@ import androidx.core.graphics.drawable.IconCompat
import com.base.filerecoveryrecyclebin.MyApplication
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.activity.SplashActivity
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_MANAGER
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_APP_PROCESS
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_BATTERY_INFO
import com.base.filerecoveryrecyclebin.bean.ConstObject.ID_JUNK_CLEAN_PUSH
......@@ -284,6 +285,7 @@ object NotificationUtil {
ID_RECOVERY_DOCUMENTS,
ID_WHATSAPP,
ID_APP_PROCESS,
ID_APP_MANAGER,
ID_BATTERY_INFO,
)
}
\ No newline at end of file
......@@ -31,91 +31,13 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="App Process"
android:text="App Manager"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</FrameLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<TextView
android:id="@+id/tv_percent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:includeFontPadding="false"
android:textSize="54sp"
android:textStyle="bold"
tools:text="68" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:layout_marginStart="2dp"
android:layout_marginBottom="5dp"
android:includeFontPadding="false"
android:text="%"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="16dp"
android:text="RAM Used"
android:textSize="15sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="18dp">
<ProgressBar
android:id="@+id/pb_ram"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="345dp"
android:layout_height="25dp"
android:max="100"
android:progressDrawable="@drawable/shape_ram_pb"
tools:progress="50" />
<TextView
android:id="@+id/tv_size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="20dp"
android:text="5.6GB/7.9GB"
android:textSize="12sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="25dp"
android:text="Manager user apps"
android:textColor="#999999"
android:textSize="15sp"
tools:ignore="HardcodedText" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
......
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