Commit 52c2c6f8 authored by wanglei's avatar wanglei

...

parent a43f972d
package com.base.datarecovery.activity
import android.annotation.SuppressLint
import android.graphics.Bitmap
import android.graphics.BitmapFactory
import android.graphics.Color
import android.view.View
......@@ -16,7 +15,6 @@ import com.base.datarecovery.help.KotlinExt.toFormatTime
import com.base.datarecovery.utils.BarUtils
import com.google.gson.Gson
import java.io.File
import java.text.SimpleDateFormat
class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
......@@ -27,7 +25,6 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
private var folderBean: FolderBean? = null
private lateinit var adapter: FileMediaColumnsAdapter
private val timeList = arrayListOf<FolderBean>()
@SuppressLint("SetTextI18n")
override fun initView() {
......@@ -61,9 +58,12 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
}
adapter = FileMediaColumnsAdapter(2) { all ->
binding.ivSelectAll.isSelected = all
}
adapter = FileMediaColumnsAdapter(2,
select = { all, size ->
binding.ivSelectAll.isSelected = all
binding.tvRecover.text = "Recover($size)"
binding.tvRecover.isEnabled = size > 0
})
binding.rv.adapter = adapter
initData()
......@@ -82,7 +82,7 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
adapter.toggleThumbnails(isChecked)
}
binding.ivSelectAll.setOnClickListener {
binding.ivSelectAll.isSelected=!binding.ivSelectAll.isSelected
binding.ivSelectAll.isSelected = !binding.ivSelectAll.isSelected
adapter.toggleAllSelect(binding.ivSelectAll.isSelected)
}
}
......
package com.base.datarecovery.adapter
import android.annotation.SuppressLint
import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
......@@ -17,13 +15,11 @@ import com.base.datarecovery.databinding.ItemMediaBinding
import com.base.datarecovery.help.KotlinExt.toFormatSize
import com.base.datarecovery.view.XmlEx.inflate
import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition
import java.io.File
class FileMediaColumnsAdapter(
val columns: Int,
val allSelect: (all: Boolean) -> Unit,
val select: (all: Boolean, size: Int) -> Unit,
) : RecyclerView.Adapter<FileMediaColumnsAdapter.MCV>() {
private val beanList = arrayListOf<FolderBean>()
......@@ -52,7 +48,12 @@ class FileMediaColumnsAdapter(
binding.rvMediaColumns.layoutManager = GridLayoutManager(context, columns)
binding.rvMediaColumns.adapter = subAdapter
val list = if (hideThumbnails) bean.recoveryList.filter { !it.isThumbnails } else bean.recoveryList
subAdapter.setData(list)
if (list.isEmpty()) {
binding.flTittle.visibility = View.GONE
} else {
binding.flTittle.visibility = View.VISIBLE
subAdapter.setData(list)
}
binding.ivSelector.setOnClickListener {
bean.isSelect = !bean.isSelect
......@@ -149,14 +150,16 @@ class FileMediaColumnsAdapter(
}
}
val all = beanList.all { it.isSelect }
allSelect.invoke(all)
val size = beanList.sumOf { it.recoveryList.filter { bean -> bean.isSelect }.size }
select.invoke(all, size)
}
private fun itemClick(isSelect: Boolean, subAdapter: MediaColumnsAdapter) {
subAdapter.toggleSelect(isSelect)
val all = beanList.all { it.isSelect }
allSelect.invoke(all)
val size = beanList.sumOf { it.recoveryList.filter { bean -> bean.isSelect }.size }
select.invoke(all, size)
}
@SuppressLint("NotifyDataSetChanged")
......@@ -165,6 +168,7 @@ class FileMediaColumnsAdapter(
notifyDataSetChanged()
}
@SuppressLint("NotifyDataSetChanged")
fun toggleAllSelect(selected: Boolean) {
beanList.forEach {
it.isSelect = selected
......
package com.base.datarecovery.view
object PopupWindowViews {
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_stroke_bfbec4_15" android:state_enabled="false" />
<item android:drawable="@drawable/bg_stroke_black_15" android:state_enabled="true" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="@color/black" />
<corners android:radius="15dp" />
</shape>
\ No newline at end of file
......@@ -49,7 +49,8 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="24dp"
android:background="@drawable/bg_stroke_bfbec4_15"
android:background="@drawable/bg_recover_enable"
android:enabled="false"
android:paddingHorizontal="18dp"
android:paddingVertical="8dp"
android:text="Recover (0)"
......@@ -155,6 +156,44 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16dp"
android:background="@color/white"
android:orientation="horizontal"
android:paddingTop="20dp"
android:paddingBottom="10dp"
app:layout_scrollFlags="scroll|enterAlways">
<ImageView
android:id="@+id/iv_select_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/b_circle_selector"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:text="Select all"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:src="@mipmap/qiehuan"
tools:ignore="ContentDescription" />
</LinearLayout>
<androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
......@@ -164,47 +203,13 @@
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:orientation="horizontal"
android:paddingVertical="20dp"
app:layout_scrollFlags="scroll|enterAlways">
<ImageView
android:id="@+id/iv_select_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/b_circle_selector"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="8dp"
android:layout_weight="1"
android:text="Select all"
android:textColor="@color/black"
android:textSize="18sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center_vertical"
android:src="@mipmap/qiehuan"
tools:ignore="ContentDescription" />
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_thumbnails"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_marginHorizontal="16dp"
android:background="@color/white"
android:minHeight="80dp"
app:layout_scrollFlags="scroll|enterAlways">
......@@ -212,6 +217,7 @@
android:id="@+id/tv_thumbnails"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black"
android:textSize="16sp"
android:textStyle="bold"
......@@ -243,15 +249,14 @@
app:layout_constraintTop_toBottomOf="@id/tv_thumbnails"
tools:ignore="UseSwitchCompatOrMaterialXml" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginBottom="3dp"
android:background="#D4D4D4"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_marginHorizontal="16dp"
android:background="#D4D4D4"
app:layout_constraintBottom_toBottomOf="parent" />
</com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView
......
......@@ -7,6 +7,7 @@
android:orientation="vertical">
<FrameLayout
android:id="@+id/fl_tittle"
android:layout_width="match_parent"
android:layout_height="wrap_content">
......
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