Commit 8d6f9119 authored by wanglei's avatar wanglei

...其他文档

parent 3b181bc5
...@@ -91,6 +91,19 @@ ...@@ -91,6 +91,19 @@
android:launchMode="singleTop" android:launchMode="singleTop"
android:screenOrientation="portrait" android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" /> tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.ppt.PptActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name="com.base.pdfreaderallpdfreader.ui.word.WordActivity"
android:exported="true"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<provider <provider
android:name="androidx.core.content.FileProvider" android:name="androidx.core.content.FileProvider"
......
package com.base.pdfoneread.bean package com.base.pdfoneread.bean
import android.net.Uri import android.net.Uri
import com.base.pdfoneread.bean.ConstObject.MIME_TYPE_DOC
import com.base.pdfoneread.bean.ConstObject.MIME_TYPE_DOCX
import com.base.pdfoneread.bean.ConstObject.MIME_TYPE_PDF
import com.base.pdfoneread.bean.ConstObject.MIME_TYPE_PPT
import com.base.pdfoneread.bean.ConstObject.MIME_TYPE_PPTX
import com.base.pdfoneread.bean.ConstObject.MIME_TYPE_XLS
import com.base.pdfoneread.bean.ConstObject.MIME_TYPE_XLSX
data class DocumentBean( data class DocumentBean(
var path: String = "", var path: String = "",
......
...@@ -5,6 +5,7 @@ import android.graphics.Color ...@@ -5,6 +5,7 @@ import android.graphics.Color
import android.net.Uri import android.net.Uri
import android.view.View import android.view.View
import androidx.activity.addCallback import androidx.activity.addCallback
import androidx.core.content.ContentProviderCompat.requireContext
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.core.view.updatePadding import androidx.core.view.updatePadding
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
...@@ -22,11 +23,13 @@ import com.base.pdfoneread.ui.pdf.PdfActivity ...@@ -22,11 +23,13 @@ import com.base.pdfoneread.ui.pdf.PdfActivity
import com.base.pdfoneread.ui.views.DialogCallBack import com.base.pdfoneread.ui.views.DialogCallBack
import com.base.pdfoneread.ui.views.DocumentDialog.showDeleteDialog import com.base.pdfoneread.ui.views.DocumentDialog.showDeleteDialog
import com.base.pdfoneread.ui.views.DocumentDialog.showDocumentHomeMoreDialog import com.base.pdfoneread.ui.views.DocumentDialog.showDocumentHomeMoreDialog
import com.base.pdfoneread.ui.views.NameDialog.showDocumentRenameDialog
import com.base.pdfoneread.ui.views.PdfDialog.showPdfHomeMoreDialog import com.base.pdfoneread.ui.views.PdfDialog.showPdfHomeMoreDialog
import com.base.pdfoneread.utils.BarUtils import com.base.pdfoneread.utils.BarUtils
import com.base.pdfoneread.utils.IntentShareUtils.shareMutDocuments import com.base.pdfoneread.utils.IntentShareUtils.shareMutDocuments
import com.base.pdfoneread.utils.LogEx import com.base.pdfoneread.utils.LogEx
import com.base.pdfoneread.utils.PdfBoxUtils.checkPdfEncryption import com.base.pdfoneread.utils.PdfBoxUtils.checkPdfEncryption
import com.base.pdfoneread.utils.updateMediaStore
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.cancel import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest
...@@ -52,7 +55,24 @@ class DocumentActivity : BaseActivity<ActivityDocumentBinding>(), DialogCallBack ...@@ -52,7 +55,24 @@ class DocumentActivity : BaseActivity<ActivityDocumentBinding>(), DialogCallBack
viewModel = ViewModelProvider(this)[DocumentViewModel::class.java] viewModel = ViewModelProvider(this)[DocumentViewModel::class.java]
viewModel.handleActivityGmsScanResult = { imageUri, pdfUri -> viewModel.handleActivityGmsScanResult = { imageUri, pdfUri ->
LogEx.logDebug(TAG, "pdfUri=$pdfUri imageUri=$imageUri")
val file = File(pdfUri.toString().replace("file://", ""))
if (file.exists()) {
showDocumentRenameDialog(file.name,
okAction = {
val child = if (it.endsWith(".pdf")) it else "$it.pdf"
val newFile = File(getDocumentAppDir(), child)
viewModel.copyFile(file, newFile)
updateMediaStore()
},
dismissAction = {
})
} else {
}
} }
type = intent.extras?.getString("type") ?: "" type = intent.extras?.getString("type") ?: ""
......
...@@ -107,8 +107,12 @@ class DocumentAdapter( ...@@ -107,8 +107,12 @@ class DocumentAdapter(
} }
2 -> {//拆分选择 2 -> {//拆分选择
binding.flBookmark.visibility = View.GONE binding.flBookmark.visibility = View.INVISIBLE
binding.flMore.visibility = View.INVISIBLE binding.flSelect.visibility = View.INVISIBLE
binding.flMore.visibility = View.VISIBLE
binding.flMore.setOnClickListener {
moreAction?.invoke(item)
}
binding.root.setOnClickListener { binding.root.setOnClickListener {
itemClick?.invoke(item) itemClick?.invoke(item)
} }
......
...@@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModel ...@@ -11,6 +11,7 @@ import androidx.lifecycle.ViewModel
import com.google.mlkit.vision.documentscanner.GmsDocumentScannerOptions import com.google.mlkit.vision.documentscanner.GmsDocumentScannerOptions
import com.google.mlkit.vision.documentscanner.GmsDocumentScanning import com.google.mlkit.vision.documentscanner.GmsDocumentScanning
import com.google.mlkit.vision.documentscanner.GmsDocumentScanningResult import com.google.mlkit.vision.documentscanner.GmsDocumentScanningResult
import java.io.File
class DocumentViewModel : ViewModel() { class DocumentViewModel : ViewModel() {
...@@ -68,4 +69,10 @@ class DocumentViewModel : ViewModel() { ...@@ -68,4 +69,10 @@ class DocumentViewModel : ViewModel() {
} }
} }
} }
fun copyFile(file: File, newFile: File) {
runCatching {
file.copyTo(newFile, true)
}
}
} }
\ No newline at end of file
...@@ -6,9 +6,14 @@ import android.view.LayoutInflater ...@@ -6,9 +6,14 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.GridLayoutManager
import com.base.pdfoneread.R import com.base.pdfoneread.R
import com.base.pdfoneread.bean.ConstObject.DO_LOCK_PDF
import com.base.pdfoneread.bean.ConstObject.DO_MERGE_PDF
import com.base.pdfoneread.bean.ConstObject.DO_SPLIT_PDF
import com.base.pdfoneread.bean.ConstObject.DO_UNLOCK_PDF
import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_ALL import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_ALL
import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_EXCEL import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_EXCEL
import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_PDF import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_PDF
...@@ -32,16 +37,23 @@ import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_GRID ...@@ -32,16 +37,23 @@ import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_GRID
import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_LIST import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_LIST
import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_TITTLE import com.base.pdfoneread.bean.HomeUIBean.Companion.UI_TYPE_TITTLE
import com.base.pdfoneread.ui.document.DocumentActivity import com.base.pdfoneread.ui.document.DocumentActivity
import com.base.pdfoneread.ui.document.DocumentViewModel
import com.base.pdfoneread.ui.document.GlobalExcelList import com.base.pdfoneread.ui.document.GlobalExcelList
import com.base.pdfoneread.ui.document.GlobalPdfList import com.base.pdfoneread.ui.document.GlobalPdfList
import com.base.pdfoneread.ui.document.GlobalPptList import com.base.pdfoneread.ui.document.GlobalPptList
import com.base.pdfoneread.ui.document.GlobalWordList import com.base.pdfoneread.ui.document.GlobalWordList
import com.base.pdfoneread.ui.document.getAllDocument import com.base.pdfoneread.ui.document.getAllDocument
import com.base.pdfoneread.ui.document.getDocumentAppDir
import com.base.pdfoneread.ui.document.getGlobalAllList import com.base.pdfoneread.ui.document.getGlobalAllList
import com.base.pdfoneread.ui.pdf.PdfActivity
import com.base.pdfoneread.ui.pdf.PdfSelectActivity
import com.base.pdfoneread.ui.views.NameDialog.showDocumentRenameDialog
import com.base.pdfoneread.utils.LogEx import com.base.pdfoneread.utils.LogEx
import com.base.pdfoneread.utils.PermissionUtils.checkStorePermission import com.base.pdfoneread.utils.PermissionUtils.checkStorePermission
import com.base.pdfoneread.utils.updateMediaStore
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.io.File
import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicBoolean
...@@ -50,10 +62,32 @@ class HomeFragment() : Fragment() { ...@@ -50,10 +62,32 @@ class HomeFragment() : Fragment() {
private val TAG = "HomeFragment" private val TAG = "HomeFragment"
private lateinit var binding: FragmentHomeBinding private lateinit var binding: FragmentHomeBinding
private val adapter: HomeAdapter = HomeAdapter() private val adapter: HomeAdapter = HomeAdapter()
private lateinit var viewModel: DocumentViewModel
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
LogEx.logDebug(TAG, "onCreate") LogEx.logDebug(TAG, "onCreate")
viewModel = ViewModelProvider(this)[DocumentViewModel::class.java]
viewModel.handleActivityGmsScanResult = { imageUri, pdfUri ->
LogEx.logDebug(TAG, "pdfUri=$pdfUri imageUri=$imageUri")
val file = File(pdfUri.toString().replace("file://", ""))
if (file.exists()) {
requireContext().showDocumentRenameDialog(file.name,
okAction = {
val child = if (it.endsWith(".pdf")) it else "$it.pdf"
val newFile = File(getDocumentAppDir(), child)
viewModel.copyFile(file, newFile)
requireContext().updateMediaStore()
},
dismissAction = {
})
} else {
}
}
} }
override fun onCreateView( override fun onCreateView(
...@@ -81,7 +115,7 @@ class HomeFragment() : Fragment() { ...@@ -81,7 +115,7 @@ class HomeFragment() : Fragment() {
adapter.submitList(groupList) adapter.submitList(groupList)
adapter.itemClick = { item: HomeUIBean -> adapter.itemClick = { item: HomeUIBean ->
val activity = requireActivity() as MainActivity?
when (item.key) { when (item.key) {
KEY_ALL -> { KEY_ALL -> {
startActivity(Intent(requireContext(), DocumentActivity::class.java).apply { startActivity(Intent(requireContext(), DocumentActivity::class.java).apply {
...@@ -113,6 +147,25 @@ class HomeFragment() : Fragment() { ...@@ -113,6 +147,25 @@ class HomeFragment() : Fragment() {
}) })
} }
KEY_IMAGE_TO_PDF, KEY_SCAN_PDF, KEY_IMAGE_PDF -> {
activity?.let { viewModel.starGmsScan(it) }
}
KEY_MERGE_PDF -> {
activity?.let { PdfSelectActivity.jumpSelect(it, DO_MERGE_PDF) }
}
KEY_SPLIT_PDF -> {
activity?.let { PdfSelectActivity.jumpSelect(it, DO_SPLIT_PDF) }
}
KEY_LOCK_PDF -> {
activity?.let { PdfSelectActivity.jumpSelect(it, DO_LOCK_PDF) }
}
KEY_UNLOCK_PDF -> {
activity?.let { PdfSelectActivity.jumpSelect(it, DO_UNLOCK_PDF) }
}
} }
} }
...@@ -131,7 +184,6 @@ class HomeFragment() : Fragment() { ...@@ -131,7 +184,6 @@ class HomeFragment() : Fragment() {
LogEx.logDebug(TAG, "onDestroy") LogEx.logDebug(TAG, "onDestroy")
} }
private var isRefreshing: AtomicBoolean = AtomicBoolean(false) private var isRefreshing: AtomicBoolean = AtomicBoolean(false)
private fun refreshData(where: String = "") { private fun refreshData(where: String = "") {
if (isRefreshing.get()) return if (isRefreshing.get()) return
...@@ -174,7 +226,6 @@ class HomeFragment() : Fragment() { ...@@ -174,7 +226,6 @@ class HomeFragment() : Fragment() {
} }
} }
fun changeUIByMain() { fun changeUIByMain() {
val activity = requireActivity() as MainActivity? val activity = requireActivity() as MainActivity?
activity ?: return activity ?: return
......
...@@ -42,7 +42,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -42,7 +42,6 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
BarUtils.setStatusBarColor(this, Color.WHITE) BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight()) binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
val navHostFragment = val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_container) as NavHostFragment supportFragmentManager.findFragmentById(R.id.nav_host_container) as NavHostFragment
navController = navHostFragment.navController navController = navHostFragment.navController
...@@ -88,11 +87,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -88,11 +87,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding.flSearch.setOnClickListener { binding.flSearch.setOnClickListener {
startActivity(Intent(this, SearchActivity::class.java)) startActivity(Intent(this, SearchActivity::class.java))
} }
handleNav() handleNav()
intent.extras?.clear() intent.extras?.clear()
} }
private fun handleNav() { private fun handleNav() {
navWhere = intent.extras?.getString("navWhere") ?: NAV_HOME navWhere = intent.extras?.getString("navWhere") ?: NAV_HOME
when (navWhere) { when (navWhere) {
...@@ -137,6 +136,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -137,6 +136,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
disSelectTab() disSelectTab()
binding.ivHome.isSelected = true binding.ivHome.isSelected = true
binding.tvHome.isSelected = true binding.tvHome.isSelected = true
binding.flRvMode.visibility = View.VISIBLE
binding.flSearch.visibility = View.VISIBLE
val appName = resources.getString(R.string.app_name) val appName = resources.getString(R.string.app_name)
binding.tvTittle.text = colorSpanner(appName, Color.parseColor("#FD1010"), 0, 3) binding.tvTittle.text = colorSpanner(appName, Color.parseColor("#FD1010"), 0, 3)
......
...@@ -32,12 +32,16 @@ import com.base.pdfoneread.ads.AdmobHelper ...@@ -32,12 +32,16 @@ import com.base.pdfoneread.ads.AdmobHelper
import com.base.pdfoneread.ads.AdmobHelper.isShowCloseDocument import com.base.pdfoneread.ads.AdmobHelper.isShowCloseDocument
import com.base.pdfoneread.ads.admob.AdmobInterstitialUtils import com.base.pdfoneread.ads.admob.AdmobInterstitialUtils
import com.base.pdfoneread.ads.admob.AdmobNativeUtils import com.base.pdfoneread.ads.admob.AdmobNativeUtils
import com.base.pdfoneread.bean.ConstObject
import com.base.pdfoneread.bean.ConstObject.DO_SAVE_PDF import com.base.pdfoneread.bean.ConstObject.DO_SAVE_PDF
import com.base.pdfoneread.bean.ConstObject.haveGuideGesture import com.base.pdfoneread.bean.ConstObject.haveGuideGesture
import com.base.pdfoneread.bean.DocumentBean import com.base.pdfoneread.bean.DocumentBean
import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_EXCEL
import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_PPT
import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_WORD
import com.base.pdfoneread.databinding.ActivityPdfBinding import com.base.pdfoneread.databinding.ActivityPdfBinding
import com.base.pdfoneread.ui.BaseActivity import com.base.pdfoneread.ui.BaseActivity
import com.base.pdfoneread.ui.excel.ExcelActivity
import com.base.pdfoneread.ui.ppt.PptActivity
import com.base.pdfoneread.ui.views.PdfDialog.showPdfMoreDialog import com.base.pdfoneread.ui.views.PdfDialog.showPdfMoreDialog
import com.base.pdfoneread.ui.views.PwdDialog.showPdfPwdDialog import com.base.pdfoneread.ui.views.PwdDialog.showPdfPwdDialog
import com.base.pdfoneread.utils.KeyBoardUtils.hideKeyboard import com.base.pdfoneread.utils.KeyBoardUtils.hideKeyboard
...@@ -46,6 +50,7 @@ import com.base.pdfoneread.utils.LogEx ...@@ -46,6 +50,7 @@ import com.base.pdfoneread.utils.LogEx
import com.base.pdfoneread.utils.SpStringUtils import com.base.pdfoneread.utils.SpStringUtils
import com.base.pdfoneread.utils.SpStringUtils.LAST_VIEW_KEY import com.base.pdfoneread.utils.SpStringUtils.LAST_VIEW_KEY
import com.base.pdfoneread.utils.ToastUtils.toast import com.base.pdfoneread.utils.ToastUtils.toast
import com.base.pdfreaderallpdfreader.ui.word.WordActivity
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
...@@ -654,6 +659,23 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>() { ...@@ -654,6 +659,23 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>() {
} }
} }
fun Activity.jumpOtherDocument(item: DocumentBean) {
if (item.type == TYPE_WORD) {
WordActivity.wordDocumentBean = item
WordActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
if (item.type == TYPE_EXCEL) {
ExcelActivity.excelDocumentBean = item
ExcelActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
if (item.type == TYPE_PPT) {
PptActivity.pptDocumentBean = item
PptActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
}
fun jumpSplit(activity: Activity, path: String, uri: String? = null, pwd: String? = null) { fun jumpSplit(activity: Activity, path: String, uri: String? = null, pwd: String? = null) {
activity.startActivity(Intent(activity, PdfSplitActivity::class.java).apply { activity.startActivity(Intent(activity, PdfSplitActivity::class.java).apply {
putExtra("path", path) putExtra("path", path)
...@@ -663,13 +685,6 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>() { ...@@ -663,13 +685,6 @@ class PdfActivity : BaseActivity<ActivityPdfBinding>() {
} }
fun jumpMerge(activity: Activity) {
activity.startActivity(Intent(activity, PdfSelectActivity::class.java).apply {
putExtra("doWhat", ConstObject.DO_MERGE_PDF)
})
}
} }
......
package com.base.pdfoneread.ui.pdf package com.base.pdfoneread.ui.pdf
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity
import android.content.Intent import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.view.View import android.view.View
...@@ -94,6 +95,7 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>() { ...@@ -94,6 +95,7 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>() {
} }
private fun getPdfData(uiType: Int) { private fun getPdfData(uiType: Int) {
LogEx.logDebug(TAG, "uiType=$uiType")
lifecycleScope.launch(Dispatchers.IO) { lifecycleScope.launch(Dispatchers.IO) {
val list = getPdfDocument(this@PdfSelectActivity) val list = getPdfDocument(this@PdfSelectActivity)
list.forEach { it.uiType = uiType } list.forEach { it.uiType = uiType }
...@@ -183,6 +185,7 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>() { ...@@ -183,6 +185,7 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>() {
}) })
} }
} }
adapter.itemClick
adapter.selectAction = { adapter.selectAction = {
LogEx.logDebug(TAG, "selectAction $it") LogEx.logDebug(TAG, "selectAction $it")
if (it == 0) { if (it == 0) {
...@@ -197,5 +200,14 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>() { ...@@ -197,5 +200,14 @@ class PdfSelectActivity : BaseActivity<ActivityPdfSelectBinding>() {
binding.rv.adapter = adapter binding.rv.adapter = adapter
} }
companion object {
fun jumpSelect(activity: Activity, doWhat: String) {
activity.startActivity(Intent(activity, PdfSelectActivity::class.java).apply {
putExtra("doWhat", doWhat)
})
}
}
} }
\ No newline at end of file
package com.base.pdfoneread.ui.ppt
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Intent
import android.content.pm.ActivityInfo
import android.view.View
import android.view.animation.Animation
import android.view.animation.TranslateAnimation
import androidx.activity.addCallback
import androidx.core.view.isVisible
import com.base.pdfoneread.R
import com.base.pdfoneread.ads.AdmobHelper
import com.base.pdfoneread.ads.admob.AdmobInterstitialUtils
import com.base.pdfoneread.ads.admob.AdmobNativeUtils
import com.base.pdfoneread.bean.DocumentBean
import com.base.pdfoneread.databinding.ActivityPptBinding
import com.base.pdfoneread.ui.BaseActivity
import com.base.pdfoneread.ui.views.DocumentDialog.showDocumentMore
import com.base.pdfoneread.utils.LogEx
import com.base.pdfoneread.utils.SpStringUtils
import com.cherry.lib.doc.bean.DocEngine
import com.cherry.lib.doc.office.pg.control.PGControl
import com.cherry.lib.doc.util.Constant
class PptActivity : BaseActivity<ActivityPptBinding>() {
override val binding: ActivityPptBinding by lazy {
ActivityPptBinding.inflate(layoutInflater)
}
companion object {
var pptDocumentBean: DocumentBean = DocumentBean()
fun launchDocViewer(
activity: Activity,
docSourceType: Int,
path: String?,
fileType: Int? = null,
engine: Int? = null
) {
val intent = Intent(activity, PptActivity::class.java)
intent.putExtra(Constant.INTENT_SOURCE_KEY, docSourceType)
intent.putExtra(Constant.INTENT_DATA_KEY, path)
intent.putExtra(Constant.INTENT_TYPE_KEY, fileType)
intent.putExtra(Constant.INTENT_ENGINE_KEY, engine)
activity.startActivity(intent)
}
}
override fun onResume() {
super.onResume()
// updateAppLanguage(MyApplication.pptLanguage) {
// MyApplication.pptLanguage = it
// }
}
private var totalPageNumber = 0
@SuppressLint("SetTextI18n")
override fun initView() {
initSpData(intent)
binding.mDocView.getPageNumberAction = { current, total ->
if (!binding.tvPageCount.isVisible) {
binding.tvPageCount.isVisible = true
}
totalPageNumber = total
binding.tvPageCount.text = "$current/$total"
}
binding.mDocView.singleTapAction = {
LogEx.logDebug(TAG, "actionDownCallBack")
if (isShowTopLayout) {
LogEx.logDebug(TAG, "hide")
hideTopLayout()
} else {
showTopLayout()
LogEx.logDebug(TAG, "show")
}
}
AdmobNativeUtils.showNativeAd(this, binding.flAd, R.layout.layout_admob_document_in)
}
override fun onDestroy() {
super.onDestroy()
binding.mDocView.onDestroy()
AdmobNativeUtils.onDestroy()
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
if (AdmobHelper.isShowCloseDocumentInter()) {
AdmobInterstitialUtils.showInterstitialAd(this@PptActivity) {
if (it) {
AdmobHelper.lastCloseDocumentShowAd = System.currentTimeMillis()
}
binding.root.postDelayed({ finishToMain() }, 500)
}
} else {
binding.root.postDelayed({ finishToMain() }, 500)
}
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.ivXuanzhuan.setOnClickListener {
switchOrientation()
}
binding.ivMore.setOnClickListener {
showDocumentMore(pptDocumentBean, totalPageNumber - 1) { pageIndex ->
((binding.mDocView.iOffice?.control?.appControl as PGControl)
.pgView.pgPrintMode.listView.showPDFPageForIndex(pageIndex))
}
}
}
private fun switchOrientation() {
requestedOrientation = if (requestedOrientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
} else {
ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
}
private var docSourceType = 0
private var fileType = -1
private var engine: Int = DocEngine.INTERNAL.value
private var pathOrUri: String? = null// 文件地址
private fun initSpData(intent: Intent?) {
pathOrUri = intent?.getStringExtra(Constant.INTENT_DATA_KEY)
docSourceType = intent?.getIntExtra(Constant.INTENT_SOURCE_KEY, 0) ?: 0
fileType = intent?.getIntExtra(Constant.INTENT_TYPE_KEY, -1) ?: -1
engine = intent?.getIntExtra(Constant.INTENT_ENGINE_KEY, DocEngine.INTERNAL.value) ?: DocEngine.INTERNAL.value
binding.mDocView.openDoc(this, pathOrUri, docSourceType, fileType, false)
LogEx.logDebug(TAG, "initData-docUrl = $pathOrUri")
LogEx.logDebug(TAG, "initData-docSourceType = $docSourceType")
LogEx.logDebug(TAG, "initData-fileType = $fileType")
SpStringUtils.addSpString(SpStringUtils.LAST_VIEW_KEY, (pathOrUri ?: "") + "_/_" + System.currentTimeMillis())
}
private fun showTopLayout() {
if (!isShowTopLayout) {
isShowTopLayout = true
val topAnim: Animation = TranslateAnimation(0f, 0f, -binding.vAnimatorTop.height.toFloat(), 0f)
topAnim.setDuration(200)
topAnim.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(animation: Animation) {
binding.vAnimatorTop.visibility = View.VISIBLE
}
override fun onAnimationRepeat(animation: Animation) {}
override fun onAnimationEnd(animation: Animation) {
}
})
binding.vAnimatorTop.startAnimation(topAnim)
}
}
private var isShowTopLayout = true
private fun hideTopLayout() {
if (isShowTopLayout) {
isShowTopLayout = false
val topAnim: Animation = TranslateAnimation(0f, 0f, 0f, -binding.vAnimatorTop.height.toFloat())
topAnim.setDuration(200)
topAnim.setAnimationListener(object : Animation.AnimationListener {
override fun onAnimationStart(animation: Animation) {}
override fun onAnimationRepeat(animation: Animation) {}
override fun onAnimationEnd(animation: Animation) {
binding.vAnimatorTop.visibility = View.GONE
}
})
binding.vAnimatorTop.startAnimation(topAnim)
}
}
}
\ No newline at end of file
package com.base.pdfoneread.ui.views package com.base.pdfoneread.ui.views
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity
import android.app.AlertDialog import android.app.AlertDialog
import android.content.Context import android.content.Context
import android.view.Gravity import android.view.Gravity
...@@ -14,7 +15,9 @@ import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_WORD ...@@ -14,7 +15,9 @@ import com.base.pdfoneread.bean.DocumentBean.Companion.TYPE_WORD
import com.base.pdfoneread.databinding.DialogDeleteBinding import com.base.pdfoneread.databinding.DialogDeleteBinding
import com.base.pdfoneread.databinding.DialogDocumentDetailBinding import com.base.pdfoneread.databinding.DialogDocumentDetailBinding
import com.base.pdfoneread.databinding.DialogDocumentHomeMoreBinding import com.base.pdfoneread.databinding.DialogDocumentHomeMoreBinding
import com.base.pdfoneread.databinding.DialogDocumentMoreBinding
import com.base.pdfoneread.ui.views.NameDialog.showDocumentRenameDialog import com.base.pdfoneread.ui.views.NameDialog.showDocumentRenameDialog
import com.base.pdfoneread.ui.views.PdfDialog.showJumpPageNumberDialog
import com.base.pdfoneread.utils.IntentShareUtils.documentShare import com.base.pdfoneread.utils.IntentShareUtils.documentShare
import com.base.pdfoneread.utils.KotlinExt.toFormatSize import com.base.pdfoneread.utils.KotlinExt.toFormatSize
import com.base.pdfoneread.utils.KotlinExt.toFormatTime4 import com.base.pdfoneread.utils.KotlinExt.toFormatTime4
...@@ -86,6 +89,59 @@ object DocumentDialog { ...@@ -86,6 +89,59 @@ object DocumentDialog {
return dialog return dialog
} }
fun Activity.showDocumentMore(
documentBean: DocumentBean,
pageNumber: Int = 0,
jumpAction: ((pageIndex: Int) -> Unit)? = null
) {
val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
val binding = DialogDocumentMoreBinding.inflate(LayoutInflater.from(this))
dialog.setContentView(binding.root)
dialog.setCanceledOnTouchOutside(true)
dialog.show()
val parentView = binding.root.parent as View
val behavior = BottomSheetBehavior.from(parentView)
//展开
behavior.state = BottomSheetBehavior.STATE_EXPANDED
if (documentBean.type == TYPE_EXCEL) {
binding.llJump.visibility = View.GONE
}
if (documentBean.isBookmarked) {
binding.ivBookmark.setImageResource(R.mipmap.r_star_s)
} else {
binding.ivBookmark.setImageResource(R.mipmap.star)
}
binding.ivBookmark.setOnClickListener {
binding.ivBookmark.isSelected = !binding.ivBookmark.isSelected
if (binding.ivBookmark.isSelected) {
binding.ivBookmark.setImageResource(R.mipmap.r_star_s)
SpStringUtils.addSpString(SpStringUtils.BOOKMARK_KEY, documentBean.path)
} else {
binding.ivBookmark.setImageResource(R.mipmap.star)
SpStringUtils.deleteSpString(SpStringUtils.BOOKMARK_KEY, documentBean.path)
}
}
binding.llDetail.setOnClickListener {
showDocumentDetail(documentBean.path)
}
binding.llShare.setOnClickListener {
documentShare(documentBean)
}
binding.llJump.setOnClickListener {
showJumpPageNumberDialog(pageNumber) { pageIndex ->
dialog.dismiss()
jumpAction?.invoke(pageIndex)
}
}
}
fun Context.showDocumentDetail(path: String) { fun Context.showDocumentDetail(path: String) {
val dialog = AlertDialog.Builder(this).create() val dialog = AlertDialog.Builder(this).create()
......
...@@ -10,15 +10,16 @@ import android.view.WindowManager ...@@ -10,15 +10,16 @@ import android.view.WindowManager
import androidx.core.content.FileProvider import androidx.core.content.FileProvider
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import com.base.pdfoneread.R import com.base.pdfoneread.R
import com.base.pdfoneread.bean.ConstObject.DO_MERGE_PDF
import com.base.pdfoneread.bean.DocumentBean import com.base.pdfoneread.bean.DocumentBean
import com.base.pdfoneread.databinding.DialogPageNumberBinding import com.base.pdfoneread.databinding.DialogPageNumberBinding
import com.base.pdfoneread.databinding.DialogPdfHomeMoreBinding import com.base.pdfoneread.databinding.DialogPdfHomeMoreBinding
import com.base.pdfoneread.databinding.DialogPdfMoreBinding import com.base.pdfoneread.databinding.DialogPdfMoreBinding
import com.base.pdfoneread.ui.document.saveBookmarkChange import com.base.pdfoneread.ui.document.saveBookmarkChange
import com.base.pdfoneread.ui.pdf.PdfActivity import com.base.pdfoneread.ui.pdf.PdfActivity
import com.base.pdfoneread.ui.pdf.PdfActivity.Companion.jumpMerge
import com.base.pdfoneread.ui.pdf.PdfActivity.Companion.jumpPdfActivity import com.base.pdfoneread.ui.pdf.PdfActivity.Companion.jumpPdfActivity
import com.base.pdfoneread.ui.pdf.PdfActivity.Companion.jumpSplit import com.base.pdfoneread.ui.pdf.PdfActivity.Companion.jumpSplit
import com.base.pdfoneread.ui.pdf.PdfSelectActivity
import com.base.pdfoneread.ui.views.DocumentDialog.showDeleteDialog import com.base.pdfoneread.ui.views.DocumentDialog.showDeleteDialog
import com.base.pdfoneread.ui.views.DocumentDialog.showDocumentDetail import com.base.pdfoneread.ui.views.DocumentDialog.showDocumentDetail
import com.base.pdfoneread.ui.views.NameDialog.showDocumentRenameDialog import com.base.pdfoneread.ui.views.NameDialog.showDocumentRenameDialog
...@@ -85,7 +86,7 @@ object PdfDialog { ...@@ -85,7 +86,7 @@ object PdfDialog {
} }
binding.llMerge.setOnClickListener { binding.llMerge.setOnClickListener {
dialog.dismiss() dialog.dismiss()
PdfActivity.jumpMerge(this) PdfSelectActivity.jumpSelect(this, DO_MERGE_PDF)
} }
binding.llDelete.setOnClickListener { binding.llDelete.setOnClickListener {
dialog.dismiss() dialog.dismiss()
...@@ -154,8 +155,7 @@ object PdfDialog { ...@@ -154,8 +155,7 @@ object PdfDialog {
} }
binding.llMerge.setOnClickListener { binding.llMerge.setOnClickListener {
dialog.dismiss() dialog.dismiss()
jumpMerge(pdfActivity) PdfSelectActivity.jumpSelect(pdfActivity, DO_MERGE_PDF)
} }
binding.llSplit.setOnClickListener { binding.llSplit.setOnClickListener {
dialog.dismiss() dialog.dismiss()
......
This diff is collapsed.
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="@color/transparent" />
</shape>
\ No newline at end of file
<?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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewAnimator
android:id="@+id/v_animator_top"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@color/white"
app:layout_constraintTop_toTopOf="parent">
<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_constraintEnd_toStartOf="@id/tv_name"
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/pdf_left"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/iv_xuanzhuan"
app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText"
tools:text="DEMO.xlsx" />
<ImageView
android:id="@+id/iv_xuanzhuan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/hengping"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_search"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/sousuo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_more"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/x_genduo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<EditText
android:id="@+id/edit_search"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="20dp"
android:background="@drawable/bg_f8f9fe_10"
android:hint="input..."
android:paddingHorizontal="18dp"
android:singleLine="true"
android:textColor="@color/black"
android:textColorHint="#B8B9BD"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_search"
app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="Autofill,HardcodedText,TextFields" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ViewAnimator>
<com.cherry.lib.doc.widget.DocView
android:id="@+id/mDocView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:dv_moving_orientation="vertical"
app:dv_show_page_num="false"
app:layout_constraintBottom_toTopOf="@id/fl_ad"
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_toTopOf="@id/fl_ad">
<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>
<FrameLayout
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/zhanweitu2"
tools:ignore="ContentDescription" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewAnimator
android:id="@+id/v_animator_top"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@color/white"
app:layout_constraintTop_toTopOf="parent">
<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_constraintEnd_toStartOf="@id/tv_name"
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/pdf_left"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/iv_xuanzhuan"
app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText"
tools:text="DEMO.ppt" />
<ImageView
android:id="@+id/iv_xuanzhuan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/hengping"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_more"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/x_genduo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ViewAnimator>
<com.cherry.lib.doc.widget.DocView
android:id="@+id/mDocView"
android:layout_width="match_parent"
android:layout_height="0dp"
app:dv_engine="internal"
app:dv_moving_orientation="vertical"
app:dv_page_pb_color="@color/yellow"
app:dv_page_pb_height="2dp"
app:dv_show_page_num="true"
app:layout_constraintBottom_toTopOf="@id/fl_ad"
app:layout_constraintTop_toBottomOf="@id/v_animator_top" />
<TextView
android:id="@+id/tv_pageCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginTop="28dp"
android:background="@drawable/bg_54585b_5"
android:includeFontPadding="false"
android:paddingHorizontal="2dp"
android:paddingVertical="2dp"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/v_animator_top"
tools:text="1/3" />
<FrameLayout
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/zhanweitu2"
tools:ignore="ContentDescription" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ViewAnimator
android:id="@+id/v_animator_top"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="@color/white"
app:layout_constraintTop_toTopOf="parent">
<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_constraintEnd_toStartOf="@id/tv_name"
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/pdf_left"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/iv_xuanzhuan"
app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText"
tools:text="DEMO.xlsx" />
<ImageView
android:id="@+id/iv_xuanzhuan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/hengping"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_search"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/sousuo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_more"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/x_genduo"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<EditText
android:id="@+id/edit_search"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="20dp"
android:background="@drawable/bg_f8f9fe_10"
android:hint="input..."
android:paddingHorizontal="18dp"
android:singleLine="true"
android:textColor="@color/black"
android:textColorHint="#B8B9BD"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_search"
app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="Autofill,HardcodedText,TextFields" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ViewAnimator>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="@id/fl_ad"
app:layout_constraintTop_toBottomOf="@id/v_animator_top">
<com.cherry.lib.doc.widget.DocView
android:id="@+id/mDocView"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:dv_engine="internal"
app:dv_moving_orientation="vertical"
app:dv_page_pb_color="@color/yellow"
app:dv_page_pb_height="2dp"
app:dv_show_page_num="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/v_animator_top" />
<com.base.pdfoneread.ui.views.VerticalSeekBar
android:id="@+id/vertical_seekbar"
android:layout_width="30dp"
android:layout_height="match_parent"
android:layout_gravity="end"
android:layout_marginEnd="10dp"
android:background="@color/transparent"
app:vsb_bar_background="@color/transparent"
app:vsb_bar_background_gradient_end="@color/transparent"
app:vsb_bar_background_gradient_start="@color/transparent"
app:vsb_bar_progress="@drawable/bg_transparent"
app:vsb_show_thumb="true" />
</FrameLayout>
<TextView
android:id="@+id/tv_pageCount"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginTop="28dp"
android:background="@drawable/bg_54585b_5"
android:includeFontPadding="false"
android:paddingHorizontal="2dp"
android:paddingVertical="2dp"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/v_animator_top"
tools:text="1/3" />
<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="@id/fl_ad">
<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>
<FrameLayout
android:id="@+id/fl_ad"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@mipmap/zhanweitu2"
tools:ignore="ContentDescription" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<?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_ffffff_tlr15"
android:orientation="vertical">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl"
android:layout_width="match_parent"
android:layout_height="65dp"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:text="@string/more"
android:textColor="#333333"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
<ImageView
android:id="@+id/iv_bookmark"
android:layout_width="24dp"
android:layout_height="32dp"
android:layout_marginEnd="27dp"
android:src="@mipmap/r_star_s"
android:visibility="gone"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
<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/cl">
<LinearLayout
android:id="@+id/ll_jump"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="?android:selectableItemBackground"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="13dp"
android:src="@mipmap/pdf_Page"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="13dp"
android:layout_weight="1"
android:ellipsize="end"
android:includeFontPadding="false"
android:singleLine="true"
android:text="@string/page_by_page"
android:textColor="#333333"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:visibility="gone"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_detail"
android:layout_width="match_parent"
android:layout_height="60dp"
android:background="?android:selectableItemBackground"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="13dp"
android:src="@mipmap/pdf_info"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="13dp"
android:layout_weight="1"
android:ellipsize="end"
android:includeFontPadding="false"
android:singleLine="true"
android:text="@string/info"
android:textColor="#333333"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:visibility="gone"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_share"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginBottom="20dp"
android:background="?android:selectableItemBackground"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="13dp"
android:src="@mipmap/pdf_share"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="13dp"
android:layout_weight="1"
android:ellipsize="end"
android:includeFontPadding="false"
android:singleLine="true"
android:text="@string/share"
android:textColor="#333333"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:visibility="gone"
tools:ignore="ContentDescription" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
...@@ -3,4 +3,5 @@ ...@@ -3,4 +3,5 @@
<dimen name="dp_200">200dp</dimen> <dimen name="dp_200">200dp</dimen>
<dimen name="dp_146">146dp</dimen> <dimen name="dp_146">146dp</dimen>
<dimen name="dp_345">345dp</dimen> <dimen name="dp_345">345dp</dimen>
<dimen name="dp_50">50dp</dimen>
</resources> </resources>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment