Commit 8a3cf7c2 authored by wanglei's avatar wanglei

...

parent a574f00d
......@@ -38,18 +38,7 @@
android:theme="@style/Theme.BrowserWhite"
android:usesCleartextTraffic="true"
tools:targetApi="34">
<activity
android:name=".ui.activity.bookmark.BookmarkFolderEditActivity"
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:exported="false" />
<receiver
android:name=".ui.widget.BrowserAppWidget"
......@@ -80,6 +69,30 @@
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.activity.bookmark.BookmarkFolderEditActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.activity.bookmark.BookmarkFolderActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.activity.bookmark.BookmarkEditActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.activity.bookmark.BookmarkActivity"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="portrait"
tools:ignore="DiscouragedApi,LockedOrientationActivity" />
<activity
android:name=".ui.activity.about.AboutActivity"
android:exported="false"
......
......@@ -30,6 +30,8 @@ data class WebSiteBean(
var localIcon: Int = 0
var increase = false
var isAdd: Boolean = false
var isBookmarkNav: Boolean = false
var color:Int=0
companion object {
fun WebSiteBean.getLocalImage(): Int {
......
......@@ -10,10 +10,12 @@ 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.activity.webbrowser.WebBrowserActivity
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_NAV_SP_KEY
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY
import com.base.browserwhite.utils.ToastUtils.toast
import com.google.gson.Gson
......@@ -46,6 +48,12 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
showBookmarkMoreDialog(
view,
bean.isFolder,
//新开
openNewTab = {
startActivity(Intent(this, WebBrowserActivity::class.java).apply {
putExtra("url", bean.url)
})
},
//删除
deleteAction = {
if (bean.isFolder) {//书签目录
......@@ -74,6 +82,10 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
BookmarkFolderEditActivity.editFolder = bean
launcher.launch(Intent(Intent(this, BookmarkFolderEditActivity::class.java)))
},
//添加导航
addNavAction = {
SpBeanUtils.addSpBean(BOOKMARK_NAV_SP_KEY, bean)
},
//选择
selectAction = {
selectUI()
......@@ -104,6 +116,7 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
val items = list.map { Gson().fromJson(it, BookmarkBean::class.java) }
bookmarkList.addAll(items)
bookmarkAdapter.currentFolderId = 0
bookmarkAdapter.submitList(bookmarkList.filter { it.folderId == bookmarkAdapter.currentFolderId })
}
......@@ -147,18 +160,26 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
}
binding.tvCancel.setOnClickListener { noSelectUI() }
binding.llRemoveFolder.setOnClickListener {
val select = bookmarkAdapter.items.filter { it.isSelect }
if (select.isEmpty()) {
val selectList = bookmarkAdapter.items.filter { it.isSelect }
if (selectList.isEmpty()) {
toast("Please select a bookmark to move")
return@setOnClickListener
}
if (select.any { it.isFolder }) {
if (selectList.any { it.isFolder }) {
toast("Folder cannot be moved")
return@setOnClickListener
}
selectFolder = select.first().folder
selectFolder = selectList.first().folder
launcher.launch(Intent(this, BookmarkFolderActivity::class.java)) {
val json = it.data?.extras?.getString("Folder")
val folder = Gson().fromJson(json, BookmarkBean::class.java)
selectList.forEach { bookmarkBean ->
bookmarkBean.folderId = folder.id
bookmarkBean.folder = folder.name
SpBeanUtils.editSpBean(BOOKMARK_SP_KEY, bookmarkBean)
}
initBookmarkData()
noSelectUI()
}
}
}
......
......@@ -2,6 +2,7 @@ package com.base.browserwhite.ui.adapter
import android.annotation.SuppressLint
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.graphics.drawable.Drawable
import android.view.View
import android.view.ViewGroup
......@@ -56,10 +57,20 @@ class WebsiteAdapter(val uiType: Int = 0, val click: (bean: WebSiteBean) -> Unit
if (bean.name == "Increase") {
binding.ivAdd.visibility = View.VISIBLE
binding.ivIcon.visibility = View.GONE
binding.tvBookmarkNav.visibility = View.GONE
binding.ivAdd.setImageResource(bean.localIcon)
} else if (bean.isBookmarkNav) {
binding.ivAdd.visibility = View.GONE
binding.ivIcon.visibility = View.VISIBLE
binding.tvBookmarkNav.visibility = View.VISIBLE
binding.tvBookmarkNav.text = bean.name.first().toString()
Glide.with(context).load(ColorDrawable(bean.color)).into(binding.ivIcon)
binding.ivIcon.borderColor = ContextCompat.getColor(context, R.color.color_cbcdd7)
binding.ivIcon.borderWidth = 1
} else {
binding.ivIcon.visibility = View.VISIBLE
binding.ivAdd.visibility = View.GONE
binding.tvBookmarkNav.visibility = View.GONE
val bordIconName = arrayOf("Ebay", "Bing", "Wikipedia", "Pinterest", "NBC News", "Shopee", "Drugs")
// LogEx.logDebug(TAG, bean.name)
if (bordIconName.contains(bean.name)) {
......
......@@ -12,6 +12,7 @@ import android.widget.Toast
import androidx.core.view.isVisible
import androidx.recyclerview.widget.LinearLayoutManager
import com.base.browserwhite.R
import com.base.browserwhite.bean.BookmarkBean
import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.bean.ConstObject.APP_PROCESS
import com.base.browserwhite.bean.ConstObject.BAIDU
......@@ -54,9 +55,12 @@ import com.base.browserwhite.utils.LinkSearchUtils.getSpSearchAction
import com.base.browserwhite.utils.LinkSearchUtils.getYahooSearch
import com.base.browserwhite.utils.LinkSearchUtils.getYandexSearch
import com.base.browserwhite.utils.LogEx
import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_NAV_SP_KEY
import com.chad.library.adapter4.QuickAdapterHelper
import com.chad.library.adapter4.loadState.LoadState
import com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import com.google.gson.Gson
class HomeFragment : BaseFragment<FragmentHomeBinding>() {
......@@ -227,10 +231,22 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
}
val list = arrayListOf<WebSiteBean>()
list.addAll(recommendWebSite)
//书签导航
SpBeanUtils.getSpBeanList(BOOKMARK_NAV_SP_KEY).forEach { json ->
val bean = Gson().fromJson(json, BookmarkBean::class.java)
list.add(WebSiteBean(name = bean.name, url = bean.url).apply {
isBookmarkNav = true
color = bean.color
})
}
//添加按钮
list.add(WebSiteBean(name = "Increase").apply {
localIcon = R.mipmap.increase
increase = true
})
headWebsiteAdapter = HeadWebsiteAdapter()
headWebsiteAdapter?.setItem(list, null)
headWebsiteAdapter?.let {
......@@ -331,7 +347,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
binding.flScan.setOnClickListener {
requireContext().startActivity(Intent(requireContext(), ScanQRCActivity::class.java))
}
binding.tvName.setOnClickListener {
binding.ivName.setOnClickListener {
// if (System.currentTimeMillis() - lastClickTime > 5 * 1000 && i != 0) {
// lastClickTime = 0
// i = 0
......
......@@ -14,8 +14,10 @@ object BookmarkDialog {
fun Context.showBookmarkMoreDialog(
anchorView: View,
isDir: Boolean,
openNewTab: (() -> Unit)? = null,
deleteAction: (() -> Unit)? = null,
editAction: (() -> Unit)? = null,
addNavAction: (() -> Unit)? = null,
selectAction: (() -> Unit)? = null,
) {
val binding = DialogBookmarkMoreBinding.inflate(LayoutInflater.from(this))
......@@ -49,7 +51,10 @@ object BookmarkDialog {
binding.vAddDesktop.visibility = View.GONE
}
binding.llOpenNewTab.setOnClickListener { }
binding.llOpenNewTab.setOnClickListener {
dialog.dismiss()
openNewTab?.invoke()
}
binding.llDelete.setOnClickListener {
dialog.dismiss()
deleteAction?.invoke()
......@@ -58,7 +63,10 @@ object BookmarkDialog {
dialog.dismiss()
editAction?.invoke()
}
binding.llAddNavigation.setOnClickListener { }
binding.llAddNavigation.setOnClickListener {
dialog.dismiss()
addNavAction?.invoke()
}
binding.llAddDesktop.setOnClickListener { }
binding.llSelect.setOnClickListener {
dialog.dismiss()
......
......@@ -7,6 +7,7 @@ object SpBeanUtils {
const val BOOKMARK_SP_KEY = "bookmark_sp_key"//书签
const val BOOKMARK_NAV_SP_KEY = "bookmark_nav_sp_key"//书签导航
const val SEARCH_RECORD_SP_KEY = "search_record_sp_key"
fun getSpBeanList(key: String): List<String> {
......
......@@ -22,7 +22,7 @@
tools:ignore="ContentDescription">
<ImageView
android:id="@+id/tv_name"
android:id="@+id/iv_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
......@@ -38,9 +38,9 @@
android:layout_height="36dp"
android:layout_marginEnd="16dp"
android:background="@drawable/bg_e7eef6_18"
app:layout_constraintBottom_toBottomOf="@id/tv_name"
app:layout_constraintBottom_toBottomOf="@id/iv_name"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/tv_name">
app:layout_constraintTop_toTopOf="@id/iv_name">
<LinearLayout
android:layout_width="wrap_content"
......
......@@ -46,7 +46,7 @@
android:layout_marginStart="16dp"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="@id/card"
app:layout_constraintEnd_toStartOf="@id/fl_opeartion"
app:layout_constraintEnd_toStartOf="@id/fl_operation"
app:layout_constraintStart_toEndOf="@id/card"
app:layout_constraintTop_toTopOf="@id/card">
......
......@@ -32,6 +32,17 @@
android:visibility="gone"
tools:ignore="ContentDescription"
tools:src="@mipmap/amazon" />
<TextView
android:textSize="15sp"
android:textColor="@color/white"
android:id="@+id/tv_bookmark_nav"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:visibility="gone"
tools:ignore="ContentDescription"
tools:text="必" />
</FrameLayout>
......
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