Commit 5d650dc8 authored by wanglei's avatar wanglei

Merge remote-tracking branch 'origin/master'

parents 32161eea ab61a7ef
...@@ -20,6 +20,7 @@ import android.view.inputmethod.InputMethodManager ...@@ -20,6 +20,7 @@ import android.view.inputmethod.InputMethodManager
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.TextView import android.widget.TextView
import androidx.core.widget.addTextChangedListener import androidx.core.widget.addTextChangedListener
import com.base.browserwhite.MyApplication
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.bean.ConstObject import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.bean.ConstObject.searchEngineSp import com.base.browserwhite.bean.ConstObject.searchEngineSp
...@@ -38,6 +39,8 @@ import com.base.browserwhite.utils.LinkSearchUtils ...@@ -38,6 +39,8 @@ import com.base.browserwhite.utils.LinkSearchUtils
import com.base.browserwhite.utils.LogEx import com.base.browserwhite.utils.LogEx
import com.base.browserwhite.utils.SpBeanUtils import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.SEARCH_RECORD_SP_KEY import com.base.browserwhite.utils.SpBeanUtils.SEARCH_RECORD_SP_KEY
import com.base.browserwhite.utils.Utils
import com.base.browserwhite.utils.Utils.dpToPx
import com.google.android.flexbox.FlexDirection import com.google.android.flexbox.FlexDirection
import com.google.android.flexbox.FlexWrap import com.google.android.flexbox.FlexWrap
import com.google.android.flexbox.FlexboxLayoutManager import com.google.android.flexbox.FlexboxLayoutManager
...@@ -69,13 +72,14 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -69,13 +72,14 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
if (isHomeSearch) { if (isHomeSearch) {
startActivity(Intent(this, WebBrowserActivity::class.java).apply { startActivity(Intent(this, WebBrowserActivity::class.java).apply {
putExtra("url", link) putExtra("url", link)
putExtra("action", "search")
addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION) addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION)
}) })
} else { } else {
RxBus.get().post(CHANGE_SEARCH_URL, link) RxBus.get().post(CHANGE_SEARCH_URL, link)
setResult(10087)
} }
RxBus.get().post(Constants.RESET_SEARCH_VIEW, 1) RxBus.get().post(Constants.RESET_SEARCH_VIEW, 1)
setResult(10087)
finish() finish()
overridePendingTransition(0, 0) overridePendingTransition(0, 0)
} }
...@@ -86,14 +90,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -86,14 +90,6 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
isHomeSearch = intent.extras?.getBoolean("isHomeSearch") ?: true isHomeSearch = intent.extras?.getBoolean("isHomeSearch") ?: true
val layout = binding.clTop
val layoutParams = layout.layoutParams as LinearLayout.LayoutParams
val finalPosition = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16f, getResources().displayMetrics).toInt()
// layoutParams.topMargin = getStatusBarHeight() + finalPosition
layoutParams.topMargin = finalPosition
layout.setLayoutParams(layoutParams)
layout.visibility = View.VISIBLE
switchSearch(searchEngineSp) switchSearch(searchEngineSp)
searchAdapter = SearchAdapter() searchAdapter = SearchAdapter()
...@@ -242,8 +238,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -242,8 +238,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
var searchContent: String = "" var searchContent: String = ""
fun startActivityWithButtonAnimation(currentActivity: Activity, button: View, verticalOffset: Int) { fun startActivityWithButtonAnimation(currentActivity: Activity, button: View, verticalOffset: Int) {
val finalPosition = val finalPosition =MyApplication.context.dpToPx(16f)
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 16f, currentActivity.resources.displayMetrics).toInt()
val buttonTop = button.top - finalPosition val buttonTop = button.top - finalPosition
val distanceToTop = -buttonTop - verticalOffset val distanceToTop = -buttonTop - verticalOffset
val animator = ObjectAnimator.ofFloat(button, "translationY", button.translationY, distanceToTop.toFloat()) val animator = ObjectAnimator.ofFloat(button, "translationY", button.translationY, distanceToTop.toFloat())
...@@ -271,23 +266,9 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -271,23 +266,9 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
button: View, button: View,
verticalOffset: Int verticalOffset: Int
) { ) {
val marginEnd = MyApplication.context.dpToPx(30f)
val context: Context = button.getContext() val screenWidth =Utils.getScreenWidth(MyApplication.context) - marginEnd
val res: Resources = context.resources
val marginEnd = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30f, res.getDisplayMetrics())
.toInt()
val metrics = DisplayMetrics()
(context as Activity).windowManager.defaultDisplay.getMetrics(metrics)
val screenWidth = context.getResources().displayMetrics.widthPixels - marginEnd
val x = screenWidth.toFloat() / button.width.toFloat() val x = screenWidth.toFloat() / button.width.toFloat()
Log.d("glc", "screenWidth:" + screenWidth)
Log.d("glc", "button.width.toFloat():" + button.width.toFloat())
val scaleXAnimator = ObjectAnimator.ofFloat(button, "scaleX", 1f, x) val scaleXAnimator = ObjectAnimator.ofFloat(button, "scaleX", 1f, x)
val scaleYAnimator = ObjectAnimator.ofFloat(button, "scaleY", 1f, 50f / 44f) val scaleYAnimator = ObjectAnimator.ofFloat(button, "scaleY", 1f, 50f / 44f)
button.pivotX = 0f button.pivotX = 0f
......
...@@ -8,6 +8,7 @@ import android.content.Context ...@@ -8,6 +8,7 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.res.Resources import android.content.res.Resources
import android.graphics.Color import android.graphics.Color
import android.text.TextUtils
import android.util.DisplayMetrics import android.util.DisplayMetrics
import android.util.TypedValue import android.util.TypedValue
import android.view.KeyEvent import android.view.KeyEvent
...@@ -19,6 +20,7 @@ import androidx.core.view.updatePadding ...@@ -19,6 +20,7 @@ import androidx.core.view.updatePadding
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import androidx.fragment.app.FragmentTransaction import androidx.fragment.app.FragmentTransaction
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.base.browserwhite.MyApplication
import com.base.browserwhite.R import com.base.browserwhite.R
import com.base.browserwhite.ads.AdmobMaxHelper import com.base.browserwhite.ads.AdmobMaxHelper
import com.base.browserwhite.ads.AdmobMaxHelper.lastShowInter import com.base.browserwhite.ads.AdmobMaxHelper.lastShowInter
...@@ -47,6 +49,8 @@ import com.base.browserwhite.utils.LinkSearchUtils.getYandexSearch ...@@ -47,6 +49,8 @@ import com.base.browserwhite.utils.LinkSearchUtils.getYandexSearch
import com.base.browserwhite.utils.LinkSearchUtils.handleInput import com.base.browserwhite.utils.LinkSearchUtils.handleInput
import com.base.browserwhite.utils.SpBeanUtils import com.base.browserwhite.utils.SpBeanUtils
import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY import com.base.browserwhite.utils.SpBeanUtils.BOOKMARK_SP_KEY
import com.base.browserwhite.utils.Utils
import com.base.browserwhite.utils.Utils.dpToPx
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.core.Observable import io.reactivex.rxjava3.core.Observable
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
...@@ -115,35 +119,36 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() { ...@@ -115,35 +119,36 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
} }
addNewWebSite(url) addNewWebSite(url)
val action = intent.getStringExtra("action")?:""
if(TextUtils.equals(action,"search")){
binding.clSearch.post {
resetSearchLayout()
}
}
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data) super.onActivityResult(requestCode, resultCode, data)
if(requestCode==10087){ if(requestCode==10087){
val context: Context = binding.clSearch.getContext() resetSearchLayout()
val res: Resources = context.resources }
}
// 已经获取的屏幕宽度和marginEnd
val marginEnd = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30f, res.getDisplayMetrics()).toInt()
val metrics = DisplayMetrics()
windowManager.defaultDisplay.getMetrics(metrics)
val screenWidth = context.resources.displayMetrics.widthPixels - marginEnd
val reverseScaleXAnimator = ObjectAnimator.ofFloat(binding.clSearch, "scaleX", screenWidth / binding.clSearch.width.toFloat(), 1f)
val reverseScaleYAnimator = ObjectAnimator.ofFloat(binding.clSearch, "scaleY", 50f / 44f, 1f)
// 设置动画持续时间
reverseScaleXAnimator.setDuration(500)
reverseScaleYAnimator.setDuration(500)
val reverseAnimatorSet = AnimatorSet().apply {
playTogether(reverseScaleXAnimator, reverseScaleYAnimator)
}
reverseAnimatorSet.start()
binding.ivShare.visibility = View.VISIBLE private fun resetSearchLayout(){
val screenWidth = Utils.getScreenWidth(MyApplication.context) -MyApplication.context.dpToPx(30f)
val reverseScaleXAnimator = ObjectAnimator.ofFloat(binding.clSearch, "scaleX", screenWidth / binding.clSearch.width.toFloat(), 1f)
val reverseScaleYAnimator = ObjectAnimator.ofFloat(binding.clSearch, "scaleY", 50f / 44f, 1f)
binding.clSearch.pivotX=0f
binding.clSearch.pivotY=0f
reverseScaleXAnimator.setDuration(500)
reverseScaleYAnimator.setDuration(500)
val reverseAnimatorSet = AnimatorSet().apply {
playTogether(reverseScaleXAnimator, reverseScaleYAnimator)
} }
reverseAnimatorSet.start()
binding.ivShare.visibility = View.VISIBLE
} }
......
package com.base.browserwhite.utils package com.base.browserwhite.utils
import android.content.Context import android.content.Context
import android.os.Build
import android.util.DisplayMetrics import android.util.DisplayMetrics
import android.util.TypedValue import android.util.TypedValue
class Utils{ import android.view.WindowManager
object Utils{
// 扩展函数:dp 转 px // 扩展函数:dp 转 px
fun Context.dpToPx(dp: Float): Float { fun Context.dpToPx(dp: Float): Float {
...@@ -11,6 +14,12 @@ class Utils{ ...@@ -11,6 +14,12 @@ class Utils{
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics) return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics)
} }
fun getScreenWidth(context: Context): Int {
val windowManager = context.getSystemService(Context.WINDOW_SERVICE) as WindowManager
val display = windowManager.defaultDisplay
val metrics = DisplayMetrics()
display.getMetrics(metrics)
return metrics.widthPixels
}
} }
...@@ -12,7 +12,8 @@ ...@@ -12,7 +12,8 @@
<RelativeLayout <RelativeLayout
android:id="@+id/ll_top" android:id="@+id/ll_top"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_marginTop="16dp"
android:layout_height="50dp"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
...@@ -22,14 +23,8 @@ ...@@ -22,14 +23,8 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_centerVertical="true" android:layout_centerVertical="true"
android:layout_gravity="center_vertical" android:layout_marginRight="15dp"
android:layout_marginStart="5dp"
android:layout_marginEnd="20dp"
android:src="@mipmap/fenxiang" android:src="@mipmap/fenxiang"
app:layout_constraintBottom_toBottomOf="@id/cl_search"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/cl_search"
app:layout_constraintTop_toTopOf="@id/cl_search"
tools:ignore="ContentDescription" /> tools:ignore="ContentDescription" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
...@@ -38,8 +33,7 @@ ...@@ -38,8 +33,7 @@
android:layout_height="44dp" android:layout_height="44dp"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginHorizontal="15dp" android:layout_marginHorizontal="15dp"
android:layout_marginTop="16dp" android:layout_toLeftOf="@+id/iv_share"
android:layout_toStartOf="@+id/iv_share"
android:background="@drawable/bg_stroke_070709" android:background="@drawable/bg_stroke_070709"
android:orientation="horizontal" android:orientation="horizontal"
tools:ignore="InefficientWeight"> tools:ignore="InefficientWeight">
...@@ -127,7 +121,7 @@ ...@@ -127,7 +121,7 @@
android:id="@+id/container" android:id="@+id/container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="0dp" android:layout_height="0dp"
android:paddingTop="16dp" android:layout_marginTop="16dp"
app:layout_constraintBottom_toTopOf="@id/cl_bottom" app:layout_constraintBottom_toTopOf="@id/cl_bottom"
app:layout_constraintTop_toBottomOf="@id/ll_top" app:layout_constraintTop_toBottomOf="@id/ll_top"
tools:ignore="UselessLeaf" /> tools:ignore="UselessLeaf" />
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment