Commit 429245cd authored by wanglei's avatar wanglei

...

parent 5634f6b3
......@@ -38,11 +38,17 @@
android:theme="@style/Theme.BrowserWhite"
android:usesCleartextTraffic="true"
tools:targetApi="34">
<activity
android:name=".ui.activity.bookmark.BookmarkFolderAddActivity"
android:exported="false" />
<activity
android:name=".ui.activity.bookmark.BookmarkFolderActivity"
android:exported="false" />
<activity
android:name=".ui.activity.bookmark.BookmarkEditActivity"
android:exported="false" />
<activity
android:name=".ui.activity.bookmark.BookMarkActivity"
android:name=".ui.activity.bookmark.BookmarkActivity"
android:exported="false" />
<receiver
......
package com.base.browserwhite.bean
data class BookmarkBean(
val folder: String = "",
var folder: String = folderRoot,
var name: String = "",
var url: String = "",
val time: Long = 0,
var isFolder: Boolean = false,
) {
var showTime:Boolean=false
val viewType: Int = 0
}
\ No newline at end of file
companion object {
var folderRoot = "Root Directory"
}
}
......@@ -4,29 +4,48 @@ import android.graphics.Color
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.databinding.ActivityBookmarkBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.utils.BarUtils
import com.base.browserwhite.utils.KotlinExt.toFormatTime
import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY
import com.google.gson.Gson
class BookMarkActivity : BaseActivity<ActivityBookMarkBinding>() {
class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
override val binding: ActivityBookMarkBinding by lazy {
ActivityBookMarkBinding.inflate(layoutInflater)
private val TAG = "BookmarkActivity"
private var currentTab = BOOKMARK_TAB
override val binding: ActivityBookmarkBinding by lazy {
ActivityBookmarkBinding.inflate(layoutInflater)
}
private lateinit var adapter: BookmarkAdapter
private lateinit var bookmarkAdapter: BookmarkAdapter
private val bookmarkList = arrayListOf<BookmarkBean>()
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
adapter = BookmarkAdapter()
bookmarkAdapter = BookmarkAdapter()
bookmarkAdapter.changeFolderAction = { folder ->
val list = bookmarkList.filter { it.folder == folder }
bookmarkAdapter.submitList(list)
}
changeBookmark()
}
private fun changeBookmark() {
binding.rv.adapter = bookmarkAdapter
bookmarkAdapter.submitList(bookmarkList)
}
override fun onResume() {
super.onResume()
initData()
}
......@@ -35,23 +54,26 @@ class BookMarkActivity : BaseActivity<ActivityBookMarkBinding>() {
}
private fun initBookmarkData() {
bookmarkList.clear()
val list = SpBeanUtils.getSpBeanList(BOOKMARK_SP_KEY)
val items = list.map { Gson().fromJson(it, BookmarkBean::class.java) }
var time = ""
items.sortedBy { it.time }.forEach {
if (time != it.time.toFormatTime()) {
it.showTime = true
} else {
time = it.time.toFormatTime()
}
}
adapter.submitList(items)
bookmarkList.addAll(items)
bookmarkAdapter.submitList(bookmarkList.filter { it.folder == bookmarkAdapter.currentFolder })
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finishToMain()
if (currentTab == BOOKMARK_TAB) {
if (bookmarkAdapter.canBeforeFolder()) {
bookmarkAdapter.beforeFolder()
} else {
finishToMain()
}
} else {
finishToMain()
}
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
......@@ -63,6 +85,7 @@ class BookMarkActivity : BaseActivity<ActivityBookMarkBinding>() {
}
binding.tvTabBookmark.isSelected = true
binding.tvTabHistory.isSelected = false
currentTab = BOOKMARK_TAB
}
binding.tvTabBookmark.callOnClick()
......@@ -72,10 +95,13 @@ class BookMarkActivity : BaseActivity<ActivityBookMarkBinding>() {
}
binding.tvTabHistory.isSelected = true
binding.tvTabBookmark.isSelected = false
currentTab = HISTORY_TAB
}
}
companion object {
private val BOOKMARK_TAB = "bookmark_tab"
private val HISTORY_TAB = "history_tab"
}
}
\ No newline at end of file
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.databinding.ItemBookmarkBinding
import com.base.browserwhite.utils.KotlinExt.toFormatTime
import com.base.browserwhite.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter
import java.util.Random
class BookmarkAdapter : BaseQuickAdapter<BookmarkBean, BookmarkAdapter.BookmarkHolder>() {
var currentFolder = BookmarkBean.folderRoot
var changeFolderAction: ((folder: String) -> Unit)? = null
inner class BookmarkHolder(view: View) : ViewHolder(view)
override fun onBindViewHolder(holder: BookmarkHolder, position: Int, item: BookmarkBean?) {
......@@ -21,8 +27,26 @@ class BookmarkAdapter : BaseQuickAdapter<BookmarkBean, BookmarkAdapter.BookmarkH
}
val binding = ItemBookmarkBinding.bind(holder.itemView)
binding.flTime.isVisible = item.showTime
binding.tvTime.text = item.time.toFormatTime()
val context = holder.itemView.context
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 = getRandomColorDrawable()
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.root.setOnClickListener {
if (!item.isFolder) return@setOnClickListener
currentFolder = item.name
changeFolderAction?.invoke(currentFolder)
}
}
......@@ -39,4 +63,22 @@ class BookmarkAdapter : BaseQuickAdapter<BookmarkBean, BookmarkAdapter.BookmarkH
}
return BookmarkHolder(layout.inflate(parent))
}
fun getRandomColorDrawable(): ColorDrawable {
val random = Random()
val red: Int = random.nextInt(256)
val green: Int = random.nextInt(256)
val blue: Int = random.nextInt(256)
val color = Color.rgb(red, green, blue)
return ColorDrawable(color)
}
fun canBeforeFolder(): Boolean {
return currentFolder != BookmarkBean.folderRoot
}
fun beforeFolder() {
currentFolder = BookmarkBean.folderRoot
changeFolderAction?.invoke(currentFolder)
}
}
\ 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 androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.core.widget.addTextChangedListener
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.databinding.ActivityBookmarkEditBinding
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_SP_KEY
import com.google.gson.Gson
class BookmarkEditActivity : BaseActivity<ActivityBookmarkEditBinding>() {
......@@ -25,11 +30,8 @@ class BookmarkEditActivity : BaseActivity<ActivityBookmarkEditBinding>() {
binding.editName.setText(editBookmark?.name)
binding.editUrl.setText(editBookmark?.url)
binding.ivSelectorNav.isSelected = true
if (editBookmark?.folder.equals("")) {
binding.tvFolder.text = "Root Folder"
} else {
binding.tvFolder.text = editBookmark?.folder
}
binding.tvFolder.text = editBookmark?.folder
binding.tvSave.isEnabled = true
}
override fun initListener() {
......@@ -40,6 +42,31 @@ class BookmarkEditActivity : BaseActivity<ActivityBookmarkEditBinding>() {
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.llFolder.setOnClickListener {
BookmarkFolderActivity.selectFolder = editBookmark?.folder ?: ""
launcher.launch(Intent(this, BookmarkFolderActivity::class.java)) {
editBookmark?.folder = it.data?.extras?.getString("Folder", "") ?: ""
binding.tvFolder.text = editBookmark?.folder ?: ""
}
}
binding.editUrl.addTextChangedListener {
binding.tvSave.isEnabled = !it.isNullOrEmpty()
}
binding.editName.addTextChangedListener {
binding.tvSave.isEnabled = !it.isNullOrEmpty()
}
binding.tvSave.setOnClickListener {
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, Gson().toJson(folderBean))
}
SpBeanUtils.addSpBean(BOOKMARK_SP_KEY, Gson().toJson(editBookmark))
finish()
}
}
companion object {
......
package com.base.browserwhite.ui.activity.bookmark
import android.content.Intent
import android.graphics.Color
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import com.base.browserwhite.databinding.ActivityBookmarkFolderBinding
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
class BookmarkFolderActivity : BaseActivity<ActivityBookmarkFolderBinding>() {
private lateinit var adapter: BookmarkFolderAdapter
override val binding: ActivityBookmarkFolderBinding by lazy {
ActivityBookmarkFolderBinding.inflate(layoutInflater)
}
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.ivRootSelector.isSelected = selectFolder == "Root Directory"
adapter = BookmarkFolderAdapter(selectFolder) {
setResult(0, Intent().putExtra("Folder", it))
finish()
}
binding.rv.adapter = adapter
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finish()
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.ivNewFolder.setOnClickListener {
startActivity(Intent(this, BookmarkFolderAddActivity::class.java))
}
}
private fun initData() {
val spList = SpBeanUtils.getSpBeanList(BOOKMARK_FOLDER_SP_KEY)
adapter.submitList(spList)
}
override fun onResume() {
super.onResume()
initData()
}
companion object {
var selectFolder: String = "Root Directory"
}
}
\ No newline at end of file
package com.base.browserwhite.ui.activity.bookmark
import android.content.Context
import android.view.View
import android.view.ViewGroup
import androidx.recyclerview.widget.RecyclerView.ViewHolder
import com.base.browserwhite.R
import com.base.browserwhite.databinding.ItemBookmarkFolderBinding
import com.base.browserwhite.utils.XmlEx.inflate
import com.chad.library.adapter4.BaseQuickAdapter
class BookmarkFolderAdapter(
val selectFolder: String,
val clickAction: (folder: String) -> Unit
) : BaseQuickAdapter<String, BookmarkFolderAdapter.BookmarkFolderViewHolder>() {
inner class BookmarkFolderViewHolder(view: View) : ViewHolder(view)
override fun onBindViewHolder(holder: BookmarkFolderViewHolder, position: Int, item: String?) {
if (item == null) return
val binding = ItemBookmarkFolderBinding.bind(holder.itemView)
binding.tvName.text = item
binding.ivSelector.isSelected = item == selectFolder
binding.root.setOnClickListener {
clickAction.invoke(item)
}
}
override fun onCreateViewHolder(context: Context, parent: ViewGroup, viewType: Int): BookmarkFolderViewHolder {
return BookmarkFolderViewHolder(R.layout.item_bookmark_folder.inflate(parent))
}
}
\ No newline at end of file
package com.base.browserwhite.ui.activity.bookmark
import android.graphics.Color
import androidx.activity.addCallback
import androidx.core.view.updatePadding
import androidx.core.widget.addTextChangedListener
import com.base.browserwhite.databinding.ActivityBookmarkFolderAddBinding
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
class BookmarkFolderAddActivity : BaseActivity<ActivityBookmarkFolderAddBinding>() {
override val binding: ActivityBookmarkFolderAddBinding by lazy {
ActivityBookmarkFolderAddBinding.inflate(layoutInflater)
}
override fun initView() {
BarUtils.setStatusBarLightMode(this, true)
BarUtils.setStatusBarColor(this, Color.WHITE)
binding.root.updatePadding(top = BarUtils.getStatusBarHeight())
binding.editName.setText(editFolder)
}
override fun initListener() {
super.initListener()
onBackPressedDispatcher.addCallback {
finish()
}
binding.flFanhui.setOnClickListener {
onBackPressedDispatcher.onBackPressed()
}
binding.editName.addTextChangedListener {
binding.tvSave.isEnabled = !it.isNullOrEmpty()
}
binding.tvSave.setOnClickListener {
SpBeanUtils.addSpBean(BOOKMARK_FOLDER_SP_KEY, binding.editName.text.toString())
finish()
}
}
companion object {
var editFolder: String = ""
}
}
\ No newline at end of file
......@@ -18,6 +18,7 @@ import com.base.browserwhite.bean.ConstObject.GOOGLE
import com.base.browserwhite.bean.ConstObject.searchEngineSp
import com.base.browserwhite.databinding.ActivityWebBrowserBinding
import com.base.browserwhite.ui.activity.BaseActivity
import com.base.browserwhite.ui.activity.bookmark.BookmarkActivity
import com.base.browserwhite.ui.activity.bookmark.BookmarkEditActivity
import com.base.browserwhite.ui.views.DialogViews.showSearchEngineDialog
import com.base.browserwhite.ui.views.DialogViews.showWebBrowserMoreDialog
......@@ -201,13 +202,17 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
}
}
binding.ivMore.setOnClickListener {
showWebBrowserMoreDialog(joinAction = {
showWebBrowserMoreDialog(
bookmarkAction = {
startActivity(Intent(this, BookmarkActivity::class.java))
},
joinAction = {
// val url = currentFragment?.url ?: ""
// val value = Gson().toJson(BookmarkBean(url = url, time = System.currentTimeMillis()))
// SpBeanUtils.addSpBean(BOOKMARK, value)
BookmarkEditActivity.editBookmark = currentFragment?.bookmarkBean
startActivity(Intent(this, BookmarkEditActivity::class.java))
})
BookmarkEditActivity.editBookmark = currentFragment?.bookmarkBean
startActivity(Intent(this, BookmarkEditActivity::class.java))
})
}
}
......
......@@ -28,7 +28,7 @@ import com.base.browserwhite.databinding.FragmentHomeBinding
import com.base.browserwhite.fcm.NotificationUtil
import com.base.browserwhite.help.NewsUtils.requestNews
import com.base.browserwhite.ui.activity.appprocess.AppProcessActivity
import com.base.browserwhite.ui.activity.bookmark.BookMarkActivity
import com.base.browserwhite.ui.activity.bookmark.BookmarkActivity
import com.base.browserwhite.ui.activity.cleanjunk.ScanJunkActivity
import com.base.browserwhite.ui.activity.news.NewsActivity
import com.base.browserwhite.ui.activity.news.NewsDetailActivity
......@@ -118,7 +118,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
}
BOOKMARK -> {
requireContext().startActivity(Intent(requireContext(), BookMarkActivity::class.java))
requireContext().startActivity(Intent(requireContext(), BookmarkActivity::class.java))
}
}
......
......@@ -325,7 +325,12 @@ object DialogViews {
}
fun Context.showWebBrowserMoreDialog(joinAction: (() -> Unit)? = null) {
fun Context.showWebBrowserMoreDialog(
bookmarkAction: (() -> Unit)? = null,//打开书签
joinAction: (() -> Unit)? = null//加入书签
) {
val dialog = BottomSheetDialog(this)
val binding = DialogMoreWebbrowserBinding.inflate(LayoutInflater.from(this))
dialog.setContentView(binding.root)
......@@ -341,10 +346,18 @@ object DialogViews {
binding.tvCancel.setOnClickListener {
dialog.dismiss()
}
arrayOf(binding.ivBookmark, binding.tvBookmark).forEach {
it.setOnClickListener {
bookmarkAction?.invoke()
}
}
binding.llJoinBookmark.setOnClickListener {
joinAction?.invoke()
arrayOf(binding.ivJoinBookmark, binding.tvJoinBookmark).forEach {
it.setOnClickListener {
joinAction?.invoke()
}
}
}
......
......@@ -3,22 +3,23 @@ package com.base.browserwhite.utils
object SpBeanUtils {
const val BOOKMARK_SP_KEY = "bookmark_sp_key"
const val SEARCH_RECORD_SP_KEY = "SEARCH_RECORD_SP_KEY"
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> {
val sp = AppPreferences.getInstance().getString(key, "")
return if (sp.equals("")) {
listOf()
} else {
sp.split(",")
sp.split("|||")
}
}
fun deleteSpBean(key: String, value: String) {
val list = getSpBeanList(key).toMutableList()
list.remove(value)
val string = list.joinToString(separator = ",")
val string = list.joinToString(separator = "|||")
AppPreferences.getInstance().put(key, string)
}
......@@ -26,7 +27,7 @@ object SpBeanUtils {
fun addSpBean(key: String, value: String) {
val list = getSpBeanList(key).toMutableList()
list.add(value)
val string = list.joinToString(separator = ",")
val string = list.joinToString(separator = "|||")
AppPreferences.getInstance().put(key, string)
}
......
package com.base.browserwhite.utils
import android.content.Context
import android.widget.Toast
object ToastUtils {
fun Context.toast(content: String) {
Toast.makeText(this, content, Toast.LENGTH_SHORT).show()
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@mipmap/x_weixuan_nav" android:state_selected="false" />
<item android:drawable="@mipmap/x_xuanze_nav" android:state_selected="true" />
<item android:color="#999999" android:state_enabled="false" />
<item android:color="#ffffff" android:state_enabled="true" />
</selector>
\ 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="#0571ED" />
<corners android:radius="25dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_ffffff_15" android:state_selected="true" />
<item android:drawable="@android:color/transparent" android:state_selected="false" />
</selector>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_f4f5f7_20" android:state_enabled="false" />
<item android:drawable="@drawable/bg_0571ed_20" android:state_enabled="true" />
</selector>
\ 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="#F4F5F7" />
<corners android:radius="20dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/bg_ffffff_15" android:state_selected="true" />
<item android:drawable="@android:color/transparent" android:state_selected="false" />
<item android:drawable="@mipmap/x_weixuan_nav" android:state_selected="false" />
<item android:drawable="@mipmap/x_xuanze_nav" android:state_selected="true" />
</selector>
\ No newline at end of file
......@@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.activity.bookmark.BookMarkActivity">
tools:context=".ui.activity.bookmark.BookmarkActivity">
<FrameLayout
android:layout_width="match_parent"
......@@ -60,7 +60,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:background="@drawable/bg_selector_bookmark"
android:background="@drawable/bg_border_selector_bookmark"
android:gravity="center"
android:paddingHorizontal="12dp"
android:paddingVertical="11dp"
......@@ -74,7 +74,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="12dp"
android:background="@drawable/bg_selector_bookmark"
android:background="@drawable/bg_border_selector_bookmark"
android:gravity="center"
android:paddingHorizontal="12dp"
android:paddingVertical="11dp"
......
......@@ -52,11 +52,11 @@
android:layout_height="35dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp"
android:background="@drawable/bg_0571ed_25"
android:background="@drawable/bg_border_selector_save"
android:enabled="false"
android:gravity="center"
android:text="Save"
android:textColor="@color/white"
android:textColor="@color/color_enable_999999_ffffff"
android:textSize="18sp"
tools:ignore="ContentDescription,HardcodedText" />
......@@ -104,6 +104,7 @@
tools:text="https://google.com" />
<LinearLayout
android:id="@+id/ll_folder"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginHorizontal="15dp"
......@@ -126,11 +127,13 @@
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:ellipsize="middle"
android:gravity="end"
android:paddingHorizontal="8dp"
android:singleLine="true"
android:textColor="@color/black"
android:textSize="16sp"
tools:text="Root Folder" />
tools:text="Root Directory" />
<ImageView
android:layout_width="wrap_content"
......@@ -154,7 +157,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:src="@drawable/bg_add_nav_selector"
android:src="@drawable/bg_selector_bookmark"
tools:ignore="ContentDescription" />
<TextView
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
tools:context=".ui.activity.bookmark.BookmarkFolderActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start"
android:layout_marginVertical="10dp"
android:layout_marginStart="10dp">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/h_fanhui"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Select Folder"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
<ImageView
android:id="@+id/iv_new_folder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="18dp"
android:enabled="false"
android:gravity="center"
android:src="@mipmap/tianjia_bookmark"
android:text="Save"
android:textColor="@color/white"
android:textSize="18sp"
tools:ignore="ContentDescription,HardcodedText" />
</FrameLayout>
<FrameLayout
android:layout_width="match_parent"
android:layout_height="50dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="16dp"
android:text="Root Directory"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_gravity="bottom"
android:background="#E5E6EB" />
<ImageView
android:id="@+id/iv_root_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="18dp"
android:src="@drawable/bg_selector_bookmark"
tools:ignore="ContentDescription" />
</FrameLayout>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_bookmark_folder" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
tools:context=".ui.activity.bookmark.BookmarkFolderAddActivity">
<FrameLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/white"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start"
android:layout_marginVertical="10dp"
android:layout_marginStart="10dp">
<FrameLayout
android:id="@+id/fl_fanhui"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/h_fanhui"
tools:ignore="ContentDescription" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="New Folder"
android:textSize="19sp"
android:textStyle="bold"
tools:ignore="HardcodedText" />
</LinearLayout>
<TextView
android:id="@+id/tv_save"
android:layout_width="93dp"
android:layout_height="43dp"
android:layout_gravity="center_vertical|end"
android:layout_marginEnd="16dp"
android:background="@drawable/bg_border_selector_save"
android:enabled="false"
android:gravity="center"
android:text="Save"
android:textColor="@color/color_enable_999999_ffffff"
android:textSize="18sp"
tools:ignore="ContentDescription,HardcodedText" />
</FrameLayout>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="22dp"
android:text="Name"
android:textColor="@color/black"
android:textSize="15sp"
tools:ignore="HardcodedText" />
<EditText
android:id="@+id/edit_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="20dp"
android:textSize="17sp"
tools:ignore="Autofill,LabelFor,TextFields" />
<LinearLayout
android:id="@+id/ll_folder"
android:layout_width="match_parent"
android:layout_height="56dp"
android:layout_marginHorizontal="15dp"
android:layout_marginTop="36dp"
android:background="@drawable/bg_edf1f4_15">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginStart="15dp"
android:text="Name"
android:textColor="@color/black"
android:textSize="14sp"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_folder"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1"
android:gravity="end"
android:paddingHorizontal="8dp"
android:textColor="#A7A7AB"
android:textSize="16sp"
tools:text="Root Directory" />
</LinearLayout>
</LinearLayout>
\ No newline at end of file
......@@ -22,51 +22,52 @@
android:orientation="horizontal">
<ImageView
android:id="@+id/ll_bookmark"
android:id="@+id/iv_bookmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/bookmark_browser"
app:layout_constraintEnd_toStartOf="@id/ll_history"
app:layout_constraintEnd_toStartOf="@id/iv_history"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/ll_history"
android:id="@+id/iv_history"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/history_browser"
app:layout_constraintEnd_toStartOf="@id/ll_refresh"
app:layout_constraintStart_toEndOf="@id/ll_bookmark"
app:layout_constraintEnd_toStartOf="@id/iv_refresh"
app:layout_constraintStart_toEndOf="@id/iv_bookmark"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/ll_refresh"
android:id="@+id/iv_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/refresh_browser"
app:layout_constraintEnd_toStartOf="@id/ll_join_bookmark"
app:layout_constraintStart_toEndOf="@id/ll_history"
app:layout_constraintEnd_toStartOf="@id/iv_join_bookmark"
app:layout_constraintStart_toEndOf="@id/iv_history"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/ll_join_bookmark"
android:id="@+id/iv_join_bookmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:src="@mipmap/join_browser"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/ll_refresh"
app:layout_constraintStart_toEndOf="@id/iv_refresh"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_bookmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
......@@ -74,13 +75,13 @@
android:text="Bookmark"
android:textColor="#263847"
android:textSize="13sp"
app:layout_constraintEnd_toEndOf="@id/ll_bookmark"
app:layout_constraintStart_toStartOf="@id/ll_bookmark"
app:layout_constraintTop_toBottomOf="@id/ll_bookmark"
app:layout_constraintEnd_toEndOf="@id/iv_bookmark"
app:layout_constraintStart_toStartOf="@id/iv_bookmark"
app:layout_constraintTop_toBottomOf="@id/iv_bookmark"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_history"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
......@@ -88,12 +89,13 @@
android:text="History"
android:textColor="#263847"
android:textSize="13sp"
app:layout_constraintEnd_toEndOf="@id/ll_history"
app:layout_constraintStart_toStartOf="@id/ll_history"
app:layout_constraintTop_toBottomOf="@id/ll_history"
app:layout_constraintEnd_toEndOf="@id/iv_history"
app:layout_constraintStart_toStartOf="@id/iv_history"
app:layout_constraintTop_toBottomOf="@id/iv_history"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_refresh"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
......@@ -101,13 +103,14 @@
android:text="Refresh"
android:textColor="#263847"
android:textSize="13sp"
app:layout_constraintEnd_toEndOf="@id/ll_refresh"
app:layout_constraintStart_toStartOf="@id/ll_refresh"
app:layout_constraintTop_toBottomOf="@id/ll_refresh"
app:layout_constraintEnd_toEndOf="@id/iv_refresh"
app:layout_constraintStart_toStartOf="@id/iv_refresh"
app:layout_constraintTop_toBottomOf="@id/iv_refresh"
tools:ignore="HardcodedText" />
<TextView
android:id="@+id/tv_join_bookmark"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
......@@ -115,9 +118,9 @@
android:text="Join Bookmark"
android:textColor="#263847"
android:textSize="13sp"
app:layout_constraintEnd_toEndOf="@id/ll_join_bookmark"
app:layout_constraintStart_toStartOf="@id/ll_join_bookmark"
app:layout_constraintTop_toBottomOf="@id/ll_join_bookmark"
app:layout_constraintEnd_toEndOf="@id/iv_join_bookmark"
app:layout_constraintStart_toStartOf="@id/iv_join_bookmark"
app:layout_constraintTop_toBottomOf="@id/iv_join_bookmark"
tools:ignore="HardcodedText" />
......
......@@ -7,35 +7,6 @@
android:background="@color/white"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/fl_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/card"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:layout_marginStart="15dp"
android:text="Today"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_gravity="bottom"
android:background="#E5E6EB" />
</FrameLayout>
<androidx.cardview.widget.CardView
android:id="@+id/card"
android:layout_width="40dp"
......@@ -43,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_constraintTop_toBottomOf="@id/fl_time">
app:layout_constraintStart_toStartOf="parent">
<ImageView
android:id="@+id/iv"
......@@ -54,14 +25,16 @@
android:src="@mipmap/wenjiajia_bookmark"
tools:ignore="ContentDescription" />
<ImageView
android:id="@+id/iv_shipin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
<TextView
android:id="@+id/tv_letters"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:src="@mipmap/h_shipin"
android:visibility="gone"
tools:ignore="ContentDescription" />
android:gravity="center"
android:text="G"
android:textColor="@color/white"
android:textSize="16sp"
tools:ignore="ContentDescription,HardcodedText" />
</androidx.cardview.widget.CardView>
......@@ -109,9 +82,10 @@
</FrameLayout>
<View
android:layout_marginBottom="2dp"
android:layout_marginTop="20dp"
android:layout_width="0dp"
android:layout_height="1px"
android:layout_marginTop="15dp"
android:background="#E5E6EB"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
......
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|start"
android:layout_marginVertical="10dp"
android:layout_marginStart="15dp"
android:src="@mipmap/wenjiajia_bookmark"
tools:ignore="ContentDescription" />
<TextView
android:id="@+id/tv_name"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginHorizontal="16dp"
android:layout_weight="1"
android:textColor="@color/black"
android:textSize="18sp"
tools:text="My Favorite" />
<ImageView
android:id="@+id/iv_selector"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_margin="18dp"
android:src="@drawable/bg_selector_bookmark"
tools:ignore="ContentDescription" />
</LinearLayout>
\ 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="@color/white"
android:orientation="horizontal">
<FrameLayout
android:id="@+id/fl_time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@id/card"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginVertical="10dp"
android:layout_marginStart="15dp"
android:text="Today"
android:textColor="@color/black"
android:textSize="16sp"
tools:ignore="HardcodedText" />
<View
android:layout_width="match_parent"
android:layout_height="1px"
android:layout_gravity="bottom"
android:background="#E5E6EB" />
</FrameLayout>
<androidx.cardview.widget.CardView
android:id="@+id/card"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_marginVertical="4dp"
android:layout_marginStart="15dp"
app:cardElevation="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fl_time">
<TextView
android:id="@+id/tv_letters"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:gravity="center"
android:text="G"
android:textColor="@color/white"
android:textSize="16sp"
tools:ignore="ContentDescription,HardcodedText" />
</androidx.cardview.widget.CardView>
<LinearLayout
android:id="@+id/ll"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginHorizontal="5dp"
android:layout_marginStart="16dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@id/card"
app:layout_constraintEnd_toStartOf="@id/fl_more"
app:layout_constraintStart_toEndOf="@id/card"
app:layout_constraintTop_toTopOf="@id/card">
<TextView
android:id="@+id/tv_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ellipsize="end"
android:singleLine="true"
android:text="My Favorite"
android:textColor="#010101"
android:textSize="18sp"
tools:ignore="HardcodedText" />
</LinearLayout>
<FrameLayout
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="@id/card"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/card">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/geduo"
tools:ignore="ContentDescription" />
</FrameLayout>
<View
android:layout_width="0dp"
android:layout_height="1px"
android:layout_marginTop="15dp"
android:background="#E5E6EB"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="@id/ll"
app:layout_constraintTop_toBottomOf="@id/ll" />
</androidx.constraintlayout.widget.ConstraintLayout>
\ 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