forked from melod1n/fast-messenger
84d812a6d6
Refactoring Separation into libraries
115 lines
3.6 KiB
Kotlin
115 lines
3.6 KiB
Kotlin
package com.meloda.fast.dialog
|
|
|
|
import android.os.Bundle
|
|
import android.view.LayoutInflater
|
|
import android.view.View
|
|
import android.view.ViewGroup
|
|
import android.widget.LinearLayout
|
|
import android.widget.TextView
|
|
import androidx.core.content.ContextCompat
|
|
import androidx.recyclerview.widget.LinearLayoutManager
|
|
import androidx.recyclerview.widget.RecyclerView
|
|
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
|
|
import com.meloda.fast.R
|
|
import com.meloda.fast.adapter.SimpleItemAdapter
|
|
import com.meloda.fast.item.SimpleMenuItem
|
|
import com.meloda.vksdk.model.VKConversation
|
|
import com.meloda.vksdk.model.VKUser
|
|
|
|
open class ProfileDialog(
|
|
private val conversation: VKConversation,
|
|
private val chatTitle: String
|
|
) : BottomSheetDialogFragment() {
|
|
|
|
companion object {
|
|
const val TAG = "profile_bottom_sheet_dialog"
|
|
}
|
|
|
|
private lateinit var title: TextView
|
|
private lateinit var subtitle: TextView
|
|
private lateinit var recyclerView: RecyclerView
|
|
private lateinit var root: LinearLayout
|
|
|
|
private var adapter: SimpleItemAdapter? = null
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
|
|
setStyle(STYLE_NO_TITLE, R.style.AppTheme_ProfileDialog)
|
|
}
|
|
|
|
override fun onCreateView(
|
|
inflater: LayoutInflater,
|
|
container: ViewGroup?,
|
|
savedInstanceState: Bundle?
|
|
): View? {
|
|
return inflater.inflate(R.layout.dialog_profile_bottom, container, false)
|
|
}
|
|
|
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
super.onViewCreated(view, savedInstanceState)
|
|
|
|
title = view.findViewById(R.id.profileTitle)
|
|
subtitle = view.findViewById(R.id.profileSubtitle)
|
|
recyclerView = view.findViewById(R.id.profileItemMenu)
|
|
root = view.findViewById(R.id.profileRoot)
|
|
|
|
val layoutManager = LinearLayoutManager(requireContext(), RecyclerView.VERTICAL, false)
|
|
|
|
recyclerView.layoutManager = layoutManager
|
|
|
|
title.text = chatTitle
|
|
|
|
subtitle.text = getSubtitle()
|
|
|
|
val items = ArrayList<SimpleMenuItem>()
|
|
|
|
items.add(
|
|
SimpleMenuItem(
|
|
ContextCompat.getDrawable(
|
|
requireContext(),
|
|
R.drawable.ic_search
|
|
)!!, "Search"
|
|
)
|
|
)
|
|
|
|
createAdapter(items)
|
|
}
|
|
|
|
private fun createAdapter(items: ArrayList<SimpleMenuItem>) {
|
|
adapter = SimpleItemAdapter(requireContext(), items)
|
|
recyclerView.adapter = adapter
|
|
}
|
|
|
|
private fun getSubtitle(): String {
|
|
return when (conversation.type) {
|
|
VKConversation.Type.CHAT -> getString(
|
|
R.string.chat_members,
|
|
conversation.membersCount
|
|
)
|
|
VKConversation.Type.GROUP -> {
|
|
// val group = MemoryCache.getGroupById(conversation.conversationId) ?: return ""
|
|
//
|
|
// "@${group.screenName}"
|
|
""
|
|
}
|
|
VKConversation.Type.USER -> {
|
|
// val user = MemoryCache.getUserById(conversation.id) ?: return ""
|
|
|
|
//TODO: придумать чо делать
|
|
val user: VKUser = null ?: return ""
|
|
|
|
var str =
|
|
if (user.screenName.contains("id${user.userId}")) "" else "@${user.screenName}"
|
|
|
|
val online =
|
|
getString(if (user.isOnlineMobile) R.string.user_online_mobile else if (user.isOnline) R.string.user_online else R.string.user_offline)
|
|
|
|
str += if (str.isEmpty()) online else " · $online"
|
|
|
|
str
|
|
}
|
|
else -> ""
|
|
}
|
|
}
|
|
} |