Переглянути джерело

fix: lifecycleScope包裹binding问题

wutiaorong 10 місяців тому
батько
коміт
75005b3620

+ 4 - 4
app/dependencies/releaseRuntimeClasspath.txt

@@ -228,19 +228,19 @@ com.wenext.android:frame-aab:5.1.4
 com.wenext.android:frame-apm:5.1.4
 com.wenext.android:frame-audio:5.1.4
 com.wenext.android:frame-base:5.1.4
-com.wenext.android:frame-bom:5.1.21-yoki-test
+com.wenext.android:frame-bom:5.1.20-yoki-4
 com.wenext.android:frame-coroutine:5.1.4
 com.wenext.android:frame-crash:5.1.4
 com.wenext.android:frame-data:5.1.4
 com.wenext.android:frame-debug:5.1.4
 com.wenext.android:frame-deviceid:5.1.4
 com.wenext.android:frame-dot:5.1.10-yoki-beta
-com.wenext.android:frame-download:5.1.5
+com.wenext.android:frame-download:5.1.6-yoki-beta
 com.wenext.android:frame-effect:5.1.6
 com.wenext.android:frame-game:5.1.4
 com.wenext.android:frame-googleservice:5.1.4
 com.wenext.android:frame-guide:5.1.18-yoki
-com.wenext.android:frame-image:5.1.6-yoki-test
+com.wenext.android:frame-image:5.1.6-yoki-beta
 com.wenext.android:frame-locale:5.1.7
 com.wenext.android:frame-log:5.1.5-yoki
 com.wenext.android:frame-media:5.1.9-yoki-beta
@@ -258,7 +258,7 @@ com.wenext.android:frame-statistics:5.1.5
 com.wenext.android:frame-storage:5.1.5-yoki
 com.wenext.android:frame-tceffect:5.1.6-yoki-beta
 com.wenext.android:frame-tcturing:5.1.4
-com.wenext.android:frame-util:5.1.4
+com.wenext.android:frame-util:5.1.5-yoki-beta-2
 com.wenext.android:frame-zero:5.1.4
 com.wenext.android:retrofit:5.1.4
 id.zelory:compressor:3.0.1

+ 2 - 1
app/src/main/java/com/adealink/weparty/module/userlist/fragment/HomeBaseUserListFragment.kt

@@ -9,6 +9,7 @@ import com.adealink.frame.aab.util.getCompatColor
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.ext.isViewBindingValid
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.log.Log
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.util.ONE_MINUTE
@@ -183,7 +184,7 @@ abstract class HomeBaseUserListFragment : BaseFragment(R.layout.layout_home_user
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvUserList.scrollToPosition(0)
         }
     }

+ 1 - 1
gradle/libs.versions.toml

@@ -154,7 +154,7 @@ appleAppauth = "0.11.1"
 tiktok = "2.3.0"
 
 # frame
-frameBom = "5.1.20-yoki-2-test"
+frameBom = "5.1.20-yoki-4"
 frameRouterCompiler = "5.1.5"
 frameTrace = "1.0.0"
 

+ 2 - 3
gradlew

@@ -3,10 +3,10 @@ package com.adealink.weparty.follow
 import android.os.Bundle
 import android.view.View
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.weparty.commonui.BaseFragment
@@ -24,7 +24,6 @@ import com.adealink.weparty.module.follow.data.RelationItemData
 import com.adealink.weparty.module.follow.data.RelationShipType
 import com.adealink.weparty.module.follow.data.RelationUserItemData
 import com.adealink.weparty.ui.IScrollManager
-import kotlinx.coroutines.launch
 
 class FansListFragment : BaseFragment(R.layout.fragment_fans_list), IScrollManager {
     private val binding by viewBinding(FragmentFansListBinding::bind)
@@ -91,7 +90,7 @@ class FansListFragment : BaseFragment(R.layout.fragment_fans_list), IScrollManag
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvFans.scrollToPosition(0)
         }
     }

+ 2 - 3
module/follow/src/main/java/com/adealink/weparty/follow/FollowListFragment.kt

