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
24040005
Commit
24040005
authored
Sep 03, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
c5fea847
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
188 additions
and
8 deletions
+188
-8
build.gradle.kts
app/build.gradle.kts
+1
-1
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+1
-0
SearchTipBean.kt
...src/main/java/com/base/browserwhite/bean/SearchTipBean.kt
+3
-2
HistoryFragment.kt
...base/browserwhite/ui/activity/bookmark/HistoryFragment.kt
+1
-0
SearchActivity.kt
...om/base/browserwhite/ui/activity/search/SearchActivity.kt
+94
-1
SearchRecordAdapter.kt
...se/browserwhite/ui/activity/search/SearchRecordAdapter.kt
+27
-0
WebBrowserActivity.kt
...browserwhite/ui/activity/webbrowser/WebBrowserActivity.kt
+0
-1
WebViewFragment.kt
...se/browserwhite/ui/activity/webbrowser/WebViewFragment.kt
+5
-0
SpBeanUtils.kt
app/src/main/java/com/base/browserwhite/utils/SpBeanUtils.kt
+1
-0
bg_eef1f6_20.xml
app/src/main/res/drawable/bg_eef1f6_20.xml
+5
-0
activity_search.xml
app/src/main/res/layout/activity_search.xml
+19
-3
fragment_history.xml
app/src/main/res/layout/fragment_history.xml
+1
-0
item_searchrecord.xml
app/src/main/res/layout/item_searchrecord.xml
+12
-0
del_chip.png
app/src/main/res/mipmap-xxhdpi/del_chip.png
+0
-0
dimens.xml
app/src/main/res/values/dimens.xml
+3
-0
styles.xml
app/src/main/res/values/styles.xml
+9
-0
mychip.xml
app/src/main/res/xml/mychip.xml
+6
-0
No files found.
app/build.gradle.kts
View file @
24040005
...
...
@@ -102,6 +102,7 @@ dependencies {
implementation
(
"com.mikhaellopez:circularprogressbar:3.1.0"
)
implementation
(
"com.github.zhpanvip:viewpagerindicator:1.2.3"
)
implementation
(
"com.github.JavaNoober.BackgroundLibrary:libraryx:1.7.6"
)
implementation
(
"com.google.android.flexbox:flexbox:3.0.0"
)
//相机
val
cameraxVersion
=
"1.2.2"
...
...
@@ -125,7 +126,6 @@ dependencies {
implementation
(
"com.liulishuo.filedownloader:library:1.7.7"
)
//firebase
implementation
(
platform
(
"com.google.firebase:firebase-bom:32.3.1"
))
implementation
(
"com.google.firebase:firebase-messaging"
)
...
...
app/src/main/AndroidManifest.xml
View file @
24040005
...
...
@@ -218,6 +218,7 @@
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
android:theme=
"@style/MaterialComponentsTheme"
android:name=
".ui.activity.search.SearchActivity"
android:exported=
"false"
android:launchMode=
"singleTop"
...
...
app/src/main/java/com/base/browserwhite/bean/SearchTipBean.kt
View file @
24040005
package
com.base.browserwhite.bean
class
SearchTipBean
{
}
\ No newline at end of file
class
SearchRecordBean
(
val
content
:
String
)
:
SpBean
()
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/HistoryFragment.kt
View file @
24040005
package
com.base.browserwhite.ui.activity.bookmark
import
android.view.View
import
com.base.browserwhite.bean.HistoryBean
import
com.base.browserwhite.databinding.FragmentHistoryBinding
import
com.base.browserwhite.ui.fragment.BaseFragment
...
...
app/src/main/java/com/base/browserwhite/ui/activity/search/SearchActivity.kt
View file @
24040005
...
...
@@ -8,13 +8,16 @@ import android.content.Intent
import
android.graphics.Color
import
android.os.Handler
import
android.util.TypedValue
import
android.view.Gravity
import
android.view.View
import
android.widget.LinearLayout
import
android.widget.TextView
import
androidx.core.content.ContextCompat
import
androidx.core.widget.addTextChangedListener
import
com.base.browserwhite.R
import
com.base.browserwhite.bean.ConstObject
import
com.base.browserwhite.bean.ConstObject.searchEngineSp
import
com.base.browserwhite.bean.SearchRecordBean
import
com.base.browserwhite.databinding.ActivitySearchBinding
import
com.base.browserwhite.help.SearchTipUtils.getSearchTip
import
com.base.browserwhite.ui.activity.BaseActivity
...
...
@@ -22,11 +25,21 @@ import com.base.browserwhite.ui.activity.webbrowser.WebBrowserActivity
import
com.base.browserwhite.utils.BarUtils.setStatusBarColor
import
com.base.browserwhite.utils.BarUtils.setStatusBarLightMode
import
com.base.browserwhite.utils.LinkSearchUtils
import
com.base.browserwhite.utils.SpBeanUtils
import
com.base.browserwhite.utils.SpBeanUtils.SEARCH_RECORD_SP_KEY
import
com.google.android.flexbox.FlexDirection
import
com.google.android.flexbox.FlexWrap
import
com.google.android.flexbox.FlexboxLayoutManager
import
com.google.android.flexbox.JustifyContent
import
com.google.android.material.chip.Chip
import
com.google.gson.Gson
class
SearchActivity
:
BaseActivity
<
ActivitySearchBinding
>()
{
private
lateinit
var
searchAdapter
:
SearchAdapter
private
lateinit
var
searchRecordAdapter
:
SearchRecordAdapter
override
val
binding
:
ActivitySearchBinding
by
lazy
{
ActivitySearchBinding
.
inflate
(
layoutInflater
)
...
...
@@ -55,7 +68,18 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
}
binding
.
rv
.
adapter
=
searchAdapter
searchRecordAdapter
=
SearchRecordAdapter
()
val
layoutManager
=
FlexboxLayoutManager
(
this
)
// 设置主轴排列方向
layoutManager
.
flexDirection
=
FlexDirection
.
ROW
// 设置换行方式
layoutManager
.
flexWrap
=
FlexWrap
.
WRAP
// 设置水平对齐方式
layoutManager
.
justifyContent
=
JustifyContent
.
FLEX_START
binding
.
rvFlow
.
layoutManager
=
layoutManager
binding
.
rvFlow
.
adapter
=
searchAdapter
showSearchRecord
()
}
override
fun
initListener
()
{
...
...
@@ -69,8 +93,11 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
binding
.
tvCancel
.
visibility
=
View
.
VISIBLE
binding
.
ivClear
.
visibility
=
View
.
GONE
binding
.
tvSearch
.
visibility
=
View
.
GONE
showSearchRecord
()
return
@addTextChangedListener
}
binding
.
rv
.
visibility
=
View
.
VISIBLE
binding
.
chipGroup
.
visibility
=
View
.
GONE
binding
.
tvCancel
.
visibility
=
View
.
GONE
binding
.
ivClear
.
visibility
=
View
.
VISIBLE
binding
.
tvSearch
.
visibility
=
View
.
VISIBLE
...
...
@@ -91,6 +118,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
}
binding
.
tvSearch
.
setOnClickListener
{
val
content
=
binding
.
editWeb
.
text
.
toString
()
SpBeanUtils
.
addSpBean
(
SEARCH_RECORD_SP_KEY
,
SearchRecordBean
(
content
))
startActivity
(
Intent
(
this
,
WebBrowserActivity
::
class
.
java
).
apply
{
putExtra
(
"url"
,
LinkSearchUtils
.
getSpSearchAction
(
content
))
addFlags
(
Intent
.
FLAG_ACTIVITY_NO_ANIMATION
)
...
...
@@ -113,6 +141,23 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
binding
.
tvCancel
.
setOnClickListener
{
onBackPressed
()
}
// binding.chipGroup.setOnCheckedStateChangeListener { chipGroup, ints ->
// val id = ints[0]
// if (id == -1) {
//
// } else {
// val bean = searchRecordList.find { it.id == id.toLong() }
// if (bean != null) {
// startActivity(Intent(this, WebBrowserActivity::class.java).apply {
// putExtra("url", LinkSearchUtils.getSpSearchAction(bean.content))
// addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
// })
// chipGroup.isClickable = false
// }
// }
//
// }
}
private
fun
querySearchTip
(
query
:
String
)
{
...
...
@@ -212,4 +257,52 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
}
}
private
val
searchRecordList
=
arrayListOf
<
SearchRecordBean
>()
private
fun
showSearchRecord
()
{
binding
.
chipGroup
.
visibility
=
View
.
VISIBLE
binding
.
rv
.
visibility
=
View
.
GONE
binding
.
rvFlow
.
visibility
=
View
.
VISIBLE
searchRecordList
.
clear
()
val
gson
=
Gson
()
val
list
=
SpBeanUtils
.
getSpBeanList
(
SEARCH_RECORD_SP_KEY
).
map
{
gson
.
fromJson
(
it
,
SearchRecordBean
::
class
.
java
)
}
searchRecordList
.
addAll
(
list
)
searchRecordAdapter
.
submitList
(
searchRecordList
)
list
.
forEach
{
val
chip
=
Chip
(
this
)
chip
.
id
=
it
.
id
.
toInt
()
chip
.
text
=
it
.
content
chip
.
setTextColor
(
Color
.
BLACK
)
chip
.
textSize
=
14f
chip
.
background
=
ContextCompat
.
getDrawable
(
this
,
R
.
drawable
.
bg_eef1f6_20
)
chip
.
isCheckable
=
true
chip
.
isCheckedIconVisible
=
false
chip
.
height
=
this
.
resources
.
getDimensionPixelOffset
(
R
.
dimen
.
dp_40
)
binding
.
chipGroup
.
addView
(
chip
)
}
val
deleteChip
=
Chip
(
this
)
deleteChip
.
id
=
-
1
deleteChip
.
text
=
""
deleteChip
.
isCheckable
=
true
deleteChip
.
isCheckedIconVisible
=
false
deleteChip
.
isChipIconVisible
=
true
deleteChip
.
chipIcon
=
ContextCompat
.
getDrawable
(
this
,
R
.
mipmap
.
del_chip
)
deleteChip
.
gravity
=
Gravity
.
CENTER
deleteChip
.
setChipIconSizeResource
(
R
.
dimen
.
dp_20
)
deleteChip
.
iconStartPadding
=
this
.
resources
.
getDimension
(
R
.
dimen
.
dp_15
)
deleteChip
.
height
=
this
.
resources
.
getDimensionPixelOffset
(
R
.
dimen
.
dp_40
)
deleteChip
.
width
=
this
.
resources
.
getDimensionPixelOffset
(
R
.
dimen
.
dp_40
)
binding
.
chipGroup
.
addView
(
deleteChip
)
}
}
app/src/main/java/com/base/browserwhite/ui/activity/search/SearchRecordAdapter.kt
0 → 100644
View file @
24040005
package
com.base.browserwhite.ui.activity.search
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.bean.SearchRecordBean
import
com.base.browserwhite.databinding.ItemSearchrecordBinding
import
com.base.browserwhite.utils.XmlEx.inflate
import
com.chad.library.adapter4.BaseQuickAdapter
class
SearchRecordAdapter
:
BaseQuickAdapter
<
SearchRecordBean
,
SearchRecordAdapter
.
SearchRecordViewHolder
>()
{
inner
class
SearchRecordViewHolder
(
view
:
View
)
:
ViewHolder
(
view
)
{
}
override
fun
onBindViewHolder
(
holder
:
SearchRecordViewHolder
,
position
:
Int
,
item
:
SearchRecordBean
?)
{
if
(
item
==
null
)
return
val
binding
=
ItemSearchrecordBinding
.
bind
(
holder
.
itemView
)
binding
.
tvContent
.
text
=
item
.
content
}
override
fun
onCreateViewHolder
(
context
:
Context
,
parent
:
ViewGroup
,
viewType
:
Int
):
SearchRecordViewHolder
{
return
SearchRecordViewHolder
(
R
.
layout
.
item_searchrecord
.
inflate
(
parent
))
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/webbrowser/WebBrowserActivity.kt
View file @
24040005
...
...
@@ -248,7 +248,6 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
}
}
private
fun
addNewWebSite
(
uri
:
String
)
{
val
myFragment
=
WebViewFragment
().
apply
{
url
=
uri
}
val
transaction
:
FragmentTransaction
=
supportFragmentManager
.
beginTransaction
()
...
...
app/src/main/java/com/base/browserwhite/ui/activity/webbrowser/WebViewFragment.kt
View file @
24040005
package
com.base.browserwhite.ui.activity.webbrowser
import
android.annotation.SuppressLint
import
android.content.Context
import
android.net.Uri
import
android.net.http.SslError
import
android.view.View
...
...
@@ -267,6 +268,10 @@ class WebViewFragment : BaseFragment<FragmentWebViewBinding>() {
}
override
fun
onAttach
(
context
:
Context
)
{
super
.
onAttach
(
context
)
}
private
var
isParsing
:
Boolean
=
false
@SuppressLint
(
"NotifyDataSetChanged"
)
...
...
app/src/main/java/com/base/browserwhite/utils/SpBeanUtils.kt
View file @
24040005
...
...
@@ -9,6 +9,7 @@ object SpBeanUtils {
const
val
BOOKMARK_SP_KEY
=
"bookmark_sp_key"
//书签
const
val
BOOKMARK_NAV_SP_KEY
=
"bookmark_nav_sp_key"
//书签导航
const
val
HISTORY_SP_KEY
=
"history_sp_key"
//历史记录
const
val
SEARCH_RECORD_SP_KEY
=
"search_record_sp_key"
//搜索记录
fun
getSpBeanList
(
key
:
String
):
List
<
String
>
{
val
sp
=
AppPreferences
.
getInstance
().
getString
(
key
,
""
)
...
...
app/src/main/res/drawable/bg_eef1f6_20.xml
0 → 100644
View file @
24040005
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android=
"http://schemas.android.com/apk/res/android"
>
<corners
android:radius=
"20dp"
/>
<solid
android:color=
"#EEF1F6"
/>
</shape>
\ No newline at end of file
app/src/main/res/layout/activity_search.xml
View file @
24040005
...
...
@@ -128,9 +128,25 @@
android:layout_marginVertical=
"10dp"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_search_tip"
/>
</FrameLayout>
<com.google.android.material.chip.ChipGroup
android:id=
"@+id/chipGroup"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:padding=
"30dp"
android:visibility=
"gone"
app:chipSpacingHorizontal=
"20dp"
app:singleSelection=
"true"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/rv_flow"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
/>
</FrameLayout>
<LinearLayout
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
...
...
@@ -141,9 +157,9 @@
<LinearLayout
android:id=
"@+id/ll_fast_input_1"
android:layout_width=
"wrap_content"
android:
paddingBottom=
"6dp
"
android:
layout_height=
"wrap_content
"
android:paddingTop=
"6dp"
android:
layout_height=
"wrap_content
"
>
android:
paddingBottom=
"6dp
"
>
<TextView
android:id=
"@+id/tv_dian"
...
...
app/src/main/res/layout/fragment_history.xml
View file @
24040005
...
...
@@ -13,4 +13,5 @@
android:layout_height=
"match_parent"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_bookmark_history"
/>
</FrameLayout>
\ No newline at end of file
app/src/main/res/layout/item_searchrecord.xml
0 → 100644
View file @
24040005
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"match_parent"
android:id=
"@+id/tv_content"
android:layout_height=
"match_parent"
android:background=
"@drawable/bg_eef1f6_20"
android:paddingHorizontal=
"15dp"
android:paddingVertical=
"12.5dp"
android:textColor=
"@color/black"
tools:text=
"www.youtube.com"
/>
app/src/main/res/mipmap-xxhdpi/del_chip.png
0 → 100644
View file @
24040005
1.59 KB
app/src/main/res/values/dimens.xml
View file @
24040005
...
...
@@ -29,4 +29,7 @@ http://developer.android.com/guide/topics/appwidgets/index.html#CreatingLayout
<dimen
name=
"dp_250"
>
250dp
</dimen>
<dimen
name=
"dp_50"
>
50dp
</dimen>
<dimen
name=
"dp_100"
>
100dp
</dimen>
<dimen
name=
"sp_18"
>
18sp
</dimen>
<dimen
name=
"dp_40"
>
40dp
</dimen>
<dimen
name=
"dp_10"
>
10dp
</dimen>
</resources>
\ No newline at end of file
app/src/main/res/values/styles.xml
View file @
24040005
...
...
@@ -21,4 +21,13 @@
<item
name=
"android:background"
>
@android:color/transparent
</item>
</style>
<style
name=
"MaterialComponentsTheme"
parent=
"Theme.MaterialComponents.Light.NoActionBar"
>
<!-- Customize your theme here. -->
<item
name=
"colorPrimary"
>
#FAEA7A
</item>
<item
name=
"colorPrimaryDark"
>
#FAB97B
</item>
<item
name=
"colorAccent"
>
#A87EFA
</item>
<!-- 其他自定义主题属性 -->
</style>
</resources>
\ No newline at end of file
app/src/main/res/xml/mychip.xml
0 → 100644
View file @
24040005
<?xml version="1.0" encoding="utf-8"?>
<chip
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
app:chipIcon=
"@mipmap/del_chip"
>
</chip>
\ No newline at end of file
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