Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Sign in / Register
Toggle navigation
B
Browser White
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wanglei
Browser White
Commits
a574f00d
Commit
a574f00d
authored
Sep 02, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
5c2b4c9a
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
335 additions
and
69 deletions
+335
-69
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+1
-1
BookmarkBean.kt
app/src/main/java/com/base/browserwhite/bean/BookmarkBean.kt
+2
-0
SpBean.kt
app/src/main/java/com/base/browserwhite/bean/SpBean.kt
+1
-1
BookmarkActivity.kt
...ase/browserwhite/ui/activity/bookmark/BookmarkActivity.kt
+80
-7
BookmarkAdapter.kt
...base/browserwhite/ui/activity/bookmark/BookmarkAdapter.kt
+74
-10
BookmarkEditActivity.kt
...browserwhite/ui/activity/bookmark/BookmarkEditActivity.kt
+8
-5
BookmarkFolderActivity.kt
...owserwhite/ui/activity/bookmark/BookmarkFolderActivity.kt
+5
-5
BookmarkFolderAdapter.kt
...rowserwhite/ui/activity/bookmark/BookmarkFolderAdapter.kt
+2
-2
BookmarkFolderEditActivity.kt
...rwhite/ui/activity/bookmark/BookmarkFolderEditActivity.kt
+19
-10
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+0
-6
BookmarkDialog.kt
...ain/java/com/base/browserwhite/ui/views/BookmarkDialog.kt
+12
-3
DialogViews.kt
...c/main/java/com/base/browserwhite/ui/views/DialogViews.kt
+2
-1
SpBeanUtils.kt
app/src/main/java/com/base/browserwhite/utils/SpBeanUtils.kt
+22
-7
activity_bookmark.xml
app/src/main/res/layout/activity_bookmark.xml
+83
-0
activity_bookmark_edit.xml
app/src/main/res/layout/activity_bookmark_edit.xml
+2
-0
activity_bookmark_folder_edit.xml
app/src/main/res/layout/activity_bookmark_folder_edit.xml
+1
-1
dialog_delete_tip.xml
app/src/main/res/layout/dialog_delete_tip.xml
+2
-1
item_bookmark.xml
app/src/main/res/layout/item_bookmark.xml
+16
-6
item_bookmark_history.xml
app/src/main/res/layout/item_bookmark_history.xml
+2
-2
item_media_recent.xml
app/src/main/res/layout/item_media_recent.xml
+1
-1
b_del_folder_edit.png
app/src/main/res/mipmap-xxhdpi/b_del_folder_edit.png
+0
-0
remove_folder_edit.png
app/src/main/res/mipmap-xxhdpi/remove_folder_edit.png
+0
-0
No files found.
app/src/main/AndroidManifest.xml
View file @
a574f00d
...
...
@@ -39,7 +39,7 @@
android:usesCleartextTraffic=
"true"
tools:targetApi=
"34"
>
<activity
android:name=
".ui.activity.bookmark.BookmarkFolder
Add
Activity"
android:name=
".ui.activity.bookmark.BookmarkFolder
Edit
Activity"
android:exported=
"false"
/>
<activity
android:name=
".ui.activity.bookmark.BookmarkFolderActivity"
...
...
app/src/main/java/com/base/browserwhite/bean/BookmarkBean.kt
View file @
a574f00d
...
...
@@ -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
}
}
app/src/main/java/com/base/browserwhite/bean/SpBean.kt
View file @
a574f00d
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
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/BookmarkActivity.kt
View file @
a574f00d
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
=
{
folder
Id
->
val
list
=
bookmarkList
.
filter
{
it
.
folder
Id
==
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
.
folder
Id
==
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"
...
...
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/BookmarkAdapter.kt
View file @
a574f00d
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
)
currentFolder
Id
=
item
.
id
changeFolderAction
?.
invoke
(
currentFolder
Id
)
}
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
currentFolder
Id
!=
BookmarkBean
.
folderRootId
}
fun
beforeFolder
()
{
currentFolder
=
BookmarkBean
.
folderRoot
changeFolderAction
?.
invoke
(
currentFolder
)
currentFolder
Id
=
BookmarkBean
.
folderRootId
changeFolderAction
?.
invoke
(
currentFolder
Id
)
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/BookmarkEditActivity.kt
View file @
a574f00d
...
...
@@ -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
()
...
...
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/BookmarkFolderActivity.kt
View file @
a574f00d
...
...
@@ -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
,
BookmarkFolder
Add
Activity
::
class
.
java
))
startActivity
(
Intent
(
this
,
BookmarkFolder
Edit
Activity
::
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
)
}
...
...
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/BookmarkFolderAdapter.kt
View file @
a574f00d
...
...
@@ -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
)
}
}
...
...
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/BookmarkFolder
Add
Activity.kt
→
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/BookmarkFolder
Edit
Activity.kt
View file @
a574f00d
...
...
@@ -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.ActivityBookmarkFolder
Add
Binding
import
com.base.browserwhite.databinding.ActivityBookmarkFolder
Edit
Binding
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
:
ActivityBookmarkFolder
Add
Binding
by
lazy
{
ActivityBookmarkFolder
Add
Binding
.
inflate
(
layoutInflater
)
override
val
binding
:
ActivityBookmarkFolder
Edit
Binding
by
lazy
{
ActivityBookmarkFolder
Edit
Binding
.
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
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
a574f00d
...
...
@@ -142,12 +142,6 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
}
BOOKMARK
->
{
requireContext
().
startActivity
(
Intent
(
requireContext
(),
BookmarkActivity
::
class
.
java
)
)
requireContext
().
startActivity
(
Intent
(
requireContext
(),
BookmarkActivity
::
class
.
java
))
}
...
...
app/src/main/java/com/base/browserwhite/ui/views/BookmarkDialog.kt
View file @
a574f00d
...
...
@@ -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
app/src/main/java/com/base/browserwhite/ui/views/DialogViews.kt
View file @
a574f00d
...
...
@@ -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
()
}
...
...
app/src/main/java/com/base/browserwhite/utils/SpBeanUtils.kt
View file @
a574f00d
...
...
@@ -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
app/src/main/res/layout/activity_bookmark.xml
View file @
a574f00d
...
...
@@ -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
app/src/main/res/layout/activity_bookmark_edit.xml
View file @
a574f00d
...
...
@@ -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"
...
...
app/src/main/res/layout/activity_bookmark_folder_
add
.xml
→
app/src/main/res/layout/activity_bookmark_folder_
edit
.xml
View file @
a574f00d
...
...
@@ -6,7 +6,7 @@
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
tools:context=
".ui.activity.bookmark.BookmarkFolder
Add
Activity"
>
tools:context=
".ui.activity.bookmark.BookmarkFolder
Edit
Activity"
>
<FrameLayout
android:layout_width=
"match_parent"
...
...
app/src/main/res/layout/dialog_delete_tip.xml
View file @
a574f00d
...
...
@@ -19,13 +19,14 @@
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"5dp"
android:text=
"Prom"
android:text=
"Prom
pt
"
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"
...
...
app/src/main/res/layout/item_bookmark.xml
View file @
a574f00d
...
...
@@ -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"
...
...
app/src/main/res/layout/item_bookmark_history.xml
View file @
a574f00d
...
...
@@ -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"
...
...
app/src/main/res/layout/item_media_recent.xml
View file @
a574f00d
...
...
@@ -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"
...
...
app/src/main/res/mipmap-xxhdpi/b_del_folder_edit.png
0 → 100644
View file @
a574f00d
1.88 KB
app/src/main/res/mipmap-xxhdpi/remove_folder_edit.png
0 → 100644
View file @
a574f00d
2.35 KB
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment