This commit is contained in:
kunfei
2023-03-31 12:32:51 +08:00
parent 8699148c01
commit 6c26d38f20
5 changed files with 39 additions and 25 deletions

View File

@@ -5,12 +5,14 @@ import android.os.Bundle
import android.view.ViewGroup
import androidx.activity.viewModels
import androidx.appcompat.widget.SearchView
import androidx.core.content.FileProvider
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import io.legado.app.R
import io.legado.app.base.VMBaseActivity
import io.legado.app.base.adapter.ItemViewHolder
import io.legado.app.base.adapter.RecyclerAdapter
import io.legado.app.constant.AppConst
import io.legado.app.databinding.ActivityFileManageBinding
import io.legado.app.databinding.ItemFileBinding
import io.legado.app.databinding.ItemPathPickerBinding
@@ -19,6 +21,7 @@ import io.legado.app.ui.document.utils.FilePickerIcon
import io.legado.app.ui.widget.recycler.VerticalDivider
import io.legado.app.utils.ConvertUtils
import io.legado.app.utils.applyTint
import io.legado.app.utils.openFileUri
import io.legado.app.utils.viewbindingdelegate.viewBinding
import java.io.File
@@ -141,6 +144,14 @@ class FileManageActivity : VMBaseActivity<ActivityFileManageBinding, FileManageV
viewModel.subDocs.add(item)
pathAdapter.setItems(viewModel.subDocs)
viewModel.upFiles(item)
} else {
openFileUri(
FileProvider.getUriForFile(
this@FileManageActivity,
AppConst.authority,
item
)
)
}
}
}

View File

@@ -32,19 +32,21 @@ class SelectActionBar @JvmOverloads constructor(
.inflate(LayoutInflater.from(context), this, true)
init {
setBackgroundColor(context.bottomBackground)
elevation = context.elevation
binding.cbSelectedAll.setTextColor(primaryTextColor)
TintHelper.setTint(binding.cbSelectedAll, context.accentColor, !bgIsLight)
binding.ivMenuMore.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN)
binding.cbSelectedAll.setOnCheckedChangeListener { buttonView, isChecked ->
if (buttonView.isPressed) {
callBack?.selectAll(isChecked)
if (!isInEditMode) {
setBackgroundColor(context.bottomBackground)
elevation = context.elevation
binding.cbSelectedAll.setTextColor(primaryTextColor)
TintHelper.setTint(binding.cbSelectedAll, context.accentColor, !bgIsLight)
binding.ivMenuMore.setColorFilter(disabledColor, PorterDuff.Mode.SRC_IN)
binding.cbSelectedAll.setOnCheckedChangeListener { buttonView, isChecked ->
if (buttonView.isPressed) {
callBack?.selectAll(isChecked)
}
}
binding.btnRevertSelection.setOnClickListener { callBack?.revertSelection() }
binding.btnSelectActionMain.setOnClickListener { callBack?.onClickSelectBarMainAction() }
binding.ivMenuMore.setOnClickListener { selMenu?.show() }
}
binding.btnRevertSelection.setOnClickListener { callBack?.revertSelection() }
binding.btnSelectActionMain.setOnClickListener { callBack?.onClickSelectBarMainAction() }
binding.ivMenuMore.setOnClickListener { selMenu?.show() }
}
fun setMainActionText(text: String) = binding.run {

View File

@@ -304,6 +304,7 @@ fun Context.openUrl(url: String) {
startActivity(IntentHelp.getBrowserIntent(url))
} catch (e: Exception) {
toastOnUi(e.localizedMessage ?: "open url error")
e.printOnDebug()
}
}
@@ -312,6 +313,7 @@ fun Context.openUrl(uri: Uri) {
startActivity(IntentHelp.getBrowserIntent(uri))
} catch (e: Exception) {
toastOnUi(e.localizedMessage ?: "open url error")
e.printOnDebug()
}
}
@@ -328,6 +330,7 @@ fun Context.openFileUri(uri: Uri, type: String? = null) {
startActivity(intent)
} catch (e: Exception) {
toastOnUi(e.stackTraceStr)
e.printOnDebug()
}
}

View File

@@ -7,21 +7,25 @@ import java.io.File
@Keep
object IntentType {
fun from(uri: Uri): String? {
fun from(uri: Uri): String {
return from(uri.toString())
}
fun from(file: File): String? {
fun from(file: File): String {
return from(file.absolutePath)
}
fun from(path: String?): String? {
return when (path?.substringAfterLast(".")?.lowercase()) {
fun from(path: String?): String {
val suffix = path
?.substringAfterLast(File.separator)
?.substringAfterLast(".", "")
?.lowercase()
return when (suffix) {
"m4a", "mp3", "mid", "xmf", "ogg", "wav" -> "video/*"
"3gp", "mp4" -> "audio/*"
"jpg", "gif", "png", "jpeg", "bmp" -> "image/*"
"txt", "json" -> "text/plain"
else -> appIntentType?.from(path)
"", "txt", "json", "log" -> "text/plain"
else -> appIntentType?.from(path) ?: "*/*"
}
}

View File

@@ -10,7 +10,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:contentInsetStartWithNavigation="0dp"
app:contentInsetRight="24dp"
app:contentLayout="@layout/view_search" />
<!--path-->
@@ -28,7 +28,7 @@
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
app:layout_constraintBottom_toTopOf="@id/select_action_bar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/rv_path">
<io.legado.app.ui.widget.recycler.scroller.FastScrollRecyclerView
@@ -50,10 +50,4 @@
</FrameLayout>
<io.legado.app.ui.widget.SelectActionBar
android:id="@+id/select_action_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>