Commit 152b3f4b authored by wanglei's avatar wanglei

...ui

parent 87954c51
...@@ -3,15 +3,26 @@ package com.base.datarecovery.activity ...@@ -3,15 +3,26 @@ package com.base.datarecovery.activity
import android.graphics.Color import android.graphics.Color
import android.icu.util.MeasureUnit import android.icu.util.MeasureUnit
import android.view.View import android.view.View
import androidx.activity.addCallback
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.datarecovery.adapter.MediaAdapter
import com.base.datarecovery.adapter.MediaSubAdapter
import com.base.datarecovery.bean.MediaBean import com.base.datarecovery.bean.MediaBean
import com.base.datarecovery.bean.MediaTimeBean
import com.base.datarecovery.databinding.ActivityRepeatBinding import com.base.datarecovery.databinding.ActivityRepeatBinding
import com.base.datarecovery.help.BaseActivity import com.base.datarecovery.help.BaseActivity
import com.base.datarecovery.help.KotlinExt.toFormatSize
import com.base.datarecovery.help.KotlinExt.toFormatTime
import com.base.datarecovery.help.MediaStoreHelp.getImageMedia import com.base.datarecovery.help.MediaStoreHelp.getImageMedia
import com.base.datarecovery.help.PermissionHelp.checkStorePermission
import com.base.datarecovery.help.PermissionHelp.requestStorePermission
import com.base.datarecovery.utils.BarUtils import com.base.datarecovery.utils.BarUtils
import com.base.datarecovery.view.DialogViews.showGerPermission
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.jacoco.core.internal.analysis.filter.IFilter
import java.io.File
class RepeatActivity : BaseActivity<ActivityRepeatBinding>() { class RepeatActivity : BaseActivity<ActivityRepeatBinding>() {
...@@ -19,20 +30,72 @@ class RepeatActivity : BaseActivity<ActivityRepeatBinding>() { ...@@ -19,20 +30,72 @@ class RepeatActivity : BaseActivity<ActivityRepeatBinding>() {
override val binding: ActivityRepeatBinding by lazy { override val binding: ActivityRepeatBinding by lazy {
ActivityRepeatBinding.inflate(layoutInflater) ActivityRepeatBinding.inflate(layoutInflater)
} }
private lateinit var mediaAdapter: MediaAdapter
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())
mediaAdapter = MediaAdapter {
binding.ivSelectAll.isSelected = it.first
binding.tvClean.isEnabled = it.second.isNotEmpty()
runCatching {
val split = it.second.sumOf { bean -> File(bean.path).length() }.toFormatSize().split(" ")
binding.tvSize.text = split[0]
binding.tvUnit.text = split[1]
}
}
binding.rv.adapter = mediaAdapter
if (checkStorePermission()) {
initData()
} else {
showGerPermission(null, deny = { finishToMain() }, allow = {
requestStorePermission(launcher, result = {
if (it) {
initData()
} else {
finishToMain()
}
})
})
}
}
override fun initListener() {
onBackPressedDispatcher.addCallback {
}
binding.flBack.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.llSelectAll.setOnClickListener {
binding.ivSelectAll.isSelected = !binding.ivSelectAll.isSelected
mediaAdapter.toggleAllSelect(binding.ivSelectAll.isSelected)
}
} }
fun initData() { private fun initData() {
binding.progressBar.visibility = View.VISIBLE binding.progressBar.visibility = View.VISIBLE
lifecycleScope.launch(Dispatchers.IO) { lifecycleScope.launch(Dispatchers.IO) {
val list = arrayListOf<MediaBean>() val list = arrayListOf<MediaBean>()
getImageMedia(list) getImageMedia(list)
val hashMap = HashMap<String, ArrayList<MediaBean>>()
list.forEach {
val time = it.time.toFormatTime()
if (hashMap[time] == null) {
hashMap[time] = arrayListOf()
}
hashMap[time]?.add(it)
}
val beanList = hashMap.map { MediaTimeBean(it.key, it.value) }
launch(Dispatchers.Main) {
binding.progressBar.visibility = View.GONE
mediaAdapter.setData(beanList)
}
} }
} }
......
...@@ -7,6 +7,7 @@ import android.content.Intent ...@@ -7,6 +7,7 @@ import android.content.Intent
import android.view.View import android.view.View
import android.view.animation.AccelerateDecelerateInterpolator import android.view.animation.AccelerateDecelerateInterpolator
import com.base.datarecovery.activity.FileScanActivity import com.base.datarecovery.activity.FileScanActivity
import com.base.datarecovery.activity.RepeatActivity
import com.base.datarecovery.activity.ScreenShotActivity import com.base.datarecovery.activity.ScreenShotActivity
import com.base.datarecovery.activity.privacyspace.PrivacyPinOneActivity import com.base.datarecovery.activity.privacyspace.PrivacyPinOneActivity
import com.base.datarecovery.activity.privacyspace.PrivacySpaceActivity import com.base.datarecovery.activity.privacyspace.PrivacySpaceActivity
...@@ -61,7 +62,9 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -61,7 +62,9 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
startActivity(Intent(requireContext(), ScreenShotActivity::class.java)) startActivity(Intent(requireContext(), ScreenShotActivity::class.java))
} }
binding.cardRepeatPhotos.setOnClickListener {
startActivity(Intent(requireContext(), RepeatActivity::class.java))
}
} }
@SuppressLint("Recycle") @SuppressLint("Recycle")
......
...@@ -150,6 +150,7 @@ ...@@ -150,6 +150,7 @@
tools:ignore="UseCompoundDrawables"> tools:ignore="UseCompoundDrawables">
<ImageView <ImageView
android:id="@+id/iv_select_all"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_horizontal" android:layout_gravity="center_horizontal"
......
...@@ -217,10 +217,13 @@ ...@@ -217,10 +217,13 @@
android:orientation="horizontal"> android:orientation="horizontal">
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
android:id="@+id/card_repeat_photos"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="70dp" android:layout_height="70dp"
android:layout_marginHorizontal="8dp" android:layout_marginHorizontal="8dp"
android:layout_weight="1" android:layout_weight="1"
android:clickable="true"
android:focusable="true"
app:cardBackgroundColor="#F8F8F8" app:cardBackgroundColor="#F8F8F8"
app:cardCornerRadius="10dp" app:cardCornerRadius="10dp"
app:cardElevation="0dp"> app:cardElevation="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