浏览代码

fix: headline content empty (#38)

* fix: 临时处理floatView切语言导致走马灯文本空白问题

* fix: layoutDirection注解引用错误

---------

Co-authored-by: wutiaorong <wutiaorong@gmail.com>
LXD312569496 6 月之前
父节点
当前提交
709d3c158a

+ 2 - 2
app/src/main/java/com/adealink/weparty/commonui/widget/floatview/LayoutViewContainer.kt

@@ -24,9 +24,9 @@ class LayoutViewContainer(
         return layoutView.viewGroup().childCount
     }
 
-    fun onResume() {
+    fun onResume(layoutDirection: Int) {
         if (windowLayoutParams.token != null) {
-            layoutView.onResume()
+            layoutView.onResume(layoutDirection)
         }
     }
 

+ 1 - 1
app/src/main/java/com/adealink/weparty/commonui/widget/floatview/mode/ApplicationModeWindowManager.kt

@@ -267,7 +267,7 @@ open class ApplicationModeWindowManager : BaseWindowManager() {
             }
         }
         isCanAddToView = true
-        topViewContainer.onResume()
+        topViewContainer.onResume(activity.resources.configuration.layoutDirection)
         showNextView(null)
     }
 

+ 5 - 1
app/src/main/java/com/adealink/weparty/commonui/widget/floatview/view/FloatLinearLayout.kt

@@ -9,6 +9,7 @@ import android.util.SparseIntArray
 import android.view.View
 import androidx.annotation.IdRes
 import androidx.appcompat.widget.LinearLayoutCompat
+import androidx.camera.core.ViewPort
 import androidx.core.util.isEmpty
 import androidx.core.view.children
 import androidx.core.view.contains
@@ -131,8 +132,9 @@ class FloatLinearLayout @JvmOverloads constructor(
         return this
     }
 
-    override fun onResume() {
+    override fun onResume(layoutDirection: Int) {
         Log.d(TAG_FLOAT_LAYOUT_VIEW, "onResume")
+        this.layoutDirection = layoutDirection
         reApplyLayoutTransition()
     }
 
@@ -157,6 +159,8 @@ class FloatLinearLayout @JvmOverloads constructor(
     override fun addFloatView(view: BaseLayoutFloatView) {
         val index = getViewIndex(view.id)
         Log.i(TAG_FLOAT_LAYOUT_VIEW, "addFloatView(index:$index) $view")
+        //兼容切语言后依赖appContext的layoutDirection不更新问题
+        view.layoutDirection = LAYOUT_DIRECTION_LOCALE
         addView(view, index, view.layoutParams)
     }
 

+ 1 - 1
app/src/main/java/com/adealink/weparty/commonui/widget/floatview/view/IFloatViewGroup.kt

@@ -7,7 +7,7 @@ import com.adealink.weparty.commonui.widget.floatview.data.IFloatData
 interface IFloatViewGroup<V : BaseFloatView<out IFloatData>> {
 
     fun viewGroup(): ViewGroup
-    fun onResume()
+    fun onResume(layoutDirection: Int)
     fun onPause()
 
     fun addFloatView(view: V)

+ 1 - 12
module/headline/src/main/java/com/adealink/weparty/headline/floatview/HeadlineFloatView.kt

@@ -1,12 +1,10 @@
 package com.adealink.weparty.headline.floatview
 
-import android.content.Context
 import android.os.Bundle
 import android.view.LayoutInflater
 import com.adealink.frame.aab.util.getCompatDimensionPixelSize
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.effect.listener.IPlayListener
-import com.adealink.frame.locale.language.languageManager
 import com.adealink.frame.router.Router
 import com.adealink.frame.util.AppUtil
 import com.adealink.weparty.commonui.ext.dp
@@ -142,17 +140,8 @@ class HeadlineFloatView(floatData: HeadlineFloatData) : BaseSlideFloatView(float
             marginEnd = getCompatDimensionPixelSize(APP_R.dimen.top_float_view_margin_horizontal)
         }
 
-    private val localeContext: Context
-
-    init {
-        val locale = languageManager?.getLanguage()?.locale
-        val config = context.resources.configuration
-        config.setLocale(locale)
-        localeContext = context.createConfigurationContext(config)
-    }
-
     private val binding by fastLazy {
-        FragmentHealineBinding.inflate(LayoutInflater.from(localeContext))
+        FragmentHealineBinding.inflate(LayoutInflater.from(context))
     }
 
     override fun onCreate() {