@@ -1,10 +1,10 @@
 package com.adealink.weparty.follow
 
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.weparty.commonui.BaseFragment
@@ -22,7 +22,6 @@ import com.adealink.weparty.module.follow.data.RelationItemData
 import com.adealink.weparty.module.follow.data.RelationShipType
 import com.adealink.weparty.module.follow.data.RelationUserItemData
 import com.adealink.weparty.ui.IScrollManager
-import kotlinx.coroutines.launch
 
 class FollowListFragment: BaseFragment(R.layout.fragment_follow_list), IScrollManager {
     private val binding by viewBinding(FragmentFollowListBinding::bind)
@@ -85,7 +84,7 @@ class FollowListFragment: BaseFragment(R.layout.fragment_follow_list), IScrollMa
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvFollow.scrollToPosition(0)
         }
     }

+ 2 - 3
module/follow/src/main/java/com/adealink/weparty/follow/FriendListFragment.kt

@@ -3,10 +3,10 @@ package com.adealink.weparty.follow
 import android.os.Bundle
 import android.view.View
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.statistics.CommonEventValue
 import com.adealink.weparty.commonui.BaseFragment
@@ -24,7 +24,6 @@ import com.adealink.weparty.module.follow.data.RelationItemData
 import com.adealink.weparty.module.follow.data.RelationShipType
 import com.adealink.weparty.module.follow.data.RelationUserItemData
 import com.adealink.weparty.ui.IScrollManager
-import kotlinx.coroutines.launch
 
 class FriendListFragment: BaseFragment(R.layout.fragment_friend_list), IScrollManager {
     private val binding by viewBinding(FragmentFriendListBinding::bind)
@@ -91,7 +90,7 @@ class FriendListFragment: BaseFragment(R.layout.fragment_friend_list), IScrollMa
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvFollow.scrollToPosition(0)
         }
     }

+ 2 - 3
module/message/src/main/java/com/adealink/weparty/message/conversationlist/ConversationListFragment.kt

@@ -2,12 +2,12 @@ package com.adealink.weparty.message.conversationlist
 
 import android.os.Bundle
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.ext.isViewBindingValid
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.imkit.widget.FixedLinearLayoutManager
 import com.adealink.frame.imkit.widget.adapter.IViewProviderListener
 import com.adealink.frame.log.Log
@@ -37,7 +37,6 @@ import com.adealink.weparty.ui.IScrollManager
 import com.scwang.smart.refresh.layout.api.RefreshLayout
 import com.scwang.smart.refresh.layout.constant.RefreshState
 import com.scwang.smart.refresh.layout.simple.SimpleMultiListener
-import kotlinx.coroutines.launch
 
 @RouterUri(path = [Message.Conversation.LIST], desc = "会话列表")
 class ConversationListFragment : BaseFragment(R.layout.fragment_conversationlist),
@@ -306,7 +305,7 @@ class ConversationListFragment : BaseFragment(R.layout.fragment_conversationlist
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.conversationList.scrollToPosition(0)
         }
     }

+ 2 - 2
module/moment/src/main/java/com/adealink/weparty/moment/usermoment/square/MomentListFragment.kt

@@ -16,6 +16,7 @@ import com.adealink.frame.base.fastLazy
 import com.adealink.frame.coroutine.dispatcher.Dispatcher
 import com.adealink.frame.data.json.toJsonErrorNull
 import com.adealink.frame.ext.isViewBindingValid
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.router.annotation.RouterUri
@@ -34,7 +35,6 @@ import com.adealink.weparty.commonui.widget.CommonDialog
 import com.adealink.weparty.module.anchor.data.FromScene
 import com.adealink.weparty.module.follow.FollowModule
 import com.adealink.weparty.module.follow.data.FollowOpFrom
-import com.adealink.weparty.module.gift.Gift
 import com.adealink.weparty.module.gift.GiftModule
 import com.adealink.weparty.module.image.Image
 import com.adealink.weparty.module.moment.Moment
@@ -498,7 +498,7 @@ class MomentListFragment : BaseFragment(R.layout.fragment_moment_list), ReplyOpe
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvMoment.smoothScrollToPosition(0)
         }
     }

+ 2 - 1
module/profile/src/main/java/com/adealink/weparty/profile/me/MeFragment.kt

@@ -13,6 +13,7 @@ import com.adealink.frame.aab.util.getCompatDrawable
 import com.adealink.frame.aab.util.getCompatString
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.guide.core.GuideLabel
 import com.adealink.frame.guide.core.GuidePage
 import com.adealink.frame.guide.core.NewbieGuide
