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
0dcd6c05
Commit
0dcd6c05
authored
Sep 26, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
c6d34415
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
169 additions
and
4 deletions
+169
-4
WordActivity.kt
...se/pdfviewerscannerwhite/ui/document/word/WordActivity.kt
+119
-0
activity_word.xml
app/src/main/res/layout/activity_word.xml
+49
-0
left.png
app/src/main/res/mipmap-xxhdpi/left.png
+0
-0
right.png
app/src/main/res/mipmap-xxhdpi/right.png
+0
-0
PDFLib.java
...rc/main/java/com/cherry/lib/doc/office/fc/pdf/PDFLib.java
+0
-1
Spreadsheet.java
...ava/com/cherry/lib/doc/office/ss/control/Spreadsheet.java
+0
-1
WPFind.java
...ain/java/com/cherry/lib/doc/office/wp/control/WPFind.java
+0
-1
Word.java
.../main/java/com/cherry/lib/doc/office/wp/control/Word.java
+1
-1
No files found.
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/word/WordActivity.kt
View file @
0dcd6c05
...
@@ -7,19 +7,24 @@ import android.content.pm.ActivityInfo
...
@@ -7,19 +7,24 @@ import android.content.pm.ActivityInfo
import
android.view.View
import
android.view.View
import
android.view.animation.Animation
import
android.view.animation.Animation
import
android.view.animation.TranslateAnimation
import
android.view.animation.TranslateAnimation
import
android.view.inputmethod.EditorInfo
import
androidx.activity.addCallback
import
androidx.activity.addCallback
import
androidx.core.view.isVisible
import
androidx.core.view.isVisible
import
androidx.core.widget.addTextChangedListener
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.databinding.ActivityWordBinding
import
com.base.pdfviewerscannerwhite.databinding.ActivityWordBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentMore
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentMore
import
com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.hideKeyboard
import
com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.hideKeyboard
import
com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.showKeyBoard
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
com.cherry.lib.doc.bean.DocEngine
import
com.cherry.lib.doc.bean.DocEngine
import
com.cherry.lib.doc.office.constant.EventConstant.APP_PAGE_DOWN_ID
import
com.cherry.lib.doc.office.constant.EventConstant.APP_PAGE_DOWN_ID
import
com.cherry.lib.doc.office.constant.EventConstant.APP_PAGE_UP_ID
import
com.cherry.lib.doc.office.constant.EventConstant.APP_PAGE_UP_ID
import
com.cherry.lib.doc.office.wp.control.WPControl
import
com.cherry.lib.doc.office.wp.control.WPControl
import
com.cherry.lib.doc.office.wp.control.WPFind
import
com.cherry.lib.doc.util.Constant
import
com.cherry.lib.doc.util.Constant
import
java.io.File
class
WordActivity
:
BaseActivity
<
ActivityWordBinding
>()
{
class
WordActivity
:
BaseActivity
<
ActivityWordBinding
>()
{
...
@@ -35,6 +40,10 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
...
@@ -35,6 +40,10 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
override
fun
initView
()
{
override
fun
initView
()
{
initSpData
(
intent
)
initSpData
(
intent
)
val
file
=
File
(
wordDocumentBean
.
path
)
binding
.
tvName
.
text
=
file
.
name
binding
.
mDocView
.
getPageNumberAction
=
{
current
,
total
->
binding
.
mDocView
.
getPageNumberAction
=
{
current
,
total
->
LogEx
.
logDebug
(
TAG
,
"getPageNumberAction"
)
LogEx
.
logDebug
(
TAG
,
"getPageNumberAction"
)
if
(!
binding
.
tvPageCount
.
isVisible
)
{
if
(!
binding
.
tvPageCount
.
isVisible
)
{
...
@@ -49,8 +58,10 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
...
@@ -49,8 +58,10 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
if
(
isShowTopLayout
)
{
if
(
isShowTopLayout
)
{
LogEx
.
logDebug
(
TAG
,
"hide"
)
LogEx
.
logDebug
(
TAG
,
"hide"
)
hideTopLayout
()
hideTopLayout
()
hideBottomLayout
()
}
else
{
}
else
{
showTopLayout
()
showTopLayout
()
showBottomLayout
()
LogEx
.
logDebug
(
TAG
,
"show"
)
LogEx
.
logDebug
(
TAG
,
"show"
)
}
}
}
}
...
@@ -59,6 +70,10 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
...
@@ -59,6 +70,10 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
override
fun
initListener
()
{
override
fun
initListener
()
{
super
.
initListener
()
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
onBackPressedDispatcher
.
addCallback
{
if
(
isSearchUI
)
{
cancelSearchUI
()
return
@addCallback
}
finishToMain
()
finishToMain
()
}
}
binding
.
flFanhui
.
setOnClickListener
{
binding
.
flFanhui
.
setOnClickListener
{
...
@@ -78,6 +93,72 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
...
@@ -78,6 +93,72 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
// wpControl.actionEvent(APP_PAGE_UP_ID, null)
// wpControl.actionEvent(APP_PAGE_UP_ID, null)
}
}
}
}
binding
.
ivSearch
.
setOnClickListener
{
showSearchUI
()
}
binding
.
editSearch
.
addTextChangedListener
{
binding
.
mDocView
.
visibility
=
View
.
VISIBLE
binding
.
tvPageCount
.
visibility
=
View
.
VISIBLE
haveSearchResult
=
false
hideBottomLayout
()
val
wpControl
:
WPControl
=
(
binding
.
mDocView
.
iOffice
?.
control
?.
appControl
as
WPControl
)
(
wpControl
.
find
as
WPFind
).
resetSearchResult
()
}
binding
.
editSearch
.
setOnEditorActionListener
{
v
,
actionId
,
event
->
if
(
actionId
==
EditorInfo
.
IME_ACTION_DONE
)
{
// Perform your action here
searchWord
()
return
@setOnEditorActionListener
true
}
false
}
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
)
(
wpControl
.
find
as
WPFind
).
findForward
()
}
}
private
var
haveSearchResult
:
Boolean
=
false
private
fun
searchWord
()
{
val
text
=
binding
.
editSearch
.
text
if
(
text
.
isNullOrEmpty
())
{
return
}
val
wpControl
:
WPControl
=
(
binding
.
mDocView
.
iOffice
?.
control
?.
appControl
as
WPControl
)
val
flag
=
(
wpControl
.
find
as
WPFind
).
find
(
text
.
toString
())
haveSearchResult
=
flag
if
(
flag
)
{
hideKeyboard
(
binding
.
editSearch
)
showBottomLayout
()
}
else
{
binding
.
mDocView
.
visibility
=
View
.
GONE
}
}
private
var
isSearchUI
:
Boolean
=
false
private
fun
showSearchUI
()
{
isSearchUI
=
true
binding
.
ivXuanzhuan
.
visibility
=
View
.
GONE
binding
.
tvPageCount
.
visibility
=
View
.
GONE
binding
.
ivMore
.
visibility
=
View
.
GONE
binding
.
tvName
.
visibility
=
View
.
INVISIBLE
binding
.
editSearch
.
visibility
=
View
.
VISIBLE
showKeyBoard
(
binding
.
editSearch
)
}
private
fun
cancelSearchUI
()
{
isSearchUI
=
false
binding
.
editSearch
.
visibility
=
View
.
GONE
binding
.
ivXuanzhuan
.
visibility
=
View
.
VISIBLE
binding
.
ivMore
.
visibility
=
View
.
VISIBLE
binding
.
tvName
.
visibility
=
View
.
VISIBLE
}
}
private
fun
switchOrientation
()
{
private
fun
switchOrientation
()
{
...
@@ -90,6 +171,7 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
...
@@ -90,6 +171,7 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
private
var
isShowTopLayout
=
true
private
var
isShowTopLayout
=
true
private
var
isShowBottomLayout
=
false
private
fun
showTopLayout
()
{
private
fun
showTopLayout
()
{
if
(!
isShowTopLayout
)
{
if
(!
isShowTopLayout
)
{
isShowTopLayout
=
true
isShowTopLayout
=
true
...
@@ -109,6 +191,26 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
...
@@ -109,6 +191,26 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
}
}
}
}
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
()
{
private
fun
hideTopLayout
()
{
if
(
isShowTopLayout
)
{
if
(
isShowTopLayout
)
{
isShowTopLayout
=
false
isShowTopLayout
=
false
...
@@ -124,6 +226,23 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
...
@@ -124,6 +226,23 @@ class WordActivity : BaseActivity<ActivityWordBinding>() {
}
}
})
})
binding
.
vAnimatorTop
.
startAnimation
(
topAnim
)
binding
.
vAnimatorTop
.
startAnimation
(
topAnim
)
}
}
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
)
}
}
}
}
...
...
app/src/main/res/layout/activity_word.xml
View file @
0dcd6c05
...
@@ -142,4 +142,53 @@
...
@@ -142,4 +142,53 @@
app:layout_constraintTop_toBottomOf=
"@id/v_animator_top"
app:layout_constraintTop_toBottomOf=
"@id/v_animator_top"
tools:text=
"1/3"
/>
tools:text=
"1/3"
/>
<ViewAnimator
android:visibility=
"gone"
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"
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>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/mipmap-xxhdpi/left.png
0 → 100644
View file @
0dcd6c05
1.35 KB
app/src/main/res/mipmap-xxhdpi/right.png
0 → 100644
View file @
0dcd6c05
1.36 KB
library/src/main/java/com/cherry/lib/doc/office/fc/pdf/PDFLib.java
View file @
0dcd6c05
...
@@ -185,7 +185,6 @@ public class PDFLib
...
@@ -185,7 +185,6 @@ public class PDFLib
* search content is this PDF document
* search content is this PDF document
*
*
* @param pageIndex page index (base 0)
* @param pageIndex page index (base 0)
* @param str search content
* @return content is page location
* @return content is page location
*/
*/
public
synchronized
RectF
[]
searchContentSync
(
int
pageIndex
,
String
text
)
public
synchronized
RectF
[]
searchContentSync
(
int
pageIndex
,
String
text
)
...
...
library/src/main/java/com/cherry/lib/doc/office/ss/control/Spreadsheet.java
View file @
0dcd6c05
...
@@ -470,7 +470,6 @@ public class Spreadsheet extends LinearLayout implements IFind, IReaderListener,
...
@@ -470,7 +470,6 @@ public class Spreadsheet extends LinearLayout implements IFind, IReaderListener,
}
}
/**
/**
* @param findValue
* @return true: finded false: not finded
* @return true: finded false: not finded
*/
*/
public
boolean
find
(
String
value
)
{
public
boolean
find
(
String
value
)
{
...
...
library/src/main/java/com/cherry/lib/doc/office/wp/control/WPFind.java
View file @
0dcd6c05
...
@@ -47,7 +47,6 @@ public class WPFind implements IFind
...
@@ -47,7 +47,6 @@ public class WPFind implements IFind
/**
/**
*
*
* @param query
* @param query
* @param direction
* @return
* @return
*/
*/
public
boolean
find
(
String
query
)
public
boolean
find
(
String
query
)
...
...
library/src/main/java/com/cherry/lib/doc/office/wp/control/Word.java
View file @
0dcd6c05
...
@@ -1101,7 +1101,7 @@ public class Word extends LinearLayout implements IWord {
...
@@ -1101,7 +1101,7 @@ public class Word extends LinearLayout implements IWord {
// 绘制器
// 绘制器
private
Paint
paint
;
private
Paint
paint
;
//
//
p
rivate
WPFind
wpFind
;
p
ublic
WPFind
wpFind
;
//
//
private
Rectangle
visibleRect
;
private
Rectangle
visibleRect
;
}
}
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