Commit 7046b81c authored by wanglei's avatar wanglei

初始化

parent c8da9857
Pipeline #1288 canceled with stages
...@@ -19,6 +19,11 @@ object ConstObject { ...@@ -19,6 +19,11 @@ object ConstObject {
const val RECENT_DATA_TYPE = "recent" const val RECENT_DATA_TYPE = "recent"
const val BOOKMARK_DATA_TYPE = "bookmark" const val BOOKMARK_DATA_TYPE = "bookmark"
const val UI_SORT_LAST_MODIFIED = "ui_sort_last_modified"
const val UI_SORT_FINAL_MODIFIED = "ui_sort_final_modified"
const val UI_SORT_NAME_A_Z = "ui_sort_name_a_z"
const val UI_SORT_NAME_Z_A = "ui_sort_name_z_a"
var haveSaveDemo = false var haveSaveDemo = false
get() { get() {
......
package com.base.pdfreader2.ui.main package com.base.pdfreader2.ui.main
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context import android.content.Context
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
......
package com.base.pdfreader2.ui.main package com.base.pdfreader2.ui.main
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
...@@ -73,8 +74,8 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() { ...@@ -73,8 +74,8 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() {
val list = documentPresenter.getBookmarkDocument(type) val list = documentPresenter.getBookmarkDocument(type)
lifecycleScope.launch(Dispatchers.Main) { lifecycleScope.launch(Dispatchers.Main) {
binding.llEmpty.isVisible = list.isEmpty() binding.llEmpty.isVisible = list.isEmpty()
adapter.submitList(list)
binding.swipeRefreshLayout.isRefreshing = false binding.swipeRefreshLayout.isRefreshing = false
adapter.submitList(documentPresenter.sortByMode(list))
} }
} }
...@@ -82,8 +83,25 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() { ...@@ -82,8 +83,25 @@ class DocumentFragment() : BaseFragment<FragmentDocumentBinding>() {
val list = documentPresenter.getAllDocument(type) val list = documentPresenter.getAllDocument(type)
launch(Dispatchers.Main) { launch(Dispatchers.Main) {
binding.llEmpty.isVisible = list.isEmpty() binding.llEmpty.isVisible = list.isEmpty()
adapter.submitList(list)
binding.swipeRefreshLayout.isRefreshing = false binding.swipeRefreshLayout.isRefreshing = false
adapter.submitList(documentPresenter.sortByMode(list))
}
}
@SuppressLint("NotifyDataSetChanged")
fun changeSelectUi(select: Boolean) {
if (isVisible) {
adapter.items.forEach {
if (select) {
it.uiType = 1
binding.swipeRefreshLayout.isEnabled = false
} else {
it.isSelect = false
it.uiType = 0
binding.swipeRefreshLayout.isEnabled = true
}
}
adapter.notifyDataSetChanged()
} }
} }
......
...@@ -2,11 +2,15 @@ package com.base.pdfreader2.ui.main ...@@ -2,11 +2,15 @@ package com.base.pdfreader2.ui.main
import android.content.Context import android.content.Context
import com.base.pdfreader2.bean.ConstObject import com.base.pdfreader2.bean.ConstObject
import com.base.pdfreader2.bean.ConstObject.UI_SORT_FINAL_MODIFIED
import com.base.pdfreader2.bean.ConstObject.UI_SORT_NAME_A_Z
import com.base.pdfreader2.bean.ConstObject.UI_SORT_NAME_Z_A
import com.base.pdfreader2.bean.DocumentBean import com.base.pdfreader2.bean.DocumentBean
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_EXCEL import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_EXCEL
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_PDF import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_PDF
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_PPT import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_PPT
import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_WORD import com.base.pdfreader2.bean.DocumentBean.Companion.TYPE_WORD
import com.base.pdfreader2.ui.view.DialogView.SortMode
import com.base.pdfreader2.utils.AssetUtils.saveAssetsFile import com.base.pdfreader2.utils.AssetUtils.saveAssetsFile
import com.base.pdfreader2.utils.KotlinExt.toFormatTime3 import com.base.pdfreader2.utils.KotlinExt.toFormatTime3
import com.base.pdfreader2.utils.LogEx import com.base.pdfreader2.utils.LogEx
...@@ -181,5 +185,25 @@ class DocumentPresenter( ...@@ -181,5 +185,25 @@ class DocumentPresenter(
return new return new
} }
fun sortByMode(list: List<DocumentBean>): List<DocumentBean> {
when (SortMode) {
ConstObject.UI_SORT_LAST_MODIFIED -> {
return list.sortedByDescending { File(it.path).lastModified() }
}
UI_SORT_FINAL_MODIFIED -> {
return list.sortedBy { File(it.path).lastModified() }
}
UI_SORT_NAME_A_Z -> {
return list.sortedBy { File(it.path).name }
}
UI_SORT_NAME_Z_A -> {
return list.sortedByDescending { File(it.path).name }
}
}
return list
}
} }
\ No newline at end of file
...@@ -2,6 +2,7 @@ package com.base.pdfreader2.ui.main ...@@ -2,6 +2,7 @@ package com.base.pdfreader2.ui.main
import android.graphics.Color import android.graphics.Color
import android.view.View import android.view.View
import androidx.activity.OnBackPressedCallback
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.viewpager2.adapter.FragmentStateAdapter import androidx.viewpager2.adapter.FragmentStateAdapter
...@@ -15,12 +16,20 @@ import com.base.pdfreader2.bean.ConstObject.RECENT_DATA_TYPE ...@@ -15,12 +16,20 @@ 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.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.utils.BarUtils import com.base.pdfreader2.utils.BarUtils
import com.base.pdfreader2.utils.LogEx
import com.base.pdfreader2.utils.PermissionUtils.checkStorePermission import com.base.pdfreader2.utils.PermissionUtils.checkStorePermission
import com.base.pdfreader2.utils.PermissionUtils.requestStoragePermission import com.base.pdfreader2.utils.PermissionUtils.requestStoragePermission
const val UI_MODE_NORMAL = "ui_mode_normal"
const val UI_MODE_SELECT = "ui_mode_select"
const val UI_MODE_SEARCH = "ui_mode_search"
class MainActivity : BaseActivity<ActivityMainBinding>() { class MainActivity : BaseActivity<ActivityMainBinding>() {
private val TAG = "MainActivity"
override val binding: ActivityMainBinding by lazy { override val binding: ActivityMainBinding by lazy {
ActivityMainBinding.inflate(layoutInflater) ActivityMainBinding.inflate(layoutInflater)
} }
...@@ -49,6 +58,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -49,6 +58,7 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
var dataType: String = DOCUMENT_DATA_TYPE var dataType: String = DOCUMENT_DATA_TYPE
private lateinit var pageAdapter: FragmentStateAdapter private lateinit var pageAdapter: FragmentStateAdapter
var uiMode = UI_MODE_NORMAL
override fun initView() { override fun initView() {
BarUtils.setStatusBarLightMode(this, !ConstObject.modeNight) BarUtils.setStatusBarLightMode(this, !ConstObject.modeNight)
...@@ -69,8 +79,29 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -69,8 +79,29 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
binding.llDocument.isSelected = true binding.llDocument.isSelected = true
} }
//OnBackPressedCallback 并将 isEnabled 设置为 false 时,默认的返回键行为将被禁用。
lateinit var callback: OnBackPressedCallback
override fun initListener() { override fun initListener() {
super.initListener() super.initListener()
callback = object : OnBackPressedCallback(false) {
override fun handleOnBackPressed() {
LogEx.logDebug(TAG, "handleOnBackPressed")
if (uiMode == UI_MODE_SELECT) {
changeSelectUI(false)
}
if (uiMode == UI_MODE_SEARCH) {
// changeSearchUI(false)
}
}
}
onBackPressedDispatcher.addCallback(callback)
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.llDocument.setOnClickListener { binding.llDocument.setOnClickListener {
dataType = DOCUMENT_DATA_TYPE dataType = DOCUMENT_DATA_TYPE
changeDocumentUI() changeDocumentUI()
...@@ -90,9 +121,58 @@ class MainActivity : BaseActivity<ActivityMainBinding>() { ...@@ -90,9 +121,58 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
changeToolUI() changeToolUI()
} }
binding.ivPaixu.setOnClickListener {
showSortDialog {
currentPage.refreshData()
}
}
binding.ivSelect.setOnClickListener {
changeSelectUI(true)
}
} }
private fun changeSelectUI(show: Boolean) {
if (show) {
uiMode = UI_MODE_SELECT
binding.viewPager2.isUserInputEnabled = false
callback.isEnabled = true
binding.ivPaixu.visibility = View.INVISIBLE
binding.tvTittle.visibility = View.INVISIBLE
binding.ivSearch.visibility = View.INVISIBLE
binding.ivSelect.visibility = View.INVISIBLE
binding.llDocument.visibility = View.INVISIBLE
binding.llRecent.visibility = View.INVISIBLE
binding.llBookmark.visibility = View.INVISIBLE
binding.llTool.visibility = View.INVISIBLE
binding.llDelete.visibility = View.VISIBLE
binding.llShare.visibility = View.VISIBLE
binding.flFanhui.visibility = View.VISIBLE
currentPage.changeSelectUi(true)
} else {
binding.viewPager2.isUserInputEnabled = true
callback.isEnabled = false
binding.ivPaixu.visibility = View.VISIBLE
binding.ivSearch.visibility = View.VISIBLE
binding.tvTittle.visibility = View.VISIBLE
binding.ivSelect.visibility = View.VISIBLE
binding.llDocument.visibility = View.VISIBLE
binding.llRecent.visibility = View.VISIBLE
binding.llBookmark.visibility = View.VISIBLE
binding.llTool.visibility = View.VISIBLE
binding.llDelete.visibility = View.INVISIBLE
binding.llShare.visibility = View.INVISIBLE
binding.flFanhui.visibility = View.GONE
currentPage.changeSelectUi(false)
}
}
private fun disSelectBottomNav() { private fun disSelectBottomNav() {
binding.llDocument.isSelected = false binding.llDocument.isSelected = false
......
package com.base.pdfreader2.ui.view
import android.content.Context
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import com.base.pdfreader2.R
import com.base.pdfreader2.bean.ConstObject.UI_SORT_FINAL_MODIFIED
import com.base.pdfreader2.bean.ConstObject.UI_SORT_LAST_MODIFIED
import com.base.pdfreader2.bean.ConstObject.UI_SORT_NAME_A_Z
import com.base.pdfreader2.bean.ConstObject.UI_SORT_NAME_Z_A
import com.base.pdfreader2.databinding.DialogSortBinding
import com.google.android.material.bottomsheet.BottomSheetBehavior
import com.google.android.material.bottomsheet.BottomSheetDialog
object DialogView {
var SortMode = UI_SORT_LAST_MODIFIED
fun Context.showSortDialog(okAction: () -> Unit) {
val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
val binding = DialogSortBinding.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
val showSortUI: (mode: String) -> Unit = { mode ->
when (mode) {
UI_SORT_LAST_MODIFIED -> {
binding.iv1.visibility = View.VISIBLE
binding.tv1.setTextColor(Color.parseColor("#00B8DE"))
}
UI_SORT_FINAL_MODIFIED -> {
binding.iv2.visibility = View.VISIBLE
binding.tv2.setTextColor(Color.parseColor("#00B8DE"))
}
UI_SORT_NAME_A_Z -> {
binding.iv3.visibility = View.VISIBLE
binding.tv3.setTextColor(Color.parseColor("#00B8DE"))
}
UI_SORT_NAME_Z_A -> {
binding.iv4.visibility = View.VISIBLE
binding.tv4.setTextColor(Color.parseColor("#00B8DE"))
}
}
}
val resetUI = {
binding.iv1.visibility = View.INVISIBLE
binding.iv2.visibility = View.INVISIBLE
binding.iv3.visibility = View.INVISIBLE
binding.iv4.visibility = View.INVISIBLE
binding.tv1.setTextColor(Color.parseColor("#333333"))
binding.tv2.setTextColor(Color.parseColor("#333333"))
binding.tv3.setTextColor(Color.parseColor("#333333"))
binding.tv4.setTextColor(Color.parseColor("#333333"))
}
showSortUI.invoke(SortMode)
var temp: String = SortMode
binding.llLastModified.setOnClickListener {
temp = UI_SORT_LAST_MODIFIED
resetUI.invoke()
showSortUI.invoke(temp)
}
binding.llFinalModified.setOnClickListener {
temp = UI_SORT_FINAL_MODIFIED
resetUI.invoke()
showSortUI.invoke(temp)
}
binding.llNameAZ.setOnClickListener {
temp = UI_SORT_NAME_A_Z
resetUI.invoke()
showSortUI.invoke(temp)
}
binding.llNameZA.setOnClickListener {
temp = UI_SORT_NAME_Z_A
resetUI.invoke()
showSortUI.invoke(temp)
}
binding.tvCancel.setOnClickListener {
dialog.dismiss()
}
binding.tvOk.setOnClickListener {
dialog.dismiss()
SortMode = temp
okAction.invoke()
}
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00B8DE" />
<corners android:radius="10dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#F1F2F6"/>
<corners android:radius="10dp"/>
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#F3F3F3" />
<corners
android:topLeftRadius="25dp"
android:topRightRadius="25dp" />
</shape>
\ No newline at end of file
...@@ -28,6 +28,23 @@ ...@@ -28,6 +28,23 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content"> android:layout_height="wrap_content">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
android:visibility="gone"
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:src="@mipmap/fanhui_w"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView <TextView
android:id="@+id/tv_tittle" android:id="@+id/tv_tittle"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -36,7 +53,7 @@ ...@@ -36,7 +53,7 @@
android:layout_marginTop="48dp" android:layout_marginTop="48dp"
android:textColor="@color/white" android:textColor="@color/white"
android:textSize="19sp" android:textSize="19sp"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toEndOf="@id/fl_fanhui"
app:layout_constraintTop_toTopOf="parent" app:layout_constraintTop_toTopOf="parent"
tools:text="Document" /> tools:text="Document" />
...@@ -63,6 +80,7 @@ ...@@ -63,6 +80,7 @@
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<ImageView <ImageView
android:id="@+id/iv_paixu"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="16dp" android:layout_marginEnd="16dp"
...@@ -240,7 +258,6 @@ ...@@ -240,7 +258,6 @@
android:id="@+id/ll_recent" android:id="@+id/ll_recent"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginHorizontal="5dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/ripple_select" android:background="@drawable/ripple_select"
android:clickable="true" android:clickable="true"
...@@ -273,7 +290,6 @@ ...@@ -273,7 +290,6 @@
android:id="@+id/ll_bookmark" android:id="@+id/ll_bookmark"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginHorizontal="5dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/ripple_select" android:background="@drawable/ripple_select"
android:clickable="true" android:clickable="true"
...@@ -308,7 +324,6 @@ ...@@ -308,7 +324,6 @@
android:id="@+id/ll_tool" android:id="@+id/ll_tool"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginHorizontal="5dp"
android:layout_weight="1" android:layout_weight="1"
android:background="@drawable/ripple_select" android:background="@drawable/ripple_select"
android:clickable="true" android:clickable="true"
...@@ -339,6 +354,76 @@ ...@@ -339,6 +354,76 @@
</LinearLayout> </LinearLayout>
<LinearLayout
android:id="@+id/ll_delete"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginHorizontal="5dp"
android:layout_weight="1"
android:background="@drawable/ripple_select"
android:clickable="true"
android:focusable="true"
android:orientation="vertical"
android:splitMotionEvents="false"
android:visibility="gone"
app:layout_constraintEnd_toStartOf="@id/ll_share"
app:layout_constraintStart_toStartOf="parent">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:src="@mipmap/x_delete"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="2.5dp"
android:text="@string/delete"
android:textColor="#333333"
android:textSize="11sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_share"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginHorizontal="5dp"
android:layout_weight="1"
android:background="@drawable/ripple_select"
android:clickable="true"
android:focusable="true"
android:orientation="vertical"
android:splitMotionEvents="false"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/ll_delete">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="9dp"
android:src="@mipmap/x_share"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="2.5dp"
android:text="@string/share"
android:textColor="#333333"
android:textSize="11sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
......
<?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="@string/sort_order"
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">
<LinearLayout
android:id="@+id/ll_last_modified"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16.5dp"
android:background="?android:attr/selectableItemBackground"
android:paddingVertical="15dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:id="@+id/tv_1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:includeFontPadding="false"
android:text="@string/last_modification_from_new_to_1st"
android:textColor="#333333"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<ImageView
android:id="@+id/iv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@mipmap/sort_xia"
android:visibility="invisible"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_final_modified"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16.5dp"
android:background="?android:attr/selectableItemBackground"
android:paddingVertical="15dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:id="@+id/tv_2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:includeFontPadding="false"
android:text="@string/final_modification_from_old_to_new"
android:textColor="#333333"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<ImageView
android:id="@+id/iv_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@mipmap/sort_xia"
android:visibility="invisible"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_name_a_z"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16.5dp"
android:background="?android:attr/selectableItemBackground"
android:paddingVertical="15dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:id="@+id/tv_3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:includeFontPadding="false"
android:text="@string/name_a_z"
android:textColor="#333333"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<ImageView
android:id="@+id/iv_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@mipmap/sort_xia"
android:visibility="invisible"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_name_z_a"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="16.5dp"
android:background="?android:attr/selectableItemBackground"
android:paddingVertical="15dp"
tools:ignore="UseCompoundDrawables">
<TextView
android:id="@+id/tv_4"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:includeFontPadding="false"
android:text="@string/name_z_a"
android:textColor="#333333"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<ImageView
android:id="@+id/iv_4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@mipmap/sort_xia"
android:visibility="invisible"
tools:ignore="ContentDescription" />
</LinearLayout>
<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="@string/cancel"
android:textColor="#505050"
android:textSize="18sp"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_ok"
android:layout_width="163dp"
android:layout_height="48dp"
android:layout_marginStart="14dp"
android:background="@drawable/bg_00b8de_10"
android:gravity="center"
android:text="@string/ok"
android:textColor="@color/white"
android:textSize="18sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
<resources> <resources>
<string name="app_name">pdf reader 2</string> <string name="app_name">pdf reader 2</string>
<!-- TODO: Remove or change this placeholder text -->
<string name="hello_blank_fragment">Hello blank fragment</string> <string name="next">Next</string>
<string name="document">Document</string> <string name="previous">Previous</string>
<string name="merge_pdf">Merge PDF</string>
<string name="document">document</string>
<string name="add">Add</string>
<string name="recent">Recent</string>
<string name="rename">Rename</string>
<string name="bookmark">Bookmark</string> <string name="bookmark">Bookmark</string>
<string name="merge">Merge</string>
<string name="feedback">Feedback</string>
<string name="tool">Tool</string> <string name="tool">Tool</string>
<string name="recent">Recent</string> <string name="delete">Delete</string>
<string name="share">Share</string>
<string name="save">Save</string>
<string name="highlight">Highlight</string>
<string name="glide_line">Glide Line</string>
<string name="split_pdf">Split PDF</string>
<string name="send">Send</string>
<string name="set">Set</string>
<string name="painting_brush">Painting Brush</string>
<string name="cancel">Cancel</string>
<string name="strikethrough">Strikethrough</string>
<string name="are_you_sure_you_want_to_delete_it">Are you sure you want to delete it?</string>
<string name="evaluate_us">Evaluate Us</string>
<string name="splitting_pdf_please_wait">Splitting PDF, please wait.</string>
<string name="detail">Detail</string>
<string name="split">Split</string>
<string name="lock_pdf">Lock PDF</string>
<string name="unlock_pdf">Unlock PDF</string>
<string name="scan_pdf">Scan PDF</string>
<string name="privacy_policy">Privacy Policy</string>
<string name="term_of_service">Term of service</string>
<string name="empty">Empty</string> <string name="empty">Empty</string>
<string name="start">Start</string>
<string name="file_manager">File Manager</string>
<string name="more">More</string>
<string name="ok">Ok</string>
<string name="page_number">Page Number</string>
<string name="jump_to_the_specified_page">Jump to the specified page</string>
<string name="set_password">Set Password</string>
<string name="set_password_protection_pdf">Set password protection pdf</string>
<string name="enter_the_password_to_open_the_file">Enter the password to open the file</string>
<string name="password_error">Password Error</string>
<string name="confirm">Confirm</string>
<string name="thank_you_for_your_support">Thank you for your support!</string>
<string name="your_five_star_rating_will_inspire_us_to_keep_moving_forward">Your five-star rating will inspire us to keep\nmoving forward</string>
<string name="print">Print</string>
<string name="evaluate">Evaluate</string>
<string name="sort_order">Sort Order</string>
<string name="last_modification_from_new_to_1st">Last modification (From new to 1st)</string>
<string name="final_modification_from_old_to_new">Final modification (From old to new)</string>
<string name="name_a_z">Name (A-Z)</string>
<string name="name_z_a">Name (Z-A)</string>
<string name="language">Language</string>
<string name="select_language">Select language</string>
<string name="select_a_project">Select a project</string>
<string name="items_has_been_selected">%1$s items has been selected</string>
<string name="delete_password">Delete Password</string>
<string name="delete_password_the_file_is_not_password_protected">Delete password, the file is not password protected</string>
<string name="input_password">Input Password</string>
<string name="password_protected">%1$s password protected</string>
<string name="sunday">Sunday</string>
<string name="monday">Monday</string>
<string name="tuesday">Tuesday</string>
<string name="wednesday">Wednesday</string>
<string name="thursday">Thursday</string>
<string name="friday">Friday</string>
<string name="saturday">Saturday</string>
<string name="exit">Exit</string>
<string name="follow_system">Follow System</string>
<string name="authorization_request">Authorization request</string>
<string name="to_read_and_edit_pdf_files_we_need_your_permission_to_obtain_file_management_privileges">To read and edit PDF files, we need your\npermission to obtain file management privileges</string>
<string name="_continue">Continue</string>
<string name="required_permissions">Required permissions</string>
<string name="later">Later</string>
<string name="allow">Allow</string>
<string name="permission_tip_1">For your convenience, please allow the APP to access all your files. The document information we organize</string>
<string name="permission_tip_2">will only be used on the current device.</string>
<string name="click_this_button_to_use_the_scanning_feature">Click this button to use the\nscanning feature</string>
<string name="try_using_it">Try using it</string>
<string name="preparing_advertisement">Preparing advertisement&#8230;</string>
<string name="new_image_for_creating_pdf">New image for creating PDF</string>
<string name="edit_images_to_create_pdf_files">Edit images to create PDF files</string>
<string name="read_your_pdf_file">Read your PDF file</string>
<string name="did_you_miss_this_pdf_file">Did you miss this PDF file?</string>
<string name="read_more_phone_documents">Read more phone documents</string>
<string name="click_to_read_and_edit_your_document">Click to read and edit your document</string>
<string name="there_are_unviewed_files">There are unviewed files</string>
<string name="click_to_read_now">Click to read now</string>
<string name="don_t_miss_important_documents">Don\'t miss important documents</string>
<string name="view_now">View Now</string>
<string name="please_grant_notification_permissions">Please grant notification permissions</string>
<string name="notification_enable_tips">Enabling notification permissions will allow you to receive future notification promptly and display unique message banners</string>
<string name="enable_notifications">Enable notifications</string>
<string name="not_open">Not open</string>
<string name="unfinished_documents_to_read">You still have some unfinished documents to read.</string>
<string name="click_to_view_details">Click to view details.</string>
<string name="set_as_default">Set as Default </string>
<string name="set_this_app_as_your_default">Set this app as your default </string>
<string name="for_a_better_reading_experience">for a better reading experience</string>
<string name="select">Select </string>
<string name="_and_click">" and click"</string>
<string name="always">Always </string>
<string name="as_the_default_reader">It is set as the default reader.</string>
<string name="image_pdf">Image Pdf</string>
<string name="process">Process</string>
<string name="_7_day_weather_forecast">7 Day weather forecast</string>
<string name="wait_a_moment">Wait a moment&#8230;</string>
<string name="humidity">Humidity</string>
<string name="wind">Wind</string>
<string name="pressure">Pressure</string>
<string name="backend_apps">Backend Apps</string>
<string name="stop">Stop</string>
<string name="clean_junk">Clean Junk</string>
<string name="scanning_for_running_processes">Scanning for running processes</string>
<string name="manage_processes_run_in_the_background">Manage processes run in the background</string>
<string name="clean_up_your_phone_storage">Clean up your phone storage</string>
<string name="scan_now">Scan Now</string>
<string name="clean_now">Clean Now</string>
<string name="completed">Completed</string>
<string name="clean">Clean</string>
<string name="scan">Scan</string>
</resources> </resources>
\ No newline at end of file
...@@ -7,5 +7,13 @@ ...@@ -7,5 +7,13 @@
<style name="Theme.PdfReader2" parent="Base.Theme.PdfReader2" /> <style name="Theme.PdfReader2" parent="Base.Theme.PdfReader2" />
<style name="BottomSheetDialog" parent="Theme.Design.Light.BottomSheetDialog">
<item name="bottomSheetStyle">@style/bottomSheetStyleWrapper</item>
</style>
<style name="bottomSheetStyleWrapper" parent="Widget.Design.BottomSheet.Modal">
<item name="android:background">@android:color/transparent</item>
</style>
</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