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
43a62653
Commit
43a62653
authored
Sep 02, 2024
by
wanglei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
...
parent
794beedf
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
114 additions
and
22 deletions
+114
-22
build.gradle.kts
app/build.gradle.kts
+2
-2
AndroidManifest.xml
app/src/main/AndroidManifest.xml
+1
-2
SearchTipUtils.kt
...rc/main/java/com/base/browserwhite/help/SearchTipUtils.kt
+35
-0
AboutActivity.kt
.../com/base/browserwhite/ui/activity/about/AboutActivity.kt
+2
-0
BookmarkActivity.kt
...ase/browserwhite/ui/activity/bookmark/BookmarkActivity.kt
+5
-0
SearchActivity.java
.../base/browserwhite/ui/activity/search/SearchActivity.java
+32
-5
SearchResultsFragment.java
...rowserwhite/ui/activity/search/SearchResultsFragment.java
+1
-1
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+10
-12
activity_bookmark.xml
app/src/main/res/layout/activity_bookmark.xml
+26
-0
nobookmark.png
app/src/main/res/mipmap-xxhdpi/nobookmark.png
+0
-0
No files found.
app/build.gradle.kts
View file @
43a62653
...
@@ -124,7 +124,7 @@ dependencies {
...
@@ -124,7 +124,7 @@ dependencies {
//支持暂停恢复下载
//支持暂停恢复下载
implementation
(
"com.liulishuo.filedownloader:library:1.7.7"
)
implementation
(
"com.liulishuo.filedownloader:library:1.7.7"
)
implementation
(
"com.facebook.android:facebook-android-sdk:[8,9)"
)
//firebase
//firebase
implementation
(
platform
(
"com.google.firebase:firebase-bom:32.3.1"
))
implementation
(
platform
(
"com.google.firebase:firebase-bom:32.3.1"
))
...
@@ -141,5 +141,5 @@ dependencies {
...
@@ -141,5 +141,5 @@ dependencies {
implementation
(
"io.reactivex.rxjava3:rxandroid:3.0.0"
)
implementation
(
"io.reactivex.rxjava3:rxandroid:3.0.0"
)
//facebook
//facebook
implementation
(
"com.facebook.android:facebook-android-sdk:[8,9)"
)
}
}
\ No newline at end of file
app/src/main/AndroidManifest.xml
View file @
43a62653
...
@@ -39,7 +39,6 @@
...
@@ -39,7 +39,6 @@
android:usesCleartextTraffic=
"true"
android:usesCleartextTraffic=
"true"
tools:targetApi=
"34"
>
tools:targetApi=
"34"
>
<receiver
<receiver
android:name=
".ui.widget.BrowserAppWidget"
android:name=
".ui.widget.BrowserAppWidget"
android:exported=
"false"
>
android:exported=
"false"
>
...
@@ -219,7 +218,7 @@
...
@@ -219,7 +218,7 @@
android:screenOrientation=
"portrait"
android:screenOrientation=
"portrait"
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
tools:ignore=
"DiscouragedApi,LockedOrientationActivity"
/>
<activity
<activity
android:name=
".ui.activity.SearchActivity"
android:name=
".ui.activity.
search.
SearchActivity"
android:exported=
"false"
android:exported=
"false"
android:launchMode=
"singleTop"
android:launchMode=
"singleTop"
android:screenOrientation=
"portrait"
android:screenOrientation=
"portrait"
...
...
app/src/main/java/com/base/browserwhite/help/SearchTipUtils.kt
0 → 100644
View file @
43a62653
package
com.base.browserwhite.help
import
android.util.Log
import
android.widget.Toast
import
com.base.browserwhite.utils.AppPreferences
import
com.base.browserwhite.utils.LogEx
import
java.io.BufferedReader
import
java.io.InputStreamReader
import
java.net.HttpURLConnection
import
java.net.URL
object
SearchTipUtils
{
private
val
TAG
=
"SearchTipUtils"
fun
getSearchTip
(
q
:
String
):
String
?
{
val
url
=
"https://www.google.com/complete/search?q=$q&cp=3&client=gws-wiz&xssi=t&hl=en"
try
{
val
conn
:
HttpURLConnection
=
URL
(
url
).
openConnection
()
as
HttpURLConnection
conn
.
setRequestMethod
(
"GET"
)
conn
.
connectTimeout
=
5000
if
(
200
==
conn
.
getResponseCode
())
{
val
json
=
BufferedReader
(
InputStreamReader
(
conn
.
inputStream
)).
readLine
()
LogEx
.
logDebug
(
TAG
,
json
)
AppPreferences
.
getInstance
().
put
(
TAG
,
json
)
return
json
}
}
catch
(
e
:
Exception
)
{
e
.
printStackTrace
()
}
return
null
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/about/AboutActivity.kt
View file @
43a62653
package
com.base.browserwhite.ui.activity.about
package
com.base.browserwhite.ui.activity.about
import
androidx.lifecycle.lifecycleScope
import
com.base.browserwhite.databinding.ActivityAboutBinding
import
com.base.browserwhite.databinding.ActivityAboutBinding
import
com.base.browserwhite.ui.activity.BaseActivity
import
com.base.browserwhite.ui.activity.BaseActivity
...
@@ -11,6 +12,7 @@ class AboutActivity : BaseActivity<ActivityAboutBinding>() {
...
@@ -11,6 +12,7 @@ class AboutActivity : BaseActivity<ActivityAboutBinding>() {
override
fun
initView
()
{
override
fun
initView
()
{
lifecycleScope
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/activity/bookmark/BookmarkActivity.kt
View file @
43a62653
...
@@ -5,6 +5,7 @@ import android.content.Intent
...
@@ -5,6 +5,7 @@ import android.content.Intent
import
android.graphics.Color
import
android.graphics.Color
import
android.view.View
import
android.view.View
import
androidx.activity.addCallback
import
androidx.activity.addCallback
import
androidx.core.view.isVisible
import
androidx.core.view.updatePadding
import
androidx.core.view.updatePadding
import
com.base.browserwhite.bean.BookmarkBean
import
com.base.browserwhite.bean.BookmarkBean
import
com.base.browserwhite.databinding.ActivityBookmarkBinding
import
com.base.browserwhite.databinding.ActivityBookmarkBinding
...
@@ -42,8 +43,11 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
...
@@ -42,8 +43,11 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
bookmarkAdapter
=
BookmarkAdapter
()
bookmarkAdapter
=
BookmarkAdapter
()
bookmarkAdapter
.
changeFolderAction
=
{
folderId
->
bookmarkAdapter
.
changeFolderAction
=
{
folderId
->
val
list
=
bookmarkList
.
filter
{
it
.
folderId
==
folderId
}
val
list
=
bookmarkList
.
filter
{
it
.
folderId
==
folderId
}
binding
.
llEmpty
.
isVisible
=
list
.
isEmpty
()
bookmarkAdapter
.
submitList
(
list
)
bookmarkAdapter
.
submitList
(
list
)
}
}
bookmarkAdapter
.
moreAction
=
{
view
,
bean
->
bookmarkAdapter
.
moreAction
=
{
view
,
bean
->
showBookmarkMoreDialog
(
showBookmarkMoreDialog
(
view
,
view
,
...
@@ -122,6 +126,7 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
...
@@ -122,6 +126,7 @@ class BookmarkActivity : BaseActivity<ActivityBookmarkBinding>() {
bookmarkList
.
addAll
(
items
)
bookmarkList
.
addAll
(
items
)
bookmarkAdapter
.
currentFolderId
=
0
bookmarkAdapter
.
currentFolderId
=
0
bookmarkAdapter
.
submitList
(
bookmarkList
.
filter
{
it
.
folderId
==
bookmarkAdapter
.
currentFolderId
})
bookmarkAdapter
.
submitList
(
bookmarkList
.
filter
{
it
.
folderId
==
bookmarkAdapter
.
currentFolderId
})
binding
.
llEmpty
.
isVisible
=
items
.
isEmpty
()
}
}
override
fun
initListener
()
{
override
fun
initListener
()
{
...
...
app/src/main/java/com/base/browserwhite/ui/activity/SearchActivity.java
→
app/src/main/java/com/base/browserwhite/ui/activity/
search/
SearchActivity.java
View file @
43a62653
package
com
.
base
.
browserwhite
.
ui
.
activity
;
package
com
.
base
.
browserwhite
.
ui
.
activity
.
search
;
import
android.animation.Animator
;
import
android.animation.Animator
;
import
android.animation.ObjectAnimator
;
import
android.animation.ObjectAnimator
;
...
@@ -7,6 +7,7 @@ import android.app.Activity;
...
@@ -7,6 +7,7 @@ import android.app.Activity;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.os.Handler
;
import
android.util.TypedValue
;
import
android.util.TypedValue
;
import
android.view.View
;
import
android.view.View
;
...
@@ -14,8 +15,13 @@ import androidx.annotation.Nullable;
...
@@ -14,8 +15,13 @@ import androidx.annotation.Nullable;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.coordinatorlayout.widget.CoordinatorLayout
;
import
androidx.coordinatorlayout.widget.CoordinatorLayout
;
import
com.base.browserwhite.R
;
import
com.base.browserwhite.R
;
import
com.base.browserwhite.help.SearchTipUtils
;
import
com.base.browserwhite.utils.AppPreferences
;
import
com.base.browserwhite.utils.BarUtils
;
import
com.base.browserwhite.utils.BarUtils
;
import
com.base.browserwhite.utils.LogEx
;
import
com.base.browserwhite.utils.ToastUtils
;
public
class
SearchActivity
extends
AppCompatActivity
{
public
class
SearchActivity
extends
AppCompatActivity
{
@Override
@Override
...
@@ -26,11 +32,32 @@ public class SearchActivity extends AppCompatActivity {
...
@@ -26,11 +32,32 @@ public class SearchActivity extends AppCompatActivity {
setContentView
(
R
.
layout
.
activity_search
);
setContentView
(
R
.
layout
.
activity_search
);
ConstraintLayout
layout
=
findViewById
(
R
.
id
.
appbar_layout
);
ConstraintLayout
layout
=
findViewById
(
R
.
id
.
appbar_layout
);
CoordinatorLayout
.
LayoutParams
layoutParams
=(
CoordinatorLayout
.
LayoutParams
)
layout
.
getLayoutParams
();
CoordinatorLayout
.
LayoutParams
layoutParams
=
(
CoordinatorLayout
.
LayoutParams
)
layout
.
getLayoutParams
();
int
finalPosition
=
(
int
)
TypedValue
.
applyDimension
(
TypedValue
.
COMPLEX_UNIT_DIP
,
16
,
getResources
().
getDisplayMetrics
());
int
finalPosition
=
(
int
)
TypedValue
.
applyDimension
(
TypedValue
.
COMPLEX_UNIT_DIP
,
16
,
getResources
().
getDisplayMetrics
());
layoutParams
.
topMargin
=
BarUtils
.
INSTANCE
.
getStatusBarHeight
()
+
finalPosition
;
layoutParams
.
topMargin
=
BarUtils
.
INSTANCE
.
getStatusBarHeight
()
+
finalPosition
;
layout
.
setLayoutParams
(
layoutParams
);
layout
.
setLayoutParams
(
layoutParams
);
layout
.
setVisibility
(
View
.
VISIBLE
);
layout
.
setVisibility
(
View
.
VISIBLE
);
new
Thread
(
new
Runnable
()
{
@Override
public
void
run
()
{
String
a
=
SearchTipUtils
.
INSTANCE
.
getSearchTip
(
"w"
);
new
Handler
(
getMainLooper
()).
post
(
new
Runnable
()
{
@Override
public
void
run
()
{
if
(
a
!=
null
)
{
ToastUtils
.
INSTANCE
.
toast
(
getApplicationContext
(),
a
);
}
else
{
ToastUtils
.
INSTANCE
.
toast
(
getApplicationContext
(),
"空的"
);
}
}
});
}
}
).
start
();
String
json
=
AppPreferences
.
getInstance
().
getString
(
"SearchTipUtils"
,
""
);
LogEx
.
INSTANCE
.
logDebug
(
"SearchTipUtils"
,
"json="
+
json
,
false
);
}
}
@SuppressLint
(
"MissingSuperCall"
)
@SuppressLint
(
"MissingSuperCall"
)
...
@@ -42,10 +69,10 @@ public class SearchActivity extends AppCompatActivity {
...
@@ -42,10 +69,10 @@ public class SearchActivity extends AppCompatActivity {
}
}
public
static
void
startActivityWithButtonAnimation
(
Activity
currentActivity
,
View
button
,
int
verticalOffset
)
{
public
static
void
startActivityWithButtonAnimation
(
Activity
currentActivity
,
View
button
,
int
verticalOffset
)
{
int
finalPosition
=
(
int
)
TypedValue
.
applyDimension
(
TypedValue
.
COMPLEX_UNIT_DIP
,
16
,
currentActivity
.
getResources
().
getDisplayMetrics
());
int
finalPosition
=
(
int
)
TypedValue
.
applyDimension
(
TypedValue
.
COMPLEX_UNIT_DIP
,
16
,
currentActivity
.
getResources
().
getDisplayMetrics
());
int
buttonTop
=
button
.
getTop
()
-
finalPosition
;
int
buttonTop
=
button
.
getTop
()
-
finalPosition
;
int
distanceToTop
=
-
buttonTop
-
verticalOffset
;
int
distanceToTop
=
-
buttonTop
-
verticalOffset
;
ObjectAnimator
animator
=
ObjectAnimator
.
ofFloat
(
button
,
"translationY"
,
button
.
getTranslationY
(),
distanceToTop
);
ObjectAnimator
animator
=
ObjectAnimator
.
ofFloat
(
button
,
"translationY"
,
button
.
getTranslationY
(),
distanceToTop
);
animator
.
setDuration
(
500
);
animator
.
setDuration
(
500
);
animator
.
addListener
(
new
Animator
.
AnimatorListener
()
{
animator
.
addListener
(
new
Animator
.
AnimatorListener
()
{
...
...
app/src/main/java/com/base/browserwhite/ui/activity/SearchResultsFragment.java
→
app/src/main/java/com/base/browserwhite/ui/activity/
search/
SearchResultsFragment.java
View file @
43a62653
package
com
.
base
.
browserwhite
.
ui
.
activity
;
package
com
.
base
.
browserwhite
.
ui
.
activity
.
search
;
import
androidx.fragment.app.Fragment
;
import
androidx.fragment.app.Fragment
;
...
...
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
43a62653
package
com.base.browserwhite.ui.fragment
package
com.base.browserwhite.ui.fragment
import
android.animation.ObjectAnimator
import
android.animation.ObjectAnimator
import
android.annotation.SuppressLint
import
android.content.Intent
import
android.content.Intent
import
android.text.TextUtils
import
android.text.TextUtils
import
android.view.KeyEvent
import
android.view.KeyEvent
...
@@ -31,7 +32,7 @@ import com.base.browserwhite.fcm.NotificationUtil
...
@@ -31,7 +32,7 @@ import com.base.browserwhite.fcm.NotificationUtil
import
com.base.browserwhite.help.Constants
import
com.base.browserwhite.help.Constants
import
com.base.browserwhite.help.NewsUtils.requestNews
import
com.base.browserwhite.help.NewsUtils.requestNews
import
com.base.browserwhite.help.RxBus
import
com.base.browserwhite.help.RxBus
import
com.base.browserwhite.ui.activity.SearchActivity
import
com.base.browserwhite.ui.activity.
search.
SearchActivity
import
com.base.browserwhite.ui.activity.appprocess.AppProcessActivity
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.cleanjunk.ScanJunkActivity
...
@@ -61,9 +62,8 @@ import com.chad.library.adapter4.QuickAdapterHelper
...
@@ -61,9 +62,8 @@ import com.chad.library.adapter4.QuickAdapterHelper
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.LoadState
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import
com.chad.library.adapter4.loadState.trailing.TrailingLoadStateAdapter
import
io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import
io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import
io.reactivex.rxjava3.core.Observable
import
io.reactivex.rxjava3.functions.Consumer
import
com.google.gson.Gson
import
com.google.gson.Gson
import
io.reactivex.rxjava3.core.Observable
class
HomeFragment
:
BaseFragment
<
FragmentHomeBinding
>()
{
class
HomeFragment
:
BaseFragment
<
FragmentHomeBinding
>()
{
...
@@ -82,15 +82,13 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -82,15 +82,13 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
private
var
searchEngine
:
String
=
GOOGLE
private
var
searchEngine
:
String
=
GOOGLE
private
var
mChangeSearchType
:
Observable
<
String
>?
=
null
private
var
mChangeSearchType
:
Observable
<
String
>?
=
null
@SuppressLint
(
"CheckResult"
)
override
fun
setView
()
{
override
fun
setView
()
{
mChangeSearchType
=
RxBus
.
get
().
register
(
Constants
.
CHANGE_SEARCH_TYPE
,
String
::
class
.
java
)
mChangeSearchType
=
RxBus
.
get
().
register
(
Constants
.
CHANGE_SEARCH_TYPE
,
String
::
class
.
java
)
mChangeSearchType
?.
observeOn
(
AndroidSchedulers
.
mainThread
())
mChangeSearchType
?.
observeOn
(
AndroidSchedulers
.
mainThread
())
?.
subscribe
{
t
->
?.
subscribe
(
object
:
Consumer
<
String
>
{
LogEx
.
logDebug
(
"glc"
,
"i:$t"
)
override
fun
accept
(
t
:
String
)
{
switchSearch
(
t
)
LogEx
.
logDebug
(
"glc"
,
"i:"
+
t
)
}
switchSearch
(
t
)
}
})
newsAdapter
=
NewsAdapter
(
newsAdapter
=
NewsAdapter
(
clickAction
=
{
url
->
clickAction
=
{
url
->
requireContext
().
startActivity
(
requireContext
().
startActivity
(
...
@@ -185,7 +183,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -185,7 +183,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
}
}
y
=
binding
.
searchLayout
.
translationY
y
=
binding
.
searchLayout
.
translationY
binding
.
editWeb
.
setOnClickListener
{
binding
.
editWeb
.
setOnClickListener
{
SearchActivity
.
startActivityWithButtonAnimation
(
activity
,
binding
.
searchLayout
)
SearchActivity
.
startActivityWithButtonAnimation
(
activity
,
binding
.
searchLayout
,
verticalOffset
)
}
}
requestMore
()
requestMore
()
}
}
...
@@ -347,7 +345,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -347,7 +345,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
}
}
private
fun
switchSearch
(
website
:
String
)
{
private
fun
switchSearch
(
website
:
String
)
{
searchEngine
=
website
searchEngine
=
website
searchEngineSp
=
website
searchEngineSp
=
website
when
(
website
)
{
when
(
website
)
{
...
...
app/src/main/res/layout/activity_bookmark.xml
View file @
43a62653
...
@@ -138,6 +138,32 @@
...
@@ -138,6 +138,32 @@
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
app:layoutManager=
"androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem=
"@layout/item_bookmark"
/>
tools:listitem=
"@layout/item_bookmark"
/>
<LinearLayout
android:id=
"@+id/ll_empty"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
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/nobookmark"
tools:ignore=
"ContentDescription"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"16dp"
android:text=
"NO Bookmark"
android:textColor=
"#828282"
tools:ignore=
"HardcodedText"
/>
</LinearLayout>
</FrameLayout>
</FrameLayout>
<FrameLayout
<FrameLayout
...
...
app/src/main/res/mipmap-xxhdpi/nobookmark.png
0 → 100644
View file @
43a62653
8.52 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