mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-20 12:09:45 +01:00
move variables from fragment to PollMainViewModel
Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
This commit is contained in:
parent
6dfed0e5e7
commit
139c4412ad
@ -27,6 +27,7 @@ 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.os.bundleOf
|
||||||
import androidx.fragment.app.DialogFragment
|
import androidx.fragment.app.DialogFragment
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import autodagger.AutoInjector
|
import autodagger.AutoInjector
|
||||||
@ -40,12 +41,6 @@ import javax.inject.Inject
|
|||||||
@AutoInjector(NextcloudTalkApplication::class)
|
@AutoInjector(NextcloudTalkApplication::class)
|
||||||
class PollMainDialogFragment : DialogFragment() {
|
class PollMainDialogFragment : DialogFragment() {
|
||||||
|
|
||||||
lateinit var user: User
|
|
||||||
lateinit var roomToken: String
|
|
||||||
private var isOwnerOrModerator: Boolean = false
|
|
||||||
lateinit var pollId: String
|
|
||||||
lateinit var pollTitle: String
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
lateinit var viewModelFactory: ViewModelProvider.Factory
|
lateinit var viewModelFactory: ViewModelProvider.Factory
|
||||||
|
|
||||||
@ -58,11 +53,13 @@ class PollMainDialogFragment : DialogFragment() {
|
|||||||
|
|
||||||
viewModel = ViewModelProvider(this, viewModelFactory)[PollMainViewModel::class.java]
|
viewModel = ViewModelProvider(this, viewModelFactory)[PollMainViewModel::class.java]
|
||||||
|
|
||||||
user = arguments?.getParcelable(KEY_USER_ENTITY)!!
|
val user: User = arguments?.getParcelable(KEY_USER_ENTITY)!!
|
||||||
roomToken = arguments?.getString(KEY_ROOM_TOKEN)!!
|
val roomToken = arguments?.getString(KEY_ROOM_TOKEN)!!
|
||||||
isOwnerOrModerator = arguments?.getBoolean(KEY_OWNER_OR_MODERATOR)!!
|
val isOwnerOrModerator = arguments?.getBoolean(KEY_OWNER_OR_MODERATOR)!!
|
||||||
pollId = arguments?.getString(KEY_POLL_ID)!!
|
val pollId = arguments?.getString(KEY_POLL_ID)!!
|
||||||
pollTitle = arguments?.getString(KEY_POLL_TITLE)!!
|
val pollTitle = arguments?.getString(KEY_POLL_TITLE)!!
|
||||||
|
|
||||||
|
viewModel.initialize(user, roomToken, isOwnerOrModerator, pollId, pollTitle)
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("InflateParams")
|
@SuppressLint("InflateParams")
|
||||||
@ -73,7 +70,7 @@ class PollMainDialogFragment : DialogFragment() {
|
|||||||
.setView(binding.root)
|
.setView(binding.root)
|
||||||
.create()
|
.create()
|
||||||
|
|
||||||
binding.messagePollTitle.text = pollTitle
|
binding.messagePollTitle.text = viewModel.pollTitle
|
||||||
|
|
||||||
return dialog
|
return dialog
|
||||||
}
|
}
|
||||||
@ -85,8 +82,6 @@ class PollMainDialogFragment : DialogFragment() {
|
|||||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||||
super.onViewCreated(view, savedInstanceState)
|
super.onViewCreated(view, savedInstanceState)
|
||||||
|
|
||||||
viewModel.setIsOwnerOrModerator(isOwnerOrModerator)
|
|
||||||
|
|
||||||
viewModel.viewState.observe(viewLifecycleOwner) { state ->
|
viewModel.viewState.observe(viewLifecycleOwner) { state ->
|
||||||
when (state) {
|
when (state) {
|
||||||
PollMainViewModel.InitialState -> {}
|
PollMainViewModel.InitialState -> {}
|
||||||
@ -108,14 +103,12 @@ class PollMainDialogFragment : DialogFragment() {
|
|||||||
else -> {}
|
else -> {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
viewModel.initialize(roomToken, pollId)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun showVoteScreen() {
|
private fun showVoteScreen() {
|
||||||
val contentFragment = PollVoteFragment.newInstance(
|
val contentFragment = PollVoteFragment.newInstance(
|
||||||
roomToken,
|
viewModel.roomToken,
|
||||||
pollId
|
viewModel.pollId
|
||||||
)
|
)
|
||||||
|
|
||||||
val transaction = childFragmentManager.beginTransaction()
|
val transaction = childFragmentManager.beginTransaction()
|
||||||
@ -125,7 +118,7 @@ class PollMainDialogFragment : DialogFragment() {
|
|||||||
|
|
||||||
private fun showResultsScreen() {
|
private fun showResultsScreen() {
|
||||||
val contentFragment = PollResultsFragment.newInstance(
|
val contentFragment = PollResultsFragment.newInstance(
|
||||||
user
|
viewModel.user
|
||||||
)
|
)
|
||||||
|
|
||||||
val transaction = childFragmentManager.beginTransaction()
|
val transaction = childFragmentManager.beginTransaction()
|
||||||
@ -171,12 +164,15 @@ class PollMainDialogFragment : DialogFragment() {
|
|||||||
pollId: String,
|
pollId: String,
|
||||||
name: String
|
name: String
|
||||||
): PollMainDialogFragment {
|
): PollMainDialogFragment {
|
||||||
val args = Bundle()
|
|
||||||
args.putParcelable(KEY_USER_ENTITY, user)
|
val args = bundleOf(
|
||||||
args.putString(KEY_ROOM_TOKEN, roomTokenParam)
|
KEY_USER_ENTITY to user,
|
||||||
args.putBoolean(KEY_OWNER_OR_MODERATOR, isOwnerOrModerator)
|
KEY_ROOM_TOKEN to roomTokenParam,
|
||||||
args.putString(KEY_POLL_ID, pollId)
|
KEY_OWNER_OR_MODERATOR to isOwnerOrModerator,
|
||||||
args.putString(KEY_POLL_TITLE, name)
|
KEY_POLL_ID to pollId,
|
||||||
|
KEY_POLL_TITLE to name
|
||||||
|
)
|
||||||
|
|
||||||
val fragment = PollMainDialogFragment()
|
val fragment = PollMainDialogFragment()
|
||||||
fragment.arguments = args
|
fragment.arguments = args
|
||||||
return fragment
|
return fragment
|
||||||
|
@ -24,6 +24,7 @@ import android.util.Log
|
|||||||
import androidx.lifecycle.LiveData
|
import androidx.lifecycle.LiveData
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
|
import com.nextcloud.talk.data.user.model.User
|
||||||
import com.nextcloud.talk.polls.model.Poll
|
import com.nextcloud.talk.polls.model.Poll
|
||||||
import com.nextcloud.talk.polls.repositories.PollRepository
|
import com.nextcloud.talk.polls.repositories.PollRepository
|
||||||
import com.nextcloud.talk.utils.database.user.UserUtils
|
import com.nextcloud.talk.utils.database.user.UserUtils
|
||||||
@ -49,10 +50,11 @@ class PollMainViewModel @Inject constructor(private val repository: PollReposito
|
|||||||
@Inject
|
@Inject
|
||||||
lateinit var userUtils: UserUtils
|
lateinit var userUtils: UserUtils
|
||||||
|
|
||||||
private lateinit var roomToken: String
|
lateinit var user: User
|
||||||
private lateinit var pollId: String
|
lateinit var roomToken: String
|
||||||
|
|
||||||
private var isOwnerOrModerator: Boolean = false
|
private var isOwnerOrModerator: Boolean = false
|
||||||
|
lateinit var pollId: String
|
||||||
|
lateinit var pollTitle: String
|
||||||
|
|
||||||
private var editVotes: Boolean = false
|
private var editVotes: Boolean = false
|
||||||
|
|
||||||
@ -84,9 +86,12 @@ class PollMainViewModel @Inject constructor(private val repository: PollReposito
|
|||||||
|
|
||||||
private var disposable: Disposable? = null
|
private var disposable: Disposable? = null
|
||||||
|
|
||||||
fun initialize(roomToken: String, pollId: String) {
|
fun initialize(user: User, roomToken: String, isOwnerOrModerator: Boolean, pollId: String, pollTitle: String) {
|
||||||
|
this.user = user
|
||||||
this.roomToken = roomToken
|
this.roomToken = roomToken
|
||||||
|
this.isOwnerOrModerator = isOwnerOrModerator
|
||||||
this.pollId = pollId
|
this.pollId = pollId
|
||||||
|
this.pollTitle = pollTitle
|
||||||
|
|
||||||
loadPoll()
|
loadPoll()
|
||||||
}
|
}
|
||||||
@ -106,7 +111,7 @@ class PollMainViewModel @Inject constructor(private val repository: PollReposito
|
|||||||
|
|
||||||
private fun loadPoll() {
|
private fun loadPoll() {
|
||||||
repository.getPoll(roomToken, pollId)
|
repository.getPoll(roomToken, pollId)
|
||||||
?.doOnSubscribe { disposable = it }
|
.doOnSubscribe { disposable = it }
|
||||||
?.subscribeOn(Schedulers.io())
|
?.subscribeOn(Schedulers.io())
|
||||||
?.observeOn(AndroidSchedulers.mainThread())
|
?.observeOn(AndroidSchedulers.mainThread())
|
||||||
?.subscribe(PollObserver())
|
?.subscribe(PollObserver())
|
||||||
@ -114,7 +119,7 @@ class PollMainViewModel @Inject constructor(private val repository: PollReposito
|
|||||||
|
|
||||||
fun closePoll() {
|
fun closePoll() {
|
||||||
repository.closePoll(roomToken, pollId)
|
repository.closePoll(roomToken, pollId)
|
||||||
?.doOnSubscribe { disposable = it }
|
.doOnSubscribe { disposable = it }
|
||||||
?.subscribeOn(Schedulers.io())
|
?.subscribeOn(Schedulers.io())
|
||||||
?.observeOn(AndroidSchedulers.mainThread())
|
?.observeOn(AndroidSchedulers.mainThread())
|
||||||
?.subscribe(PollObserver())
|
?.subscribe(PollObserver())
|
||||||
|
Loading…
Reference in New Issue
Block a user