@@ -532,7 +533,7 @@ class MeFragment : BaseFragment(R.layout.fragment_me), IScrollManager {
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.scrollLayout.smoothScrollTo(0, 0)
         }
     }

+ 2 - 1
module/room/src/main/java/com/adealink/weparty/room/roomlist/follow/FollowRoomListFragment.kt

@@ -6,6 +6,7 @@ import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.util.DisplayUtil
@@ -154,7 +155,7 @@ class FollowRoomListFragment : BaseFragment(R.layout.fragment_follow_room_list),
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvRoomList.scrollToPosition(0)
         }
     }

+ 2 - 3
module/room/src/main/java/com/adealink/weparty/room/roomlist/friends/FriendsRoomListFragment.kt

@@ -1,11 +1,11 @@
 package com.adealink.weparty.room.roomlist.friends
 
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.util.DisplayUtil
@@ -30,7 +30,6 @@ import com.adealink.weparty.room.viewmodel.RoomViewModelFactory
 import com.adealink.weparty.ui.IScrollManager
 import com.scwang.smart.refresh.layout.api.RefreshLayout
 import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
-import kotlinx.coroutines.launch
 
 class FriendsRoomListFragment : BaseFragment(R.layout.fragment_friends_room_list), RoomItemViewBinder.IRoomClickCallback, IScrollManager {
 
@@ -154,7 +153,7 @@ class FriendsRoomListFragment : BaseFragment(R.layout.fragment_friends_room_list
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvRoomList.scrollToPosition(0)
         }
     }

+ 2 - 3
module/room/src/main/java/com/adealink/weparty/room/roomlist/popular/PopularRoomListFragment.kt

@@ -1,10 +1,10 @@
 package com.adealink.weparty.room.roomlist.popular
 
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.adealink.frame.base.fastLazy
 import com.adealink.frame.ext.isViewBindingValid
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.weparty.commonui.BaseFragment
 import com.adealink.weparty.commonui.recycleview.adapter.MultiTypeListAdapter
@@ -19,7 +19,6 @@ import com.adealink.weparty.room.viewmodel.RoomViewModelFactory
 import com.adealink.weparty.stat.constant.Page
 import com.adealink.weparty.stat.reportEnterPage
 import com.adealink.weparty.ui.IScrollManager
-import kotlinx.coroutines.launch
 
 class PopularRoomListFragment : BaseFragment(R.layout.fragment_popular_room_list), IScrollManager {
 
@@ -112,7 +111,7 @@ class PopularRoomListFragment : BaseFragment(R.layout.fragment_popular_room_list
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvRoomList.scrollToPosition(0)
         }
     }

+ 2 - 3
module/room/src/main/java/com/adealink/weparty/room/roomlist/recently/RecentlyRoomListFragment.kt

@@ -1,11 +1,11 @@
 package com.adealink.weparty.room.roomlist.recently
 
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.lifecycleScope
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import com.adealink.frame.base.Rlt
 import com.adealink.frame.base.fastLazy
+import com.adealink.frame.ext.launchIfViewLifecycleInitialized
 import com.adealink.frame.mvvm.view.viewBinding
 import com.adealink.frame.router.Router
 import com.adealink.frame.util.DisplayUtil
@@ -30,7 +30,6 @@ import com.adealink.weparty.room.viewmodel.RoomViewModelFactory
 import com.adealink.weparty.ui.IScrollManager
 import com.scwang.smart.refresh.layout.api.RefreshLayout
 import com.scwang.smart.refresh.layout.listener.OnRefreshLoadMoreListener
-import kotlinx.coroutines.launch
 
 class RecentlyRoomListFragment : BaseFragment(R.layout.fragment_recently_room_list),
     RoomItemViewBinder.IRoomClickCallback, IScrollManager {
@@ -169,7 +168,7 @@ class RecentlyRoomListFragment : BaseFragment(R.layout.fragment_recently_room_li
     }
 
     override fun scrollToTop() {
-        lifecycleScope.launch {
+        launchIfViewLifecycleInitialized {
             binding.rvRoomList.scrollToPosition(0)
         }
     }