Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
P
PDF Viewer Scanner White
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
PDF Viewer Scanner White
Commits
42a8c17a
Commit
42a8c17a
authored
Sep 30, 2024
by
leichao.gao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
优化fragment 加载
parent
c933e439
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
44 additions
and
29 deletions
+44
-29
BaseFragment.kt
...ava/com/base/pdfviewerscannerwhite/helper/BaseFragment.kt
+1
-0
DocumentFragment.kt
...om/base/pdfviewerscannerwhite/ui/main/DocumentFragment.kt
+11
-0
DocumentPageFragment.kt
...ase/pdfviewerscannerwhite/ui/main/DocumentPageFragment.kt
+14
-4
MainActivity.kt
...va/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
+9
-5
MainPresenter.kt
...a/com/base/pdfviewerscannerwhite/ui/main/MainPresenter.kt
+9
-20
No files found.
app/src/main/java/com/base/pdfviewerscannerwhite/helper/BaseFragment.kt
View file @
42a8c17a
...
@@ -8,6 +8,7 @@ import androidx.fragment.app.Fragment
...
@@ -8,6 +8,7 @@ import androidx.fragment.app.Fragment
import
androidx.viewbinding.ViewBinding
import
androidx.viewbinding.ViewBinding
abstract
class
BaseFragment
<
T
:
ViewBinding
>
:
Fragment
()
{
abstract
class
BaseFragment
<
T
:
ViewBinding
>
:
Fragment
()
{
protected
var
isInitialized
=
false
protected
abstract
val
binding
:
T
protected
abstract
val
binding
:
T
override
fun
onCreateView
(
override
fun
onCreateView
(
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/DocumentFragment.kt
View file @
42a8c17a
package
com.base.pdfviewerscannerwhite.ui.main
package
com.base.pdfviewerscannerwhite.ui.main
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.util.Log
import
android.view.View
import
android.view.View
import
android.view.inputmethod.EditorInfo
import
android.view.inputmethod.EditorInfo
import
androidx.core.content.ContextCompat
import
androidx.core.content.ContextCompat
...
@@ -55,6 +56,7 @@ class DocumentFragment(
...
@@ -55,6 +56,7 @@ class DocumentFragment(
var
uiMode
=
UI_MODE_NORMAL
var
uiMode
=
UI_MODE_NORMAL
@SuppressLint
(
"SetTextI18n"
)
@SuppressLint
(
"SetTextI18n"
)
override
fun
setView
()
{
override
fun
setView
()
{
when
(
dataType
)
{
when
(
dataType
)
{
...
@@ -75,6 +77,15 @@ class DocumentFragment(
...
@@ -75,6 +77,15 @@ class DocumentFragment(
initPageViewer
()
initPageViewer
()
initTabLayout
()
initTabLayout
()
initSearchAdapter
()
initSearchAdapter
()
isInitialized
=
true
}
override
fun
onHiddenChanged
(
hidden
:
Boolean
)
{
super
.
onHiddenChanged
(
hidden
)
if
(
hidden
){
return
}
currentPage
.
refreshData
()
}
}
private
fun
initSearchAdapter
()
{
private
fun
initSearchAdapter
()
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/DocumentPageFragment.kt
View file @
42a8c17a
...
@@ -2,6 +2,7 @@ package com.base.pdfviewerscannerwhite.ui.main
...
@@ -2,6 +2,7 @@ package com.base.pdfviewerscannerwhite.ui.main
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.content.Intent
import
android.content.Intent
import
android.util.Log
import
androidx.core.view.isVisible
import
androidx.core.view.isVisible
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.base.pdfviewerscannerwhite.bean.ConstObject
import
com.base.pdfviewerscannerwhite.bean.ConstObject
...
@@ -48,23 +49,29 @@ class DocumentPageFragment() : BaseFragment<FragmentDocumentPageBinding>(), Docu
...
@@ -48,23 +49,29 @@ class DocumentPageFragment() : BaseFragment<FragmentDocumentPageBinding>(), Docu
override
fun
setView
()
{
override
fun
setView
()
{
documentPresenter
=
DocumentPresenter
(
requireContext
(),
this
,
type
,
lifecycleScope
)
documentPresenter
=
DocumentPresenter
(
requireContext
(),
this
,
type
,
lifecycleScope
)
initAdapter
()
initAdapter
()
isInitialized
=
true
Log
.
d
(
"glc"
,
"我被调用了setView"
)
}
}
override
fun
onResume
()
{
override
fun
onResume
()
{
super
.
onResume
()
super
.
onResume
()
refreshData
()
refreshData
()
}
}
fun
refreshData
()
{
fun
refreshData
()
{
if
(
isVisible
)
{
if
(
isInitialized
&&
!
isHidden
)
{
val
list
=
(
requireActivity
()
as
MainActivity
).
mainPresenter
.
getDataByType
(
type
,
dataType
)
val
list
=
(
requireActivity
()
as
MainActivity
).
mainPresenter
.
getDataByType
(
type
,
dataType
)
val
sortList
=
sortByMode
(
list
)
val
sortList
=
sortByMode
(
list
)
sortList
.
forEach
{
sortList
.
forEach
{
LogEx
.
logDebug
(
TAG
,
"sortByMode ${File(it.path).lastModified().toFormatTime3()}"
)
LogEx
.
logDebug
(
TAG
,
"sortByMode ${File(it.path).lastModified().toFormatTime3()}"
)
}
}
adapter
.
submitList
(
sortList
)
adapter
.
submitList
(
sortList
)
binding
.
llEmpty
.
isVisible
=
list
.
isEmpty
()
binding
.
llEmpty
.
isVisible
=
list
.
isEmpty
()
Log
.
d
(
"glc"
,
"加载数据成功:"
+
type
+
" list:"
+
list
.
size
)
}
else
{
Log
.
d
(
"glc"
,
"加载数据失败:"
+
type
)
}
}
}
}
...
@@ -180,7 +187,10 @@ class DocumentPageFragment() : BaseFragment<FragmentDocumentPageBinding>(), Docu
...
@@ -180,7 +187,10 @@ class DocumentPageFragment() : BaseFragment<FragmentDocumentPageBinding>(), Docu
fun
getSearchItems
(
search
:
String
):
List
<
DocumentBean
>
{
fun
getSearchItems
(
search
:
String
):
List
<
DocumentBean
>
{
if
(
isVisible
)
{
if
(
isVisible
)
{
return
adapter
.
items
.
filter
{
File
(
it
.
path
).
name
.
lowercase
(
Locale
.
ENGLISH
).
contains
(
search
.
lowercase
(
Locale
.
ENGLISH
))
}
return
adapter
.
items
.
filter
{
File
(
it
.
path
).
name
.
lowercase
(
Locale
.
ENGLISH
)
.
contains
(
search
.
lowercase
(
Locale
.
ENGLISH
))
}
}
}
return
listOf
()
return
listOf
()
}
}
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
View file @
42a8c17a
...
@@ -4,6 +4,7 @@ import android.app.Activity
...
@@ -4,6 +4,7 @@ import android.app.Activity
import
android.content.Intent
import
android.content.Intent
import
android.net.Uri
import
android.net.Uri
import
android.os.Bundle
import
android.os.Bundle
import
android.util.Log
import
android.view.View
import
android.view.View
import
androidx.activity.OnBackPressedCallback
import
androidx.activity.OnBackPressedCallback
import
androidx.fragment.app.Fragment
import
androidx.fragment.app.Fragment
...
@@ -56,17 +57,19 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -56,17 +57,19 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
LogEx
.
logDebug
(
TAG
,
"initView"
)
LogEx
.
logDebug
(
TAG
,
"initView"
)
mainPresenter
=
MainPresenter
(
this
,
this
,
lifecycleScope
)
mainPresenter
=
MainPresenter
(
this
,
this
,
lifecycleScope
)
mainPresenter
.
initScannerLauncher
(
this
)
mainPresenter
.
initScannerLauncher
(
this
)
showStoragePermission
(
launcher
,
allowAction
=
{
// mainPresenter.initAllDocumentData()
Log
.
d
(
"glc"
,
"我被调用了B"
)
})
}
}
override
fun
onResume
()
{
override
fun
onResume
()
{
super
.
onResume
()
super
.
onResume
()
if
(
checkStorePermission
()
&&
needRefresh
)
{
if
(
checkStorePermission
()
&&
needRefresh
)
{
mainPresenter
.
initAllDocumentData
()
mainPresenter
.
initAllDocumentData
()
Log
.
d
(
"glc"
,
"我被调用了A"
)
}
else
{
}
else
{
showStoragePermission
(
launcher
,
allowAction
=
{
mainPresenter
.
initAllDocumentData
()
})
}
}
}
}
...
@@ -164,6 +167,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -164,6 +167,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
show
(
toolFragment
)
show
(
toolFragment
)
commit
()
commit
()
}
}
currentFragment
.
userVisibleHint
=
true
currentFragment
=
toolFragment
currentFragment
=
toolFragment
isToolAdd
=
true
isToolAdd
=
true
}
}
...
@@ -239,7 +243,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
...
@@ -239,7 +243,7 @@ class MainActivity : BaseActivity<ActivityMain2Binding>(), MainView {
val
newFile
=
File
(
mainPresenter
.
getDocumentAppDir
(),
"$it.pdf"
)
val
newFile
=
File
(
mainPresenter
.
getDocumentAppDir
(),
"$it.pdf"
)
mainPresenter
.
copyFile
(
file
,
newFile
)
mainPresenter
.
copyFile
(
file
,
newFile
)
this
.
updateMediaStore
()
this
.
updateMediaStore
()
refreshPageList
()
//
refreshPageList()
}
}
}
}
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainPresenter.kt
View file @
42a8c17a
...
@@ -5,6 +5,7 @@ import android.content.Context
...
@@ -5,6 +5,7 @@ import android.content.Context
import
android.content.IntentSender
import
android.content.IntentSender
import
android.net.Uri
import
android.net.Uri
import
android.os.Environment
import
android.os.Environment
import
android.util.Log
import
androidx.activity.result.ActivityResultLauncher
import
androidx.activity.result.ActivityResultLauncher
import
androidx.activity.result.IntentSenderRequest
import
androidx.activity.result.IntentSenderRequest
import
androidx.activity.result.contract.ActivityResultContracts
import
androidx.activity.result.contract.ActivityResultContracts
...
@@ -57,12 +58,7 @@ class MainPresenter(
...
@@ -57,12 +58,7 @@ class MainPresenter(
private
lateinit
var
scannerLauncher
:
ActivityResultLauncher
<
IntentSenderRequest
>
private
lateinit
var
scannerLauncher
:
ActivityResultLauncher
<
IntentSenderRequest
>
fun
initAllDocumentData
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
fun
initAllDocumentData
()
=
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
pdfDocuments
.
clear
()
Log
.
d
(
"glc"
,
"pdfs 清理前:"
+
pdfDocuments
.
size
)
wordDocuments
.
clear
()
excelDocuments
.
clear
()
pptDocuments
.
clear
()
context
.
upDateDemoStore
()
context
.
upDateDemoStore
()
if
(!
ConstObject
.
haveSaveDemo
)
{
if
(!
ConstObject
.
haveSaveDemo
)
{
context
.
saveAssetsFile
()
context
.
saveAssetsFile
()
...
@@ -70,22 +66,15 @@ class MainPresenter(
...
@@ -70,22 +66,15 @@ class MainPresenter(
}
}
val
pdfs
=
initAllPdfData
()
val
pdfs
=
initAllPdfData
()
pdfs
.
map
{
it
.
state
=
PdfBoxUtils
.
checkPdfEncryption
(
it
.
path
)
}
pdfs
.
map
{
it
.
state
=
PdfBoxUtils
.
checkPdfEncryption
(
it
.
path
)
}
pdfDocuments
.
clear
()
wordDocuments
.
clear
()
excelDocuments
.
clear
()
pptDocuments
.
clear
()
Log
.
d
(
"glc"
,
"pdfs:"
+
pdfs
.
size
)
pdfDocuments
.
addAll
(
pdfs
)
pdfDocuments
.
addAll
(
pdfs
)
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
Log
.
d
(
"glc"
,
"添加了 pdfDocuments:"
+
pdfDocuments
.
size
)
mainView
.
refreshPageList
()
}
wordDocuments
.
addAll
(
initAllWordData
())
wordDocuments
.
addAll
(
initAllWordData
())
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
mainView
.
refreshPageList
()
}
excelDocuments
.
addAll
(
initAllExcelData
())
excelDocuments
.
addAll
(
initAllExcelData
())
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
mainView
.
refreshPageList
()
}
pptDocuments
.
addAll
(
initAllPptData
())
pptDocuments
.
addAll
(
initAllPptData
())
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
mainView
.
refreshPageList
()
mainView
.
refreshPageList
()
...
@@ -96,7 +85,7 @@ class MainPresenter(
...
@@ -96,7 +85,7 @@ class MainPresenter(
fun
getDataByType
(
documentType
:
String
,
dataType
:
String
):
List
<
DocumentBean
>
{
fun
getDataByType
(
documentType
:
String
,
dataType
:
String
):
List
<
DocumentBean
>
{
val
bookmarkList
=
SpStringUtils
.
getSpStringList
(
SpStringUtils
.
BOOKMARK_KEY
)
val
bookmarkList
=
SpStringUtils
.
getSpStringList
(
SpStringUtils
.
BOOKMARK_KEY
)
Log
.
d
(
"glc"
,
"pdfDocuments:"
+
pdfDocuments
.
size
)
when
(
documentType
)
{
when
(
documentType
)
{
TYPE_PDF
->
{
TYPE_PDF
->
{
pdfDocuments
.
forEach
{
pdfDocuments
.
forEach
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment