Commit 3521ff36 authored by wanglei's avatar wanglei

...

parent 8241b53d
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
<activity <activity
android:name=".ui.main.MainActivity" android:name=".ui.main.MainActivity"
android:exported="false" android:exported="false"
android:launchMode="singleTop" android:launchMode="singleTask"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity <activity
......
...@@ -8,7 +8,7 @@ data class DocumentBean( ...@@ -8,7 +8,7 @@ data class DocumentBean(
var type: String = "", var type: String = "",
var isBookmarked: Boolean = false, var isBookmarked: Boolean = false,
) { ) {
var uiType: Int = 0//0首页模式 1合并选择模式 2拆分模式 3解锁加锁模式 var uiType: Int = 0//0首页模式 1合并选择模式 2拆分模式 3解锁加锁模式 4搜索模式
var isSelect: Boolean = false var isSelect: Boolean = false
var state: Int = -1//0正常状态 1 锁定 var state: Int = -1//0正常状态 1 锁定
......
...@@ -141,13 +141,23 @@ class DocumentAdapter : BaseQuickAdapter<DocumentBean, DocumentAdapter.DocumentV ...@@ -141,13 +141,23 @@ class DocumentAdapter : BaseQuickAdapter<DocumentBean, DocumentAdapter.DocumentV
itemClick?.invoke(item) itemClick?.invoke(item)
} }
} }
4 -> {
binding.flBookmark.visibility = View.GONE
binding.flMore.setOnClickListener {
moreAction?.invoke(item)
}
binding.root.setOnClickListener {
itemClick?.invoke(item)
}
}
} }
} }
private fun checkPwd(item: DocumentBean, iv: ImageView) { private fun checkPwd(item: DocumentBean, iv: ImageView) {
threadPoolExecutor.execute { threadPoolExecutor.execute {
item.state = PdfBoxUtils.checkPdfEncryption(item.path) item.state = PdfBoxUtils.checkPdfEncryption(item.path)
LogEx.logDebug(TAG, "${item.state}") LogEx.logDebug(TAG, "checkPwd ${item.state}")
var res = R.mipmap.h_pdfiocn var res = R.mipmap.h_pdfiocn
when (item.state) { when (item.state) {
0 -> res = R.mipmap.h_pdfiocn 0 -> res = R.mipmap.h_pdfiocn
......
package com.base.pdfviewerscannerwhite.ui.main package com.base.pdfviewerscannerwhite.ui.main
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity
import android.app.Dialog import android.app.Dialog
import android.content.Context
import android.content.Intent import android.content.Intent
import androidx.core.content.ContentProviderCompat.requireContext
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.pdfviewerscannerwhite.bean.DocumentBean import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_EXCEL import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_EXCEL
...@@ -26,7 +29,7 @@ import java.io.File ...@@ -26,7 +29,7 @@ import java.io.File
class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView { class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView {
private var type = TYPE_PDF var type = TYPE_PDF
private var documentList: ArrayList<DocumentBean> = arrayListOf() private var documentList: ArrayList<DocumentBean> = arrayListOf()
private lateinit var adapter: DocumentAdapter private lateinit var adapter: DocumentAdapter
private lateinit var documentPresenter: DocumentPresenter private lateinit var documentPresenter: DocumentPresenter
...@@ -59,39 +62,15 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView ...@@ -59,39 +62,15 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView
documentPresenter.saveBookmarkChange(addRemove, path) documentPresenter.saveBookmarkChange(addRemove, path)
} }
adapter.itemClick = { item -> adapter.itemClick = { item ->
if (type == TYPE_PDF) { requireActivity().jumpDocument(item)
if (item.state == 0) {
startActivity(Intent(requireContext(), PdfActivity::class.java).apply {
putExtra("path", item.path)
})
}
if (item.state == 1) {
requireContext().showPdfPwdDialog(
state = item.state,
path = item.path,
isCheckPwd = true,
verificationAction = { pwd ->
startActivity(Intent(requireContext(), PdfActivity::class.java).apply {
putExtra("path", item.path)
putExtra("pwd", pwd)
})
})
}
}
if (type == TYPE_WORD) {
WordActivity.wordDocumentBean = item
WordActivity.launchDocViewer(requireActivity(), 3, item.path, -1, 100)
} }
if (type == TYPE_EXCEL) { adapter.moreAction = { item ->
ExcelActivity.excelDocumentBean = item documentMoreAction.invoke(item)
ExcelActivity.launchDocViewer(requireActivity(), 3, item.path, -1, 100)
}
if (type == TYPE_PPT) {
PptActivity.pptDocumentBean = item
PptActivity.launchDocViewer(requireActivity(), 3, item.path, -1, 100)
} }
binding.rv.adapter = adapter
} }
adapter.moreAction = { item ->
var documentMoreAction: (item: DocumentBean) -> Unit = { item ->
if (item.type == TYPE_PDF) { if (item.type == TYPE_PDF) {
requireContext().showPdfHomeMoreDialog(this, item, adapter, dismissAction = { firstDialog = null }) requireContext().showPdfHomeMoreDialog(this, item, adapter, dismissAction = { firstDialog = null })
} }
...@@ -99,8 +78,6 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView ...@@ -99,8 +78,6 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView
firstDialog = requireContext().showDocumentHomeMoreDialog(item, this) firstDialog = requireContext().showDocumentHomeMoreDialog(item, this)
} }
} }
binding.rv.adapter = adapter
}
override fun refreshDocumentRv(documentList: List<DocumentBean>, isRefresh: Boolean) { override fun refreshDocumentRv(documentList: List<DocumentBean>, isRefresh: Boolean) {
if (isRefresh) { if (isRefresh) {
...@@ -174,6 +151,14 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView ...@@ -174,6 +151,14 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView
} }
} }
@SuppressLint("NotifyDataSetChanged")
fun changItemSelect(select: Boolean) {
adapter.items.forEach {
it.isSelect = select
}
adapter.notifyDataSetChanged()
}
fun getSelectItems(): List<DocumentBean> { fun getSelectItems(): List<DocumentBean> {
return adapter.items.filter { it.isSelect } return adapter.items.filter { it.isSelect }
} }
...@@ -184,4 +169,49 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView ...@@ -184,4 +169,49 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView
} }
} }
fun getSearchItems(search: String): List<DocumentBean> {
if (isVisible) {
return adapter.items.filter { File(it.path).name.contains(search) }
}
return listOf()
}
companion object {
fun Activity.jumpDocument(item: DocumentBean) {
if (item.type == TYPE_PDF) {
if (item.state == 0) {
startActivity(Intent(this, PdfActivity::class.java).apply {
putExtra("path", item.path)
})
}
if (item.state == 1) {
showPdfPwdDialog(
state = item.state,
path = item.path,
isCheckPwd = true,
verificationAction = { pwd ->
startActivity(Intent(this, PdfActivity::class.java).apply {
putExtra("path", item.path)
putExtra("pwd", pwd)
})
})
}
}
if (item.type == TYPE_WORD) {
WordActivity.wordDocumentBean = item
WordActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
if (item.type == TYPE_EXCEL) {
ExcelActivity.excelDocumentBean = item
ExcelActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
if (item.type == TYPE_PPT) {
PptActivity.pptDocumentBean = item
PptActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
}
}
} }
\ No newline at end of file
...@@ -3,8 +3,10 @@ package com.base.pdfviewerscannerwhite.ui.main ...@@ -3,8 +3,10 @@ package com.base.pdfviewerscannerwhite.ui.main
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.net.Uri import android.net.Uri
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
import androidx.viewpager2.widget.ViewPager2 import androidx.viewpager2.widget.ViewPager2
...@@ -15,15 +17,20 @@ import com.base.pdfviewerscannerwhite.R ...@@ -15,15 +17,20 @@ import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.bean.DocumentBean import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.databinding.ActivityMainBinding import com.base.pdfviewerscannerwhite.databinding.ActivityMainBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity import com.base.pdfviewerscannerwhite.helper.BaseActivity
import com.base.pdfviewerscannerwhite.ui.adapter.DocumentAdapter
import com.base.pdfviewerscannerwhite.ui.main.DocumentFragment.Companion.jumpDocument
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showStoragePermission import com.base.pdfviewerscannerwhite.ui.view.DialogView.showStoragePermission
import com.base.pdfviewerscannerwhite.ui.view.RateDialog.showRateDialog import com.base.pdfviewerscannerwhite.ui.view.RateDialog.showRateDialog
import com.base.pdfviewerscannerwhite.utils.IntentShareUtils.shareMutDocuments
import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.showKeyBoard
import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatTime2 import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatTime2
import com.base.pdfviewerscannerwhite.utils.LogEx import com.base.pdfviewerscannerwhite.utils.LogEx
import com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission import com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission
import com.base.pdfviewerscannerwhite.utils.ToastUtils.toast import com.base.pdfviewerscannerwhite.utils.ToastUtils.toast
import com.base.pdfviewerscannerwhite.utils.updateMediaStore import com.base.pdfviewerscannerwhite.utils.updateMediaStore
import com.cherry.lib.doc.office.fc.ss.usermodel.charts.AxisPosition
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
...@@ -53,6 +60,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -53,6 +60,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
private val fragments by lazy { private val fragments by lazy {
mutableListOf(pdfFragment, wordFragment, excelFragment, pptFragment, toolFragment) mutableListOf(pdfFragment, wordFragment, excelFragment, pptFragment, toolFragment)
} }
private lateinit var searchAdapter: DocumentAdapter
override fun initView() { override fun initView() {
...@@ -88,6 +96,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -88,6 +96,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
}) })
initTabLayout() initTabLayout()
initSearchAdapter()
if (!checkStorePermission()) { if (!checkStorePermission()) {
showStoragePermission(launcher) showStoragePermission(launcher)
...@@ -95,6 +104,20 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -95,6 +104,20 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
} }
} }
private fun initSearchAdapter() {
searchAdapter = DocumentAdapter()
binding.rvSearch.adapter = searchAdapter
searchAdapter.moreAction = { item ->
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).documentMoreAction.invoke(item)
}
}
searchAdapter.itemClick = {
jumpDocument(it)
}
}
private fun initTabLayout() { private fun initTabLayout() {
val colorPdf = ContextCompat.getColor(this, R.color.color_f02f2b) val colorPdf = ContextCompat.getColor(this, R.color.color_f02f2b)
val colorWord = ContextCompat.getColor(this, R.color.color_0592ee) val colorWord = ContextCompat.getColor(this, R.color.color_0592ee)
...@@ -153,6 +176,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -153,6 +176,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
private lateinit var callback: OnBackPressedCallback private lateinit var callback: OnBackPressedCallback
private fun callTab() { private fun callTab() {
LogEx.logDebug(TAG, "callTab")
if (uiMode == HOME_UI_MODE_DOCUMENT) { if (uiMode == HOME_UI_MODE_DOCUMENT) {
binding.llDocument.callOnClick() binding.llDocument.callOnClick()
} }
...@@ -170,6 +194,14 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -170,6 +194,14 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
HOME_UI_MODE_BOOKMARK -> changeBookmarkUI() HOME_UI_MODE_BOOKMARK -> changeBookmarkUI()
} }
} }
if (uiMode == HOME_UI_MODE_SEARCH) {
cancelSearchUI()
when (lastUIMode) {
HOME_UI_MODE_DOCUMENT -> changeDocumentUI()
HOME_UI_MODE_RECENT -> changeRecentUI()
HOME_UI_MODE_BOOKMARK -> changeBookmarkUI()
}
}
} }
} }
...@@ -183,7 +215,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -183,7 +215,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
changeDocumentUI() changeDocumentUI()
} }
binding.llRecent.setOnClickListener { binding.llRecent.setOnClickListener {
changeRecentUI() changeRecentUI()
} }
...@@ -197,9 +228,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -197,9 +228,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
mainPresenter.starGmsScan(this) mainPresenter.starGmsScan(this)
} }
binding.ivXuanze.setOnClickListener { binding.ivXuanze.setOnClickListener {
changeSelectUI() changeSelectUI()
} }
binding.tvTittle.setOnClickListener { binding.tvTittle.setOnClickListener {
...@@ -217,10 +246,66 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -217,10 +246,66 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
} }
} }
} }
binding.ivAllSelector.setOnClickListener {
binding.ivAllSelector.isSelected = !binding.ivAllSelector.isSelected
changePageSelect(binding.ivAllSelector.isSelected)
}
binding.llShare.setOnClickListener {
shareDocument()
}
binding.ivSearch.setOnClickListener {
changeSearchUI()
}
binding.editSearch.addTextChangedListener {
}
binding.editSearch.setOnEditorActionListener { v, actionId, event ->
LogEx.logDebug(TAG, "$actionId")
if (actionId == EditorInfo.IME_ACTION_DONE) {
LogEx.logDebug(TAG, "IME_ACTION_DONE")
searchDocument()
}
false
}
callTab() callTab()
} }
private fun searchDocument() {
if (binding.editSearch.text.isNotEmpty()) {
val search = binding.editSearch.text.toString()
if (currentFragment is DocumentFragment) {
val item = (currentFragment as DocumentFragment).getSearchItems(search)
if (item.isNotEmpty()) {
val arrayList = arrayListOf<DocumentBean>()
arrayList.addAll(item)
arrayList.map { it.uiType = 4 }
searchAdapter.submitList(arrayList)
} else {
binding.llEmpty.visibility = View.VISIBLE
}
}
}
}
private fun shareDocument() {
if (currentFragment is DocumentFragment) {
val documentFragment = (currentFragment as DocumentFragment)
val items = documentFragment.getSelectItems()
if (items.isNotEmpty()) {
shareMutDocuments(documentFragment.type, items.map { it.uri } as ArrayList<Uri>)
}
}
}
private fun changePageSelect(select: Boolean) {
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).changItemSelect(select)
}
}
private fun changeTabSelect(selectView: View) { private fun changeTabSelect(selectView: View) {
binding.llDocument.isSelected = selectView == binding.llDocument binding.llDocument.isSelected = selectView == binding.llDocument
...@@ -290,7 +375,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -290,7 +375,10 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
binding.flFanhui.visibility = View.GONE binding.flFanhui.visibility = View.GONE
binding.llDelete.visibility = View.GONE binding.llDelete.visibility = View.GONE
binding.llShare.visibility = View.GONE binding.llShare.visibility = View.GONE
binding.ivAllSelector.visibility = View.GONE
binding.ivSearch.visibility = View.VISIBLE
binding.tvTittle.visibility = View.VISIBLE binding.tvTittle.visibility = View.VISIBLE
binding.llDocument.visibility = View.VISIBLE binding.llDocument.visibility = View.VISIBLE
binding.llRecent.visibility = View.VISIBLE binding.llRecent.visibility = View.VISIBLE
...@@ -310,7 +398,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -310,7 +398,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
cancelSelectUI() cancelSelectUI()
binding.clAction.visibility = View.VISIBLE
binding.ivXuanze.visibility = View.VISIBLE binding.ivXuanze.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE binding.ivScan.visibility = View.VISIBLE
binding.ivPaixu.visibility = View.VISIBLE binding.ivPaixu.visibility = View.VISIBLE
...@@ -333,7 +420,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -333,7 +420,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
binding.clTabLayout.visibility = View.VISIBLE binding.clTabLayout.visibility = View.VISIBLE
binding.ivPaixu.visibility = View.VISIBLE binding.ivPaixu.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE binding.ivScan.visibility = View.VISIBLE
binding.clAction.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE binding.ivScan.visibility = View.VISIBLE
changeTabSelect(binding.llRecent) changeTabSelect(binding.llRecent)
...@@ -353,7 +439,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -353,7 +439,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
binding.clTabLayout.visibility = View.VISIBLE binding.clTabLayout.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE binding.ivScan.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE binding.ivScan.visibility = View.VISIBLE
binding.clAction.visibility = View.VISIBLE
changeTabSelect(binding.llBookmark) changeTabSelect(binding.llBookmark)
if (currentFragment is DocumentFragment) { if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).setBookmarkList() (currentFragment as DocumentFragment).setBookmarkList()
...@@ -371,7 +456,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -371,7 +456,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
binding.clTabLayout.visibility = View.GONE binding.clTabLayout.visibility = View.GONE
latViewPagerIndex = binding.viewPager2.currentItem latViewPagerIndex = binding.viewPager2.currentItem
binding.viewPager2.setCurrentItem(5, false) binding.viewPager2.setCurrentItem(5, false)
binding.clAction.visibility = View.GONE
changeTabSelect(binding.llTool) changeTabSelect(binding.llTool)
} }
...@@ -405,6 +489,34 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -405,6 +489,34 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
} }
} }
private fun changeSearchUI() {
callback.isEnabled = true
lastUIMode = uiMode
uiMode = HOME_UI_MODE_SEARCH
binding.tvTittle.visibility = View.INVISIBLE
binding.ivPaixu.visibility = View.INVISIBLE
binding.ivXuanze.visibility = View.INVISIBLE
binding.editSearch.visibility = View.VISIBLE
binding.flFanhui.visibility = View.VISIBLE
binding.flSearch.visibility = View.VISIBLE
binding.flSearch.setOnClickListener {}
binding.editSearch.requestFocus()
showKeyBoard(binding.editSearch)
}
private fun cancelSearchUI() {
binding.flFanhui.visibility = View.GONE
binding.flSearch.visibility = View.GONE
binding.editSearch.visibility = View.GONE
searchAdapter.submitList(listOf())
binding.editSearch.setText("")
binding.tvTittle.visibility = View.VISIBLE
binding.ivPaixu.visibility = View.VISIBLE
binding.ivXuanze.visibility = View.VISIBLE
}
companion object { companion object {
const val HOME_UI_MODE_DOCUMENT = "home_ui_mode_document" const val HOME_UI_MODE_DOCUMENT = "home_ui_mode_document"
...@@ -412,5 +524,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView { ...@@ -412,5 +524,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
const val HOME_UI_MODE_BOOKMARK = "home_ui_mode_bookmark" const val HOME_UI_MODE_BOOKMARK = "home_ui_mode_bookmark"
const val HOME_UI_MODE_TOOL = "home_ui_mode_tool" const val HOME_UI_MODE_TOOL = "home_ui_mode_tool"
const val HOME_UI_MODE_SELECT = "home_ui_mode_select" const val HOME_UI_MODE_SELECT = "home_ui_mode_select"
const val HOME_UI_MODE_SEARCH = "home_ui_mode_search"
} }
} }
\ No newline at end of file
...@@ -3,10 +3,13 @@ package com.base.pdfviewerscannerwhite.utils ...@@ -3,10 +3,13 @@ package com.base.pdfviewerscannerwhite.utils
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import androidx.core.content.ContextCompat.startActivity
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import com.base.pdfviewerscannerwhite.bean.DocumentBean import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_PDF
import java.io.File import java.io.File
object IntentShareUtils { object IntentShareUtils {
fun Context.documentShare(documentBean: DocumentBean) { fun Context.documentShare(documentBean: DocumentBean) {
...@@ -50,6 +53,7 @@ object IntentShareUtils { ...@@ -50,6 +53,7 @@ object IntentShareUtils {
return shareIntent return shareIntent
} }
fun shareWordIntent(uri: Uri): Intent { fun shareWordIntent(uri: Uri): Intent {
val shareIntent = Intent().apply { val shareIntent = Intent().apply {
action = Intent.ACTION_SEND action = Intent.ACTION_SEND
...@@ -81,4 +85,31 @@ object IntentShareUtils { ...@@ -81,4 +85,31 @@ object IntentShareUtils {
return intent return intent
} }
fun Context.shareMutDocuments(
type: String, uris: ArrayList<Uri>
) {
var desc = "Share PDF files"
val intent = when (type) {
TYPE_PDF -> {
shareMutPdfIntent(uris)
}
else -> shareMutPdfIntent(uris)
}
val chooserIntent = Intent.createChooser(intent, desc)
startActivity(chooserIntent)
}
fun shareMutPdfIntent(uris: ArrayList<Uri>): Intent {
val shareIntent = Intent().apply {
action = Intent.ACTION_SEND_MULTIPLE
type = "application/pdf"
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) // 授权临时权限
putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris)
}
return shareIntent
}
} }
\ No newline at end of file
...@@ -31,6 +31,27 @@ ...@@ -31,6 +31,27 @@
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
</FrameLayout> </FrameLayout>
<EditText
android:imeOptions="actionDone"
android:id="@+id/edit_search"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="20dp"
android:background="@drawable/bg_f8f9fe_10"
android:hint="Enter the file name to search for"
android:paddingHorizontal="18dp"
android:singleLine="true"
android:textColor="@color/black"
android:textColorHint="#B8B9BD"
android:textSize="14sp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_search"
app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="Autofill,HardcodedText,RtlSymmetry,TextFields" />
<TextView <TextView
android:id="@+id/tv_tittle" android:id="@+id/tv_tittle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -45,14 +66,6 @@ ...@@ -45,14 +66,6 @@
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" /> tools:ignore="HardcodedText" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_action"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView <ImageView
android:id="@+id/iv_paixu" android:id="@+id/iv_paixu"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -100,10 +113,6 @@ ...@@ -100,10 +113,6 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
...@@ -219,7 +228,6 @@ ...@@ -219,7 +228,6 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/ll_bottom" android:id="@+id/ll_bottom"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -437,4 +445,50 @@ ...@@ -437,4 +445,50 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:id="@+id/fl_search"
android:layout_width="match_parent"
android:layout_height="0dp"
android:background="@color/white"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/cl_top">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_document" />
<LinearLayout
android:id="@+id/ll_empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="60dp"
android:orientation="vertical"
android:visibility="gone"
tools:ignore="UseCompoundDrawables,UselessParent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/empty"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:text="Empty"
android:textColor="#B1B4B9"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
\ 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