Commit fec216d4 authored by wanglei's avatar wanglei

...

parent d4677a01
......@@ -3,19 +3,21 @@ package com.base.filerecoveryrecyclebin.activity.junkclean
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.os.Environment
import androidx.activity.OnBackPressedCallback
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope
import com.base.filerecoveryrecyclebin.BuildConfig
import com.base.filerecoveryrecyclebin.R
import com.base.filerecoveryrecyclebin.activity.ResultActivity
import com.base.filerecoveryrecyclebin.activity.photomanager.PhotoManagerAnimationActivity
import com.base.filerecoveryrecyclebin.adapter.JunkExpandAdapter
import com.base.filerecoveryrecyclebin.ads.AdmobMaxHelper
import com.base.filerecoveryrecyclebin.bean.ChildBean
import com.base.filerecoveryrecyclebin.bean.ConstObject.JUNK_CLEANER
import com.base.filerecoveryrecyclebin.databinding.ActivityLayoutCleanJunkBinding
import com.base.filerecoveryrecyclebin.help.BaseActivity
import com.base.filerecoveryrecyclebin.help.FileHelp
import com.base.filerecoveryrecyclebin.help.KotlinExt.toFormatSize
import com.base.filerecoveryrecyclebin.help.PermissionHelp.checkStorePermission
import com.base.filerecoveryrecyclebin.help.PermissionHelp.requestStorePermission
......@@ -27,6 +29,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.async
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.io.File
import kotlin.random.Random
/**
......@@ -45,7 +48,7 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.TRANSPARENT)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
// binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
junkExpandAdapter = JunkExpandAdapter { size ->
if (size == 0L) {
......@@ -58,6 +61,9 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
binding.tvSize.text = split[0]
binding.tvUnit.text = split[1]
}
if (junkExpandAdapter.getAllChildItemCount() == 0) {
binding.tvBtn.text = "Deep Clean"
}
}
binding.exRv.adapter = junkExpandAdapter
......@@ -93,12 +99,19 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
})
binding.tvBtn.setOnClickListener {
if (binding.tvBtn.text == "Got it") {
when (binding.tvBtn.text) {
"Got it" -> {
startActivity(Intent(this@CleanJunkActivity, ResultActivity::class.java).apply {
putExtra("clean_size", JUNK_CLEANER)
putExtra("from", 0)
})
} else {
}
"Deep Clean" -> {
startActivity(Intent(this@CleanJunkActivity, PhotoManagerAnimationActivity::class.java))
}
else -> {
startActivity(
Intent(this, CleaningActivity::class.java).apply {
val list = junkExpandAdapter.getChoosePath()
......@@ -106,9 +119,12 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
putExtra("size", list.sumOf { it.childSize })
}
)
scanJunk()
}
}
finish()
}
}
private fun scanJunk() = lifecycleScope.launch(Dispatchers.Main) {
......@@ -116,7 +132,29 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
var totalSize = 0L
val list = arrayListOf<ChildBean>()
async {
val emptyFolder1 = FileHelp.getFileFolder(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM))
val emptyFolder2 = FileHelp.getFileFolder(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS))
val emptyFolder3 = FileHelp.getFileFolder(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS))
val emptyFolder4 = FileHelp.getFileFolder(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES))
val emptyFolder5 = FileHelp.getFileFolder(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES))
val emptyFolder6 = FileHelp.getFileFolder(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MUSIC))
val emptyFolder = arrayListOf<File>()
emptyFolder.addAll(emptyFolder1)
emptyFolder.addAll(emptyFolder2)
emptyFolder.addAll(emptyFolder3)
emptyFolder.addAll(emptyFolder4)
emptyFolder.addAll(emptyFolder5)
emptyFolder.addAll(emptyFolder6)
emptyFolder.forEach { l ->
list.add(ChildBean(R.mipmap.apk, l.name, l.path, 0))
}
delay(Random.nextLong(1500, 2000))
}.await()
junkExpandAdapter.addChildData(0, list)
list.clear()
async {
val apk = MediaStoreUtils.queryFiles(this@CleanJunkActivity, MediaStoreUtils.FileType.APK) ?: listOf()
apk.forEach { l ->
......@@ -132,7 +170,7 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
}
delay(Random.nextLong(1500, 2000))
}.await()
junkExpandAdapter.addChildData(0, list)
junkExpandAdapter.addChildData(1, list)
list.clear()
......@@ -151,7 +189,7 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
}
delay(Random.nextLong(1500, 2000))
}.await()
junkExpandAdapter.addChildData(1, list)
junkExpandAdapter.addChildData(2, list)
list.clear()
async {
......@@ -169,7 +207,7 @@ class CleanJunkActivity : BaseActivity<ActivityLayoutCleanJunkBinding>() {
}
delay(Random.nextLong(1500, 2000))
}.await()
junkExpandAdapter.addChildData(2, list)
junkExpandAdapter.addChildData(3, list)
binding.tvBtn.isVisible = true
binding.tvBtn.isEnabled = true
......
......@@ -132,6 +132,7 @@ class ScanJunkActivity : BaseActivity<ActivityLayoutScanJunkBinding>() {
binding.lottie.playAnimation()
}
@SuppressLint("SetTextI18n")
private fun waitJob() = lifecycleScope.launch(Dispatchers.Main) {
delay(5000)
binding.lottie.visibility = View.GONE
......
......@@ -23,6 +23,11 @@ class JunkExpandAdapter(private val chooseAction: (size: Long) -> Unit) : Expand
private val parentBeanList by lazy {
mutableListOf(
ParentBean(
title = "empty folder",
isParentSelected = true,
expanded = false
),
ParentBean(
title = "Useless installation package",
isParentSelected = true,
......@@ -66,7 +71,7 @@ class JunkExpandAdapter(private val chooseAction: (size: Long) -> Unit) : Expand
return ParentViewHolder(binding)
}
@SuppressLint("NotifyDataSetChanged")
@SuppressLint("NotifyDataSetChanged", "SetTextI18n")
override fun onBindGroupViewHolder(holder: ViewHolder, groupPosition: Int, expand: Boolean, payloads: List<Any>) {
val viewHolder = holder as? ParentViewHolder ?: return
val parentBean = parentBeanList[groupPosition]
......@@ -79,7 +84,12 @@ class JunkExpandAdapter(private val chooseAction: (size: Long) -> Unit) : Expand
} else {
viewHolder.binding.idXiala.setImageResource(R.mipmap.shouqi)
}
if (parentBean.title == "empty folder") {
viewHolder.binding.idTypeSize.text = parentBean.childItem.size.toString() + " items"
} else {
viewHolder.binding.idTypeSize.text = parentBean.parentSize.toFormatSize(1)
}
viewHolder.binding.idXiala.isVisible = parentBean.childItem.isNotEmpty()
viewHolder.binding.idImgChoose.isSelected = parentBean.isParentSelected
......@@ -109,6 +119,10 @@ class JunkExpandAdapter(private val chooseAction: (size: Long) -> Unit) : Expand
return parentBeanList.flatMap { it.childItem }.filter { it.isChildSelected }
}
fun getAllChildItemCount(): Int {
return parentBeanList.flatMap { it.childItem }.size
}
private fun bindParentAnimation(parentBean: ParentBean, groupPosition: Int, viewHolder: ParentViewHolder) {
if (parentBean.isfinish) {
viewHolder.binding.idImgLoad.isVisible = false
......@@ -146,6 +160,11 @@ class JunkExpandAdapter(private val chooseAction: (size: Long) -> Unit) : Expand
when (groupPosition) {
0 -> {
viewHolder.binding.idTvAppName.text = childBean.chilepath
}
1 -> {
try {
val apkFilePath = childBean.chilepath // 替换成您的APK文件路径
val packageInfo =
......@@ -160,14 +179,13 @@ class JunkExpandAdapter(private val chooseAction: (size: Long) -> Unit) : Expand
} catch (e: Exception) {
holder.binding.idImgIcon.setImageResource(R.mipmap.apk)
}
}
1 -> {
2 -> {
holder.binding.idImgIcon.setImageResource(R.mipmap.temp_clean)
}
2 -> {
3 -> {
holder.binding.idImgIcon.setImageResource(R.mipmap.log_clean)
}
}
......
......@@ -15,6 +15,10 @@
android:orientation="vertical"
app:layout_constraintTop_toTopOf="parent">
<View
android:layout_width="match_parent"
android:layout_height="50dp" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
......@@ -130,7 +134,8 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:visibility="visible" />
android:visibility="visible"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" />
<TextView
android:id="@+id/tv_btn"
......
......@@ -26,9 +26,10 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="6dp"
android:ellipsize="end"
android:ellipsize="middle"
android:includeFontPadding="false"
android:maxLines="1"
android:singleLine="true"
android:text="Ali Webpage ads"
android:textColor="#000000"
android:textSize="14sp"
......
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