Commit a574f00d authored by wanglei's avatar wanglei

...

parent 5c2b4c9a
......@@ -39,7 +39,7 @@
android:usesCleartextTraffic="true"
tools:targetApi="34">
<activity
android:name=".ui.activity.bookmark.BookmarkFolderAddActivity"
android:name=".ui.activity.bookmark.BookmarkFolderEditActivity"
android:exported="false" />
<activity
android:name=".ui.activity.bookmark.BookmarkFolderActivity"
......
......@@ -2,6 +2,7 @@ package com.base.browserwhite.bean
class BookmarkBean(
var folderId: Long = folderRootId,
var folder: String = folderRoot,
var name: String = "",
var url: String = "",
......@@ -13,6 +14,7 @@ class BookmarkBean(
companion object {
var folderRoot = "Root Directory"
var folderRootId = 0L
}
}
package com.base.browserwhite.bean
abstract class SpBean(var id: Long = 0) {
open class SpBean(var id: Long = 0) {
}
\ No newline at end of file
package com.base.browserwhite.ui.activity.bookmark
import android.annotation.SuppressLint
import android.content.Intent
import android.graphics.Color
import android.view.View
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.databinding.ActivityBookmarkBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.bookmark.BookmarkFolderActivity.Companion.selectFolder
import com.base.browserwhite.ui.views.BookmarkDialog.showBookmarkMoreDialog
import com.base.browserwhite.ui.views.DialogViews.showDeleteTipDialog
import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY
import com.base.browserwhite.utils.ToastUtils.toast
import com.google.gson.Gson
class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
......@@ -33,18 +38,47 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
bookmarkAdapter = BookmarkAdapter()
bookmarkAdapter.changeFolderAction = { folder ->
val list = bookmarkList.filter { it.folder == folder }
bookmarkAdapter.changeFolderAction = { folderId ->
val list = bookmarkList.filter { it.folderId == folderId }
bookmarkAdapter.submitList(list)
}
bookmarkAdapter.moreAction = { view, bean ->
showBookmarkMoreDialog(
view,
bean.isFolder,
//删除
deleteAction = {
// SpBeanUtils.deleteSpBean()
bookmarkAdapter.remove(bean)
})
if (bean.isFolder) {//书签目录
val desc = "Delete folder [${bean.name}] and the bookmarks in the folder?"
showDeleteTipDialog(desc) {
//删除书签目录
SpBeanUtils.deleteSpBeanCondition(BOOKMARK_SP_KEY, bean.id)
bookmarkList.remove(bean)
bookmarkAdapter.remove(bean)
//删除目录下书签
val subBeanList = bookmarkList.filter { it.folder == bean.name }
subBeanList.forEach { subBean ->
SpBeanUtils.deleteSpBeanCondition(BOOKMARK_SP_KEY, subBean.id)
bookmarkList.remove(subBean)
}
}
} else {//书签直接删除
SpBeanUtils.deleteSpBeanCondition(BOOKMARK_SP_KEY, bean.id)
bookmarkList.remove(bean)
bookmarkAdapter.remove(bean)
}
},
//编辑
editAction = {
BookmarkFolderEditActivity.editFolder = bean
launcher.launch(Intent(Intent(this, BookmarkFolderEditActivity::class.java)))
},
//选择
selectAction = {
selectUI()
}
)
}
changeBookmark()
......@@ -70,7 +104,7 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
val items = list.map { Gson().fromJson(it, BookmarkBean::class.java) }
bookmarkList.addAll(items)
bookmarkAdapter.submitList(bookmarkList.filter { it.folder == bookmarkAdapter.currentFolder })
bookmarkAdapter.submitList(bookmarkList.filter { it.folderId == bookmarkAdapter.currentFolderId })
}
override fun initListener() {
......@@ -109,10 +143,49 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
currentTab = HISTORY_TAB
}
binding.ivNewFolder.setOnClickListener {
launcher.launch(Intent(this, BookmarkFolderAddActivity::class.java))
launcher.launch(Intent(this, BookmarkFolderEditActivity::class.java))
}
binding.tvCancel.setOnClickListener { noSelectUI() }
binding.llRemoveFolder.setOnClickListener {
val select = bookmarkAdapter.items.filter { it.isSelect }
if (select.isEmpty()) {
toast("Please select a bookmark to move")
return@setOnClickListener
}
if (select.any { it.isFolder }) {
toast("Folder cannot be moved")
return@setOnClickListener
}
selectFolder = select.first().folder
launcher.launch(Intent(this, BookmarkFolderActivity::class.java)) {
}
}
}
@SuppressLint("NotifyDataSetChanged")
private fun selectUI() {
binding.flFanhui.visibility = View.GONE
binding.flTab.visibility = View.GONE
binding.tvCancel.visibility = View.VISIBLE
binding.ivNewFolder.visibility = View.GONE
binding.flOperation.visibility = View.VISIBLE
bookmarkAdapter.showSelector = true
bookmarkAdapter.items.forEach { it.isSelect = false }
bookmarkAdapter.notifyDataSetChanged()
}
@SuppressLint("NotifyDataSetChanged")
private fun noSelectUI() {
binding.tvCancel.visibility = View.GONE
binding.flFanhui.visibility = View.VISIBLE
binding.flTab.visibility = View.VISIBLE
binding.ivNewFolder.visibility = View.VISIBLE
binding.flOperation.visibility = View.GONE
bookmarkAdapter.showSelector = false
bookmarkAdapter.notifyDataSetChanged()
}
companion object {
private val BOOKMARK_TAB = "bookmark_tab"
private val HISTORY_TAB = "history_tab"
......
package com.base.browserwhite.ui.activity.bookmark
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.view.View
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.browserwhite.R
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.bean.BookmarkBean.Companion.folderRootId
import com.base.browserwhite.databinding.ItemBookmarkBinding
import com.base.browserwhite.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter
......@@ -15,8 +16,10 @@ import com.chad.library.adapter4.BaseQuickAdapter
class BookmarkAdapter : BaseQuickAdapter<BookmarkBean, BookmarkAdapter.BookmarkHolder>() {
var currentFolder = BookmarkBean.folderRoot
var changeFolderAction: ((folder: String) -> Unit)? = null
private val TAG = "BookmarkAdapter"
var showSelector: Boolean = false
var currentFolderId: Long = folderRootId
var changeFolderAction: ((folderId: Long) -> Unit)? = null
var moreAction: ((view: View, bean: BookmarkBean) -> Unit)? = null
inner class BookmarkHolder(view: View) : ViewHolder(view)
......@@ -41,15 +44,76 @@ class BookmarkAdapter : BaseQuickAdapter<BookmarkBean, BookmarkAdapter.BookmarkH
binding.iv.visibility = View.VISIBLE
binding.iv.setImageResource(R.mipmap.wenjiajia_bookmark)
}
binding.ivSelector.isVisible = showSelector
if (showSelector) {
binding.ivSelector.isSelected = item.isSelect
}
binding.ivMore.isVisible = !showSelector
binding.root.setOnClickListener {
if (!item.isFolder) return@setOnClickListener
currentFolder = item.name
changeFolderAction?.invoke(currentFolder)
currentFolderId = item.id
changeFolderAction?.invoke(currentFolderId)
}
binding.flMore.setOnClickListener {
moreAction?.invoke(it, item)
binding.flOperation.setOnClickListener {
if (showSelector) {
item.isSelect = !item.isSelect
notifyItemChanged(position, "aaa")
} else {
moreAction?.invoke(it, item)
}
}
}
override fun onBindViewHolder(holder: BookmarkHolder, position: Int, item: BookmarkBean?, payloads: List<Any>) {
if (item == null) {
return
}
val binding = ItemBookmarkBinding.bind(holder.itemView)
val context = holder.itemView.context
if (payloads.isEmpty()) {
binding.tvName.text = item.name
if (!item.isFolder) {
binding.card.radius = context.resources.getDimension(R.dimen.dp_5)
binding.iv.visibility = View.GONE
binding.tvLetters.visibility = View.VISIBLE
binding.tvLetters.background = ColorDrawable(item.color)
binding.tvLetters.text = item.name.first().toString()
} else {
binding.card.radius = 0f
binding.tvLetters.visibility = View.GONE
binding.iv.visibility = View.VISIBLE
binding.iv.setImageResource(R.mipmap.wenjiajia_bookmark)
}
binding.ivSelector.isVisible = showSelector
// LogEx.logDebug(TAG, "showSelector=$showSelector")
if (showSelector) {
binding.ivSelector.isSelected = item.isSelect
}
binding.ivMore.isVisible = !showSelector
binding.root.setOnClickListener {
if (!item.isFolder) return@setOnClickListener
currentFolderId = item.id
changeFolderAction?.invoke(currentFolderId)
}
binding.flOperation.setOnClickListener {
if (showSelector) {
item.isSelect = !item.isSelect
notifyItemChanged(position, "aaa")
} else {
moreAction?.invoke(it, item)
}
}
} else {
if (showSelector) {
binding.ivSelector.isSelected = item.isSelect
super.onBindViewHolder(holder, position, item, payloads)
}
}
}
......@@ -69,11 +133,11 @@ class BookmarkAdapter : BaseQuickAdapter<BookmarkBean, BookmarkAdapter.BookmarkH
fun canBeforeFolder(): Boolean {
return currentFolder != BookmarkBean.folderRoot
return currentFolderId != BookmarkBean.folderRootId
}
fun beforeFolder() {
currentFolder = BookmarkBean.folderRoot
changeFolderAction?.invoke(currentFolder)
currentFolderId = BookmarkBean.folderRootId
changeFolderAction?.invoke(currentFolderId)
}
}
\ No newline at end of file
......@@ -15,6 +15,9 @@ import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY
import com.google.gson.Gson
/**
* 编辑书签
*/
class BookmarkEditActivity : BaseActivity<ActivityBookmarkEditBinding>() {
override val binding: ActivityBookmarkEditBinding by lazy {
......@@ -33,6 +36,7 @@ class BookmarkEditActivity : BaseActivity<ActivityBookmarkEditBinding>() {
binding.ivSelectorNav.isSelected = true
binding.tvFolder.text = editBookmark?.folder
binding.tvSave.isEnabled = true
}
override fun initListener() {
......@@ -46,7 +50,10 @@ class BookmarkEditActivity : BaseActivity<ActivityBookmarkEditBinding>() {
binding.llFolder.setOnClickListener {
BookmarkFolderActivity.selectFolder = editBookmark?.folder ?: ""
launcher.launch(Intent(this, BookmarkFolderActivity::class.java)) {
editBookmark?.folder = it.data?.extras?.getString("Folder", "") ?: ""
val json = it.data?.extras?.getString("Folder", "") ?: ""
val bean = Gson().fromJson(json, BookmarkBean::class.java)
editBookmark?.folder = bean.name
editBookmark?.folderId = bean.id
binding.tvFolder.text = editBookmark?.folder ?: ""
}
}
......@@ -61,10 +68,6 @@ class BookmarkEditActivity : BaseActivity<ActivityBookmarkEditBinding>() {
if (editBookmark == null) {
throw Exception("bug no BookmarkBean")
}
if (editBookmark?.folder != BookmarkBean.folderRoot) {
val folderBean = BookmarkBean(name = editBookmark?.folder ?: "", isFolder = true)
SpBeanUtils.addSpBean(BOOKMARK_SP_KEY, folderBean)
}
editBookmark?.color = ColorUtils.getRandomColor()
editBookmark?.let { SpBeanUtils.addSpBean(BOOKMARK_SP_KEY, it) }
finish()
......
......@@ -26,8 +26,8 @@ class BookmarkFolderActivity : BaseActivity<ActivityBookmarkFolderBinding>() {
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.ivRootSelector.isSelected = selectFolder == "Root Directory"
adapter = BookmarkFolderAdapter(selectFolder) {
setResult(0, Intent().putExtra("Folder", it))
adapter = BookmarkFolderAdapter(selectFolder) { bean ->
setResult(0, Intent().putExtra("Folder", Gson().toJson(bean)))
finish()
}
binding.rv.adapter = adapter
......@@ -43,14 +43,14 @@ class BookmarkFolderActivity : BaseActivity<ActivityBookmarkFolderBinding>() {
}
binding.ivNewFolder.setOnClickListener {
startActivity(Intent(this, BookmarkFolderAddActivity::class.java))
startActivity(Intent(this, BookmarkFolderEditActivity::class.java))
}
}
private fun initData() {
val spList = SpBeanUtils.getSpBeanList(BOOKMARK_SP_KEY)
val folderList= spList.map {
Gson().fromJson(it,BookmarkBean::class.java)
val folderList = spList.map {
Gson().fromJson(it, BookmarkBean::class.java)
}.filter { it.isFolder }
adapter.submitList(folderList)
}
......
......@@ -12,7 +12,7 @@ import com.chad.library.adapter4.BaseQuickAdapter
class BookmarkFolderAdapter(
val selectFolder: String,
val clickAction: (folder: String) -> Unit
val clickAction: (bookmark: BookmarkBean) -> Unit
) : BaseQuickAdapter<BookmarkBean, BookmarkFolderAdapter.BookmarkFolderViewHolder>() {
inner class BookmarkFolderViewHolder(view: View) : ViewHolder(view)
......@@ -24,7 +24,7 @@ class BookmarkFolderAdapter(
binding.tvName.text = item.name
binding.ivSelector.isSelected = item.name == selectFolder
binding.root.setOnClickListener {
clickAction.invoke(item.name)
clickAction.invoke(item)
}
}
......
......@@ -5,18 +5,19 @@ import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.core.widget.addTextChangedListener
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.databinding.ActivityBookmarkFolderAddBinding
import com.base.browserwhite.databinding.ActivityBookmarkFolderEditBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_FOLDER_SP_KEY
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY
import com.google.gson.Gson
class BookmarkFolderAddActivity : BaseActivity<ActivityBookmarkFolderAddBinding>() {
/**
* 添加编辑书签
*/
class BookmarkFolderEditActivity : BaseActivity<ActivityBookmarkFolderEditBinding>() {
override val binding: ActivityBookmarkFolderAddBinding by lazy {
ActivityBookmarkFolderAddBinding.inflate(layoutInflater)
override val binding: ActivityBookmarkFolderEditBinding by lazy {
ActivityBookmarkFolderEditBinding.inflate(layoutInflater)
}
override fun initView() {
......@@ -24,7 +25,7 @@ class BookmarkFolderAddActivity : BaseActivity<ActivityBookmarkFolderAddBinding>
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.editName.setText(editFolder)
editFolder?.let { binding.editName.setText(it.name) }
}
......@@ -40,15 +41,23 @@ class BookmarkFolderAddActivity : BaseActivity<ActivityBookmarkFolderAddBinding>
binding.editName.addTextChangedListener {
binding.tvSave.isEnabled = !it.isNullOrEmpty()
}
binding.tvSave.setOnClickListener {
val bookmarkBean = BookmarkBean(name = binding.editName.text.toString(), isFolder = true)
SpBeanUtils.addSpBean(BOOKMARK_SP_KEY, bookmarkBean)
if (editFolder == null) {
editFolder = BookmarkBean(name = binding.editName.text.toString(), isFolder = true)
editFolder?.let { SpBeanUtils.addSpBean(BOOKMARK_SP_KEY, it) }
} else {
editFolder?.let {
it.name = binding.editName.text.toString()
SpBeanUtils.editSpBean(BOOKMARK_SP_KEY, it)
}
}
finish()
}
}
companion object {
var editFolder: String = ""
var editFolder: BookmarkBean? = null
}
}
\ No newline at end of file
......@@ -142,12 +142,6 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
}
BOOKMARK -> {
requireContext().startActivity(
Intent(
requireContext(),
BookmarkActivity::class.java
)
)
requireContext().startActivity(Intent(requireContext(), BookmarkActivity::class.java))
}
......
......@@ -14,7 +14,9 @@ object BookmarkDialog {
fun Context.showBookmarkMoreDialog(
anchorView: View,
isDir: Boolean,
deleteAction: (() -> Unit)? = null
deleteAction: (() -> Unit)? = null,
editAction: (() -> Unit)? = null,
selectAction: (() -> Unit)? = null,
) {
val binding = DialogBookmarkMoreBinding.inflate(LayoutInflater.from(this))
val dialog = AlertDialog.Builder(this).create()
......@@ -49,11 +51,18 @@ object BookmarkDialog {
binding.llOpenNewTab.setOnClickListener { }
binding.llDelete.setOnClickListener {
dialog.dismiss()
deleteAction?.invoke()
}
binding.llEdit.setOnClickListener { }
binding.llEdit.setOnClickListener {
dialog.dismiss()
editAction?.invoke()
}
binding.llAddNavigation.setOnClickListener { }
binding.llAddDesktop.setOnClickListener { }
binding.llSelect.setOnClickListener { }
binding.llSelect.setOnClickListener {
dialog.dismiss()
selectAction?.invoke()
}
}
}
\ No newline at end of file
......@@ -278,7 +278,7 @@ object DialogViews {
}
fun Context.showDeleteTipDialog(action: () -> Unit) {
fun Context.showDeleteTipDialog(desc: String? = null, action: () -> Unit) {
val binding = DialogDeleteTipBinding.inflate(LayoutInflater.from(this))
val dialog = AlertDialog.Builder(this).create()
dialog.setView(binding.root)
......@@ -288,6 +288,7 @@ object DialogViews {
params?.width = resources.getDimensionPixelOffset(R.dimen.dp_335)
dialog.window?.attributes = params
dialog.window?.setBackgroundDrawableResource(android.R.color.transparent)
desc?.let { binding.tvDesc.text = it }
binding.tvCancel.setOnClickListener {
dialog.dismiss()
}
......
......@@ -7,7 +7,6 @@ object SpBeanUtils {
const val BOOKMARK_SP_KEY = "bookmark_sp_key"//书签
const val BOOKMARK_FOLDER_SP_KEY = "bookmark_folder_sp_key"//书签目录
const val SEARCH_RECORD_SP_KEY = "search_record_sp_key"
fun getSpBeanList(key: String): List<String> {
......@@ -21,8 +20,8 @@ object SpBeanUtils {
fun deleteSpBeanCondition(key: String, id: Long) {
val list =getSpBeanList(key).toMutableList()
val deleteItem = list .find { Gson().fromJson(it, SpBean::class.java).id == id }
val list = getSpBeanList(key).toMutableList()
val deleteItem = list.find { Gson().fromJson(it, SpBean::class.java).id == id }
list.remove(deleteItem)
val string = list.joinToString(separator = "|||")
......@@ -31,15 +30,19 @@ object SpBeanUtils {
}
fun addSpBean(key: String, bean: SpBean) {
fun addSpBean(key: String, bean: SpBean): Long {
val list = getSpBeanList(key).toMutableList()
val lastSpBean: SpBean? = Gson().fromJson(list.last(), SpBean::class.java)
bean.id = (lastSpBean?.id ?: 0) + 1
bean.id = if (list.isNotEmpty()) {
val lastSpBean: SpBean? = Gson().fromJson(list.last(), SpBean::class.java)
(lastSpBean?.id ?: 0) + 1
} else {
1
}
val value = Gson().toJson(bean)
list.add(value)
val string = list.joinToString(separator = "|||")
AppPreferences.getInstance().put(key, string)
return bean.id
}
......@@ -47,4 +50,16 @@ object SpBeanUtils {
AppPreferences.getInstance().put(key, "")
}
fun editSpBean(key: String, bean: SpBean) {
val gson = Gson()
val list = getSpBeanList(key).toMutableList()
val oldItem = list.find { gson.fromJson(it, SpBean::class.java).id == bean.id }
val index = list.indexOf(oldItem)
list.remove(oldItem)
list.add(index, gson.toJson(bean))
val string = list.joinToString(separator = "|||")
AppPreferences.getInstance().put(key, string)
}
}
\ No newline at end of file
......@@ -21,6 +21,18 @@
android:layout_marginVertical="10dp"
android:layout_marginStart="10dp">
<TextView
android:id="@+id/tv_cancel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="8dp"
android:text="Cancel"
android:textColor="#0571ED"
android:textSize="18sp"
android:visibility="gone"
tools:ignore="HardcodedText" />
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
......@@ -37,6 +49,7 @@
</FrameLayout>
<FrameLayout
android:id="@+id/fl_tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
......@@ -103,6 +116,7 @@
</FrameLayout>
<SearchView
android:id="@+id/searchView"
android:layout_width="match_parent"
android:layout_height="44dp"
android:layout_marginHorizontal="15dp"
......@@ -126,4 +140,73 @@
</FrameLayout>
<FrameLayout
android:id="@+id/fl_operation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@color/white"
android:orientation="horizontal"
android:visibility="gone">
<LinearLayout
android:id="@+id/ll_remove_folder"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_gravity="start"
android:layout_marginStart="45dp"
android:layout_marginTop="5dp"
android:layout_marginBottom="10dp"
android:orientation="vertical"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/remove_folder_edit"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Remove Folder"
android:textColor="#6E757B"
android:textSize="14sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<LinearLayout
android:id="@+id/ll_delete"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:layout_gravity="end"
android:layout_marginTop="5dp"
android:layout_marginEnd="45dp"
android:layout_marginBottom="10dp"
android:orientation="vertical"
tools:ignore="UseCompoundDrawables">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/b_del_folder_edit"
tools:ignore="ContentDescription" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:text="Delete"
android:textColor="#6E757B"
android:textSize="14sp"
tools:ignore="HardcodedText" />
</LinearLayout>
</FrameLayout>
</LinearLayout>
\ No newline at end of file
......@@ -84,6 +84,7 @@
tools:text="Google" />
<TextView
android:id="@+id/tv_url"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
......@@ -146,6 +147,7 @@
</LinearLayout>
<LinearLayout
android:id="@+id/ll_nav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="15dp"
......
......@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.activity.bookmark.BookmarkFolderAddActivity">
tools:context=".ui.activity.bookmark.BookmarkFolderEditActivity">
<FrameLayout
android:layout_width="match_parent"
......
......@@ -19,13 +19,14 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text="Prom"
android:text="Prompt"
android:textColor="@color/black"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_desc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="13dp"
......
......@@ -14,9 +14,9 @@
android:layout_marginVertical="4dp"
android:layout_marginStart="15dp"
app:cardElevation="0dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent">
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv"
......@@ -46,7 +46,7 @@
android:layout_marginStart="16dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@id/card"
app:layout_constraintEnd_toStartOf="@id/fl_more"
app:layout_constraintEnd_toStartOf="@id/fl_opeartion"
app:layout_constraintStart_toEndOf="@id/card"
app:layout_constraintTop_toTopOf="@id/card">
......@@ -63,7 +63,7 @@
</LinearLayout>
<FrameLayout
android:id="@+id/fl_more"
android:id="@+id/fl_operation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
......@@ -75,17 +75,27 @@
app:layout_constraintTop_toTopOf="@id/card">
<ImageView
android:id="@+id/iv_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/geduo"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/bg_selector_bookmark"
tools:ignore="ContentDescription" />
</FrameLayout>
<View
android:layout_marginBottom="2dp"
android:layout_marginTop="20dp"
android:layout_width="0dp"
android:layout_height="1px"
android:layout_marginTop="20dp"
android:layout_marginBottom="2dp"
android:background="#E5E6EB"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
......
......@@ -69,7 +69,7 @@
android:layout_marginStart="16dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@id/card"
app:layout_constraintEnd_toStartOf="@id/fl_more"
app:layout_constraintEnd_toStartOf="@id/fl_opeartion"
app:layout_constraintStart_toEndOf="@id/card"
app:layout_constraintTop_toTopOf="@id/card">
......@@ -86,7 +86,7 @@
</LinearLayout>
<FrameLayout
android:id="@+id/fl_more"
android:id="@+id/fl_opeartion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
......
......@@ -68,11 +68,11 @@
</LinearLayout>
<FrameLayout
android:layout_marginEnd="8dp"
android:id="@+id/fl_more"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="8dp"
android:background="?android:attr/selectableItemBackground"
android:padding="8dp"
app:layout_constraintBottom_toBottomOf="parent"
......
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