Commit b35fdad3 authored by wanglei's avatar wanglei

...

parent 98e2c70e
package com.base.filerecoveryrecyclebin.activity
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Intent
import android.graphics.Color
import android.graphics.Typeface
import android.view.View
import android.widget.Toast
import androidx.activity.addCallback
import androidx.core.view.isVisible
import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatActivity
import com.base.filerecoveryrecyclebin.activity.repeat.RepeatActivity.Companion.similarPhotoDeleted
import com.base.filerecoveryrecyclebin.activity.screenshot.ScreenShotActivity.Companion.screenPhotoDeleted
import com.base.filerecoveryrecyclebin.ads.admob.AdmobBannerUtils
import com.base.filerecoveryrecyclebin.bean.MediaBean
import com.base.filerecoveryrecyclebin.databinding.ActivityMainBinding
......@@ -37,6 +35,7 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.last
import kotlinx.coroutines.launch
import java.io.File
import java.util.Locale
......@@ -120,8 +119,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
logger.logEvent("home")
AppPreferences.getInstance().put("fb_home", 1)
}
}
private fun initStayServiceObserver() {
......@@ -179,9 +176,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
if (checkStorePermission()) {
initStayServiceObserver()
if (photoSizejob == null) {
photoSizejob = initPhotoSize()
}
initPhotoSize()
}
lifecycleScope.launch(Dispatchers.Main) {
......@@ -190,27 +185,35 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
}
var photoSizejob: Job? = null
private var initPhotoSizeFirst = true
private fun initPhotoSize() = lifecycleScope.launch(Dispatchers.IO) {
LogEx.logDebug(TAG, "initPhotoSize")
val list = arrayListOf<MediaBean>()
getImageMedia(list)
val screenSize =
list.filter { it.path.lowercase(Locale.ENGLISH).contains("screenshot") }.map { File(it.path) }.sumOf { it.length() }
val similarPhoto = calculateSimilar(list)
RepeatActivity.readySimilarList = similarPhoto
val similar = similarPhoto.flatMap { it.value }.map { File(it.path) }.sumOf { it.length() }
var screenSize = 0L
if (screenPhotoDeleted || initPhotoSizeFirst) {
screenSize =
list.filter { it.path.lowercase(Locale.ENGLISH).contains("screenshot") }.map { File(it.path) }.sumOf { it.length() }
screenPhotoDeleted = false
delay(1500)
photoSizeFlow.emit(Pair(screenSize, 0L))
}
LogEx.logDebug(TAG, "screenSize=$screenSize")
var similar = 0L
if (similarPhotoDeleted || initPhotoSizeFirst) {
val similarPhoto = calculateSimilar(list)
RepeatActivity.readySimilarList = similarPhoto
similar = similarPhoto.flatMap { it.value }.map { File(it.path) }.sumOf { it.length() }
similarPhotoDeleted = false
delay(1500)
photoSizeFlow.emit(Pair(screenSize, similar))
}
delay(1500)
photoSizeFlow.emit(Pair(screenSize, similar))
initPhotoSizeFirst = false
photoSizejob = null
}
}
\ No newline at end of file
......@@ -119,6 +119,7 @@ class RepeatActivity : BaseActivity<ActivityRepeatBinding>() {
private fun cleanFile() {
similarPhotoDeleted = true
lifecycleScope.launch(Dispatchers.IO) {
val cleanList = mediaAdapter.getSelectData().second
cleanList.forEach {
......@@ -181,6 +182,7 @@ class RepeatActivity : BaseActivity<ActivityRepeatBinding>() {
companion object {
var readySimilarList: HashMap<String, ArrayList<MediaBean>>? = null
var similarPhotoDeleted: Boolean = false
}
}
\ No newline at end of file
......@@ -70,7 +70,6 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
@SuppressLint("SetTextI18n")
private fun setCleanUpUi(size: Int) {
if (size > 0) {
binding.tvClean.isEnabled = true
......@@ -141,6 +140,7 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
@SuppressLint("SetTextI18n")
private fun cleanFile() {
screenPhotoDeleted = true
val files = screenShotAdapter.getSelectData()
lifecycleScope.launch(Dispatchers.IO) {
async {
......@@ -195,4 +195,9 @@ class ScreenShotActivity : BaseActivity<ActivityScreenShotBinding>() {
return beans
}
companion object {
var screenPhotoDeleted: Boolean = false
}
}
\ No newline at end of file
......@@ -60,7 +60,7 @@ class HomeFragment : BaseFragment<FragmentHome3Binding>() {
binding.tvDuplicateSize.visibility = View.VISIBLE
binding.tvDuplicateSize.text = pair.second.toFormatSize()
} else {
binding.tvDuplicateSize.visibility = View.VISIBLE
binding.tvDuplicateSize.visibility = View.GONE
}
}
}
......
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