Commit d8f5d850 authored by wanglei's avatar wanglei

...

parent 1b0342cc
......@@ -20,6 +20,7 @@
android:usesCleartextTraffic="true"
tools:targetApi="34">
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
......@@ -46,6 +47,12 @@
android:launchMode="singleTask"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.set.SetActivity"
android:exported="false"
android:launchMode="singleTask"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.document.ppt.PptActivity"
android:exported="false"
......
......@@ -34,6 +34,11 @@ object ConstObject {
const val UI_MODE_SELECT = "ui_mode_select"
const val UI_MODE_SEARCH = "ui_mode_search"
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 ifAgreePrivacy = false
get() {
return AppPreferences.getInstance().getBoolean("ifAgreePrivacy", field)
......
......@@ -20,6 +20,7 @@ import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.databinding.FragmentDocumentBinding
import com.base.pdfviewerscannerwhite.helper.BaseFragment
import com.base.pdfviewerscannerwhite.ui.main.MainActivity.Companion.jumpDocument
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showSortDialog
import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.hideKeyboard
import com.base.pdfviewerscannerwhite.utils.KeyBoardUtils.showKeyBoard
import com.base.pdfviewerscannerwhite.utils.LogEx
......@@ -111,6 +112,11 @@ class DocumentFragment(
}
false
}
binding.ivPaixu.setOnClickListener {
requireContext().showSortDialog {
currentPage.refreshData()
}
}
}
private fun initPageViewer() {
......
......@@ -5,6 +5,9 @@ import android.content.Intent
import androidx.core.view.isVisible
import androidx.lifecycle.lifecycleScope
import com.base.pdfviewerscannerwhite.bean.ConstObject
import com.base.pdfviewerscannerwhite.bean.ConstObject.UI_SORT_FINAL_MODIFIED
import com.base.pdfviewerscannerwhite.bean.ConstObject.UI_SORT_NAME_A_Z
import com.base.pdfviewerscannerwhite.bean.ConstObject.UI_SORT_NAME_Z_A
import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_EXCEL
import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_PDF
......@@ -15,8 +18,12 @@ import com.base.pdfviewerscannerwhite.helper.BaseFragment
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfSelectActivity
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfSplitActivity
import com.base.pdfviewerscannerwhite.ui.main.MainActivity.Companion.jumpDocument
import com.base.pdfviewerscannerwhite.ui.view.DialogView.SortMode
import com.base.pdfviewerscannerwhite.ui.view.DialogView.showDocumentHomeMoreDialog
import com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfHomeMoreDialog
import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatTime3
import com.base.pdfviewerscannerwhite.utils.KotlinExt.toFormatTime4
import com.base.pdfviewerscannerwhite.utils.LogEx
import java.io.File
import java.util.Locale
......@@ -52,11 +59,41 @@ class DocumentPageFragment() : BaseFragment<FragmentDocumentPageBinding>(), Docu
fun refreshData() {
if (isVisible) {
val list = (requireActivity() as MainActivity).mainPresenter.getDataByType(type, dataType)
adapter.submitList(list)
val sortList = sortByMode(list)
sortList.forEach {
LogEx.logDebug(TAG, "sortByMode ${File(it.path).lastModified().toFormatTime3()}")
}
adapter.submitList(sortList)
binding.llEmpty.isVisible = list.isEmpty()
}
}
private fun sortByMode(list: List<DocumentBean>): List<DocumentBean> {
when (SortMode) {
ConstObject.UI_SORT_LAST_MODIFIED -> {
LogEx.logDebug(TAG, "sortByMode 1")
return list.sortedByDescending { File(it.path).lastModified() }
}
UI_SORT_FINAL_MODIFIED -> {
LogEx.logDebug(TAG, "sortByMode 2")
return list.sortedBy { File(it.path).lastModified() }
}
UI_SORT_NAME_A_Z -> {
LogEx.logDebug(TAG, "sortByMode 3")
return list.sortedBy { File(it.path).name }
}
UI_SORT_NAME_Z_A -> {
LogEx.logDebug(TAG, "sortByMode 4")
return list.sortedByDescending { File(it.path).name }
}
}
return list
}
override fun refreshDocumentRv(documentList: List<DocumentBean>) {
binding.llEmpty.isVisible = documentList.isEmpty()
......
......@@ -12,6 +12,7 @@ import com.base.pdfviewerscannerwhite.helper.BaseFragment
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfActivity
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfBoxUtils
import com.base.pdfviewerscannerwhite.ui.document.pdf.PdfSelectActivity
import com.base.pdfviewerscannerwhite.ui.set.SetActivity
import com.base.pdfviewerscannerwhite.ui.view.PdfDialog.showPdfPwdDialog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
......@@ -87,6 +88,9 @@ class ToolFragment : BaseFragment<FragmentToolBinding>() {
putExtra("doWhat", DO_UNLOCK_PDF)
})
}
binding.llSet.setOnClickListener {
startActivity(Intent(requireContext(), SetActivity::class.java))
}
}
}
\ No newline at end of file
package com.base.pdfviewerscannerwhite.ui.set
import com.base.pdfviewerscannerwhite.databinding.ActivitySetBinding
import com.base.pdfviewerscannerwhite.helper.BaseActivity
class SetActivity : BaseActivity<ActivitySetBinding>() {
override val binding: ActivitySetBinding by lazy {
ActivitySetBinding.inflate(layoutInflater)
}
override fun initView() {
}
}
\ No newline at end of file
......@@ -3,11 +3,16 @@ package com.base.pdfviewerscannerwhite.ui.view
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.WindowManager
import androidx.core.widget.addTextChangedListener
import com.base.pdfviewerscannerwhite.R
import com.base.pdfviewerscannerwhite.bean.ConstObject.UI_SORT_FINAL_MODIFIED
import com.base.pdfviewerscannerwhite.bean.ConstObject.UI_SORT_LAST_MODIFIED
import com.base.pdfviewerscannerwhite.bean.ConstObject.UI_SORT_NAME_A_Z
import com.base.pdfviewerscannerwhite.bean.ConstObject.UI_SORT_NAME_Z_A
import com.base.pdfviewerscannerwhite.bean.DocumentBean
import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_EXCEL
import com.base.pdfviewerscannerwhite.bean.DocumentBean.Companion.TYPE_PPT
......@@ -19,6 +24,7 @@ import com.base.pdfviewerscannerwhite.databinding.DialogDocumentHomeMoreBinding
import com.base.pdfviewerscannerwhite.databinding.DialogDocumentMoreBinding
import com.base.pdfviewerscannerwhite.databinding.DialogDocumentRenameBinding
import com.base.pdfviewerscannerwhite.databinding.DialogPageNumberBinding
import com.base.pdfviewerscannerwhite.databinding.DialogSortBinding
import com.base.pdfviewerscannerwhite.databinding.DialogStoragePermissionBinding
import com.base.pdfviewerscannerwhite.ui.main.DocumentFragment
import com.base.pdfviewerscannerwhite.ui.main.DocumentPageFragment
......@@ -67,6 +73,88 @@ 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()
}
}
fun Context.showDocumentDetail(path: String) {
val dialog = BottomSheetDialog(this, R.style.BottomSheetDialog)
val binding = DialogDocumentDetailBinding.inflate(LayoutInflater.from(this))
......
<?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"
android:background="@color/white"
tools:context=".ui.set.SetActivity">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="15dp"
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_b"
tools:ignore="ContentDescription" />
</FrameLayout>
<LinearLayout
android:id="@+id/ll_rate"
android:layout_width="match_parent"
android:layout_height="61dp"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="15dp"
android:layout_marginTop="15dp"
android:background="@drawable/bg_fbfbfb_15"
app:layout_constraintTop_toBottomOf="@id/fl_fanhui">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="18dp"
android:src="@mipmap/pingjia"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:layout_weight="1"
android:includeFontPadding="false"
android:text="Evaluate Us"
android:textColor="#333333"
android:textSize="16sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:src="@mipmap/jianotou"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_feedback"
android:layout_width="match_parent"
android:layout_height="61dp"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="15dp"
android:background="@drawable/bg_fbfbfb_15"
app:layout_constraintTop_toBottomOf="@id/ll_rate">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="18dp"
android:src="@mipmap/fankui"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:layout_weight="1"
android:includeFontPadding="false"
android:text="Feedback"
android:textColor="#333333"
android:textSize="16sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:src="@mipmap/jianotou"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_privacy"
android:layout_width="match_parent"
android:layout_height="61dp"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="15dp"
android:background="@drawable/bg_fbfbfb_15"
app:layout_constraintTop_toBottomOf="@id/ll_feedback">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="18dp"
android:src="@mipmap/yinsi"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:layout_weight="1"
android:includeFontPadding="false"
android:text="Privacy Policy"
android:textColor="#333333"
android:textSize="16sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:src="@mipmap/jianotou"
tools:ignore="ContentDescription" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_term"
android:layout_width="match_parent"
android:layout_height="61dp"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="15dp"
android:background="@drawable/bg_fbfbfb_15"
app:layout_constraintTop_toBottomOf="@id/ll_privacy">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="18dp"
android:src="@mipmap/tiaokuan"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:layout_weight="1"
android:includeFontPadding="false"
android:text="Term of service"
android:textColor="#333333"
android:textSize="16sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="20dp"
android:src="@mipmap/jianotou"
tools:ignore="ContentDescription" />
</LinearLayout>
</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_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="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="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="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="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="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="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="Ok"
android:textColor="@color/white"
android:textSize="18sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</LinearLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
......@@ -7,11 +7,71 @@
android:orientation="vertical"
tools:context=".ui.main.ToolFragment">
<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"
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_b"
tools:ignore="ContentDescription" />
</FrameLayout>
<EditText
android:id="@+id/edit_search"
android:layout_width="0dp"
android:layout_height="40dp"
android:layout_marginStart="10dp"
android:layout_marginEnd="20dp"
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"
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,RtlSymmetry,TextFields" />
<TextView
android:id="@+id/tv_tittle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
android:text="Tool"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="HardcodedText" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="42dp">
android:layout_marginTop="20dp">
<LinearLayout
......
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