Commit 671eb07a authored by wanglei's avatar wanglei

...

parent bcbee770
......@@ -120,4 +120,10 @@ class MediaAdapter(
beanList.addAll(mediaList)
notifyDataSetChanged()
}
fun removeData(bean: MediaBean) {
val index = beanList.indexOf(bean)
beanList.remove(bean)
notifyItemRemoved(index)
}
}
\ No newline at end of file
......@@ -15,6 +15,7 @@ import com.base.browserwhite.databinding.FragmentFileBinding
import com.base.browserwhite.ui.activity.MainActivity
import com.base.browserwhite.ui.activity.mediabrowser.MediaBrowserActivity
import com.base.browserwhite.ui.adapter.MediaAdapter
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.ui.views.DialogViews.showMediaMoreDialog
import com.base.browserwhite.utils.KotlinExt.toFormatSize
import com.base.browserwhite.utils.LogEx
......@@ -51,24 +52,30 @@ class FileFragment : BaseFragment<FragmentFileBinding>() {
},
moreAction = { view, bean ->
requireContext().showMediaMoreDialog(view, deleteAction = {}, shareAction = {
LogEx.logDebug(TAG, "uri=${bean.uri}")
val shareIntent = Intent().apply {
action = Intent.ACTION_SEND
type = bean.mimeType
putExtra(Intent.EXTRA_STREAM, bean.uri)
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
// 可以添加更多额外信息,如主题、文本等
}
val chooserIntent = Intent.createChooser(shareIntent, "Share File")
if (shareIntent.resolveActivity(requireContext().packageManager) != null) {
startActivity(chooserIntent)
} else {
Toast.makeText(requireContext(), "no app can share the file", Toast.LENGTH_SHORT).show()
}
})
requireContext().showMediaMoreDialog(view,
deleteAction = {
requireContext().showDeleteTipDialog{
runCatching { File(bean.path).delete() }
adapter.removeData(bean)
}
},
shareAction = {
LogEx.logDebug(TAG, "uri=${bean.uri}")
val shareIntent = Intent().apply {
action = Intent.ACTION_SEND
type = bean.mimeType
putExtra(Intent.EXTRA_STREAM, bean.uri)
flags = Intent.FLAG_GRANT_READ_URI_PERMISSION
// 可以添加更多额外信息,如主题、文本等
}
val chooserIntent = Intent.createChooser(shareIntent, "Share File")
if (shareIntent.resolveActivity(requireContext().packageManager) != null) {
startActivity(chooserIntent)
} else {
Toast.makeText(requireContext(), "no app can share the file", Toast.LENGTH_SHORT).show()
}
})
})
binding.rvRecent.adapter = adapter
......
......@@ -188,6 +188,7 @@ object DialogViews {
binding.llDelete.setOnClickListener {
dialog.dismiss()
deleteAction.invoke()
}
binding.llShare.setOnClickListener {
dialog.dismiss()
......@@ -196,14 +197,23 @@ object DialogViews {
}
fun Context.showDeleteTipDialog() {
fun Context.showDeleteTipDialog(action: () -> Unit) {
val binding = DialogDeleteTipBinding.inflate(LayoutInflater.from(this))
val dialog = AlertDialog.Builder(this).create()
dialog.setView(binding.root)
dialog.show()
val params = dialog.window?.attributes
params?.width=resources.getDimensionPixelOffset(R.dimen.dp_335)
dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
binding.tvCancel.setOnClickListener {
dialog.dismiss()
}
binding.tvDelete.setOnClickListener {
dialog.dismiss()
action.invoke()
}
}
}
\ No newline at end of file
......@@ -42,9 +42,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="8dp"
android:paddingHorizontal="20dp"
android:paddingVertical="8dp"
android:paddingVertical="4dp"
android:text="Home"
android:textColor="@color/color_tab_text"
android:textSize="12sp"
......@@ -72,9 +71,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="8dp"
android:paddingHorizontal="20dp"
android:paddingVertical="8dp"
android:paddingVertical="4dp"
android:text="File"
android:textColor="@color/color_tab_text"
android:textSize="12sp"
......@@ -107,9 +105,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="8dp"
android:paddingHorizontal="20dp"
android:paddingVertical="8dp"
android:paddingVertical="4dp"
android:text="Label"
android:textColor="@color/color_tab_text"
android:textSize="12sp"
......@@ -137,9 +134,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:padding="8dp"
android:paddingHorizontal="20dp"
android:paddingVertical="8dp"
android:paddingVertical="4dp"
android:text="My"
android:textColor="@color/color_tab_text"
android:textSize="12sp"
......
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
android:layout_width="335dp"
android:layout_height="165dp"
android:layout_margin="15dp"
app:cardBackgroundColor="#EEF1F6"
app:cardCornerRadius="20dp"
app:cardElevation="0dp">
<androidx.cardview.widget.CardView
android:layout_width="300dp"
android:layout_height="150dp"
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="15dp"
app:cardBackgroundColor="@color/white"
app:cardCornerRadius="25dp"
app:cardElevation="0dp">
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Prom"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="13dp"
android:text="Delete the selected file?"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tip"
android:id="@+id/tv_cancel"
android:layout_width="145dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:background="@drawable/bg_e1e4e9_25"
android:gravity="center"
android:text="Cancel"
android:textColor="@color/black"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_delete"
android:layout_width="145dp"
android:layout_height="40dp"
android:layout_gravity="center_vertical"
android:layout_marginStart="15dp"
android:background="@drawable/bg_0571ed_25"
android:gravity="center"
android:text="Delete"
android:textColor="@color/white"
android:textSize="18sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</androidx.cardview.widget.CardView>
</LinearLayout>
</FrameLayout>
\ No newline at end of file
</androidx.cardview.widget.CardView>
\ No newline at end of file
......@@ -9,4 +9,5 @@
<dimen name="dp_150">150dp</dimen>
<dimen name="dp_30">30dp</dimen>
<dimen name="fab_margin">16dp</dimen>
<dimen name="dp_335">335dp</dimen>
</resources>
\ No newline at end of file
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