Commit ecbcbb0b authored by wanglei's avatar wanglei

初始化

parent 7046b81c
Pipeline #1289 canceled with stages
......@@ -4,12 +4,15 @@ import android.annotation.SuppressLint
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import com.base.pdfreader2.bean.ConstObject
import com.base.pdfreader2.bean.DocumentBean
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_PDF
import com.base.pdfreader2.databinding.FragmentDocumentBinding
import com.base.pdfreader2.helper.BaseFragment
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.io.File
import java.util.Locale
class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() {
......@@ -105,5 +108,14 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() {
}
}
fun getSearchItems(search: String): List<DocumentBean> {
if (isVisible) {
return adapter.items.filter {
File(it.path).name.lowercase(Locale.ENGLISH).contains(search.lowercase(Locale.ENGLISH))
}
}
return listOf()
}
}
\ No newline at end of file
package com.base.pdfreader2.ui.main
import android.app.Activity
import android.content.Intent
import android.graphics.Color
import android.view.View
import android.view.inputmethod.EditorInfo
import androidx.activity.OnBackPressedCallback
import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment
......@@ -14,6 +17,7 @@ import com.base.pdfreader2.bean.ConstObject.BOOKMARK_DATA_TYPE
import com.base.pdfreader2.bean.ConstObject.DOCUMENT_DATA_TYPE
import com.base.pdfreader2.bean.ConstObject.RECENT_DATA_TYPE
import com.base.pdfreader2.bean.DocumentBean
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_PDF
import com.base.pdfreader2.databinding.ActivityMainBinding
import com.base.pdfreader2.helper.BaseActivity
import com.base.pdfreader2.ui.view.DialogView.showSortDialog
......@@ -60,6 +64,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private lateinit var pageAdapter: FragmentStateAdapter
var uiMode = UI_MODE_NORMAL
lateinit var searchAdapter: DocumentAdapter
override fun initView() {
BarUtils.setStatusBarLightMode(this, !ConstObject.modeNight)
if (ConstObject.modeNight) {
......@@ -75,10 +81,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
initViewPager2()
initTabLayout()
initSearchUI()
binding.llDocument.isSelected = true
}
//OnBackPressedCallback 并将 isEnabled 设置为 false 时,默认的返回键行为将被禁用。
lateinit var callback: OnBackPressedCallback
override fun initListener() {
......@@ -93,7 +100,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
changeSelectUI(false)
}
if (uiMode == UI_MODE_SEARCH) {
// changeSearchUI(false)
changeSearchUI(false)
}
}
}
......@@ -101,6 +108,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.flFanhui2.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.llDocument.setOnClickListener {
dataType = DOCUMENT_DATA_TYPE
......@@ -129,9 +139,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding.ivSelect.setOnClickListener {
changeSelectUI(true)
}
binding.ivSearch.setOnClickListener {
changeSearchUI(true)
}
}
private fun changeSelectUI(show: Boolean) {
if (show) {
uiMode = UI_MODE_SELECT
......@@ -153,6 +167,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
currentPage.changeSelectUi(true)
} else {
uiMode = UI_MODE_NORMAL
binding.viewPager2.isUserInputEnabled = true
callback.isEnabled = false
binding.ivPaixu.visibility = View.VISIBLE
......@@ -174,6 +189,72 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
}
private fun initSearchUI() {
binding.editSearch.setOnEditorActionListener { v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
LogEx.logDebug(TAG, "IME_ACTION_DONE")
searchDocument()
}
false
}
binding.ivSearch2.setOnClickListener {
searchDocument()
}
searchAdapter = DocumentAdapter()
binding.rvSearch.adapter = searchAdapter
searchAdapter.moreAction = { item ->
documentMoreAction.invoke(item)
}
searchAdapter.itemClick = {
jumpDocument(it)
}
}
private fun searchDocument() {
if (binding.editSearch.text.isNotEmpty()) {
val search = binding.editSearch.text.toString()
val items = currentPage.getSearchItems(search.trim())
val arrayList = arrayListOf<DocumentBean>()
arrayList.addAll(items)
if (arrayList.isNotEmpty()) {
arrayList.map { it.uiType = 4 }
searchAdapter.submitList(arrayList)
binding.llEmpty.visibility = View.INVISIBLE
} else {
binding.llEmpty.visibility = View.VISIBLE
}
}
}
var documentMoreAction: (item: DocumentBean) -> Unit = { item ->
if (item.type == TYPE_PDF) {
// showPdfHomeMoreDialog(
// item, mainActivity, documentFragment, this
// )
}
// if (item.type == TYPE_WORD || item.type == TYPE_EXCEL || item.type == TYPE_PPT) {
// requireContext().showDocumentHomeMoreDialog(item, mainActivity, documentFragment, this)
// }
}
fun changeSearchUI(show: Boolean) {
binding.llSearch.setOnClickListener { }
if (show) {
uiMode = UI_MODE_SEARCH
callback.isEnabled = true
binding.llSearch.visibility = View.VISIBLE
} else {
uiMode = UI_MODE_NORMAL
callback.isEnabled = false
binding.llSearch.visibility = View.GONE
searchAdapter.submitList(listOf())
binding.editSearch.setText("")
}
}
private fun disSelectBottomNav() {
binding.llDocument.isSelected = false
binding.llRecent.isSelected = false
......@@ -183,6 +264,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private fun changeDocumentUI() {
disSelectBottomNav()
binding.tvTittle.text = resources.getString(R.string.document)
binding.llDocument.isSelected = true
binding.flTool.visibility = View.INVISIBLE
binding.clDocument.visibility = View.VISIBLE
......@@ -190,6 +272,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private fun changeRecentUI() {
disSelectBottomNav()
binding.tvTittle.text = resources.getString(R.string.recent)
binding.llRecent.isSelected = true
binding.flTool.visibility = View.INVISIBLE
binding.clDocument.visibility = View.VISIBLE
......@@ -197,6 +280,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private fun changeBookmarkUI() {
disSelectBottomNav()
binding.tvTittle.text = resources.getString(R.string.bookmark)
binding.llBookmark.isSelected = true
binding.flTool.visibility = View.INVISIBLE
binding.clDocument.visibility = View.VISIBLE
......@@ -284,5 +368,40 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
ViewPager2Delegate.install(binding.viewPager2, binding.tabLayoutDocument)
}
companion object {
fun Activity.jumpDocument(item: DocumentBean) {
if (item.type == DocumentBean.TYPE_PDF) {
if (item.state == 0) {
// startActivity(Intent(this, PdfActivity::class.java).apply {
// putExtra("path", item.path)
// })
}
if (item.state == 1) {
// showPdfPwdDialog(
// state = item.state,
// path = item.path,
// isCheckPwd = true,
// verificationAction = { pwd ->
// startActivity(Intent(this, PdfActivity::class.java).apply {
// putExtra("path", item.path)
// putExtra("pwd", pwd)
// })
// })
}
}
if (item.type == DocumentBean.TYPE_WORD) {
// WordActivity.wordDocumentBean = item
// WordActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
if (item.type == DocumentBean.TYPE_EXCEL) {
// ExcelActivity.excelDocumentBean = item
// ExcelActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
if (item.type == DocumentBean.TYPE_PPT) {
// PptActivity.pptDocumentBean = item
// PptActivity.launchDocViewer(this, 3, item.path, -1, 100)
}
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="10dp" />
<solid android:color="#F8F9FE" />
</shape>
\ No newline at end of file
......@@ -8,10 +8,11 @@
tools:context=".ui.main.MainActivity">
<androidx.constraintlayout.widget.ConstraintLayout
<LinearLayout
android:id="@+id/cl_document"
android:layout_width="match_parent"
android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintTop_toTopOf="parent">
......@@ -19,14 +20,14 @@
android:id="@+id/card"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardElevation="0dp"
app:layout_constraintTop_toTopOf="parent">
app:cardElevation="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_top"
android:layout_width="match_parent"
android:layout_height="wrap_content">
android:layout_height="wrap_content"
android:background="@color/white">
<FrameLayout
android:id="@+id/fl_fanhui"
......@@ -51,11 +52,11 @@
android:layout_height="wrap_content"
android:layout_marginStart="20dp"
android:layout_marginTop="48dp"
android:text="@string/document"
android:textColor="@color/white"
android:textSize="19sp"
app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent"
tools:text="Document" />
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/iv_search"
......@@ -92,7 +93,7 @@
<!-- 外层FrameLayout设置背景用来限定水波纹大小-->
<FrameLayout
android:id="@+id/cl_tabLayout"
android:id="@+id/fl_tabLayout"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="24dp"
......@@ -184,10 +185,11 @@
android:id="@+id/viewPager2"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/card" />
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<FrameLayout
android:id="@+id/fl_tool"
......@@ -197,6 +199,7 @@
app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintTop_toTopOf="parent">
<fragment
android:name="com.base.pdfreader2.ui.main.ToolFragment"
android:layout_width="match_parent"
......@@ -427,4 +430,118 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<LinearLayout
android:id="@+id/ll_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FAF8B9"
android:orientation="vertical"
android:visibility="gone">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FA1615">
<FrameLayout
android:id="@+id/fl_fanhui_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
app:layout_constraintBottom_toBottomOf="@id/edit_search"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@id/edit_search">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/fanhui_w"
tools:ignore="ContentDescription" />
</FrameLayout>
<EditText
android:id="@+id/edit_search"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:layout_marginTop="42dp"
android:layout_marginEnd="20dp"
android:layout_marginBottom="16dp"
android:background="@drawable/bg_f8f9fe_10"
android:hint="Enter the file name to search for"
android:imeOptions="actionDone"
android:paddingHorizontal="18dp"
android:singleLine="true"
android:textColor="@color/black"
android:textColorHint="#B8B9BD"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@id/iv_search_2"
app:layout_constraintStart_toEndOf="@id/fl_fanhui_2"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="Autofill,HardcodedText,RtlSymmetry,TextFields" />
<ImageView
android:id="@+id/iv_search_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="16dp"
android:src="@mipmap/h_sousuo"
app:layout_constraintBottom_toBottomOf="@id/edit_search"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/edit_search"
tools:ignore="ContentDescription" />
</androidx.constraintlayout.widget.ConstraintLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_search"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_document" />
<LinearLayout
android:id="@+id/ll_empty"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="60dp"
android:orientation="vertical"
android:visibility="gone"
tools:ignore="UseCompoundDrawables,UselessParent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/empty"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:text="Empty"
android:textColor="#B1B4B9"
android:textSize="16sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<string name="next">Next</string>
<string name="previous">Previous</string>
<string name="merge_pdf">Merge PDF</string>
<string name="document">document</string>
<string name="document">Document</string>
<string name="add">Add</string>
<string name="recent">Recent</string>
<string name="rename">Rename</string>
......
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