Browse Source

主界面定位卡片进入语聊初始化长连

carlos 1 year ago
parent
commit
8924eb49d9

+ 4 - 2
app/src/main/java/com/sikey/veryfit/ui/fragment/main/ChatMenuFragment.kt

@@ -103,8 +103,8 @@ class ChatMenuFragment : androidx.fragment.app.Fragment(), View.OnClickListener
         }
     }
 
-    suspend fun initData() {
-        if (DataManager.instance.loginResponse == null) return
+    suspend fun initData(): MutableList<ChatInfo>? {
+        if (DataManager.instance.loginResponse == null) return null
         val finalList = mutableListOf<ChatInfo>()
         fetchMsgCount()?.let { beanList ->
             beanList.groupBy {
@@ -130,6 +130,8 @@ class ChatMenuFragment : androidx.fragment.app.Fragment(), View.OnClickListener
             }
             mChatList?.adapter = ChatMenuAdapter(activity, finalList)
             setUnreadNum(finalList)
+            return finalList
         }
+        return null
     }
 }

+ 17 - 2
app/src/main/java/com/sikey/veryfit/ui/fragment/main/LocationFragment.kt

@@ -35,6 +35,7 @@ import com.github.pengrad.mapscaleview.MapScaleView
 import com.google.android.gms.maps.GoogleMap
 import com.google.android.gms.maps.OnMapReadyCallback
 import com.google.android.gms.maps.model.CameraPosition
+import com.google.gson.Gson
 import com.sikey.veryfit.R
 import com.sikey.veryfit.app.DataManager
 import com.sikey.veryfit.component.VersionMatch.VersionMatch
@@ -1124,8 +1125,22 @@ class LocationFragment : Fragment(), ICurrentChildObserver, View.OnClickListener
 
     private fun jumpToChat() {
         if (VersionMatch.checkUiShow()) {
-            val intent = Intent(context, PrivateTalkActivity::class.java)
-            context?.startActivity(intent)
+            lifecycleScope.launch {
+                (activity as BaseNoActionBarActivity).showProgressDialog()
+                ChatMenuFragment.getInstance().initData().let{ list ->
+                    (activity as BaseNoActionBarActivity).hideProgressDialog()
+                    if(list == null) return@launch
+                    val chatInfo = list.find {
+                        it.ownerCid == DataManager.instance.currentChildInfo?.childId &&
+                                it.type == UrlConstants.CHAT_TYPE_121
+                    }?:return@launch
+                    val infoStr = Gson().toJson(chatInfo)
+                    val intent = Intent(context, PrivateTalkActivity::class.java)
+                    intent.putExtra("chatInfo", infoStr)
+                    context?.startActivity(intent)
+                }
+
+            }
         } else {
             val intent = Intent(context, FamilyTalkActivity::class.java)
             context?.startActivity(intent)