Commit 52c2c6f8 authored by wanglei's avatar wanglei

...

parent a43f972d
package com.base.datarecovery.activity package com.base.datarecovery.activity
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.graphics.Bitmap
import android.graphics.BitmapFactory import android.graphics.BitmapFactory
import android.graphics.Color import android.graphics.Color
import android.view.View import android.view.View
...@@ -16,7 +15,6 @@ import com.base.datarecovery.help.KotlinExt.toFormatTime ...@@ -16,7 +15,6 @@ import com.base.datarecovery.help.KotlinExt.toFormatTime
import com.base.datarecovery.utils.BarUtils import com.base.datarecovery.utils.BarUtils
import com.google.gson.Gson import com.google.gson.Gson
import java.io.File import java.io.File
import java.text.SimpleDateFormat
class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() { class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
...@@ -27,7 +25,6 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() { ...@@ -27,7 +25,6 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
private var folderBean: FolderBean? = null private var folderBean: FolderBean? = null
private lateinit var adapter: FileMediaColumnsAdapter private lateinit var adapter: FileMediaColumnsAdapter
private val timeList = arrayListOf<FolderBean>()
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun initView() { override fun initView() {
...@@ -61,9 +58,12 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() { ...@@ -61,9 +58,12 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
} }
adapter = FileMediaColumnsAdapter(2) { all -> adapter = FileMediaColumnsAdapter(2,
binding.ivSelectAll.isSelected = all select = { all, size ->
} binding.ivSelectAll.isSelected = all
binding.tvRecover.text = "Recover($size)"
binding.tvRecover.isEnabled = size > 0
})
binding.rv.adapter = adapter binding.rv.adapter = adapter
initData() initData()
...@@ -82,7 +82,7 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() { ...@@ -82,7 +82,7 @@ class FileRecoveryActivity : BaseActivity<ActivityFileRecoveryBinding>() {
adapter.toggleThumbnails(isChecked) adapter.toggleThumbnails(isChecked)
} }
binding.ivSelectAll.setOnClickListener { binding.ivSelectAll.setOnClickListener {
binding.ivSelectAll.isSelected=!binding.ivSelectAll.isSelected binding.ivSelectAll.isSelected = !binding.ivSelectAll.isSelected
adapter.toggleAllSelect(binding.ivSelectAll.isSelected) adapter.toggleAllSelect(binding.ivSelectAll.isSelected)
} }
} }
......
package com.base.datarecovery.adapter package com.base.datarecovery.adapter
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.graphics.Bitmap
import android.graphics.drawable.Drawable
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageView import android.widget.ImageView
...@@ -17,13 +15,11 @@ import com.base.datarecovery.databinding.ItemMediaBinding ...@@ -17,13 +15,11 @@ import com.base.datarecovery.databinding.ItemMediaBinding
import com.base.datarecovery.help.KotlinExt.toFormatSize import com.base.datarecovery.help.KotlinExt.toFormatSize
import com.base.datarecovery.view.XmlEx.inflate import com.base.datarecovery.view.XmlEx.inflate
import com.bumptech.glide.Glide import com.bumptech.glide.Glide
import com.bumptech.glide.request.target.CustomTarget
import com.bumptech.glide.request.transition.Transition
import java.io.File import java.io.File
class FileMediaColumnsAdapter( class FileMediaColumnsAdapter(
val columns: Int, val columns: Int,
val allSelect: (all: Boolean) -> Unit, val select: (all: Boolean, size: Int) -> Unit,
) : RecyclerView.Adapter<FileMediaColumnsAdapter.MCV>() { ) : RecyclerView.Adapter<FileMediaColumnsAdapter.MCV>() {
private val beanList = arrayListOf<FolderBean>() private val beanList = arrayListOf<FolderBean>()
...@@ -52,7 +48,12 @@ class FileMediaColumnsAdapter( ...@@ -52,7 +48,12 @@ class FileMediaColumnsAdapter(
binding.rvMediaColumns.layoutManager = GridLayoutManager(context, columns) binding.rvMediaColumns.layoutManager = GridLayoutManager(context, columns)
binding.rvMediaColumns.adapter = subAdapter binding.rvMediaColumns.adapter = subAdapter
val list = if (hideThumbnails) bean.recoveryList.filter { !it.isThumbnails } else bean.recoveryList 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 { binding.ivSelector.setOnClickListener {
bean.isSelect = !bean.isSelect bean.isSelect = !bean.isSelect
...@@ -149,14 +150,16 @@ class FileMediaColumnsAdapter( ...@@ -149,14 +150,16 @@ class FileMediaColumnsAdapter(
} }
} }
val all = beanList.all { it.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)
} }
private fun itemClick(isSelect: Boolean, subAdapter: MediaColumnsAdapter) { private fun itemClick(isSelect: Boolean, subAdapter: MediaColumnsAdapter) {
subAdapter.toggleSelect(isSelect) subAdapter.toggleSelect(isSelect)
val all = beanList.all { it.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") @SuppressLint("NotifyDataSetChanged")
...@@ -165,6 +168,7 @@ class FileMediaColumnsAdapter( ...@@ -165,6 +168,7 @@ class FileMediaColumnsAdapter(
notifyDataSetChanged() notifyDataSetChanged()
} }
@SuppressLint("NotifyDataSetChanged")
fun toggleAllSelect(selected: Boolean) { fun toggleAllSelect(selected: Boolean) {
beanList.forEach { beanList.forEach {
it.isSelect = selected 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 @@ ...@@ -49,7 +49,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginEnd="24dp" android:layout_marginEnd="24dp"
android:background="@drawable/bg_stroke_bfbec4_15" android:background="@drawable/bg_recover_enable"
android:enabled="false"
android:paddingHorizontal="18dp" android:paddingHorizontal="18dp"
android:paddingVertical="8dp" android:paddingVertical="8dp"
android:text="Recover (0)" android:text="Recover (0)"
...@@ -155,6 +156,44 @@ ...@@ -155,6 +156,44 @@
</androidx.constraintlayout.widget.ConstraintLayout> </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 <androidx.coordinatorlayout.widget.CoordinatorLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
...@@ -164,47 +203,13 @@ ...@@ -164,47 +203,13 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:orientation="vertical"> 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 <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_thumbnails" android:id="@+id/cl_thumbnails"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="80dp" android:layout_height="80dp"
android:layout_marginHorizontal="16dp" android:layout_marginHorizontal="16dp"
android:background="@color/white"
android:minHeight="80dp" android:minHeight="80dp"
app:layout_scrollFlags="scroll|enterAlways"> app:layout_scrollFlags="scroll|enterAlways">
...@@ -212,6 +217,7 @@ ...@@ -212,6 +217,7 @@
android:id="@+id/tv_thumbnails" android:id="@+id/tv_thumbnails"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="@color/black" android:textColor="@color/black"
android:textSize="16sp" android:textSize="16sp"
android:textStyle="bold" android:textStyle="bold"
...@@ -243,15 +249,14 @@ ...@@ -243,15 +249,14 @@
app:layout_constraintTop_toBottomOf="@id/tv_thumbnails" app:layout_constraintTop_toBottomOf="@id/tv_thumbnails"
tools:ignore="UseSwitchCompatOrMaterialXml" /> 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> </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> </com.google.android.material.appbar.AppBarLayout>
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
android:orientation="vertical"> android:orientation="vertical">
<FrameLayout <FrameLayout
android:id="@+id/fl_tittle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> 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