Skip to content
Snippets Groups Projects
Commit 3568e485 authored by Taras's avatar Taras
Browse files

Refactor packeges structure

parent 9296b8e7
No related branches found
No related tags found
No related merge requests found
Showing
with 69 additions and 72 deletions
...@@ -8,9 +8,6 @@ import androidx.fragment.app.Fragment ...@@ -8,9 +8,6 @@ import androidx.fragment.app.Fragment
import com.futo.circles.R import com.futo.circles.R
import com.futo.circles.extensions.getContentUriForFileUri import com.futo.circles.extensions.getContentUriForFileUri
import com.futo.circles.extensions.showError import com.futo.circles.extensions.showError
import com.futo.circles.pick_image.PickImageDialog
import com.futo.circles.pick_image.PickImageDialogListener
import com.futo.circles.pick_image.PickImageMethod
import com.github.dhaval2404.imagepicker.ImagePicker import com.github.dhaval2404.imagepicker.ImagePicker
class ImagePickerHelper(private val fragment: Fragment) : PickImageDialogListener { class ImagePickerHelper(private val fragment: Fragment) : PickImageDialogListener {
......
package com.futo.circles.pick_image package com.futo.circles.core
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
......
...@@ -5,25 +5,25 @@ import com.futo.circles.core.matrix.pass_phrase.restore.RestorePassPhraseDataSou ...@@ -5,25 +5,25 @@ import com.futo.circles.core.matrix.pass_phrase.restore.RestorePassPhraseDataSou
import com.futo.circles.core.matrix.room.CoreSpacesTreeBuilder import com.futo.circles.core.matrix.room.CoreSpacesTreeBuilder
import com.futo.circles.core.matrix.room.CreateRoomDataSource import com.futo.circles.core.matrix.room.CreateRoomDataSource
import com.futo.circles.core.matrix.room.RoomRelationsBuilder import com.futo.circles.core.matrix.room.RoomRelationsBuilder
import com.futo.circles.feature.emoji.data_source.EmojiDataSource import com.futo.circles.feature.timeline.post.emoji.data_source.EmojiDataSource
import com.futo.circles.feature.following.data_source.FollowingDataSource import com.futo.circles.feature.circles.following.data_source.FollowingDataSource
import com.futo.circles.feature.group_invite.data_source.InviteMembersDataSource import com.futo.circles.feature.room.invite.data_source.InviteMembersDataSource
import com.futo.circles.feature.group_members.change_role.data_source.ChangeAccessLevelDataSource import com.futo.circles.feature.room.manage_members.change_role.data_source.ChangeAccessLevelDataSource
import com.futo.circles.feature.group_members.data_source.ManageGroupMembersDataSource import com.futo.circles.feature.room.manage_members.data_source.ManageMembersDataSource
import com.futo.circles.feature.home.data_source.HomeDataSource import com.futo.circles.feature.home.data_source.HomeDataSource
import com.futo.circles.feature.log_in.data_source.LoginDataSource import com.futo.circles.feature.log_in.data_source.LoginDataSource
import com.futo.circles.feature.report.data_source.ReportDataSource import com.futo.circles.feature.timeline.post.report.data_source.ReportDataSource
import com.futo.circles.feature.select_users.data_source.SelectUsersDataSource import com.futo.circles.feature.room.select_users.data_source.SelectUsersDataSource
import com.futo.circles.feature.setup_circles.data_source.SetupCirclesDataSource import com.futo.circles.feature.sign_up.setup_circles.data_source.SetupCirclesDataSource
import com.futo.circles.feature.setup_profile.data_source.SetupProfileDataSource import com.futo.circles.feature.sign_up.setup_profile.data_source.SetupProfileDataSource
import com.futo.circles.feature.sign_up.data_source.SignUpDataSource import com.futo.circles.feature.sign_up.data_source.SignUpDataSource
import com.futo.circles.feature.sign_up_type.data_source.SelectSignUpTypeDataSource import com.futo.circles.feature.sign_up.sign_up_type.data_source.SelectSignUpTypeDataSource
import com.futo.circles.feature.terms.data_source.AcceptTermsDataSource import com.futo.circles.feature.sign_up.terms.data_source.AcceptTermsDataSource
import com.futo.circles.feature.timeline.data_source.TimelineBuilder import com.futo.circles.feature.timeline.data_source.TimelineBuilder
import com.futo.circles.feature.timeline.data_source.TimelineDataSource import com.futo.circles.feature.timeline.data_source.TimelineDataSource
import com.futo.circles.feature.update_room.data_source.UpdateRoomDataSource import com.futo.circles.feature.room.update_room.data_source.UpdateRoomDataSource
import com.futo.circles.feature.validate_email.data_source.ValidateEmailDataSource import com.futo.circles.feature.sign_up.validate_email.data_source.ValidateEmailDataSource
import com.futo.circles.feature.validate_token.data_source.ValidateTokenDataSource import com.futo.circles.feature.sign_up.validate_token.data_source.ValidateTokenDataSource
import com.futo.circles.model.CircleRoomTypeArg import com.futo.circles.model.CircleRoomTypeArg
import org.koin.dsl.module import org.koin.dsl.module
...@@ -36,7 +36,7 @@ val dataSourceModule = module { ...@@ -36,7 +36,7 @@ val dataSourceModule = module {
factory { (roomId: String) -> InviteMembersDataSource(roomId, get()) } factory { (roomId: String) -> InviteMembersDataSource(roomId, get()) }
factory { (roomId: String?) -> SelectUsersDataSource(roomId) } factory { (roomId: String?) -> SelectUsersDataSource(roomId) }
factory { (roomId: String, type: CircleRoomTypeArg) -> factory { (roomId: String, type: CircleRoomTypeArg) ->
ManageGroupMembersDataSource(roomId, type, get()) ManageMembersDataSource(roomId, type, get())
} }
factory { CreateRoomDataSource(get(), get()) } factory { CreateRoomDataSource(get(), get()) }
factory { RoomRelationsBuilder() } factory { RoomRelationsBuilder() }
......
package com.futo.circles.di package com.futo.circles.di
import com.futo.circles.feature.circles.CirclesViewModel import com.futo.circles.feature.circles.CirclesViewModel
import com.futo.circles.feature.create_room.CreateRoomViewModel import com.futo.circles.feature.room.create_room.CreateRoomViewModel
import com.futo.circles.feature.emoji.EmojiViewModel import com.futo.circles.feature.timeline.post.emoji.EmojiViewModel
import com.futo.circles.feature.following.FollowingViewModel import com.futo.circles.feature.circles.following.FollowingViewModel
import com.futo.circles.feature.group_invite.InviteMembersViewModel import com.futo.circles.feature.room.invite.InviteMembersViewModel
import com.futo.circles.feature.group_members.ManageGroupMembersViewModel import com.futo.circles.feature.room.manage_members.ManageMembersViewModel
import com.futo.circles.feature.group_members.change_role.ChangeAccessLevelViewModel import com.futo.circles.feature.room.manage_members.change_role.ChangeAccessLevelViewModel
import com.futo.circles.feature.groups.GroupsViewModel import com.futo.circles.feature.groups.GroupsViewModel
import com.futo.circles.feature.home.HomeViewModel import com.futo.circles.feature.home.HomeViewModel
import com.futo.circles.feature.log_in.LogInViewModel import com.futo.circles.feature.log_in.LogInViewModel
import com.futo.circles.feature.post.CreatePostViewModel import com.futo.circles.feature.timeline.post.CreatePostViewModel
import com.futo.circles.feature.report.ReportViewModel import com.futo.circles.feature.timeline.post.report.ReportViewModel
import com.futo.circles.feature.select_users.SelectUsersViewModel import com.futo.circles.feature.room.select_users.SelectUsersViewModel
import com.futo.circles.feature.setup_circles.SetupCirclesViewModel import com.futo.circles.feature.sign_up.setup_circles.SetupCirclesViewModel
import com.futo.circles.feature.setup_profile.SetupProfileViewModel import com.futo.circles.feature.sign_up.setup_profile.SetupProfileViewModel
import com.futo.circles.feature.sign_up.SignUpViewModel import com.futo.circles.feature.sign_up.SignUpViewModel
import com.futo.circles.feature.sign_up_type.SelectSignUpTypeViewModel import com.futo.circles.feature.sign_up.sign_up_type.SelectSignUpTypeViewModel
import com.futo.circles.feature.terms.AcceptTermsViewModel import com.futo.circles.feature.sign_up.terms.AcceptTermsViewModel
import com.futo.circles.feature.timeline.TimelineViewModel import com.futo.circles.feature.timeline.TimelineViewModel
import com.futo.circles.feature.update_room.UpdateRoomViewModel import com.futo.circles.feature.room.update_room.UpdateRoomViewModel
import com.futo.circles.feature.validate_email.ValidateEmailViewModel import com.futo.circles.feature.sign_up.validate_email.ValidateEmailViewModel
import com.futo.circles.feature.validate_token.ValidateTokenViewModel import com.futo.circles.feature.sign_up.validate_token.ValidateTokenViewModel
import com.futo.circles.model.CircleRoomTypeArg import com.futo.circles.model.CircleRoomTypeArg
import org.koin.androidx.viewmodel.dsl.viewModel import org.koin.androidx.viewmodel.dsl.viewModel
import org.koin.core.parameter.parametersOf import org.koin.core.parameter.parametersOf
...@@ -35,7 +35,7 @@ val uiModule = module { ...@@ -35,7 +35,7 @@ val uiModule = module {
} }
viewModel { (roomId: String) -> InviteMembersViewModel(get { parametersOf(roomId) }) } viewModel { (roomId: String) -> InviteMembersViewModel(get { parametersOf(roomId) }) }
viewModel { (roomId: String, type: CircleRoomTypeArg) -> viewModel { (roomId: String, type: CircleRoomTypeArg) ->
ManageGroupMembersViewModel(get { parametersOf(roomId, type) }) ManageMembersViewModel(get { parametersOf(roomId, type) })
} }
viewModel { (roomId: String?) -> SelectUsersViewModel(get { parametersOf(roomId) }) } viewModel { (roomId: String?) -> SelectUsersViewModel(get { parametersOf(roomId) }) }
viewModel { CreateRoomViewModel(get()) } viewModel { CreateRoomViewModel(get()) }
......
package com.futo.circles.feature.following package com.futo.circles.feature.circles.following
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
...@@ -8,7 +8,7 @@ import com.futo.circles.core.fragment.BaseFullscreenDialogFragment ...@@ -8,7 +8,7 @@ import com.futo.circles.core.fragment.BaseFullscreenDialogFragment
import com.futo.circles.databinding.FollowingDialogFragmentBinding import com.futo.circles.databinding.FollowingDialogFragmentBinding
import com.futo.circles.extensions.observeData import com.futo.circles.extensions.observeData
import com.futo.circles.extensions.observeResponse import com.futo.circles.extensions.observeResponse
import com.futo.circles.feature.following.list.FollowingAdapter import com.futo.circles.feature.circles.following.list.FollowingAdapter
import com.futo.circles.model.FollowingListItem import com.futo.circles.model.FollowingListItem
import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.androidx.viewmodel.ext.android.viewModel
import org.koin.core.parameter.parametersOf import org.koin.core.parameter.parametersOf
......
package com.futo.circles.feature.following package com.futo.circles.feature.circles.following
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import com.futo.circles.core.SingleEventLiveData import com.futo.circles.core.SingleEventLiveData
import com.futo.circles.extensions.Response import com.futo.circles.extensions.Response
import com.futo.circles.extensions.launchBg import com.futo.circles.extensions.launchBg
import com.futo.circles.feature.following.data_source.FollowingDataSource import com.futo.circles.feature.circles.following.data_source.FollowingDataSource
class FollowingViewModel( class FollowingViewModel(
private val dataSource: FollowingDataSource private val dataSource: FollowingDataSource
......
package com.futo.circles.feature.following package com.futo.circles.feature.circles.following
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
......
package com.futo.circles.feature.following.data_source package com.futo.circles.feature.circles.following.data_source
import android.content.Context import android.content.Context
import androidx.lifecycle.map import androidx.lifecycle.map
......
package com.futo.circles.feature.following.list package com.futo.circles.feature.circles.following.list
import android.view.ViewGroup import android.view.ViewGroup
import com.futo.circles.core.list.BaseRvAdapter import com.futo.circles.core.list.BaseRvAdapter
......
package com.futo.circles.feature.following.list package com.futo.circles.feature.circles.following.list
import android.text.format.DateUtils import android.text.format.DateUtils
import android.view.ViewGroup import android.view.ViewGroup
......
package com.futo.circles.feature.create_room package com.futo.circles.feature.room.create_room
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
...@@ -15,7 +15,7 @@ import com.futo.circles.extensions.observeData ...@@ -15,7 +15,7 @@ import com.futo.circles.extensions.observeData
import com.futo.circles.extensions.observeResponse import com.futo.circles.extensions.observeResponse
import com.futo.circles.extensions.setIsVisible import com.futo.circles.extensions.setIsVisible
import com.futo.circles.extensions.showSuccess import com.futo.circles.extensions.showSuccess
import com.futo.circles.feature.select_users.SelectUsersFragment import com.futo.circles.feature.room.select_users.SelectUsersFragment
import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.androidx.viewmodel.ext.android.viewModel
class CreateRoomDialogFragment : class CreateRoomDialogFragment :
......
package com.futo.circles.feature.create_room package com.futo.circles.feature.room.create_room
import android.net.Uri import android.net.Uri
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
......
package com.futo.circles.feature.group_invite package com.futo.circles.feature.room.invite
import android.os.Bundle import android.os.Bundle
import android.view.View import android.view.View
...@@ -11,8 +11,8 @@ import com.futo.circles.databinding.InviteMembersDialogFragmentBinding ...@@ -11,8 +11,8 @@ import com.futo.circles.databinding.InviteMembersDialogFragmentBinding
import com.futo.circles.extensions.observeData import com.futo.circles.extensions.observeData
import com.futo.circles.extensions.observeResponse import com.futo.circles.extensions.observeResponse
import com.futo.circles.extensions.showSuccess import com.futo.circles.extensions.showSuccess
import com.futo.circles.feature.select_users.SelectUsersFragment import com.futo.circles.feature.room.select_users.SelectUsersFragment
import com.futo.circles.feature.select_users.SelectUsersListener import com.futo.circles.feature.room.select_users.SelectUsersListener
import com.futo.circles.model.UserListItem import com.futo.circles.model.UserListItem
import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.androidx.viewmodel.ext.android.viewModel
import org.koin.core.parameter.parametersOf import org.koin.core.parameter.parametersOf
......
package com.futo.circles.feature.group_invite package com.futo.circles.feature.room.invite
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import com.futo.circles.core.SingleEventLiveData import com.futo.circles.core.SingleEventLiveData
import com.futo.circles.extensions.Response import com.futo.circles.extensions.Response
import com.futo.circles.extensions.launchBg import com.futo.circles.extensions.launchBg
import com.futo.circles.feature.group_invite.data_source.InviteMembersDataSource import com.futo.circles.feature.room.invite.data_source.InviteMembersDataSource
import com.futo.circles.model.UserListItem import com.futo.circles.model.UserListItem
class InviteMembersViewModel( class InviteMembersViewModel(
......
package com.futo.circles.feature.group_invite.data_source package com.futo.circles.feature.room.invite.data_source
import android.content.Context import android.content.Context
import com.futo.circles.R import com.futo.circles.R
......
package com.futo.circles.feature.group_members package com.futo.circles.feature.room.manage_members
import android.os.Bundle import android.os.Bundle
...@@ -8,22 +8,22 @@ import androidx.navigation.fragment.navArgs ...@@ -8,22 +8,22 @@ import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import com.futo.circles.R import com.futo.circles.R
import com.futo.circles.core.fragment.BaseFullscreenDialogFragment import com.futo.circles.core.fragment.BaseFullscreenDialogFragment
import com.futo.circles.databinding.ManageGroupMembersDialogFragmentBinding import com.futo.circles.databinding.ManageMembersDialogFragmentBinding
import com.futo.circles.extensions.* import com.futo.circles.extensions.*
import com.futo.circles.feature.group_members.change_role.ChangeAccessLevelListener import com.futo.circles.feature.room.manage_members.change_role.ChangeAccessLevelListener
import com.futo.circles.feature.group_members.list.GroupMembersListAdapter import com.futo.circles.feature.room.manage_members.list.GroupMembersListAdapter
import com.futo.circles.view.ManageMembersOptionsListener import com.futo.circles.view.ManageMembersOptionsListener
import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.androidx.viewmodel.ext.android.viewModel
import org.koin.core.parameter.parametersOf import org.koin.core.parameter.parametersOf
import org.matrix.android.sdk.api.session.room.model.PowerLevelsContent import org.matrix.android.sdk.api.session.room.model.PowerLevelsContent
class ManageGroupMembersDialogFragment : class ManageMembersDialogFragment :
BaseFullscreenDialogFragment(ManageGroupMembersDialogFragmentBinding::inflate), BaseFullscreenDialogFragment(ManageMembersDialogFragmentBinding::inflate),
ManageMembersOptionsListener, ChangeAccessLevelListener { ManageMembersOptionsListener, ChangeAccessLevelListener {
private val args: ManageGroupMembersDialogFragmentArgs by navArgs() private val args: ManageMembersDialogFragmentArgs by navArgs()
private val viewModel by viewModel<ManageGroupMembersViewModel> { private val viewModel by viewModel<ManageMembersViewModel> {
parametersOf(args.roomId, args.type) parametersOf(args.roomId, args.type)
} }
...@@ -36,7 +36,7 @@ class ManageGroupMembersDialogFragment : ...@@ -36,7 +36,7 @@ class ManageGroupMembersDialogFragment :
} }
private val binding by lazy { private val binding by lazy {
getBinding() as ManageGroupMembersDialogFragmentBinding getBinding() as ManageMembersDialogFragmentBinding
} }
...@@ -78,7 +78,7 @@ class ManageGroupMembersDialogFragment : ...@@ -78,7 +78,7 @@ class ManageGroupMembersDialogFragment :
override fun onSetAccessLevel(userId: String, powerLevelsContent: PowerLevelsContent) { override fun onSetAccessLevel(userId: String, powerLevelsContent: PowerLevelsContent) {
findNavController() findNavController()
.navigate( .navigate(
ManageGroupMembersDialogFragmentDirections.toChangeAccessLevelBottomSheet( ManageMembersDialogFragmentDirections.toChangeAccessLevelBottomSheet(
userId = userId, userId = userId,
levelValue = powerLevelsContent.getUserPowerLevel(userId), levelValue = powerLevelsContent.getUserPowerLevel(userId),
myUserLevelValue = powerLevelsContent.getCurrentUserPowerLevel() myUserLevelValue = powerLevelsContent.getCurrentUserPowerLevel()
......
package com.futo.circles.feature.group_members package com.futo.circles.feature.room.manage_members
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
...@@ -6,10 +6,10 @@ import androidx.lifecycle.asLiveData ...@@ -6,10 +6,10 @@ import androidx.lifecycle.asLiveData
import com.futo.circles.core.SingleEventLiveData import com.futo.circles.core.SingleEventLiveData
import com.futo.circles.extensions.Response import com.futo.circles.extensions.Response
import com.futo.circles.extensions.launchBg import com.futo.circles.extensions.launchBg
import com.futo.circles.feature.group_members.data_source.ManageGroupMembersDataSource import com.futo.circles.feature.room.manage_members.data_source.ManageMembersDataSource
class ManageGroupMembersViewModel( class ManageMembersViewModel(
private val dataSource: ManageGroupMembersDataSource private val dataSource: ManageMembersDataSource
) : ViewModel() { ) : ViewModel() {
val titleLiveData = MutableLiveData(dataSource.getManageMembersTittle()) val titleLiveData = MutableLiveData(dataSource.getManageMembersTittle())
......
package com.futo.circles.feature.group_members.change_role package com.futo.circles.feature.room.manage_members.change_role
import android.content.Context import android.content.Context
import android.os.Bundle import android.os.Bundle
...@@ -10,7 +10,7 @@ import androidx.navigation.fragment.navArgs ...@@ -10,7 +10,7 @@ import androidx.navigation.fragment.navArgs
import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.DividerItemDecoration
import com.futo.circles.databinding.ChangeAccessLevelBottomSheetBinding import com.futo.circles.databinding.ChangeAccessLevelBottomSheetBinding
import com.futo.circles.extensions.observeData import com.futo.circles.extensions.observeData
import com.futo.circles.feature.group_members.change_role.list.ChangeAccessLevelAdapter import com.futo.circles.feature.room.manage_members.change_role.list.ChangeAccessLevelAdapter
import com.futo.circles.model.AccessLevelListItem import com.futo.circles.model.AccessLevelListItem
import com.google.android.material.bottomsheet.BottomSheetDialogFragment import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import org.koin.androidx.viewmodel.ext.android.viewModel import org.koin.androidx.viewmodel.ext.android.viewModel
......
package com.futo.circles.feature.group_members.change_role package com.futo.circles.feature.room.manage_members.change_role
interface ChangeAccessLevelListener { interface ChangeAccessLevelListener {
fun onChangeAccessLevel(userId: String, levelValue: Int) fun onChangeAccessLevel(userId: String, levelValue: Int)
......
package com.futo.circles.feature.group_members.change_role package com.futo.circles.feature.room.manage_members.change_role
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import com.futo.circles.feature.group_members.change_role.data_source.ChangeAccessLevelDataSource import com.futo.circles.feature.room.manage_members.change_role.data_source.ChangeAccessLevelDataSource
class ChangeAccessLevelViewModel( class ChangeAccessLevelViewModel(
private val dataSource: ChangeAccessLevelDataSource private val dataSource: ChangeAccessLevelDataSource
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment