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
876ba615
Commit
876ba615
authored
Sep 26, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
c0a7d9d7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
184 additions
and
10 deletions
+184
-10
ExcelActivity.kt
.../pdfviewerscannerwhite/ui/document/excel/ExcelActivity.kt
+115
-7
WordActivity.kt
...se/pdfviewerscannerwhite/ui/document/word/WordActivity.kt
+2
-1
DocumentFragment.kt
...om/base/pdfviewerscannerwhite/ui/main/DocumentFragment.kt
+1
-1
DialogView.kt
...java/com/base/pdfviewerscannerwhite/ui/view/DialogView.kt
+5
-0
IntentShareUtils.kt
.../com/base/pdfviewerscannerwhite/utils/IntentShareUtils.kt
+11
-0
activity_excel.xml
app/src/main/res/layout/activity_excel.xml
+50
-0
dialog_document_detail.xml
app/src/main/res/layout/dialog_document_detail.xml
+0
-1
No files found.
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/excel/ExcelActivity.kt
View file @
876ba615
...
...
@@ -7,14 +7,19 @@ import android.content.pm.ActivityInfo
import
android.view.View
import
android.view.animation.Animation
import
android.view.animation.TranslateAnimation
import
android.view.inputmethod.EditorInfo
import
androidx.activity.addCallback
import
androidx.core.widget.addTextChangedListener
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.databinding.ActivityExcelBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentMore
import
com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.hideKeyboard
import
com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.showKeyBoard
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
com.cherry.lib.doc.bean.DocEngine
import
com.cherry.lib.doc.office.ss.control.SSControl
import
com.cherry.lib.doc.office.ss.control.Spreadsheet
import
com.cherry.lib.doc.util.Constant
import
java.io.File
...
...
@@ -27,7 +32,7 @@ class ExcelActivity : BaseActivity<ActivityExcelBinding>() {
}
companion
object
{
var
excelDocumentBean
:
DocumentBean
=
DocumentBean
()
var
excelDocumentBean
:
DocumentBean
=
DocumentBean
()
fun
launchDocViewer
(
activity
:
Activity
,
docSourceType
:
Int
,
...
...
@@ -57,6 +62,10 @@ class ExcelActivity : BaseActivity<ActivityExcelBinding>() {
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
if
(
isSearchUI
)
{
cancelSearchUI
()
return
@addCallback
}
finishToMain
()
}
binding
.
flFanhui
.
setOnClickListener
{
...
...
@@ -74,18 +83,62 @@ class ExcelActivity : BaseActivity<ActivityExcelBinding>() {
if
(
isShowTopLayout
)
{
LogEx
.
logDebug
(
TAG
,
"hide"
)
hideTopLayout
()
hideBottomLayout
()
}
else
{
showTopLayout
()
showBottomLayout
()
LogEx
.
logDebug
(
TAG
,
"show"
)
}
}
// lifecycleScope.launch {
// delay(5000)
// val ssControl = binding.mDocView.iOffice?.control?.appControl as SSControl
// toast("转换")
// binding.mDocView.iOffice?.control?.sysKit
// }
binding
.
ivSearch
.
setOnClickListener
{
showSearchUI
()
}
binding
.
editSearch
.
addTextChangedListener
{
binding
.
mDocView
.
visibility
=
View
.
VISIBLE
haveSearchResult
=
false
hideBottomLayout
()
getSpreadsheet
().
resetSearchResult
()
}
binding
.
editSearch
.
setOnEditorActionListener
{
v
,
actionId
,
event
->
if
(
actionId
==
EditorInfo
.
IME_ACTION_DONE
)
{
// Perform your action here
searchExcel
()
return
@setOnEditorActionListener
true
}
false
}
binding
.
flPre
.
setOnClickListener
{
getSpreadsheet
().
findBackward
()
}
binding
.
flNext
.
setOnClickListener
{
getSpreadsheet
().
findForward
()
}
}
private
fun
getSpreadsheet
():
Spreadsheet
{
val
ssControl
:
SSControl
=
(
binding
.
mDocView
.
iOffice
?.
control
?.
appControl
as
SSControl
)
return
(
ssControl
.
find
as
Spreadsheet
)
}
private
fun
searchExcel
()
{
val
text
=
binding
.
editSearch
.
text
if
(
text
.
isNullOrEmpty
())
{
return
}
val
flag
=
getSpreadsheet
().
find
(
text
.
toString
())
haveSearchResult
=
flag
if
(
flag
)
{
hideKeyboard
(
binding
.
editSearch
)
showBottomLayout
()
}
else
{
binding
.
mDocView
.
visibility
=
View
.
GONE
}
}
private
var
haveSearchResult
:
Boolean
=
false
private
fun
switchOrientation
()
{
requestedOrientation
=
if
(
requestedOrientation
==
ActivityInfo
.
SCREEN_ORIENTATION_PORTRAIT
)
{
...
...
@@ -96,6 +149,7 @@ class ExcelActivity : BaseActivity<ActivityExcelBinding>() {
}
private
var
isShowTopLayout
=
true
private
var
isSearchUI
:
Boolean
=
false
private
fun
showTopLayout
()
{
if
(!
isShowTopLayout
)
{
isShowTopLayout
=
true
...
...
@@ -115,6 +169,25 @@ class ExcelActivity : BaseActivity<ActivityExcelBinding>() {
}
}
private
fun
showBottomLayout
()
{
if
(
isSearchUI
&&
haveSearchResult
)
{
val
bottomAnim
:
Animation
=
TranslateAnimation
(
0f
,
0f
,
binding
.
vAnimatorBottom
.
height
.
toFloat
(),
0f
)
bottomAnim
.
duration
=
200
bottomAnim
.
setAnimationListener
(
object
:
Animation
.
AnimationListener
{
override
fun
onAnimationStart
(
animation
:
Animation
)
{
binding
.
vAnimatorBottom
.
visibility
=
View
.
VISIBLE
}
override
fun
onAnimationRepeat
(
animation
:
Animation
)
{}
override
fun
onAnimationEnd
(
animation
:
Animation
)
{
}
})
binding
.
vAnimatorBottom
.
startAnimation
(
bottomAnim
)
}
}
private
fun
hideTopLayout
()
{
if
(
isShowTopLayout
)
{
isShowTopLayout
=
false
...
...
@@ -133,6 +206,41 @@ class ExcelActivity : BaseActivity<ActivityExcelBinding>() {
}
}
private
fun
hideBottomLayout
()
{
if
(
isSearchUI
)
{
val
bottomAnim
:
Animation
=
TranslateAnimation
(
0f
,
0f
,
0f
,
binding
.
vAnimatorBottom
.
height
.
toFloat
())
bottomAnim
.
duration
=
200
bottomAnim
.
setAnimationListener
(
object
:
Animation
.
AnimationListener
{
override
fun
onAnimationStart
(
animation
:
Animation
)
{}
override
fun
onAnimationRepeat
(
animation
:
Animation
)
{}
override
fun
onAnimationEnd
(
animation
:
Animation
)
{
binding
.
vAnimatorBottom
.
visibility
=
View
.
GONE
}
})
binding
.
vAnimatorBottom
.
startAnimation
(
bottomAnim
)
}
}
private
fun
showSearchUI
()
{
isSearchUI
=
true
binding
.
ivXuanzhuan
.
visibility
=
View
.
GONE
binding
.
ivMore
.
visibility
=
View
.
GONE
binding
.
tvName
.
visibility
=
View
.
INVISIBLE
binding
.
editSearch
.
visibility
=
View
.
VISIBLE
showKeyBoard
(
binding
.
editSearch
)
}
private
fun
cancelSearchUI
()
{
hideBottomLayout
()
isSearchUI
=
false
binding
.
editSearch
.
visibility
=
View
.
GONE
binding
.
ivXuanzhuan
.
visibility
=
View
.
VISIBLE
binding
.
ivMore
.
visibility
=
View
.
VISIBLE
binding
.
tvName
.
visibility
=
View
.
VISIBLE
binding
.
mDocView
.
visibility
=
View
.
VISIBLE
hideKeyboard
(
binding
.
editSearch
)
}
private
var
docSourceType
=
0
private
var
fileType
=
-
1
private
var
engine
:
Int
=
DocEngine
.
INTERNAL
.
value
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/word/WordActivity.kt
View file @
876ba615
...
...
@@ -116,7 +116,6 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
binding
.
flPre
.
setOnClickListener
{
val
wpControl
:
WPControl
=
(
binding
.
mDocView
.
iOffice
?.
control
?.
appControl
as
WPControl
)
(
wpControl
.
find
as
WPFind
).
findBackward
()
hideBottomLayout
()
}
binding
.
flNext
.
setOnClickListener
{
val
wpControl
:
WPControl
=
(
binding
.
mDocView
.
iOffice
?.
control
?.
appControl
as
WPControl
)
...
...
@@ -154,6 +153,7 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
}
private
fun
cancelSearchUI
()
{
hideBottomLayout
()
isSearchUI
=
false
binding
.
editSearch
.
visibility
=
View
.
GONE
binding
.
ivXuanzhuan
.
visibility
=
View
.
VISIBLE
...
...
@@ -161,6 +161,7 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
binding
.
tvName
.
visibility
=
View
.
VISIBLE
binding
.
mDocView
.
visibility
=
View
.
VISIBLE
binding
.
tvPageCount
.
visibility
=
View
.
VISIBLE
hideKeyboard
(
binding
.
editSearch
)
}
private
fun
switchOrientation
()
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/DocumentFragment.kt
View file @
876ba615
...
...
@@ -85,7 +85,7 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>(), DocumentView
WordActivity
.
launchDocViewer
(
requireActivity
(),
3
,
item
.
path
,
-
1
,
100
)
}
if
(
type
==
TYPE_EXCEL
)
{
ExcelActivity
.
excelDocumentBean
ExcelActivity
.
excelDocumentBean
=
item
ExcelActivity
.
launchDocViewer
(
requireActivity
(),
3
,
item
.
path
,
-
1
,
100
)
}
if
(
type
==
TYPE_PPT
)
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/view/DialogView.kt
View file @
876ba615
...
...
@@ -31,6 +31,7 @@ import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfBoxUtils
import
com.base.pdfviewerscannerwhite.ui.main.DocumentView
import
com.base.pdfviewerscannerwhite.ui.document.pdf.PdfView
import
com.base.pdfviewerscannerwhite.utils.ActivityLauncher
import
com.base.pdfviewerscannerwhite.utils.IntentShareUtils.shareExcelIntent
import
com.base.pdfviewerscannerwhite.utils.IntentShareUtils.sharePdfIntent
import
com.base.pdfviewerscannerwhite.utils.IntentShareUtils.sharePdfPrintIntent
import
com.base.pdfviewerscannerwhite.utils.IntentShareUtils.sharePptIntent
...
...
@@ -306,6 +307,10 @@ object DialogView {
intent
=
shareWordIntent
(
uri
)
desc
=
"Share Word"
}
if
(
documentBean
.
type
==
TYPE_EXCEL
)
{
intent
=
shareExcelIntent
(
uri
)
desc
=
"Share Excel"
}
intent
?.
let
{
startActivity
(
Intent
.
createChooser
(
it
,
desc
))
}
}
binding
.
llJump
.
setOnClickListener
{
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/utils/IntentShareUtils.kt
View file @
876ba615
...
...
@@ -35,6 +35,17 @@ object IntentShareUtils {
return
shareIntent
}
fun
shareExcelIntent
(
uri
:
Uri
):
Intent
{
val
shareIntent
=
Intent
().
apply
{
action
=
Intent
.
ACTION_SEND
putExtra
(
Intent
.
EXTRA_STREAM
,
uri
)
type
=
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
addFlags
(
Intent
.
FLAG_GRANT_READ_URI_PERMISSION
)
// 授权临时权限
}
return
shareIntent
}
fun
sharePdfPrintIntent
(
uri
:
Uri
):
Intent
{
// 创建打印的 Intent
val
intent
=
Intent
(
Intent
.
ACTION_SEND
)
...
...
app/src/main/res/layout/activity_excel.xml
View file @
876ba615
...
...
@@ -122,4 +122,54 @@
app:layout_constraintTop_toBottomOf=
"@id/v_animator_top"
/>
<ViewAnimator
android:id=
"@+id/v_animator_bottom"
android:layout_width=
"match_parent"
android:layout_height=
"@dimen/dp_50"
android:layout_alignParentBottom=
"true"
android:background=
"@color/white"
android:visibility=
"gone"
app:layout_constraintBottom_toBottomOf=
"parent"
>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:ignore=
"UselessParent"
>
<FrameLayout
android:id=
"@+id/fl_pre"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|start"
android:layout_marginStart=
"20dp"
android:padding=
"10dp"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/left"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<FrameLayout
android:id=
"@+id/fl_next"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"20dp"
android:padding=
"10dp"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/right"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
</FrameLayout>
</ViewAnimator>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/dialog_document_detail.xml
View file @
876ba615
...
...
@@ -104,7 +104,6 @@
android:ellipsize=
"end"
android:includeFontPadding=
"false"
android:maxLines=
"2"
android:singleLine=
"true"
android:textColor=
"#9A9A9A"
android:textSize=
"14sp"
tools:text=
"/data/user/0/com.pdfviewer.scanner/files/ demo/DEMO.pdf"
/>
...
...
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