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
25febf49
Commit
25febf49
authored
Sep 20, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
b74d2ed5
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
67 additions
and
12 deletions
+67
-12
PdfMergeActivity.kt
...pdfviewerscannerwhite/ui/document/pdf/PdfMergeActivity.kt
+29
-2
PdfMergeAdapter.kt
.../pdfviewerscannerwhite/ui/document/pdf/PdfMergeAdapter.kt
+17
-8
PdfMergeItemTouchHelperCallBack.kt
...rwhite/ui/document/pdf/PdfMergeItemTouchHelperCallBack.kt
+20
-2
item_pdf_merge.xml
app/src/main/res/layout/item_pdf_merge.xml
+1
-0
No files found.
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfMergeActivity.kt
View file @
25febf49
package
com.base.pdfviewerscannerwhite.ui.document.pdf
import
androidx.activity.addCallback
import
androidx.recyclerview.widget.ItemTouchHelper
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.databinding.ActivityPdfMergeBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.utils.LogEx
class
PdfMergeActivity
:
BaseActivity
<
ActivityPdfMergeBinding
>()
{
private
val
TAG
=
"PdfMergeActivity"
override
val
binding
:
ActivityPdfMergeBinding
by
lazy
{
ActivityPdfMergeBinding
.
inflate
(
layoutInflater
)
}
...
...
@@ -17,14 +20,38 @@ class PdfMergeActivity : BaseActivity<ActivityPdfMergeBinding>() {
initAdapter
()
}
override
fun
initListener
()
{
super
.
initListener
()
onBackPressedDispatcher
.
addCallback
{
finish
()
}
binding
.
flFanhui
.
setOnClickListener
{
onBackPressedDispatcher
.
onBackPressed
()
}
}
private
fun
initAdapter
()
{
val
callBack
=
PdfMergeItemTouchHelperCallBack
()
val
itemTouchHelper
=
ItemTouchHelper
(
callBack
)
itemTouchHelper
.
attachToRecyclerView
(
binding
.
rv
)
adapter
=
PdfMergeAdapter
(
itemTouchHelper
,
callBack
)
binding
.
rv
.
adapter
=
adapter
callBack
.
changeListOrder
=
{
olderPosition
,
newPosition
->
val
bean
=
mergePdfList
[
olderPosition
]
mergePdfList
.
remove
(
bean
)
mergePdfList
.
add
(
newPosition
,
bean
)
adapter
=
PdfMergeAdapter
(
callBack
)
binding
.
rv
.
adapter
=
adapter
mergePdfList
.
forEach
{
LogEx
.
logDebug
(
TAG
,
"mergePdfList ${it.path}"
)
}
adapter
.
items
.
forEach
{
LogEx
.
logDebug
(
TAG
,
"items ${it.path}"
)
}
// adapter.items = mergePdfList
}
mergePdfList
.
let
{
adapter
.
submitList
(
it
)
}
}
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfMergeAdapter.kt
View file @
25febf49
...
...
@@ -2,23 +2,24 @@ package com.base.pdfviewerscannerwhite.ui.document.pdf
import
android.annotation.SuppressLint
import
android.content.Context
import
android.view.GestureDetector
import
android.view.GestureDetector.SimpleOnGestureListener
import
android.view.MotionEvent
import
android.view.View
import
android.view.ViewGroup
import
androidx.recyclerview.widget.ItemTouchHelper
import
androidx.recyclerview.widget.RecyclerView
import
com.base.pdfviewerscannerwhite.R
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.databinding.ItemPdfMergeBinding
import
com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatSize
import
com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatTime4
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
com.base.pdfviewerscannerwhite.utils.XmlEx.inflate
import
com.chad.library.adapter4.BaseQuickAdapter
import
java.io.File
class
PdfMergeAdapter
(
val
itemTouchHelper
:
ItemTouchHelper
,
val
callBack
:
PdfMergeItemTouchHelperCallBack
)
:
BaseQuickAdapter
<
DocumentBean
,
PdfMergeAdapter
.
PdfMergeViewHolder
>()
{
...
...
@@ -35,15 +36,23 @@ class PdfMergeAdapter(
binding
.
tvName
.
text
=
file
.
name
binding
.
tvInfo
.
text
=
file
.
lastModified
().
toFormatTime4
()
+
" "
+
file
.
length
().
toFormatSize
()
binding
.
ivMove
.
setOnLongClickListener
{
callBack
.
enableLongPress
=
true
true
}
binding
.
ivMove
.
setOnTouchListener
(
object
:
View
.
OnTouchListener
{
override
fun
onTouch
(
v
:
View
?,
event
:
MotionEvent
?):
Boolean
{
if
(
event
?.
action
==
MotionEvent
.
ACTION_DOWN
)
{
callBack
.
enableLongPress
=
true
LogEx
.
logDebug
(
TAG
,
"ACTION_DOWN ${System.currentTimeMillis()}"
)
// 长按时启动拖动
itemTouchHelper
.
startDrag
(
holder
)
return
true
}
return
false
}
})
}
override
fun
onCreateViewHolder
(
context
:
Context
,
parent
:
ViewGroup
,
viewType
:
Int
):
PdfMergeViewHolder
{
return
PdfMergeViewHolder
(
R
.
layout
.
item_pdf_merge
.
inflate
(
parent
))
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfMergeItemTouchHelperCallBack.kt
View file @
25febf49
...
...
@@ -6,17 +6,22 @@ import com.base.pdfviewerscannerwhite.utils.LogEx
class
PdfMergeItemTouchHelperCallBack
:
ItemTouchHelper
.
Callback
()
{
var
changeListOrder
:
((
olderPosition
:
Int
,
newPosition
:
Int
)
->
Unit
)?
=
null
var
enableLongPress
:
Boolean
=
false
private
val
TAG
=
"PdfMergeItemTouchHelperCallBack"
override
fun
getMovementFlags
(
recyclerView
:
RecyclerView
,
viewHolder
:
RecyclerView
.
ViewHolder
):
Int
{
//支持上下左右拖动
//
ACTION_STATE_IDLE item默认滑动方向
//
ACTION_STATE_IDLE item默认滑动方向
return
makeMovementFlags
(
ItemTouchHelper
.
UP
or
ItemTouchHelper
.
DOWN
or
ItemTouchHelper
.
START
or
ItemTouchHelper
.
END
,
ItemTouchHelper
.
ACTION_STATE_IDLE
)
// 禁用默认的拖动和滑动
// return makeMovementFlags(0, 0);
}
/**
...
...
@@ -29,6 +34,8 @@ class PdfMergeItemTouchHelperCallBack : ItemTouchHelper.Callback() {
viewHolder
.
adapterPosition
,
target
.
adapterPosition
)
changeListOrder
?.
invoke
(
viewHolder
.
layoutPosition
,
target
.
layoutPosition
)
enableLongPress
=
false
return
true
}
...
...
@@ -37,8 +44,19 @@ class PdfMergeItemTouchHelperCallBack : ItemTouchHelper.Callback() {
override
fun
isLongPressDragEnabled
():
Boolean
{
LogEx
.
logDebug
(
TAG
,
"isLongPressDragEnabled $enableLongPress"
)
LogEx
.
logDebug
(
TAG
,
"isLongPressDragEnabled $enableLongPress
${System.currentTimeMillis()}
"
)
return
enableLongPress
}
override
fun
onSelectedChanged
(
viewHolder
:
RecyclerView
.
ViewHolder
?,
actionState
:
Int
)
{
super
.
onSelectedChanged
(
viewHolder
,
actionState
)
if
(
actionState
==
ItemTouchHelper
.
ACTION_STATE_IDLE
)
{
// 当没有动作时,取消拖动状态
viewHolder
?.
itemView
?.
setPressed
(
false
)
}
else
if
(
actionState
==
ItemTouchHelper
.
ACTION_STATE_SWIPE
)
{
// 当滑动时,设置拖动状态
viewHolder
?.
itemView
?.
setPressed
(
true
)
}
}
}
\ No newline at end of file
app/src/main/res/layout/item_pdf_merge.xml
View file @
25febf49
...
...
@@ -55,6 +55,7 @@
<LinearLayout
android:id=
"@+id/ll"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"15dp"
...
...
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