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
b74d2ed5
Commit
b74d2ed5
authored
Sep 20, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
3d1596c7
Hide whitespace changes
Inline
Side-by-side
Showing
36 changed files
with
1048 additions
and
34 deletions
+1048
-34
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+3
-3
ConstObject.kt
...n/java/com/base/pdfviewerscannerwhite/bean/ConstObject.kt
+10
-8
DocumentAdapter.kt
.../base/pdfviewerscannerwhite/ui/adapter/DocumentAdapter.kt
+3
-3
PdfMergeActivity.kt
...pdfviewerscannerwhite/ui/document/pdf/PdfMergeActivity.kt
+19
-1
PdfMergeAdapter.kt
.../pdfviewerscannerwhite/ui/document/pdf/PdfMergeAdapter.kt
+49
-0
PdfMergeItemTouchHelperCallBack.kt
...rwhite/ui/document/pdf/PdfMergeItemTouchHelperCallBack.kt
+44
-0
PdfPresenter.kt
...ase/pdfviewerscannerwhite/ui/document/pdf/PdfPresenter.kt
+0
-5
PdfSelectActivity.kt
...dfviewerscannerwhite/ui/document/pdf/PdfSelectActivity.kt
+11
-0
MainActivity.kt
...va/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
+14
-1
SplashActivity.kt
...om/base/pdfviewerscannerwhite/ui/splash/SplashActivity.kt
+95
-2
SplashPresenter.kt
...m/base/pdfviewerscannerwhite/ui/splash/SplashPresenter.kt
+36
-0
SplashView.kt
...va/com/base/pdfviewerscannerwhite/ui/splash/SplashView.kt
+3
-2
DialogView.kt
...java/com/base/pdfviewerscannerwhite/ui/view/DialogView.kt
+53
-1
RateDialog.kt
...java/com/base/pdfviewerscannerwhite/ui/view/RateDialog.kt
+92
-0
KotlinExt.kt
...in/java/com/base/pdfviewerscannerwhite/utils/KotlinExt.kt
+4
-0
splash_bp.xml
app/src/main/res/drawable/splash_bp.xml
+5
-6
activity_pdf_merge.xml
app/src/main/res/layout/activity_pdf_merge.xml
+85
-0
activity_pdf_select.xml
app/src/main/res/layout/activity_pdf_select.xml
+1
-1
activity_splash.xml
app/src/main/res/layout/activity_splash.xml
+54
-0
dialog_common_tip.xml
app/src/main/res/layout/dialog_common_tip.xml
+107
-0
dialog_pdf_detail.xml
app/src/main/res/layout/dialog_pdf_detail.xml
+1
-0
dialog_pdf_password.xml
app/src/main/res/layout/dialog_pdf_password.xml
+127
-0
dialog_rate_star.xml
app/src/main/res/layout/dialog_rate_star.xml
+140
-0
fragment_document.xml
app/src/main/res/layout/fragment_document.xml
+1
-1
item_document.xml
app/src/main/res/layout/item_document.xml
+0
-0
item_pdf_merge.xml
app/src/main/res/layout/item_pdf_merge.xml
+91
-0
guanbi.png
app/src/main/res/mipmap-xxhdpi/guanbi.png
+0
-0
guanbi_dialog.png
app/src/main/res/mipmap-xxhdpi/guanbi_dialog.png
+0
-0
icon_move.png
app/src/main/res/mipmap-xxhdpi/icon_move.png
+0
-0
logo.png
app/src/main/res/mipmap-xxhdpi/logo.png
+0
-0
pingjiatu.png
app/src/main/res/mipmap-xxhdpi/pingjiatu.png
+0
-0
qdylogo.png
app/src/main/res/mipmap-xxhdpi/qdylogo.png
+0
-0
suo.png
app/src/main/res/mipmap-xxhdpi/suo.png
+0
-0
weishuru.png
app/src/main/res/mipmap-xxhdpi/weishuru.png
+0
-0
xing_n.png
app/src/main/res/mipmap-xxhdpi/xing_n.png
+0
-0
xing_s.png
app/src/main/res/mipmap-xxhdpi/xing_s.png
+0
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
b74d2ed5
...
...
@@ -11,15 +11,14 @@
android:allowBackup=
"true"
android:dataExtractionRules=
"@xml/data_extraction_rules"
android:fullBackupContent=
"@xml/backup_rules"
android:icon=
"@mipmap/
ic_launcher
"
android:icon=
"@mipmap/
logo
"
android:label=
"@string/app_name"
android:requestLegacyExternalStorage=
"true"
android:roundIcon=
"@mipmap/
ic_launcher_round
"
android:roundIcon=
"@mipmap/
logo
"
android:supportsRtl=
"true"
android:theme=
"@style/Theme.PDFViewerScannerWhite"
tools:targetApi=
"34"
>
<meta-data
android:name=
"com.google.android.gms.version"
android:value=
"@integer/google_play_services_version"
/>
...
...
@@ -32,6 +31,7 @@
android:exported=
"true"
android:launchMode=
"singleTask"
android:screenOrientation=
"portrait"
android:theme=
"@style/splash.theme"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
>
<intent-filter>
<action
android:name=
"android.intent.action.MAIN"
/>
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/bean/ConstObject.kt
View file @
b74d2ed5
package
com.base.pdfviewerscannerwhite.bean
import
com.base.pdfviewerscannerwhite.utils.AppPreferences
object
ConstObject
{
...
...
@@ -17,14 +19,14 @@ object ConstObject {
const
val
MIME_TYPE_APK
=
"application/vnd.android.package-archive"
const
val
MIME_TYPE_ZIP
=
"application/zip"
//
var ifAgreePrivacy = false
//
get() {
//
return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field)
//
}
//
set(value) {
//
field = value
//
AppPreferences.getInstance().put("ifAgreePrivacy", value, true)
//
}
var
ifAgreePrivacy
=
false
get
()
{
return
AppPreferences
.
getInstance
().
getBoolean
(
"ifAgreePrivacy"
,
field
)
}
set
(
value
)
{
field
=
value
AppPreferences
.
getInstance
().
put
(
"ifAgreePrivacy"
,
value
,
true
)
}
//
// var searchEngineSp = GOOGLE
// get() {
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/adapter/DocumentAdapter.kt
View file @
b74d2ed5
...
...
@@ -8,7 +8,7 @@ import androidx.recyclerview.widget.RecyclerView.ViewHolder
import
com.base.pdfviewerscannerwhite.R
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_PDF
import
com.base.pdfviewerscannerwhite.databinding.ItemDocmentBinding
import
com.base.pdfviewerscannerwhite.databinding.ItemDoc
u
mentBinding
import
com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatSize
import
com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatTime
import
com.base.pdfviewerscannerwhite.utils.XmlEx.inflate
...
...
@@ -27,7 +27,7 @@ class DocumentAdapter : BaseQuickAdapter<DocumentBean, DocumentAdapter.DocumentV
@SuppressLint
(
"SetTextI18n"
)
override
fun
onBindViewHolder
(
holder
:
DocumentViewHolder
,
position
:
Int
,
item
:
DocumentBean
?)
{
if
(
item
==
null
)
return
val
binding
=
ItemDocmentBinding
.
bind
(
holder
.
itemView
)
val
binding
=
ItemDoc
u
mentBinding
.
bind
(
holder
.
itemView
)
if
(
item
.
type
==
TYPE_PDF
)
{
binding
.
iv
.
setImageResource
(
R
.
mipmap
.
h_pdfiocn
)
}
...
...
@@ -77,6 +77,6 @@ class DocumentAdapter : BaseQuickAdapter<DocumentBean, DocumentAdapter.DocumentV
}
override
fun
onCreateViewHolder
(
context
:
Context
,
parent
:
ViewGroup
,
viewType
:
Int
):
DocumentViewHolder
{
return
DocumentViewHolder
(
R
.
layout
.
item_docment
.
inflate
(
parent
))
return
DocumentViewHolder
(
R
.
layout
.
item_doc
u
ment
.
inflate
(
parent
))
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfMergeActivity.kt
View file @
b74d2ed5
package
com.base.pdfviewerscannerwhite.ui.document.pdf
import
androidx.recyclerview.widget.ItemTouchHelper
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.databinding.ActivityPdfMergeBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
class
PdfMergeActivity
:
BaseActivity
<
ActivityPdfMergeBinding
>()
{
override
val
binding
:
ActivityPdfMergeBinding
by
lazy
{
ActivityPdfMergeBinding
.
inflate
(
layoutInflater
)
}
private
lateinit
var
adapter
:
PdfMergeAdapter
override
fun
initView
()
{
initAdapter
()
}
private
fun
initAdapter
()
{
val
callBack
=
PdfMergeItemTouchHelperCallBack
()
val
itemTouchHelper
=
ItemTouchHelper
(
callBack
)
itemTouchHelper
.
attachToRecyclerView
(
binding
.
rv
)
adapter
=
PdfMergeAdapter
(
callBack
)
binding
.
rv
.
adapter
=
adapter
mergePdfList
.
let
{
adapter
.
submitList
(
it
)
}
}
companion
object
{
val
mergePdfList
:
ArrayList
<
DocumentBean
>
=
arrayListOf
()
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfMergeAdapter.kt
0 → 100644
View file @
b74d2ed5
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.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.XmlEx.inflate
import
com.chad.library.adapter4.BaseQuickAdapter
import
java.io.File
class
PdfMergeAdapter
(
val
callBack
:
PdfMergeItemTouchHelperCallBack
)
:
BaseQuickAdapter
<
DocumentBean
,
PdfMergeAdapter
.
PdfMergeViewHolder
>()
{
private
val
TAG
=
"PdfMergeAdapter"
inner
class
PdfMergeViewHolder
(
view
:
View
)
:
RecyclerView
.
ViewHolder
(
view
)
@SuppressLint
(
"SetTextI18n"
,
"ClickableViewAccessibility"
)
override
fun
onBindViewHolder
(
holder
:
PdfMergeViewHolder
,
position
:
Int
,
item
:
DocumentBean
?)
{
if
(
item
==
null
)
return
val
binding
=
ItemPdfMergeBinding
.
bind
(
holder
.
itemView
)
val
file
=
File
(
item
.
path
)
binding
.
tvName
.
text
=
file
.
name
binding
.
tvInfo
.
text
=
file
.
lastModified
().
toFormatTime4
()
+
" "
+
file
.
length
().
toFormatSize
()
binding
.
ivMove
.
setOnLongClickListener
{
callBack
.
enableLongPress
=
true
true
}
}
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
0 → 100644
View file @
b74d2ed5
package
com.base.pdfviewerscannerwhite.ui.document.pdf
import
androidx.recyclerview.widget.ItemTouchHelper
import
androidx.recyclerview.widget.RecyclerView
import
com.base.pdfviewerscannerwhite.utils.LogEx
class
PdfMergeItemTouchHelperCallBack
:
ItemTouchHelper
.
Callback
()
{
var
enableLongPress
:
Boolean
=
false
private
val
TAG
=
"PdfMergeItemTouchHelperCallBack"
override
fun
getMovementFlags
(
recyclerView
:
RecyclerView
,
viewHolder
:
RecyclerView
.
ViewHolder
):
Int
{
//支持上下左右拖动
//ACTION_STATE_IDLE item默认滑动方向
return
makeMovementFlags
(
ItemTouchHelper
.
UP
or
ItemTouchHelper
.
DOWN
or
ItemTouchHelper
.
START
or
ItemTouchHelper
.
END
,
ItemTouchHelper
.
ACTION_STATE_IDLE
)
}
/**
* 拖拽结束后(手指抬起)会回调的方法
*/
override
fun
onMove
(
recyclerView
:
RecyclerView
,
viewHolder
:
RecyclerView
.
ViewHolder
,
target
:
RecyclerView
.
ViewHolder
):
Boolean
{
//更新item holder对应位置
recyclerView
.
adapter
?.
notifyItemMoved
(
viewHolder
.
adapterPosition
,
target
.
adapterPosition
)
enableLongPress
=
false
return
true
}
override
fun
onSwiped
(
viewHolder
:
RecyclerView
.
ViewHolder
,
direction
:
Int
)
=
Unit
override
fun
isLongPressDragEnabled
():
Boolean
{
LogEx
.
logDebug
(
TAG
,
"isLongPressDragEnabled $enableLongPress"
)
return
enableLongPress
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfPresenter.kt
View file @
b74d2ed5
...
...
@@ -93,10 +93,6 @@ class PdfPresenter(
}
fun
savePdf
(
context
:
Context
,
muPDFCore
:
MuPDFCore
?,
srcPath
:
String
,
newPath
:
String
)
{
//保存的逻辑,
// 1.原本的文件拷贝一份
// 2。然后保存修改到原本的文件,重名命名该文件为新文件
// 3.拷贝的文件在恢复原位置
val
tempFile
=
File
(
context
.
filesDir
,
"temp.pdf"
)
if
(!
tempFile
.
exists
())
{
...
...
@@ -107,6 +103,5 @@ class PdfPresenter(
muPDFCore
?.
save
()
val
newFile
=
File
(
newPath
)
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/document/pdf/PdfSelectActivity.kt
View file @
b74d2ed5
package
com.base.pdfviewerscannerwhite.ui.document.pdf
import
android.annotation.SuppressLint
import
android.content.Intent
import
android.view.View
import
androidx.lifecycle.lifecycleScope
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
...
...
@@ -27,6 +28,16 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>(), DocumentView
documentPresenter
.
initData
()
}
override
fun
initListener
()
{
super
.
initListener
()
binding
.
tvBtnNext
.
setOnClickListener
{
val
selectList
=
adapter
.
items
.
filter
{
it
.
isSelect
}
PdfMergeActivity
.
mergePdfList
.
addAll
(
selectList
)
startActivity
(
Intent
(
this
,
PdfMergeActivity
::
class
.
java
))
}
}
@SuppressLint
(
"SetTextI18n"
)
private
fun
initAdapter
()
{
adapter
=
DocumentAdapter
()
...
...
app/src/main/java/com/base/pdfviewerscannerwhite/ui/main/MainActivity.kt
View file @
b74d2ed5
package
com.base.pdfviewerscannerwhite.ui.main
import
android.Manifest
import
android.annotation.SuppressLint
import
android.graphics.Color
import
android.net.Uri
import
android.os.Build
import
android.view.View
import
androidx.activity.result.contract.ActivityResultContracts
import
androidx.core.content.ContextCompat
import
androidx.fragment.app.Fragment
import
androidx.viewpager2.adapter.FragmentStateAdapter
...
...
@@ -11,6 +15,8 @@ import com.base.pdfviewerscannerwhite.BuildConfig
import
com.base.pdfviewerscannerwhite.R
import
com.base.pdfviewerscannerwhite.databinding.ActivityMainBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.ui.view.RateDialog.showRateDialog
import
com.base.pdfviewerscannerwhite.utils.BarUtils
import
com.base.pdfviewerscannerwhite.utils.PermissionUtils.requestStorePermission
import
com.base.pdfviewerscannerwhite.utils.ToastUtils.toast
...
...
@@ -37,7 +43,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
}
override
fun
initView
()
{
// startActivity(Intent(this, PdfActivity::class.java))
mainPresenter
=
MainPresenter
(
this
)
mainPresenter
.
initScannerLauncher
(
this
)
...
...
@@ -165,5 +172,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>(), MainView {
}
}
override
fun
onResume
()
{
super
.
onResume
()
showRateDialog
()
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/splash/SplashActivity.kt
View file @
b74d2ed5
package
com.base.pdfviewerscannerwhite.ui.splash
import
android.Manifest
import
android.annotation.SuppressLint
import
android.content.Intent
import
android.graphics.Color
import
android.os.Build
import
androidx.activity.result.contract.ActivityResultContracts
import
androidx.lifecycle.lifecycleScope
import
com.base.pdfviewerscannerwhite.bean.ConstObject.ifAgreePrivacy
import
com.base.pdfviewerscannerwhite.databinding.ActivitySplashBinding
import
com.base.pdfviewerscannerwhite.helper.BaseActivity
import
com.base.pdfviewerscannerwhite.ui.main.MainActivity
import
com.base.pdfviewerscannerwhite.utils.BarUtils
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Job
import
kotlinx.coroutines.cancel
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.isActive
import
kotlinx.coroutines.launch
import
java.util.concurrent.atomic.AtomicBoolean
@SuppressLint
(
"CustomSplashScreen"
)
class
SplashActivity
:
BaseActivity
<
ActivitySplashBinding
>(),
SplashView
{
private
val
TAG
=
"SplashActivity"
private
var
job
:
Job
?
=
null
private
lateinit
var
splashPresenter
:
SplashPresenter
override
val
binding
:
ActivitySplashBinding
by
lazy
{
ActivitySplashBinding
.
inflate
(
layoutInflater
)
}
override
fun
initView
()
{
showAd
()
BarUtils
.
setStatusBarLightMode
(
this
,
true
)
BarUtils
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
)
// binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
if
(
Build
.
VERSION
.
SDK_INT
>=
33
)
{
registerForActivityResult
(
ActivityResultContracts
.
RequestPermission
())
{}.
launch
(
Manifest
.
permission
.
POST_NOTIFICATIONS
)
}
splashPresenter
=
SplashPresenter
(
this
)
ifAgreePrivacy
=
true
if
(
ifAgreePrivacy
)
{
agreePrivacy
()
}
else
{
}
}
override
fun
showAd
()
{
startActivity
(
Intent
(
this
,
MainActivity
::
class
.
java
)
)
// jumpNext(
)
}
override
fun
agreePrivacy
()
{
showAd
()
startProgressJob
()
splashPresenter
.
startJumpJob
(
lifecycleScope
)
}
/**
* 跑进度条,进度条不关联跳转逻辑
*/
private
fun
startProgressJob
()
{
if
(
job
==
null
&&
binding
.
progressBar
.
progress
!=
100
)
{
job
=
lifecycleScope
.
launch
(
Dispatchers
.
Main
)
{
while
(
isActive
)
{
binding
.
progressBar
.
progress
+=
2
delay
(
200
)
if
(
binding
.
progressBar
.
progress
==
100
)
{
cancel
()
}
}
}
}
}
/**
* 暂停进度条
*/
private
fun
pauseProgressJob
()
{
job
?.
cancel
()
job
=
null
}
override
fun
onPause
()
{
super
.
onPause
()
pauseProgressJob
()
splashPresenter
.
pauseJumpJob
()
}
override
fun
onResume
()
{
super
.
onResume
()
startProgressJob
()
splashPresenter
.
startJumpJob
(
lifecycleScope
)
}
private
var
jump
:
AtomicBoolean
=
AtomicBoolean
(
false
)
override
fun
jumpNext
()
{
if
(
jump
.
get
())
{
return
}
jump
.
set
(
true
)
LogEx
.
logDebug
(
TAG
,
"jumpNext"
)
binding
.
progressBar
.
progress
=
100
binding
.
root
.
postDelayed
({
startActivity
(
Intent
(
this
,
MainActivity
::
class
.
java
))
},
200
)
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/splash/SplashPresenter.kt
View file @
b74d2ed5
package
com.base.pdfviewerscannerwhite.ui.splash
import
androidx.lifecycle.LifecycleCoroutineScope
import
com.base.pdfviewerscannerwhite.bean.ConstObject
import
com.base.pdfviewerscannerwhite.utils.LogEx
import
kotlinx.coroutines.Job
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.launch
class
SplashPresenter
(
val
splashView
:
SplashView
)
{
private
val
TAG
=
"SplashPresenter"
private
var
jumpJob
:
Job
?
=
null
var
loadingTime
=
5L
/**
* 超时跳转
*/
fun
startJumpJob
(
lifecycleCoroutineScope
:
LifecycleCoroutineScope
)
{
if
(
ConstObject
.
ifAgreePrivacy
)
{
if
(
jumpJob
==
null
)
{
val
startTime
=
System
.
currentTimeMillis
()
jumpJob
=
lifecycleCoroutineScope
.
launch
{
delay
(
loadingTime
*
1000
)
val
endTime
=
System
.
currentTimeMillis
()
LogEx
.
logDebug
(
TAG
,
"超时跳转 time=${endTime - startTime}"
)
splashView
.
jumpNext
()
}
}
}
}
/**
* 暂停超时跳转
*/
fun
pauseJumpJob
()
{
jumpJob
?.
cancel
()
jumpJob
=
null
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/splash/SplashView.kt
View file @
b74d2ed5
...
...
@@ -2,9 +2,10 @@ package com.base.pdfviewerscannerwhite.ui.splash
interface
SplashView
{
abstract
fun
showAd
()
fun
showAd
()
abstract
fun
agreePrivacy
()
fun
agreePrivacy
()
fun
jumpNext
()
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/view/DialogView.kt
View file @
b74d2ed5
...
...
@@ -12,15 +12,19 @@ import androidx.core.content.FileProvider
import
androidx.core.widget.addTextChangedListener
import
com.base.pdfviewerscannerwhite.R
import
com.base.pdfviewerscannerwhite.bean.DocumentBean
import
com.base.pdfviewerscannerwhite.databinding.DialogCommonTipBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogDeleteBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogDocumentDetailBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogDocumentRenameBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogPageNumberBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogPdfDetailBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogPdfMoreBinding
import
com.base.pdfviewerscannerwhite.databinding.DialogPdfPasswordBinding
import
com.base.pdfviewerscannerwhite.ui.adapter.DocumentAdapter
import
com.base.pdfviewerscannerwhite.ui.main.DocumentView
import
com.base.pdfviewerscannerwhite.ui.document.pdf.PdfView
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDeleteDialog
import
com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentRenameDialog
import
com.base.pdfviewerscannerwhite.utils.IntentShareUtils.sharePdfIntent
import
com.base.pdfviewerscannerwhite.utils.IntentShareUtils.sharePdfPrintIntent
import
com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatSize
...
...
@@ -114,7 +118,7 @@ object DialogView {
}
binding
.
llDelete
.
setOnClickListener
{
dialog
.
dismiss
()
showDeleteDialog
{
showDeleteDialog
{
documentView
.
deleteDocument
(
item
)
}
}
...
...
@@ -173,6 +177,23 @@ object DialogView {
}
fun
Context
.
showPdfPwdDialog
()
{
val
dialog
=
BottomSheetDialog
(
this
,
R
.
style
.
BottomSheetDialog
)
val
binding
=
DialogPdfPasswordBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
dialog
.
setContentView
(
binding
.
root
)
dialog
.
setCanceledOnTouchOutside
(
false
)
val
window
=
dialog
.
window
window
?.
setSoftInputMode
(
WindowManager
.
LayoutParams
.
SOFT_INPUT_ADJUST_RESIZE
)
dialog
.
show
()
val
parentView
=
binding
.
root
.
parent
as
View
val
behavior
=
BottomSheetBehavior
.
from
(
parentView
)
//展开
behavior
.
state
=
BottomSheetBehavior
.
STATE_EXPANDED
}
private
fun
Context
.
showJumpPageNumberDialog
(
pageNumber
:
Int
,
okAction
:
((
pageIndex
:
Int
)
->
Unit
)?)
{
val
dialog
=
BottomSheetDialog
(
this
,
R
.
style
.
BottomSheetDialog
)
val
binding
=
DialogPageNumberBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
...
...
@@ -271,4 +292,35 @@ object DialogView {
deleteAction
.
invoke
()
}
}
fun
Context
.
showCommonTipDialog
(
title
:
String
=
""
,
tip
:
String
=
""
,
noBtn
:
String
=
"Cancel"
,
yesBtn
:
String
=
"Ok"
)
{
val
dialog
=
BottomSheetDialog
(
this
,
R
.
style
.
BottomSheetDialog
)
val
binding
=
DialogCommonTipBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
dialog
.
setContentView
(
binding
.
root
)
dialog
.
setCanceledOnTouchOutside
(
false
)
dialog
.
show
()
val
parentView
=
binding
.
root
.
parent
as
View
val
behavior
=
BottomSheetBehavior
.
from
(
parentView
)
//展开
behavior
.
state
=
BottomSheetBehavior
.
STATE_EXPANDED
binding
.
tvTittle
.
text
=
title
binding
.
tvTips
.
text
=
tip
binding
.
tvNo
.
text
=
noBtn
binding
.
tvYes
.
text
=
yesBtn
binding
.
tvNo
.
setOnClickListener
{
dialog
.
dismiss
()
}
binding
.
tvYes
.
setOnClickListener
{
dialog
.
dismiss
()
}
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/ui/view/RateDialog.kt
0 → 100644
View file @
b74d2ed5
package
com.base.pdfviewerscannerwhite.ui.view
import
android.content.Context
import
android.content.Intent
import
android.net.Uri
import
android.view.LayoutInflater
import
android.view.View
import
com.base.pdfviewerscannerwhite.R
import
com.base.pdfviewerscannerwhite.databinding.DialogRateStarBinding
import
com.base.pdfviewerscannerwhite.utils.AppPreferences
import
com.google.android.material.bottomsheet.BottomSheetBehavior
import
com.google.android.material.bottomsheet.BottomSheetDialog
object
RateDialog
{
fun
Context
.
showRateDialog
(
mustShow
:
Boolean
=
false
)
{
if
(!
mustShow
)
{
if
(
AppPreferences
.
getInstance
().
getBoolean
(
"isRated"
,
false
))
{
return
}
}
val
dialog
=
BottomSheetDialog
(
this
,
R
.
style
.
BottomSheetDialog
)
val
binding
=
DialogRateStarBinding
.
inflate
(
LayoutInflater
.
from
(
this
))
dialog
.
setContentView
(
binding
.
root
)
dialog
.
setCanceledOnTouchOutside
(
false
)
dialog
.
show
()
val
parentView
=
binding
.
root
.
parent
as
View
val
behavior
=
BottomSheetBehavior
.
from
(
parentView
)
//展开
behavior
.
state
=
BottomSheetBehavior
.
STATE_EXPANDED
listOf
(
binding
.
iv1
,
binding
.
iv2
,
binding
.
iv3
,
binding
.
iv4
,
binding
.
iv5
).
forEachIndexed
{
index
,
it
->
it
.
setOnClickListener
{
setStar
(
binding
,
index
)
}
}
binding
.
ivClose
.
setOnClickListener
{
dialog
.
dismiss
()
}
binding
.
tvSubmit
.
setOnClickListener
{
if
(
star
>=
5
)
{
AppPreferences
.
getInstance
().
put
(
"isRated"
,
true
)
try
{
val
uri
=
Uri
.
parse
(
"https://play.google.com/store/apps/details?id="
+
this
.
packageName
)
val
intent
=
Intent
(
Intent
.
ACTION_VIEW
,
uri
)
this
.
startActivity
(
intent
)
}
catch
(
_
:
Exception
)
{
}
}
dialog
.
dismiss
()
}
dialog
.
setOnDismissListener
{
AppPreferences
.
getInstance
().
put
(
"isRated"
,
true
)
}
}
private
var
star
=
5
private
fun
setStar
(
binding
:
DialogRateStarBinding
,
star
:
Int
)
{
this
.
star
=
star
+
1
// if (this.star < 3) {
// binding.ivFace.setImageResource(R.mipmap.pingfeniconk)
// } else {
// binding.ivFace.setImageResource(R.mipmap.pingfenicon)
// }
listOf
(
binding
.
iv1
,
binding
.
iv2
,
binding
.
iv3
,
binding
.
iv4
,
binding
.
iv5
).
forEachIndexed
{
index
,
it
->
it
.
setImageResource
(
if
(
index
<=
star
)
{
R
.
mipmap
.
xing_s
}
else
{
R
.
mipmap
.
xing_n
}
)
}
}
}
\ No newline at end of file
app/src/main/java/com/base/pdfviewerscannerwhite/utils/KotlinExt.kt
View file @
b74d2ed5
...
...
@@ -35,6 +35,10 @@ object KotlinExt {
return
SimpleDateFormat
(
"yyyy-MM-dd HH:mm:ss"
,
Locale
.
ENGLISH
).
format
(
this
)
}
fun
Long
.
toFormatTime4
():
String
{
return
SimpleDateFormat
(
"yyyy-MM-dd"
,
Locale
.
ENGLISH
).
format
(
this
)
}
fun
Array
<
String
>.
array2String
():
String
{
val
stringBuilder
=
StringBuilder
()
...
...
app/src/main/res/drawable/splash_bp.xml
View file @
b74d2ed5
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<item
android:drawable=
"@color/white"
/>
<!-- <item-->
<!-- android:top="130dp"-->
<!-- android:gravity="top|center_horizontal">-->
<!-- <bitmap-->
<!-- android:src="@mipmap/qdylogo" />-->
<!-- </item>-->
<item
android:gravity=
"top|center_horizontal"
android:top=
"220dp"
>
<bitmap
android:src=
"@mipmap/qdylogo"
/>
</item>
</layer-list>
\ No newline at end of file
app/src/main/res/layout/activity_pdf_merge.xml
View file @
b74d2ed5
...
...
@@ -7,4 +7,89 @@
android:layout_height=
"match_parent"
tools:context=
".ui.document.pdf.PdfMergeActivity"
>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/cl_top"
android:layout_width=
"match_parent"
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"
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:layout_gravity=
"center"
android:padding=
"15dp"
android:src=
"@mipmap/fanhui_b"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:ellipsize=
"end"
android:singleLine=
"true"
android:text=
"Merge PDF"
android:textColor=
"@color/black"
android:textSize=
"19sp"
android:textStyle=
"bold"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toEndOf=
"@id/fl_fanhui"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"HardcodedText"
/>
<TextView
android:id=
"@+id/tv_add"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"24dp"
android:text=
"Add"
android:textColor=
"#00B8DE"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"HardcodedText"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_marginBottom=
"8dp"
app:layout_constraintBottom_toTopOf=
"@id/tv_btn_next"
app:layout_constraintTop_toBottomOf=
"@id/cl_top"
>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_pdf_merge"
/>
</FrameLayout>
<TextView
android:id=
"@+id/tv_btn_next"
android:layout_width=
"338dp"
android:layout_height=
"48dp"
android:layout_marginBottom=
"24dp"
android:background=
"@drawable/bg_selector_btn"
android:enabled=
"true"
android:gravity=
"center"
android:text=
"Merge"
android:textColor=
"@color/white"
android:textSize=
"18sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
tools:ignore=
"HardcodedText"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/activity_pdf_select.xml
View file @
b74d2ed5
...
...
@@ -62,7 +62,7 @@
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_docment"
/>
tools:listitem=
"@layout/item_doc
u
ment"
/>
</FrameLayout>
<TextView
...
...
app/src/main/res/layout/activity_splash.xml
View file @
b74d2ed5
...
...
@@ -3,8 +3,62 @@
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/main"
android:background=
"@drawable/splash_bp"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
tools:context=
".ui.splash.SplashActivity"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"220dp"
android:src=
"@mipmap/qdylogo"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/cl_progress"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintBottom_toBottomOf=
"parent"
>
<ProgressBar
android:id=
"@+id/progressBar"
style=
"@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width=
"0dp"
android:layout_height=
"16sp"
android:layout_marginHorizontal=
"56dp"
android:layout_marginTop=
"19dp"
android:layout_marginBottom=
"64dp"
android:max=
"100"
android:progressDrawable=
"@drawable/progress_bg"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"24dp"
android:text=
"Start"
android:textColor=
"#333333"
android:textSize=
"16sp"
app:layout_constraintBottom_toTopOf=
"@id/progressBar"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
tools:ignore=
"HardcodedText"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/cl_privacy"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
app:layout_constraintBottom_toBottomOf=
"parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/dialog_common_tip.xml
0 → 100644
View file @
b74d2ed5
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@drawable/bg_f3f3f3_tlr25"
android:orientation=
"vertical"
>
<FrameLayout
android:id=
"@+id/fl"
android:layout_width=
"match_parent"
android:layout_height=
"65dp"
app:layout_constraintTop_toTopOf=
"parent"
>
<TextView
android:id=
"@+id/tv_tittle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginStart=
"16dp"
android:includeFontPadding=
"false"
android:text=
"Delete"
android:textColor=
"#333333"
android:textSize=
"17sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
</FrameLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:orientation=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/fl"
>
<TextView
android:id=
"@+id/tv_tips"
android:layout_width=
"match_parent"
android:layout_height=
"55dp"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"32dp"
android:ellipsize=
"end"
android:gravity=
"center_vertical"
android:paddingHorizontal=
"20dp"
android:singleLine=
"true"
android:textColor=
"#333333"
android:textSize=
"18sp"
tools:ignore=
"Autofill,HardcodedText,LabelFor,TextFields"
/>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"20dp"
android:layout_marginBottom=
"15dp"
android:padding=
"5dp"
>
<androidx.cardview.widget.CardView
android:id=
"@+id/card_no"
android:layout_width=
"163dp"
android:layout_height=
"48dp"
app:cardBackgroundColor=
"#f1f2f6"
app:cardCornerRadius=
"10dp"
app:cardElevation=
"5dp"
>
<TextView
android:id=
"@+id/tv_no"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:gravity=
"center"
android:text=
"Cancel"
android:textColor=
"#505050"
android:textSize=
"18sp"
tools:ignore=
"HardcodedText"
/>
</androidx.cardview.widget.CardView>
<androidx.cardview.widget.CardView
android:id=
"@+id/card_yes"
android:layout_width=
"163dp"
android:layout_height=
"48dp"
android:layout_marginStart=
"14dp"
app:cardBackgroundColor=
"#00B8DE"
app:cardCornerRadius=
"10dp"
app:cardElevation=
"5dp"
tools:ignore=
"HardcodedText"
>
<TextView
android:id=
"@+id/tv_yes"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:text=
"Ok"
android:textColor=
"@color/white"
android:textSize=
"18sp"
/>
</androidx.cardview.widget.CardView>
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/dialog_pdf_detail.xml
View file @
b74d2ed5
...
...
@@ -19,6 +19,7 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_marginTop=
"-50dp"
android:src=
"@mipmap/h_pdfiocn"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
...
...
app/src/main/res/layout/dialog_pdf_password.xml
0 → 100644
View file @
b74d2ed5
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@drawable/bg_f3f3f3_tlr25"
android:orientation=
"vertical"
>
<FrameLayout
android:id=
"@+id/fl"
android:layout_width=
"match_parent"
android:layout_height=
"65dp"
app:layout_constraintTop_toTopOf=
"parent"
>
<TextView
android:id=
"@+id/tv_tittle"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical"
android:layout_marginStart=
"16dp"
android:includeFontPadding=
"false"
android:text=
"Set Password"
android:textColor=
"#333333"
android:textSize=
"17sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"26dp"
android:src=
"@mipmap/suo"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:orientation=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/fl"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_marginTop=
"22dp"
android:text=
"Set password protection pdf"
android:textColor=
"#333333"
android:textSize=
"18sp"
tools:ignore=
"HardcodedText"
/>
<FrameLayout
android:layout_width=
"match_parent"
android:layout_height=
"55dp"
android:layout_marginHorizontal=
"16dp"
android:layout_marginTop=
"20dp"
android:gravity=
"center"
app:endIconDrawable=
"@mipmap/weishuru"
app:endIconMode=
"custom"
tools:ignore=
"Autofill,HardcodedText,LabelFor,TextFields"
>
<EditText
android:id=
"@+id/edit"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:background=
"@drawable/bg_stoke_bababa_10"
android:ellipsize=
"end"
android:gravity=
"center_vertical"
android:hint=
"Input..."
android:inputType=
"textPassword"
android:paddingHorizontal=
"20dp"
android:singleLine=
"true"
android:textColor=
"#333333"
android:textSize=
"18sp"
/>
<ImageView
android:id=
"@+id/iv_eye"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"24dp"
android:src=
"@mipmap/weishuru"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"26dp"
android:layout_marginBottom=
"20dp"
>
<TextView
android:id=
"@+id/tv_cancel"
android:layout_width=
"163dp"
android:layout_height=
"48dp"
android:background=
"@drawable/bg_f1f2f6_10"
android:gravity=
"center"
android:text=
"Cancel"
android:textColor=
"#505050"
android:textSize=
"18sp"
tools:ignore=
"HardcodedText"
/>
<TextView
android:id=
"@+id/tv_confirm"
android:layout_width=
"163dp"
android:layout_height=
"48dp"
android:layout_marginStart=
"14dp"
android:background=
"@drawable/bg_selector_btn"
android:enabled=
"false"
android:gravity=
"center"
android:text=
"Confirm"
android:textColor=
"@color/white"
android:textSize=
"18sp"
tools:ignore=
"HardcodedText"
/>
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/dialog_rate_star.xml
0 → 100644
View file @
b74d2ed5
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@android:color/transparent"
>
<FrameLayout
android:id=
"@+id/fl"
android:layout_width=
"match_parent"
android:layout_height=
"65dp"
android:layout_marginTop=
"38dp"
android:background=
"@drawable/bg_f3f3f3_tlr25"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:id=
"@+id/iv_close"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_vertical|end"
android:layout_marginEnd=
"26dp"
android:src=
"@mipmap/guanbi_dialog"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
app:layout_constraintTop_toBottomOf=
"@id/fl"
>
<TextView
android:id=
"@+id/tv_1"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"16dp"
android:layout_marginTop=
"22dp"
android:text=
"Thank you for your support!"
android:textColor=
"#333333"
android:textSize=
"18sp"
android:textStyle=
"bold"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"HardcodedText"
/>
<TextView
android:id=
"@+id/tv_2"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"15dp"
android:text=
"Your five-star rating will inspire us to keep\nmoving forward"
android:textColor=
"#333333"
android:textSize=
"15sp"
app:layout_constraintStart_toStartOf=
"@id/tv_1"
app:layout_constraintTop_toBottomOf=
"@id/tv_1"
tools:ignore=
"HardcodedText"
/>
<LinearLayout
android:id=
"@+id/ll_star"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/tv_2"
>
<ImageView
android:id=
"@+id/iv_1"
android:layout_width=
"38dp"
android:layout_height=
"38dp"
android:layout_margin=
"10dp"
android:src=
"@mipmap/xing_s"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv_2"
android:layout_width=
"38dp"
android:layout_height=
"38dp"
android:layout_margin=
"10dp"
android:src=
"@mipmap/xing_s"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv_3"
android:layout_width=
"38dp"
android:layout_height=
"38dp"
android:layout_margin=
"10dp"
android:src=
"@mipmap/xing_s"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv_4"
android:layout_width=
"38dp"
android:layout_height=
"38dp"
android:layout_margin=
"10dp"
android:src=
"@mipmap/xing_s"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv_5"
android:layout_width=
"38dp"
android:layout_height=
"38dp"
android:layout_margin=
"10dp"
android:src=
"@mipmap/xing_s"
tools:ignore=
"ContentDescription"
/>
</LinearLayout>
<TextView
android:id=
"@+id/tv_submit"
android:layout_width=
"338dp"
android:layout_height=
"48dp"
android:layout_marginTop=
"24dp"
android:layout_marginBottom=
"16dp"
android:background=
"@drawable/bg_00b8de_10"
android:gravity=
"center"
android:text=
"Evaluate"
android:textColor=
"@color/white"
android:textSize=
"18sp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toBottomOf=
"@id/ll_star"
tools:ignore=
"HardcodedText"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"26dp"
android:src=
"@mipmap/pingjiatu"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/layout/fragment_document.xml
View file @
b74d2ed5
...
...
@@ -12,7 +12,7 @@
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_docment"
/>
tools:listitem=
"@layout/item_doc
u
ment"
/>
</FrameLayout>
\ No newline at end of file
app/src/main/res/layout/item_docment.xml
→
app/src/main/res/layout/item_doc
u
ment.xml
View file @
b74d2ed5
File moved
app/src/main/res/layout/item_pdf_merge.xml
0 → 100644
View file @
b74d2ed5
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"?android:attr/selectableItemBackground"
android:clickable=
"true"
android:focusable=
"true"
>
<ImageView
android:id=
"@+id/iv_move"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"15dp"
android:src=
"@mipmap/icon_move"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
/>
<ImageView
android:id=
"@+id/iv"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginVertical=
"15dp"
android:layout_marginStart=
"15dp"
android:src=
"@mipmap/h_pdfiocn"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toEndOf=
"@id/iv_move"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
/>
<FrameLayout
android:id=
"@+id/fl_close"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"15dp"
android:background=
"?android:attr/selectableItemBackground"
android:clickable=
"true"
android:focusable=
"true"
android:padding=
"5dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:src=
"@mipmap/guanbi"
tools:ignore=
"ContentDescription"
/>
</FrameLayout>
<LinearLayout
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginStart=
"15dp"
android:layout_marginEnd=
"5dp"
android:orientation=
"vertical"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toStartOf=
"@id/fl_close"
app:layout_constraintStart_toEndOf=
"@id/iv"
app:layout_constraintTop_toTopOf=
"parent"
>
<TextView
android:id=
"@+id/tv_name"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:ellipsize=
"end"
android:includeFontPadding=
"false"
android:singleLine=
"true"
android:text=
"DEMO.pdf"
android:textSize=
"17sp"
android:textStyle=
"bold"
tools:ignore=
"HardcodedText"
/>
<TextView
android:id=
"@+id/tv_info"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"10dp"
android:includeFontPadding=
"false"
android:textColor=
"#999999"
android:textSize=
"14sp"
tools:text=
"2024-09-10 590.23 KB"
/>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
app/src/main/res/mipmap-xxhdpi/guanbi.png
0 → 100644
View file @
b74d2ed5
3.57 KB
app/src/main/res/mipmap-xxhdpi/guanbi_dialog.png
0 → 100644
View file @
b74d2ed5
3.26 KB
app/src/main/res/mipmap-xxhdpi/icon_move.png
0 → 100644
View file @
b74d2ed5
795 Bytes
app/src/main/res/mipmap-xxhdpi/logo.png
0 → 100644
View file @
b74d2ed5
81 KB
app/src/main/res/mipmap-xxhdpi/pingjiatu.png
0 → 100644
View file @
b74d2ed5
71.8 KB
app/src/main/res/mipmap-xxhdpi/qdylogo.png
0 → 100644
View file @
b74d2ed5
63.1 KB
app/src/main/res/mipmap-xxhdpi/suo.png
0 → 100644
View file @
b74d2ed5
2.31 KB
app/src/main/res/mipmap-xxhdpi/weishuru.png
0 → 100644
View file @
b74d2ed5
4.08 KB
app/src/main/res/mipmap-xxhdpi/xing_n.png
0 → 100644
View file @
b74d2ed5
3.83 KB
app/src/main/res/mipmap-xxhdpi/xing_s.png
0 → 100644
View file @
b74d2ed5
3.77 KB
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