Commit 52758720 authored by wanglei's avatar wanglei

Merge remote-tracking branch 'origin/master'

parents ad5da152 5e0c6fe8
...@@ -4,5 +4,6 @@ public class Constants { ...@@ -4,5 +4,6 @@ public class Constants {
public static final String CHANGE_SEARCH_TYPE = "change_search_type"; public static final String CHANGE_SEARCH_TYPE = "change_search_type";
public static final String RESET_SEARCH_VIEW = "reset_search_view";
public static final String CHANGE_SEARCH_URL = "change_search_url"; public static final String CHANGE_SEARCH_URL = "change_search_url";
} }
...@@ -25,6 +25,7 @@ import com.base.browserwhite.bean.ConstObject ...@@ -25,6 +25,7 @@ import com.base.browserwhite.bean.ConstObject
import com.base.browserwhite.bean.ConstObject.searchEngineSp import com.base.browserwhite.bean.ConstObject.searchEngineSp
import com.base.browserwhite.bean.SearchRecordBean import com.base.browserwhite.bean.SearchRecordBean
import com.base.browserwhite.databinding.ActivitySearchBinding import com.base.browserwhite.databinding.ActivitySearchBinding
import com.base.browserwhite.help.Constants
import com.base.browserwhite.help.Constants.CHANGE_SEARCH_URL import com.base.browserwhite.help.Constants.CHANGE_SEARCH_URL
import com.base.browserwhite.help.RxBus import com.base.browserwhite.help.RxBus
import com.base.browserwhite.help.SearchTipUtils.getSearchTip import com.base.browserwhite.help.SearchTipUtils.getSearchTip
...@@ -74,6 +75,8 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -74,6 +75,8 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
RxBus.get().post(CHANGE_SEARCH_URL, link) RxBus.get().post(CHANGE_SEARCH_URL, link)
overridePendingTransition(0, 0) overridePendingTransition(0, 0)
} }
RxBus.get().post(Constants.RESET_SEARCH_VIEW,1)
setResult(10087)
finish() finish()
} }
...@@ -272,24 +275,11 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -272,24 +275,11 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
val context: Context = button.getContext() val context: Context = button.getContext()
val res: Resources = context.resources val res: Resources = context.resources
val marginEnd = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30f, res.getDisplayMetrics())
// 将dp单位转换为像素
val startHeight =
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40f, res.getDisplayMetrics())
.toInt()
val endHeight =
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 50f, res.getDisplayMetrics())
.toInt()
val marginEnd =
TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 30f, res.getDisplayMetrics())
.toInt() .toInt()
// 获取屏幕宽度和视图当前宽度
val metrics = DisplayMetrics() val metrics = DisplayMetrics()
(context as Activity).windowManager.defaultDisplay.getMetrics(metrics) (context as Activity).windowManager.defaultDisplay.getMetrics(metrics)
val startWidth: Int = button.getWidth() // 假设view已经布局,可以获取宽度
val screenWidth = context.getResources().displayMetrics.widthPixels - marginEnd val screenWidth = context.getResources().displayMetrics.widthPixels - marginEnd
...@@ -299,7 +289,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() { ...@@ -299,7 +289,7 @@ class SearchActivity : BaseActivity<ActivitySearchBinding>() {
Log.d("glc", "button.width.toFloat():" + button.width.toFloat()) 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, 1.13f) val scaleYAnimator = ObjectAnimator.ofFloat(button, "scaleY", 1f, 50f/44f)
button.pivotX = 0f button.pivotX = 0f
button.pivotY = 0f button.pivotY = 0f
......
package com.base.browserwhite.ui.activity.webbrowser package com.base.browserwhite.ui.activity.webbrowser
import android.animation.AnimatorSet
import android.animation.ObjectAnimator
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.res.Resources
import android.graphics.Color import android.graphics.Color
import android.util.DisplayMetrics
import android.util.TypedValue
import android.view.KeyEvent import android.view.KeyEvent
import android.view.View import android.view.View
import android.view.inputmethod.EditorInfo import android.view.inputmethod.EditorInfo
...@@ -114,7 +120,30 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() { ...@@ -114,7 +120,30 @@ class WebBrowserActivity : BaseActivity<ActivityWebBrowserBinding>() {
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)
binding.ivShare.visibility = View.VISIBLE if(requestCode==10087){
val context: Context = binding.clSearch.getContext()
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
}
} }
......
...@@ -83,6 +83,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -83,6 +83,7 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
private var searchAction = ::getSpSearchAction private var searchAction = ::getSpSearchAction
private var searchEngine: String = GOOGLE private var searchEngine: String = GOOGLE
private var mChangeSearchType: Observable<String>? = null private var mChangeSearchType: Observable<String>? = null
private var mResetSearchView: Observable<Int>? = null
@SuppressLint("CheckResult") @SuppressLint("CheckResult")
override fun setView() { override fun setView() {
...@@ -94,6 +95,10 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -94,6 +95,10 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
LogEx.logDebug("glc", "i:$t") LogEx.logDebug("glc", "i:$t")
switchSearch(t) switchSearch(t)
} }
mResetSearchView = RxBus.get().register(Constants.RESET_SEARCH_VIEW, Int::class.java)
mResetSearchView?.observeOn(AndroidSchedulers.mainThread())?.subscribe { t ->
binding.searchLayout.translationY = y
}
newsAdapter = NewsAdapter( newsAdapter = NewsAdapter(
clickAction = { url -> clickAction = { url ->
requireContext().startActivity( requireContext().startActivity(
...@@ -159,7 +164,12 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -159,7 +164,12 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
} }
BOOKMARK -> { BOOKMARK -> {
requireContext().startActivity(Intent(requireContext(), BookmarkActivity::class.java)) requireContext().startActivity(
Intent(
requireContext(),
BookmarkActivity::class.java
)
)
} }
} }
...@@ -190,7 +200,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -190,7 +200,11 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
binding.editWeb.setOnClickListener { binding.editWeb.setOnClickListener {
binding.tvCancel.visibility = View.VISIBLE binding.tvCancel.visibility = View.VISIBLE
binding.flScan.visibility = View.GONE binding.flScan.visibility = View.GONE
SearchActivity.startActivityWithButtonAnimation(requireActivity(), binding.searchLayout, verticalOffset) SearchActivity.startActivityWithButtonAnimation(
requireActivity(),
binding.searchLayout,
verticalOffset
)
} }
requestMore() requestMore()
} }
...@@ -404,6 +418,9 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() { ...@@ -404,6 +418,9 @@ class HomeFragment : BaseFragment<FragmentHomeBinding>() {
if (mChangeSearchType != null) { if (mChangeSearchType != null) {
RxBus.get().unregister(Constants.CHANGE_SEARCH_TYPE, mChangeSearchType!!); RxBus.get().unregister(Constants.CHANGE_SEARCH_TYPE, mChangeSearchType!!);
} }
if (mResetSearchView != null) {
RxBus.get().unregister(Constants.RESET_SEARCH_VIEW, mResetSearchView!!);
}
} }
} }
\ No newline at end of file
package com.base.browserwhite.utils
import android.content.Context
import android.util.DisplayMetrics
import android.util.TypedValue
class Utils{
// 扩展函数:dp 转 px
fun Context.dpToPx(dp: Float): Float {
val metrics = resources.displayMetrics
return TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, metrics)
}
}
...@@ -126,10 +126,10 @@ ...@@ -126,10 +126,10 @@
android:layout_weight="1"> android:layout_weight="1">
<androidx.recyclerview.widget.RecyclerView <androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv" android:id="@+id/rv"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginVertical="10dp"
app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
tools:listitem="@layout/item_search_tip" /> tools:listitem="@layout/item_search_tip" />
......
...@@ -9,17 +9,34 @@ ...@@ -9,17 +9,34 @@
tools:context=".ui.activity.webbrowser.WebBrowserActivity"> tools:context=".ui.activity.webbrowser.WebBrowserActivity">
<LinearLayout <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_height="wrap_content"
android:orientation="horizontal" android:orientation="horizontal"
app:layout_constraintTop_toTopOf="parent"> app:layout_constraintTop_toTopOf="parent">
<ImageView
android:id="@+id/iv_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_alignParentRight="true"
android:layout_marginStart="5dp"
android:layout_marginEnd="20dp"
android:layout_centerVertical="true"
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" />
<androidx.constraintlayout.widget.ConstraintLayout <androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_search" android:id="@+id/cl_search"
android:layout_width="290dp" android:layout_width="match_parent"
android:layout_height="44dp" android:layout_height="44dp"
android:layout_toLeftOf="@+id/iv_share"
android:layout_gravity="center_vertical" android:layout_gravity="center_vertical"
android:layout_marginHorizontal="15dp" android:layout_marginHorizontal="15dp"
android:layout_marginVertical="16dp" android:layout_marginVertical="16dp"
...@@ -104,20 +121,7 @@ ...@@ -104,20 +121,7 @@
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>
<ImageView </RelativeLayout>
android:id="@+id/iv_share"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginStart="5dp"
android:layout_marginEnd="20dp"
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" />
</LinearLayout>
<FrameLayout <FrameLayout
......
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