Replaced EmojiPicker in RenameConversationDialogFragment

Signed-off-by: Smarshal21 <lcb2021048@iiitl.ac.in>
This commit is contained in:
Smarshal21 2023-11-08 22:20:32 +05:30
parent 70e3ac3ec8
commit ed3117bc9f
2 changed files with 25 additions and 28 deletions

View File

@ -22,7 +22,6 @@ package com.nextcloud.talk.conversation
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Dialog import android.app.Dialog
import android.content.res.ColorStateList
import android.os.Bundle import android.os.Bundle
import android.text.Editable import android.text.Editable
import android.text.TextUtils import android.text.TextUtils
@ -32,13 +31,11 @@ import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import androidx.appcompat.app.AlertDialog import androidx.appcompat.app.AlertDialog
import androidx.core.content.res.ResourcesCompat
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import autodagger.AutoInjector import autodagger.AutoInjector
import com.google.android.material.dialog.MaterialAlertDialogBuilder import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar
import com.nextcloud.android.common.ui.theme.utils.ColorRole
import com.nextcloud.talk.R import com.nextcloud.talk.R
import com.nextcloud.talk.application.NextcloudTalkApplication import com.nextcloud.talk.application.NextcloudTalkApplication
import com.nextcloud.talk.conversation.viewmodel.RenameConversationViewModel import com.nextcloud.talk.conversation.viewmodel.RenameConversationViewModel
@ -46,7 +43,6 @@ import com.nextcloud.talk.conversationlist.ConversationsListActivity
import com.nextcloud.talk.databinding.DialogRenameConversationBinding import com.nextcloud.talk.databinding.DialogRenameConversationBinding
import com.nextcloud.talk.events.ConversationsListFetchDataEvent import com.nextcloud.talk.events.ConversationsListFetchDataEvent
import com.nextcloud.talk.ui.theme.ViewThemeUtils import com.nextcloud.talk.ui.theme.ViewThemeUtils
import com.vanniktech.emoji.EmojiPopup
import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.EventBus
import javax.inject.Inject import javax.inject.Inject
@ -64,8 +60,8 @@ class RenameConversationDialogFragment : DialogFragment() {
private lateinit var binding: DialogRenameConversationBinding private lateinit var binding: DialogRenameConversationBinding
private lateinit var viewModel: RenameConversationViewModel private lateinit var viewModel: RenameConversationViewModel
private var isEmojiPickerVisible = false
private var emojiPopup: EmojiPopup? = null
private var roomToken = "" private var roomToken = ""
private var initialName = "" private var initialName = ""
@ -106,7 +102,6 @@ class RenameConversationDialogFragment : DialogFragment() {
setupListeners() setupListeners()
setupStateObserver() setupStateObserver()
setupEmojiPopup()
} }
override fun onStart() { override fun onStart() {
@ -130,31 +125,20 @@ class RenameConversationDialogFragment : DialogFragment() {
} }
private fun setupEmojiPopup() { private fun setupEmojiPopup() {
emojiPopup = binding.let { if (!isEmojiPickerVisible) {
EmojiPopup( binding.emojiPicker.visibility = View.VISIBLE
rootView = requireView(), isEmojiPickerVisible = true
editText = it.textEdit, } else {
onEmojiPopupShownListener = { binding.emojiPicker.visibility = View.GONE
viewThemeUtils.platform.colorImageView(it.smileyButton, ColorRole.PRIMARY) isEmojiPickerVisible = false
}, }
onEmojiPopupDismissListener = { binding.emojiPicker.setOnEmojiPickedListener() {
it.smileyButton.imageTintList = ColorStateList.valueOf( binding.textEdit.editableText?.append(it.emoji)
ResourcesCompat.getColor(
resources,
R.color.medium_emphasis_text,
context?.theme
)
)
},
onEmojiClickListener = {
binding.textEdit.editableText?.append(" ")
}
)
} }
} }
private fun setupListeners() { private fun setupListeners() {
binding.smileyButton.setOnClickListener { emojiPopup?.toggle() } binding.smileyButton.setOnClickListener { setupEmojiPopup() }
binding.textEdit.addTextChangedListener(object : TextWatcher { binding.textEdit.addTextChangedListener(object : TextWatcher {
override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) { override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {
// unused atm // unused atm
@ -216,7 +200,12 @@ class RenameConversationDialogFragment : DialogFragment() {
Log.e(TAG, "Failed to rename conversation") Log.e(TAG, "Failed to rename conversation")
Snackbar.make(binding.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show() Snackbar.make(binding.root, R.string.nc_common_error_sorry, Snackbar.LENGTH_LONG).show()
} }
override fun onResume() {
super.onResume()
dialog?.window?.setLayout(
ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
)
}
/** /**
* Fragment creator * Fragment creator
*/ */

View File

@ -67,4 +67,12 @@
app:tint="@color/medium_emphasis_text" app:tint="@color/medium_emphasis_text"
tools:visibility="visible" /> tools:visibility="visible" />
<androidx.emoji2.emojipicker.EmojiPickerView
android:id="@+id/emoji_picker"
android:layout_width="match_parent"
android:layout_below="@id/text_input_layout"
android:visibility="gone"
android:layout_height="match_parent"
app:emojiGridColumns="9" />
</RelativeLayout> </RelativeLayout>