Commit 90f75617 authored by wanglei's avatar wanglei

...

parent 386b363c
......@@ -101,6 +101,9 @@ class DocumentAdapter : BaseQuickAdapter<DocumentBean, DocumentAdapter.DocumentV
binding.flMore.setOnClickListener {
moreAction?.invoke(item)
}
binding.root.setOnClickListener {
itemClick?.invoke(item)
}
}
1 -> {
......@@ -114,23 +117,32 @@ class DocumentAdapter : BaseQuickAdapter<DocumentBean, DocumentAdapter.DocumentV
notifyItemChanged(position, "aaa")
selectAction?.invoke(items.filter { it.isSelect }.size)
}
binding.root.setOnClickListener {
item.isSelect = !item.isSelect
notifyItemChanged(position, "aaa")
selectAction?.invoke(items.filter { it.isSelect }.size)
}
}
2 -> {
binding.flBookmark.visibility = View.GONE
binding.flMore.visibility = View.INVISIBLE
binding.root.setOnClickListener {
itemClick?.invoke(item)
}
}
3 -> {
binding.flBookmark.visibility = View.GONE
binding.flMore.visibility = View.INVISIBLE
}
}
binding.root.setOnClickListener {
itemClick?.invoke(item)
}
}
}
}
private fun checkPwd(item: DocumentBean, iv: ImageView) {
threadPoolExecutor.execute {
......
......@@ -83,12 +83,12 @@ class ExcelActivity : BaseActivity<ActivityExcelBinding>() {
LogEx.logDebug(TAG, "show")
}
}
lifecycleScope.launch {
delay(5000)
val ssControl = binding.mDocView.iOffice?.control?.appControl as SSControl
toast("转换")
binding.mDocView.iOffice?.control?.sysKit
}
// lifecycleScope.launch {
// delay(5000)
// val ssControl = binding.mDocView.iOffice?.control?.appControl as SSControl
// toast("转换")
// binding.mDocView.iOffice?.control?.sysKit
// }
}
private fun switchOrientation() {
......
......@@ -162,5 +162,14 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView
adapter.notifyDataSetChanged()
}
fun getSelectItems(): List<DocumentBean> {
return adapter.items.filter { it.isSelect }
}
fun removeList(list: List<DocumentBean>) {
list.forEach {
adapter.remove(it)
}
}
}
\ No newline at end of file
......@@ -2,8 +2,8 @@ package com.base.pdfviewerscannerwhite.ui.main
import android.annotation.SuppressLint
import android.net.Uri
import android.provider.MediaStore
import android.view.View
import androidx.activity.OnBackPressedCallback
import androidx.core.content.ContextCompat
import androidx.core.view.isVisible
import androidx.fragment.app.Fragment
......@@ -16,6 +16,7 @@ import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.databinding.ActivityMainBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showStoragePermission
import com.base.pdfviewerscannerwhite.ui.view.RateDialog.showRateDialog
......@@ -25,16 +26,15 @@ import com.base.pdfviewerscannerwhite.utils.PermissionUtils.checkStorePermission
import com.base.pdfviewerscannerwhite.utils.ToastUtils.toast
import com.base.pdfviewerscannerwhite.utils.updateMediaStore
@SuppressLint("SetTextI18n")
class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
private val TAG = "MainActivity"
private lateinit var mainPresenter: MainPresenter
override val binding: ActivityMainBinding by lazy {
ActivityMainBinding.inflate(layoutInflater)
}
private val pdfFragment: DocumentFragment by lazy {
DocumentFragment(DocumentBean.TYPE_PDF)
}
......@@ -50,7 +50,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
private val toolFragment: ToolFragment by lazy {
ToolFragment()
}
private var currentFragment: Fragment = pdfFragment
private val fragments by lazy {
mutableListOf(pdfFragment, wordFragment, excelFragment, pptFragment, toolFragment)
......@@ -58,7 +57,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
override fun initView() {
mainPresenter = MainPresenter(this)
mainPresenter = MainPresenter(this, this)
mainPresenter.initScannerLauncher(this)
binding.viewPager2.offscreenPageLimit = 4
......@@ -96,7 +95,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
updateMediaStore()
}
}
private fun initTabLayout() {
......@@ -152,98 +150,66 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
ViewPager2Delegate.install(binding.viewPager2, binding.tabLayoutDocument)
}
private var latViewPagerIndex = -1
var latViewPagerIndex = -1
private lateinit var callback: OnBackPressedCallback
@SuppressLint("ClickableViewAccessibility", "SetTextI18n")
override fun initListener() {
super.initListener()
binding.llDocument.setOnClickListener {
binding.tvTittle.text = "Document"
binding.clTabLayout.visibility = View.VISIBLE
if (latViewPagerIndex != -1) {
binding.viewPager2.setCurrentItem(latViewPagerIndex, false)
latViewPagerIndex = -1
callback = object : OnBackPressedCallback(true /* enabled */) {
override fun handleOnBackPressed() {
if (uiMode == HOME_UI_MODE_SELECT) {
when (lastUIMode) {
HOME_UI_MODE_DOCUMENT -> changeDocumentUI()
HOME_UI_MODE_RECENT -> changeRecentUI()
HOME_UI_MODE_BOOKMARK -> changeBookmarkUI()
}
changeTabSelect(it)
binding.ivScan.visibility = View.VISIBLE
binding.clAction.visibility = View.VISIBLE
binding.ivPaixu.visibility = View.VISIBLE
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).setAllList()
}
}
binding.llRecent.setOnClickListener {
binding.tvTittle.text = "Document"
binding.clTabLayout.visibility = View.VISIBLE
if (latViewPagerIndex != -1) {
binding.viewPager2.setCurrentItem(latViewPagerIndex, false)
latViewPagerIndex = -1
}
binding.ivScan.visibility = View.VISIBLE
binding.clAction.visibility = View.VISIBLE
binding.ivPaixu.visibility = View.GONE
changeTabSelect(it)
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).setRecentList()
}
}
binding.llBookmark.setOnClickListener {
binding.tvTittle.text = "Document"
binding.clTabLayout.visibility = View.VISIBLE
if (latViewPagerIndex != -1) {
binding.viewPager2.setCurrentItem(latViewPagerIndex, false)
latViewPagerIndex = -1
onBackPressedDispatcher.addCallback(callback)
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.ivScan.visibility = View.VISIBLE
binding.clAction.visibility = View.VISIBLE
changeTabSelect(it)
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).setBookmarkList()
binding.llDocument.setOnClickListener {
changeDocumentUI()
}
binding.llRecent.setOnClickListener {
changeRecentUI()
}
binding.llBookmark.setOnClickListener {
changeBookmarkUI()
}
binding.llTool.setOnClickListener {
binding.tvTittle.text = "Tool"
binding.ivScan.visibility = View.GONE
binding.clTabLayout.visibility = View.GONE
changeTabSelect(it)
latViewPagerIndex = binding.viewPager2.currentItem
binding.viewPager2.setCurrentItem(5, false)
binding.clAction.visibility = View.GONE
changeToolUI()
}
binding.ivScan.setOnClickListener {
mainPresenter.starGmsScan(this)
}
binding.ivXuanze.setOnClickListener {
binding.ivPaixu.visibility = View.INVISIBLE
binding.ivXuanze.visibility = View.INVISIBLE
binding.ivSearch.visibility = View.INVISIBLE
binding.llDocument.visibility = View.INVISIBLE
binding.llRecent.visibility = View.INVISIBLE
binding.llBookmark.visibility = View.INVISIBLE
binding.llTool.visibility = View.INVISIBLE
changeSelectUI()
binding.llDelete.visibility = View.VISIBLE
binding.llShare.visibility = View.VISIBLE
}
binding.tvTittle.setOnClickListener {
binding.ivAllSelector.visibility = View.VISIBLE
}
binding.vTabLayoutPlace.setOnClickListener {
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).changeSelectUi()
}
binding.llDelete.setOnClickListener {
if (currentFragment is DocumentFragment) {
val fragment = (currentFragment as DocumentFragment)
showDeleteDialog {
val list = fragment.getSelectItems()
mainPresenter.deleteList(list)
fragment.removeList(list)
}
binding.llDocument.callOnClick()
binding.tvTittle.setOnClickListener {
if (binding.viewPager2.isVisible) {
binding.viewPager2.isVisible = false
} else {
binding.viewPager2.isVisible = true
}
}
}
......@@ -303,5 +269,125 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
showRateDialog()
}
private var uiMode = HOME_UI_MODE_DOCUMENT
fun changeDocumentUI() {
LogEx.logDebug(TAG, "changeDocumentUI")
uiMode = HOME_UI_MODE_DOCUMENT
callback.isEnabled = false
binding.viewPager2.isUserInputEnabled = true
binding.tvTittle.text = "Document"
binding.clTabLayout.visibility = View.VISIBLE
if (latViewPagerIndex != -1) {
binding.viewPager2.setCurrentItem(latViewPagerIndex, false)
latViewPagerIndex = -1
}
changeTabSelect(binding.llDocument)
binding.ivScan.visibility = View.VISIBLE
binding.clAction.visibility = View.VISIBLE
binding.ivPaixu.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).setAllList()
}
}
fun changeRecentUI() {
LogEx.logDebug(TAG, "changeRecentUI")
uiMode = HOME_UI_MODE_RECENT
callback.isEnabled = false
binding.viewPager2.isUserInputEnabled = true
binding.tvTittle.text = "Document"
binding.clTabLayout.visibility = View.VISIBLE
if (latViewPagerIndex != -1) {
binding.viewPager2.setCurrentItem(latViewPagerIndex, false)
latViewPagerIndex = -1
}
binding.ivPaixu.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE
binding.clAction.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE
changeTabSelect(binding.llRecent)
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).setRecentList()
}
}
fun changeBookmarkUI() {
LogEx.logDebug(TAG, "changeBookmarkUI")
uiMode = HOME_UI_MODE_BOOKMARK
callback.isEnabled = false
binding.viewPager2.isUserInputEnabled = true
binding.tvTittle.text = "Document"
binding.clTabLayout.visibility = View.VISIBLE
binding.ivScan.visibility = View.VISIBLE
if (latViewPagerIndex != -1) {
binding.viewPager2.setCurrentItem(latViewPagerIndex, false)
latViewPagerIndex = -1
}
binding.ivScan.visibility = View.VISIBLE
binding.clAction.visibility = View.VISIBLE
changeTabSelect(binding.llBookmark)
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).setBookmarkList()
}
}
private fun changeToolUI() {
LogEx.logDebug(TAG, "changeToolUI")
uiMode = HOME_UI_MODE_TOOL
callback.isEnabled = false
binding.viewPager2.isUserInputEnabled = true
binding.tvTittle.text = "Tool"
binding.ivScan.visibility = View.GONE
binding.clTabLayout.visibility = View.GONE
latViewPagerIndex = binding.viewPager2.currentItem
binding.viewPager2.setCurrentItem(5, false)
binding.clAction.visibility = View.GONE
changeTabSelect(binding.llTool)
}
private var lastUIMode = HOME_UI_MODE_DOCUMENT
private fun changeSelectUI() {
LogEx.logDebug(TAG, "changeSelectUI")
callback.isEnabled = true
lastUIMode = uiMode
uiMode = HOME_UI_MODE_SELECT
binding.ivPaixu.visibility = View.INVISIBLE
binding.ivXuanze.visibility = View.INVISIBLE
binding.ivSearch.visibility = View.INVISIBLE
binding.tvTittle.visibility = View.INVISIBLE
binding.ivScan.visibility = View.INVISIBLE
binding.llDocument.visibility = View.INVISIBLE
binding.llRecent.visibility = View.INVISIBLE
binding.llBookmark.visibility = View.INVISIBLE
binding.llTool.visibility = View.INVISIBLE
binding.flFanhui.visibility = View.VISIBLE
binding.llDelete.visibility = View.VISIBLE
binding.llShare.visibility = View.VISIBLE
binding.ivAllSelector.visibility = View.VISIBLE
binding.viewPager2.isUserInputEnabled = false
binding.vTabLayoutPlace.visibility = View.VISIBLE
if (currentFragment is DocumentFragment) {
(currentFragment as DocumentFragment).changeSelectUi()
}
}
companion object {
const val HOME_UI_MODE_DOCUMENT = "home_ui_mode_document"
const val HOME_UI_MODE_RECENT = "home_ui_mode_recent"
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_SELECT = "home_ui_mode_select"
}
}
\ No newline at end of file
package com.base.pdfviewerscannerwhite.ui.main
import android.app.Activity
import android.content.Context
import android.content.IntentSender
import android.net.Uri
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.IntentSenderRequest
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.utils.ToastUtils.toast
import com.base.pdfviewerscannerwhite.utils.updateMediaStore
import com.google.mlkit.vision.documentscanner.GmsDocumentScannerOptions
import com.google.mlkit.vision.documentscanner.GmsDocumentScanning
import com.google.mlkit.vision.documentscanner.GmsDocumentScanningResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.MainScope
import kotlinx.coroutines.launch
import java.io.File
class MainPresenter(
val context: Context,
val mainView: MainView
) {
......@@ -61,4 +69,16 @@ class MainPresenter(
}
}
fun deleteList(list: List<DocumentBean>) {
MainScope().launch(Dispatchers.IO) {
list.forEach {
runCatching {
val file = File(it.path)
file.delete()
}
}
context.updateMediaStore()
}
}
}
\ No newline at end of file
......@@ -14,6 +14,23 @@
android:layout_height="60dp"
app:layout_constraintTop_toTopOf="parent">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/fanhui_b"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:id="@+id/tv_tittle"
android:layout_width="wrap_content"
......@@ -98,7 +115,7 @@
<FrameLayout
android:id="@+id/cl_tabLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="50dp"
android:background="#00000000">
<com.angcyo.tablayout.DslTabLayout
......@@ -164,6 +181,14 @@
tools:ignore="HardcodedText" />
</com.angcyo.tablayout.DslTabLayout>
<View
android:id="@+id/v_tabLayout_place"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone" />
</FrameLayout>
<androidx.viewpager2.widget.ViewPager2
......@@ -360,17 +385,16 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:src="@drawable/bg_selector_tool"
android:src="@mipmap/x_delete"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="2.5dp"
android:text="Tool"
android:textColor="@color/color_tab_selector"
android:text="Delete"
android:textColor="#333333"
android:textSize="11sp"
tools:ignore="HardcodedText" />
......@@ -396,17 +420,16 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:src="@drawable/bg_selector_tool"
android:src="@mipmap/x_share"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="2.5dp"
android:text="Tool"
android:textColor="@color/color_tab_selector"
android:text="Share"
android:textColor="#333333"
android:textSize="11sp"
tools:ignore="HardcodedText" />
......
......@@ -23,8 +23,8 @@
<FrameLayout
android:id="@+id/fl_more"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
......@@ -44,8 +44,8 @@
<FrameLayout
android:id="@+id/fl_select"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
......@@ -67,8 +67,8 @@
<FrameLayout
android:id="@+id/fl_bookmark"
android:layout_width="45dp"
android:layout_height="45dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="5dp"
android:background="?android:attr/selectableItemBackground"
android:clickable="true"
......
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