Commit ecbcbb0b authored by wanglei's avatar wanglei

初始化

parent 7046b81c
Pipeline #1289 canceled with stages
...@@ -4,12 +4,15 @@ import android.annotation.SuppressLint ...@@ -4,12 +4,15 @@ import android.annotation.SuppressLint
import androidx.core.view.isVisible import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.pdfreader2.bean.ConstObject 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.bean.DocumentBean.Companion.TYPE_PDF
import com.base.pdfreader2.databinding.FragmentDocumentBinding import com.base.pdfreader2.databinding.FragmentDocumentBinding
import com.base.pdfreader2.helper.BaseFragment import com.base.pdfreader2.helper.BaseFragment
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.io.File
import java.util.Locale
class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() { class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() {
...@@ -105,5 +108,14 @@ 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 package com.base.pdfreader2.ui.main
import android.app.Activity
import android.content.Intent
import android.graphics.Color import android.graphics.Color
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo
import androidx.activity.OnBackPressedCallback import androidx.activity.OnBackPressedCallback
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
...@@ -14,6 +17,7 @@ import com.base.pdfreader2.bean.ConstObject.BOOKMARK_DATA_TYPE ...@@ -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.DOCUMENT_DATA_TYPE
import com.base.pdfreader2.bean.ConstObject.RECENT_DATA_TYPE import com.base.pdfreader2.bean.ConstObject.RECENT_DATA_TYPE
import com.base.pdfreader2.bean.DocumentBean 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.databinding.ActivityMainBinding
import com.base.pdfreader2.helper.BaseActivity import com.base.pdfreader2.helper.BaseActivity
import com.base.pdfreader2.ui.view.DialogView.showSortDialog import com.base.pdfreader2.ui.view.DialogView.showSortDialog
...@@ -60,6 +64,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -60,6 +64,8 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private lateinit var pageAdapter: FragmentStateAdapter private lateinit var pageAdapter: FragmentStateAdapter
var uiMode = UI_MODE_NORMAL var uiMode = UI_MODE_NORMAL
lateinit var searchAdapter: DocumentAdapter
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, !ConstObject.modeNight) BarUtils.setStatusBarLightMode(this, !ConstObject.modeNight)
if (ConstObject.modeNight) { if (ConstObject.modeNight) {
...@@ -75,10 +81,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -75,10 +81,11 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
} }
initViewPager2() initViewPager2()
initTabLayout() initTabLayout()
initSearchUI()
binding.llDocument.isSelected = true binding.llDocument.isSelected = true
} }
//OnBackPressedCallback 并将 isEnabled 设置为 false 时,默认的返回键行为将被禁用。 //OnBackPressedCallback 并将 isEnabled 设置为 false 时,默认的返回键行为将被禁用。
lateinit var callback: OnBackPressedCallback lateinit var callback: OnBackPressedCallback
override fun initListener() { override fun initListener() {
...@@ -93,7 +100,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -93,7 +100,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
changeSelectUI(false) changeSelectUI(false)
} }
if (uiMode == UI_MODE_SEARCH) { if (uiMode == UI_MODE_SEARCH) {
// changeSearchUI(false) changeSearchUI(false)
} }
} }
} }
...@@ -101,6 +108,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -101,6 +108,9 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding.flFanhui.setOnClickListener { binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed() onBackPressedDispatcher.onBackPressed()
} }
binding.flFanhui2.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.llDocument.setOnClickListener { binding.llDocument.setOnClickListener {
dataType = DOCUMENT_DATA_TYPE dataType = DOCUMENT_DATA_TYPE
...@@ -129,9 +139,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -129,9 +139,13 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding.ivSelect.setOnClickListener { binding.ivSelect.setOnClickListener {
changeSelectUI(true) changeSelectUI(true)
} }
binding.ivSearch.setOnClickListener {
changeSearchUI(true)
}
} }
private fun changeSelectUI(show: Boolean) { private fun changeSelectUI(show: Boolean) {
if (show) { if (show) {
uiMode = UI_MODE_SELECT uiMode = UI_MODE_SELECT
...@@ -153,6 +167,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -153,6 +167,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
currentPage.changeSelectUi(true) currentPage.changeSelectUi(true)
} else { } else {
uiMode = UI_MODE_NORMAL
binding.viewPager2.isUserInputEnabled = true binding.viewPager2.isUserInputEnabled = true
callback.isEnabled = false callback.isEnabled = false
binding.ivPaixu.visibility = View.VISIBLE binding.ivPaixu.visibility = View.VISIBLE
...@@ -174,6 +189,72 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -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() { private fun disSelectBottomNav() {
binding.llDocument.isSelected = false binding.llDocument.isSelected = false
binding.llRecent.isSelected = false binding.llRecent.isSelected = false
...@@ -183,6 +264,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -183,6 +264,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private fun changeDocumentUI() { private fun changeDocumentUI() {
disSelectBottomNav() disSelectBottomNav()
binding.tvTittle.text = resources.getString(R.string.document)
binding.llDocument.isSelected = true binding.llDocument.isSelected = true
binding.flTool.visibility = View.INVISIBLE binding.flTool.visibility = View.INVISIBLE
binding.clDocument.visibility = View.VISIBLE binding.clDocument.visibility = View.VISIBLE
...@@ -190,6 +272,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -190,6 +272,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private fun changeRecentUI() { private fun changeRecentUI() {
disSelectBottomNav() disSelectBottomNav()
binding.tvTittle.text = resources.getString(R.string.recent)
binding.llRecent.isSelected = true binding.llRecent.isSelected = true
binding.flTool.visibility = View.INVISIBLE binding.flTool.visibility = View.INVISIBLE
binding.clDocument.visibility = View.VISIBLE binding.clDocument.visibility = View.VISIBLE
...@@ -197,6 +280,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -197,6 +280,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
private fun changeBookmarkUI() { private fun changeBookmarkUI() {
disSelectBottomNav() disSelectBottomNav()
binding.tvTittle.text = resources.getString(R.string.bookmark)
binding.llBookmark.isSelected = true binding.llBookmark.isSelected = true
binding.flTool.visibility = View.INVISIBLE binding.flTool.visibility = View.INVISIBLE
binding.clDocument.visibility = View.VISIBLE binding.clDocument.visibility = View.VISIBLE
...@@ -284,5 +368,40 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -284,5 +368,40 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
ViewPager2Delegate.install(binding.viewPager2, binding.tabLayoutDocument) 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 @@ ...@@ -8,10 +8,11 @@
tools:context=".ui.main.MainActivity"> tools:context=".ui.main.MainActivity">
<androidx.constraintlayout.widget.ConstraintLayout <LinearLayout
android:id="@+id/cl_document" android:id="@+id/cl_document"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:orientation="vertical"
app:layout_constraintBottom_toTopOf="@id/ll_bottom" app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
...@@ -19,14 +20,14 @@ ...@@ -19,14 +20,14 @@
android:id="@+id/card" android:id="@+id/card"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
app:cardElevation="0dp" app:cardElevation="0dp">
app:layout_constraintTop_toTopOf="parent">
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_top" android:id="@+id/cl_top"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content"
android:background="@color/white">
<FrameLayout <FrameLayout
android:id="@+id/fl_fanhui" android:id="@+id/fl_fanhui"
...@@ -51,11 +52,11 @@ ...@@ -51,11 +52,11 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="20dp" android:layout_marginStart="20dp"
android:layout_marginTop="48dp" android:layout_marginTop="48dp"
android:text="@string/document"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="19sp" android:textSize="19sp"
app:layout_constraintStart_toEndOf="@id/fl_fanhui" app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent" />
tools:text="Document" />
<ImageView <ImageView
android:id="@+id/iv_search" android:id="@+id/iv_search"
...@@ -92,7 +93,7 @@ ...@@ -92,7 +93,7 @@
<!-- 外层FrameLayout设置背景用来限定水波纹大小--> <!-- 外层FrameLayout设置背景用来限定水波纹大小-->
<FrameLayout <FrameLayout
android:id="@+id/cl_tabLayout" android:id="@+id/fl_tabLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="50dp" android:layout_height="50dp"
android:layout_marginTop="24dp" android:layout_marginTop="24dp"
...@@ -184,10 +185,11 @@ ...@@ -184,10 +185,11 @@
android:id="@+id/viewPager2" android:id="@+id/viewPager2"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:layout_weight="1"
app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@id/card" /> app:layout_constraintTop_toBottomOf="@id/card" />
</androidx.constraintlayout.widget.ConstraintLayout> </LinearLayout>
<FrameLayout <FrameLayout
android:id="@+id/fl_tool" android:id="@+id/fl_tool"
...@@ -197,6 +199,7 @@ ...@@ -197,6 +199,7 @@
app:layout_constraintBottom_toTopOf="@id/ll_bottom" app:layout_constraintBottom_toTopOf="@id/ll_bottom"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<fragment <fragment
android:name="com.base.pdfreader2.ui.main.ToolFragment" android:name="com.base.pdfreader2.ui.main.ToolFragment"
android:layout_width="match_parent" android:layout_width="match_parent"
...@@ -427,4 +430,118 @@ ...@@ -427,4 +430,118 @@
</androidx.constraintlayout.widget.ConstraintLayout> </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> </androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<string name="next">Next</string> <string name="next">Next</string>
<string name="previous">Previous</string> <string name="previous">Previous</string>
<string name="merge_pdf">Merge PDF</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="add">Add</string>
<string name="recent">Recent</string> <string name="recent">Recent</string>
<string name="rename">Rename</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