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
854c578b
Commit
854c578b
authored
Sep 02, 2024
by
leichao.gao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
搜索的过渡动画,以及rxbus
parent
5c2b4c9a
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
297 additions
and
130 deletions
+297
-130
build.gradle.kts
app/build.gradle.kts
+3
-0
Constants.java
app/src/main/java/com/base/browserwhite/help/Constants.java
+7
-0
RxBus.java
app/src/main/java/com/base/browserwhite/help/RxBus.java
+123
-0
SearchActivity.java
...ava/com/base/browserwhite/ui/activity/SearchActivity.java
+13
-21
HomeFragment.kt
...in/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
+76
-42
DialogViews.kt
...c/main/java/com/base/browserwhite/ui/views/DialogViews.kt
+3
-0
fade_in.xml
app/src/main/res/anim/fade_in.xml
+1
-1
fade_out.xml
app/src/main/res/anim/fade_out.xml
+1
-1
activity_search.xml
app/src/main/res/layout/activity_search.xml
+1
-1
fragment_home.xml
app/src/main/res/layout/fragment_home.xml
+69
-64
No files found.
app/build.gradle.kts
View file @
854c578b
...
@@ -136,6 +136,9 @@ dependencies {
...
@@ -136,6 +136,9 @@ dependencies {
implementation
(
"com.google.mlkit:barcode-scanning:17.3.0"
)
implementation
(
"com.google.mlkit:barcode-scanning:17.3.0"
)
// Use this dependency to use the dynamically downloaded model in Google Play Services
// Use this dependency to use the dynamically downloaded model in Google Play Services
// implementation ("com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1")
// implementation ("com.google.android.gms:play-services-mlkit-barcode-scanning:18.3.1")
// RxJava 3.1.3
implementation
(
"io.reactivex.rxjava3:rxjava:3.1.3"
)
implementation
(
"io.reactivex.rxjava3:rxandroid:3.0.0"
)
//facebook
//facebook
...
...
app/src/main/java/com/base/browserwhite/help/Constants.java
0 → 100644
View file @
854c578b
package
com
.
base
.
browserwhite
.
help
;
public
class
Constants
{
public
static
final
String
CHANGE_SEARCH_TYPE
=
"change_search_type"
;
}
app/src/main/java/com/base/browserwhite/help/RxBus.java
0 → 100644
View file @
854c578b
package
com
.
base
.
browserwhite
.
help
;
import
androidx.annotation.NonNull
;
import
java.util.ArrayList
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
io.reactivex.rxjava3.core.Observable
;
import
io.reactivex.rxjava3.subjects.PublishSubject
;
import
io.reactivex.rxjava3.subjects.Subject
;
/**
* Created by gaoleichao on 2018/3/26.
*/
public
class
RxBus
{
private
static
final
String
TAG
=
RxBus
.
class
.
getSimpleName
();
private
static
RxBus
instance
;
public
final
static
boolean
DEBUG
=
false
;
public
static
synchronized
RxBus
get
()
{
if
(
null
==
instance
)
{
instance
=
new
RxBus
();
}
return
instance
;
}
private
RxBus
()
{
}
private
ConcurrentHashMap
<
Object
,
List
<
Subject
>>
subjectMapper
=
new
ConcurrentHashMap
<>();
public
void
clear
()
{
for
(
Object
obj
:
subjectMapper
.
keySet
())
{
List
<
Subject
>
subjects
=
subjectMapper
.
get
(
obj
);
if
(
null
!=
subjects
)
{
subjects
.
clear
();
}
}
subjectMapper
.
clear
();
}
public
boolean
isHasObservable
(
Object
tag
)
{
if
(
subjectMapper
.
size
()
>
0
)
{
return
subjectMapper
.
get
(
tag
)
!=
null
;
}
return
false
;
}
@SuppressWarnings
(
"unchecked"
)
public
<
T
>
Observable
<
T
>
register
(
@NonNull
Object
tag
,
@NonNull
Class
<
T
>
clazz
)
{
List
<
Subject
>
subjectList
=
subjectMapper
.
get
(
tag
);
if
(
null
==
subjectList
)
{
subjectList
=
new
ArrayList
<>();
subjectMapper
.
put
(
tag
,
subjectList
);
}
Subject
<
T
>
subject
;
subjectList
.
add
(
subject
=
PublishSubject
.
create
());
return
subject
;
}
public
void
unregister
(
@NonNull
Object
tag
,
@NonNull
Observable
observable
)
{
List
<
Subject
>
subjects
=
subjectMapper
.
get
(
tag
);
if
(
null
!=
subjects
)
{
subjects
.
remove
(
observable
);
if
(
isEmpty
(
subjects
))
{
subjectMapper
.
remove
(
tag
);
}
if
(!
observable
.
subscribe
().
isDisposed
())
{
observable
.
subscribe
().
dispose
();
}
}
}
public
void
post
(
@NonNull
Object
content
)
{
post
(
content
.
getClass
().
getName
(),
content
);
}
@SuppressWarnings
(
"unchecked"
)
public
void
post
(
@NonNull
Object
tag
,
@NonNull
Object
content
)
{
if
(
subjectMapper
==
null
)
{
return
;
}
List
<
Subject
>
subjectList
=
subjectMapper
.
get
(
tag
);
if
(!
isEmpty
(
subjectList
))
{
for
(
Subject
subject
:
subjectList
)
{
if
(
subject
!=
null
)
{
subject
.
onNext
(
content
);
}
}
}
}
public
static
boolean
isEmpty
(
Collection
collection
)
{
return
null
==
collection
||
collection
.
isEmpty
();
}
public
static
boolean
isEmpty
(
Map
map
)
{
return
null
==
map
||
map
.
isEmpty
();
}
public
static
boolean
isEmpty
(
Object
[]
objs
)
{
return
null
==
objs
||
objs
.
length
<=
0
;
}
public
static
boolean
isEmpty
(
int
[]
objs
)
{
return
null
==
objs
||
objs
.
length
<=
0
;
}
public
static
boolean
isEmpty
(
CharSequence
charSequence
)
{
return
null
==
charSequence
||
charSequence
.
length
()
<=
0
;
}
}
app/src/main/java/com/base/browserwhite/ui/activity/SearchActivity.java
View file @
854c578b
package
com
.
base
.
browserwhite
.
ui
.
activity
;
package
com
.
base
.
browserwhite
.
ui
.
activity
;
import
android.animation.Animator
;
import
android.animation.Animator
;
import
android.animation.AnimatorListenerAdapter
;
import
android.animation.ObjectAnimator
;
import
android.animation.ObjectAnimator
;
import
android.annotation.SuppressLint
;
import
android.annotation.SuppressLint
;
import
android.app.Activity
;
import
android.app.Activity
;
import
android.content.Intent
;
import
android.content.Intent
;
import
android.content.res.Resources
;
import
android.graphics.Color
;
import
android.graphics.Color
;
import
android.os.Build
;
import
android.os.Bundle
;
import
android.os.Bundle
;
import
android.util.DisplayMetrics
;
import
android.util.Log
;
import
android.util.TypedValue
;
import
android.util.TypedValue
;
import
android.view.View
;
import
android.view.View
;
import
android.view.animation.Animation
;
import
android.view.animation.AnimationUtils
;
import
androidx.annotation.Nullable
;
import
androidx.annotation.Nullable
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.app.AppCompatActivity
;
import
androidx.appcompat.widget.SearchView
;
import
androidx.appcompat.widget.Toolbar
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.coordinatorlayout.widget.CoordinatorLayout
;
import
androidx.coordinatorlayout.widget.CoordinatorLayout
;
import
androidx.fragment.app.FragmentManager
;
import
com.base.browserwhite.MyApplication
;
import
com.base.browserwhite.R
;
import
com.base.browserwhite.R
;
import
com.base.browserwhite.utils.BarUtils
;
import
com.base.browserwhite.utils.BarUtils
;
import
com.google.android.material.appbar.AppBarLayout
;
public
class
SearchActivity
extends
AppCompatActivity
{
public
class
SearchActivity
extends
AppCompatActivity
{
@Override
@Override
...
@@ -37,6 +24,13 @@ public class SearchActivity extends AppCompatActivity {
...
@@ -37,6 +24,13 @@ public class SearchActivity extends AppCompatActivity {
BarUtils
.
INSTANCE
.
setStatusBarLightMode
(
this
,
true
);
BarUtils
.
INSTANCE
.
setStatusBarLightMode
(
this
,
true
);
BarUtils
.
INSTANCE
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
);
BarUtils
.
INSTANCE
.
setStatusBarColor
(
this
,
Color
.
TRANSPARENT
);
setContentView
(
R
.
layout
.
activity_search
);
setContentView
(
R
.
layout
.
activity_search
);
ConstraintLayout
layout
=
findViewById
(
R
.
id
.
appbar_layout
);
CoordinatorLayout
.
LayoutParams
layoutParams
=(
CoordinatorLayout
.
LayoutParams
)
layout
.
getLayoutParams
();
int
finalPosition
=
(
int
)
TypedValue
.
applyDimension
(
TypedValue
.
COMPLEX_UNIT_DIP
,
16
,
getResources
().
getDisplayMetrics
());
layoutParams
.
topMargin
=
BarUtils
.
INSTANCE
.
getStatusBarHeight
()+
finalPosition
;
layout
.
setLayoutParams
(
layoutParams
);
layout
.
setVisibility
(
View
.
VISIBLE
);
}
}
@SuppressLint
(
"MissingSuperCall"
)
@SuppressLint
(
"MissingSuperCall"
)
...
@@ -48,13 +42,11 @@ public class SearchActivity extends AppCompatActivity {
...
@@ -48,13 +42,11 @@ public class SearchActivity extends AppCompatActivity {
}
}
public
static
void
startActivityWithButtonAnimation
(
Activity
currentActivity
,
View
button
)
{
public
static
void
startActivityWithButtonAnimation
(
Activity
currentActivity
,
View
button
,
int
verticalOffset
)
{
int
finalPosition
=
(
int
)
TypedValue
.
applyDimension
(
TypedValue
.
COMPLEX_UNIT_DIP
,
16
,
currentActivity
.
getResources
().
getDisplayMetrics
());
Log
.
d
(
"glc"
,
"getHeight:"
+-
button
.
getHeight
());
int
buttonTop
=
button
.
getTop
()
-
finalPosition
;
Log
.
d
(
"glc"
,
"getHeight:"
+(-
button
.
getHeight
()-
32
f
));
int
distanceToTop
=
-
buttonTop
-
verticalOffset
;
int
finalPosition
=
(
int
)
TypedValue
.
applyDimension
(
TypedValue
.
COMPLEX_UNIT_DIP
,
48
,
currentActivity
.
getResources
().
getDisplayMetrics
());
ObjectAnimator
animator
=
ObjectAnimator
.
ofFloat
(
button
,
"translationY"
,
button
.
getTranslationY
(),
distanceToTop
);
ObjectAnimator
animator
=
ObjectAnimator
.
ofFloat
(
button
,
"translationY"
,
button
.
getTranslationY
(),
-
finalPosition
);
animator
.
setDuration
(
500
);
animator
.
setDuration
(
500
);
animator
.
addListener
(
new
Animator
.
AnimatorListener
()
{
animator
.
addListener
(
new
Animator
.
AnimatorListener
()
{
@Override
@Override
...
@@ -78,7 +70,7 @@ public class SearchActivity extends AppCompatActivity {
...
@@ -78,7 +70,7 @@ public class SearchActivity extends AppCompatActivity {
public
void
onAnimationRepeat
(
Animator
animation
)
{
public
void
onAnimationRepeat
(
Animator
animation
)
{
}
}
});
});
animator
.
start
();
animator
.
start
();
}
}
}
}
app/src/main/java/com/base/browserwhite/ui/fragment/HomeFragment.kt
View file @
854c578b
package
com.base.browserwhite.ui.fragment
package
com.base.browserwhite.ui.fragment
import
android.R.attr.button
import
android.animation.ObjectAnimator
import
android.animation.ObjectAnimator
import
android.content.Intent
import
android.content.Intent
import
android.text.TextUtils
import
android.text.TextUtils
import
android.util.Log
import
android.view.KeyEvent
import
android.view.KeyEvent
import
android.view.inputmethod.EditorInfo.IME_ACTION_DONE
import
android.view.inputmethod.EditorInfo.IME_ACTION_DONE
import
android.widget.TextView
import
android.widget.TextView
...
@@ -29,7 +27,9 @@ import com.base.browserwhite.bean.defaultValue
...
@@ -29,7 +27,9 @@ import com.base.browserwhite.bean.defaultValue
import
com.base.browserwhite.bean.webSiteGroupBeanList
import
com.base.browserwhite.bean.webSiteGroupBeanList
import
com.base.browserwhite.databinding.FragmentHomeBinding
import
com.base.browserwhite.databinding.FragmentHomeBinding
import
com.base.browserwhite.fcm.NotificationUtil
import
com.base.browserwhite.fcm.NotificationUtil
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.ui.activity.SearchActivity
import
com.base.browserwhite.ui.activity.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
...
@@ -57,6 +57,9 @@ import com.base.browserwhite.utils.LogEx
...
@@ -57,6 +57,9 @@ import com.base.browserwhite.utils.LogEx
import
com.chad.library.adapter4.QuickAdapterHelper
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.core.Observable
import
io.reactivex.rxjava3.functions.Consumer
class
HomeFragment
:
BaseFragment
<
FragmentHomeBinding
>()
{
class
HomeFragment
:
BaseFragment
<
FragmentHomeBinding
>()
{
...
@@ -73,10 +76,17 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -73,10 +76,17 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
private
var
headWebsiteAdapter
:
HeadWebsiteAdapter
?
=
null
private
var
headWebsiteAdapter
:
HeadWebsiteAdapter
?
=
null
private
var
searchAction
=
::
getSpSearchAction
private
var
searchAction
=
::
getSpSearchAction
private
var
searchEngine
:
String
=
GOOGLE
private
var
searchEngine
:
String
=
GOOGLE
private
var
mChangeSearchType
:
Observable
<
String
>?
=
null
override
fun
setView
()
{
override
fun
setView
()
{
mChangeSearchType
=
RxBus
.
get
().
register
(
Constants
.
CHANGE_SEARCH_TYPE
,
String
::
class
.
java
)
mChangeSearchType
?.
observeOn
(
AndroidSchedulers
.
mainThread
())
?.
subscribe
(
object
:
Consumer
<
String
>
{
override
fun
accept
(
t
:
String
)
{
LogEx
.
logDebug
(
"glc"
,
"i:"
+
t
)
switchSearch
(
t
)
}
})
newsAdapter
=
NewsAdapter
(
newsAdapter
=
NewsAdapter
(
clickAction
=
{
url
->
clickAction
=
{
url
->
requireContext
().
startActivity
(
requireContext
().
startActivity
(
...
@@ -148,7 +158,12 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -148,7 +158,12 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
BookmarkActivity
::
class
.
java
BookmarkActivity
::
class
.
java
)
)
)
)
requireContext
().
startActivity
(
Intent
(
requireContext
(),
BookmarkActivity
::
class
.
java
))
requireContext
().
startActivity
(
Intent
(
requireContext
(),
BookmarkActivity
::
class
.
java
)
)
}
}
}
}
...
@@ -172,13 +187,22 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -172,13 +187,22 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
}
}
}
}
binding
.
appbarLayout
.
addOnOffsetChangedListener
{
appBarLayout
,
i
->
verticalOffset
=
i
}
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
()
}
}
private
var
verticalOffset
=
0
private
var
y
=
0f
private
var
y
=
0f
fun
requestMore
()
{
fun
requestMore
()
{
isLoading
=
true
isLoading
=
true
...
@@ -255,42 +279,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -255,42 +279,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
binding
.
flSearchEngine
.
setOnClickListener
{
binding
.
flSearchEngine
.
setOnClickListener
{
requireContext
().
showSearchEngineDialog
{
website
->
requireContext
().
showSearchEngineDialog
{
website
->
searchEngine
=
website
switchSearch
(
website
)
searchEngineSp
=
website
when
(
website
)
{
GOOGLE
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_google
)
searchAction
=
::
getGoogleSearch
}
BING
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_bing
)
searchAction
=
::
getBingSearch
}
YAHOO
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_yahoo
)
searchAction
=
::
getYahooSearch
}
DUCKDUCKGO
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_xuckd
)
searchAction
=
::
getDuckDuckGoSearch
}
YANDEX
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_yandex
)
searchAction
=
::
getYandexSearch
}
BAIDU
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_baidu
)
searchAction
=
::
getBaiduSearch
}
}
}
}
}
}
...
@@ -358,6 +347,44 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -358,6 +347,44 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
}
}
private
fun
switchSearch
(
website
:
String
){
searchEngine
=
website
searchEngineSp
=
website
when
(
website
)
{
GOOGLE
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_google
)
searchAction
=
::
getGoogleSearch
}
BING
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_bing
)
searchAction
=
::
getBingSearch
}
YAHOO
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_yahoo
)
searchAction
=
::
getYahooSearch
}
DUCKDUCKGO
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_xuckd
)
searchAction
=
::
getDuckDuckGoSearch
}
YANDEX
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_yandex
)
searchAction
=
::
getYandexSearch
}
BAIDU
->
{
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
h_s_baidu
)
searchAction
=
::
getBaiduSearch
}
}
}
private
fun
copyUuidGid
()
{
private
fun
copyUuidGid
()
{
val
uuid
=
AppPreferences
.
getInstance
().
getString
(
"uuid"
,
""
)
val
uuid
=
AppPreferences
.
getInstance
().
getString
(
"uuid"
,
""
)
val
gid
=
AppPreferences
.
getInstance
().
getString
(
"gid"
,
""
)
val
gid
=
AppPreferences
.
getInstance
().
getString
(
"gid"
,
""
)
...
@@ -365,5 +392,12 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
...
@@ -365,5 +392,12 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
Toast
.
makeText
(
requireContext
(),
"copy"
,
Toast
.
LENGTH_SHORT
).
show
()
Toast
.
makeText
(
requireContext
(),
"copy"
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
override
fun
onDestroy
()
{
super
.
onDestroy
()
if
(
mChangeSearchType
!=
null
)
{
RxBus
.
get
().
unregister
(
Constants
.
CHANGE_SEARCH_TYPE
,
mChangeSearchType
!!
);
}
}
}
}
\ No newline at end of file
app/src/main/java/com/base/browserwhite/ui/views/DialogViews.kt
View file @
854c578b
...
@@ -26,6 +26,8 @@ import com.base.browserwhite.databinding.DialogMediaMoreBinding
...
@@ -26,6 +26,8 @@ import com.base.browserwhite.databinding.DialogMediaMoreBinding
import
com.base.browserwhite.databinding.DialogMoreWebbrowserBinding
import
com.base.browserwhite.databinding.DialogMoreWebbrowserBinding
import
com.base.browserwhite.databinding.DialogMyAccountBinding
import
com.base.browserwhite.databinding.DialogMyAccountBinding
import
com.base.browserwhite.databinding.DialogSearchEngineBinding
import
com.base.browserwhite.databinding.DialogSearchEngineBinding
import
com.base.browserwhite.help.Constants
import
com.base.browserwhite.help.RxBus
import
com.base.browserwhite.ui.activity.about.AboutActivity
import
com.base.browserwhite.ui.activity.about.AboutActivity
import
com.base.browserwhite.ui.activity.feedback.FeedbackActivity
import
com.base.browserwhite.ui.activity.feedback.FeedbackActivity
import
com.base.browserwhite.ui.views.DialogViews.showDefaultBrowserDialog
import
com.base.browserwhite.ui.views.DialogViews.showDefaultBrowserDialog
...
@@ -154,6 +156,7 @@ object DialogViews {
...
@@ -154,6 +156,7 @@ object DialogViews {
YANDEX
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_yandex
)
YANDEX
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_yandex
)
BAIDU
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_baidu
)
BAIDU
->
binding
.
ivSearchEngine
.
setImageResource
(
R
.
mipmap
.
m_baidu
)
}
}
RxBus
.
get
().
post
(
Constants
.
CHANGE_SEARCH_TYPE
,
searchEngineSp
)
}
}
}
}
binding
.
clDefaultBrowser
.
isVisible
=
!
isDefaultBrowser
()
binding
.
clDefaultBrowser
.
isVisible
=
!
isDefaultBrowser
()
...
...
app/src/main/res/anim/fade_in.xml
View file @
854c578b
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<alpha
xmlns:android=
"http://schemas.android.com/apk/res/android"
<alpha
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:duration=
"10"
android:duration=
"10"
android:fromAlpha=
"
0
.0"
android:fromAlpha=
"
1
.0"
android:toAlpha=
"1.0"
></alpha>
android:toAlpha=
"1.0"
></alpha>
app/src/main/res/anim/fade_out.xml
View file @
854c578b
...
@@ -2,4 +2,4 @@
...
@@ -2,4 +2,4 @@
<alpha
xmlns:android=
"http://schemas.android.com/apk/res/android"
<alpha
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:duration=
"10"
android:duration=
"10"
android:fromAlpha=
"1.0"
android:fromAlpha=
"1.0"
android:toAlpha=
"0.0"
></alpha>
android:toAlpha=
"1.0"
></alpha>
\ No newline at end of file
\ No newline at end of file
app/src/main/res/layout/activity_search.xml
View file @
854c578b
...
@@ -8,9 +8,9 @@
...
@@ -8,9 +8,9 @@
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/appbar_layout"
android:id=
"@+id/appbar_layout"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:visibility=
"gone"
android:layout_height=
"50dp"
android:layout_height=
"50dp"
android:layout_marginHorizontal=
"15dp"
android:layout_marginHorizontal=
"15dp"
android:layout_marginTop=
"48dp"
android:background=
"@drawable/bg_stroke_070709"
android:background=
"@drawable/bg_stroke_070709"
android:gravity=
"center"
android:gravity=
"center"
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
...
...
app/src/main/res/layout/fragment_home.xml
View file @
854c578b
...
@@ -17,7 +17,6 @@
...
@@ -17,7 +17,6 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"16dp"
android:layout_marginTop=
"16dp"
android:layout_marginBottom=
"16dp"
app:layout_scrollFlags=
"scroll|enterAlwaysCollapsed"
app:layout_scrollFlags=
"scroll|enterAlwaysCollapsed"
tools:ignore=
"ContentDescription"
>
tools:ignore=
"ContentDescription"
>
...
@@ -85,84 +84,90 @@
...
@@ -85,84 +84,90 @@
android:id=
"@+id/searchLayout"
android:id=
"@+id/searchLayout"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"50dp"
android:layout_height=
"50dp"
android:
layout_marginHorizontal=
"15dp
"
android:
background=
"@color/white
"
android:
background=
"@drawable/bg_stroke_070709
"
android:
layout_marginTop=
"16dp
"
android:gravity=
"center"
android:gravity=
"center"
android:orientation=
"horizontal"
>
android:orientation=
"horizontal"
>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/fl_search_engine"
android:layout_width=
"match_parent"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"15dp"
android:layout_margin=
"10dp"
android:background=
"@drawable/bg_stroke_070709"
android:background=
"?android:attr/selectableItemBackground"
tools:ignore=
"MissingConstraints"
>
android:padding=
"5dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
>
<
ImageView
<
androidx.constraintlayout.widget.ConstraintLayout
android:id=
"@+id/
iv
_search_engine"
android:id=
"@+id/
fl
_search_engine"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/h_s_google"
android:layout_margin=
"10dp"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"5dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
/>
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"-2dp"
android:layout_marginBottom=
"-2dp"
android:src=
"@mipmap/xuanze"
app:layout_constraintBottom_toBottomOf=
"@id/fl_search_engine"
app:layout_constraintEnd_toEndOf=
"@id/fl_search_engine"
tools:ignore=
"ContentDescription"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
<ImageView
android:id=
"@+id/edit_web"
android:id=
"@+id/iv_search_engine"
android:layout_width=
"0dp"
android:layout_width=
"wrap_content"
android:layout_height=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginHorizontal=
"5dp"
android:src=
"@mipmap/h_s_google"
android:background=
"@null"
app:layout_constraintBottom_toBottomOf=
"parent"
android:gravity=
"center_vertical"
app:layout_constraintEnd_toEndOf=
"parent"
android:hint=
"Search or enter website address"
app:layout_constraintStart_toStartOf=
"parent"
android:imeOptions=
"actionDone"
app:layout_constraintTop_toTopOf=
"parent"
/>
android:inputType=
"textUri"
android:paddingHorizontal=
"5dp"
android:singleLine=
"true"
android:textColorHint=
"#858587"
android:textSize=
"14sp"
app:layout_constraintEnd_toStartOf=
"@id/fl_scan"
app:layout_constraintStart_toEndOf=
"@id/fl_search_engine"
tools:ignore=
"Autofill,HardcodedText,TextFields"
/>
<FrameLayout
android:id=
"@+id/fl_scan"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_margin=
"10dp"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"5dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
>
<ImageView
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginEnd=
"-2dp"
android:layout_marginBottom=
"-2dp"
android:src=
"@mipmap/xuanze"
app:layout_constraintBottom_toBottomOf=
"@id/fl_search_engine"
app:layout_constraintEnd_toEndOf=
"@id/fl_search_engine"
tools:ignore=
"ContentDescription"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
<TextView
android:id=
"@+id/edit_web"
android:layout_width=
"0dp"
android:layout_height=
"match_parent"
android:layout_marginHorizontal=
"5dp"
android:background=
"@null"
android:gravity=
"center_vertical"
android:hint=
"Search or enter website address"
android:imeOptions=
"actionDone"
android:inputType=
"textUri"
android:paddingHorizontal=
"5dp"
android:singleLine=
"true"
android:textColorHint=
"#858587"
android:textSize=
"14sp"
app:layout_constraintEnd_toStartOf=
"@id/fl_scan"
app:layout_constraintStart_toEndOf=
"@id/fl_search_engine"
tools:ignore=
"Autofill,HardcodedText,TextFields"
/>
<FrameLayout
android:id=
"@+id/fl_scan"
android:layout_width=
"wrap_content"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/saoyisao"
/>
android:layout_margin=
"10dp"
android:background=
"?android:attr/selectableItemBackground"
android:padding=
"5dp"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintEnd_toEndOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:ignore=
"ContentDescription"
>
</FrameLayout>
<ImageView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:src=
"@mipmap/saoyisao"
/>
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</com.google.android.material.appbar.AppBarLayout>
</com.google.android.material.appbar.AppBarLayout>
...
...
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