diff --git a/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java b/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java index 1d19b883..1e6855e8 100644 --- a/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java +++ b/app/src/main/java/awais/instagrabber/fragments/main/ProfileFragment.java @@ -346,6 +346,7 @@ public class ProfileFragment extends Fragment implements SwipeRefreshLayout.OnRe appStateViewModel = new ViewModelProvider(fragmentActivity).get(AppStateViewModel.class); viewModel = new ViewModelProvider(this, new ProfileFragmentViewModelFactory( UserRepository.Companion.getInstance(), + FriendshipRepository.Companion.getInstance(), this, getArguments() )).get(ProfileFragmentViewModel.class); diff --git a/app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt b/app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt index 904c5240..bb468653 100644 --- a/app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt +++ b/app/src/main/java/awais/instagrabber/viewmodels/ProfileFragmentViewModel.kt @@ -6,11 +6,13 @@ import androidx.lifecycle.* import androidx.savedstate.SavedStateRegistryOwner import awais.instagrabber.repositories.responses.User import awais.instagrabber.utils.extensions.TAG +import awais.instagrabber.webservices.FriendshipRepository import awais.instagrabber.webservices.UserRepository class ProfileFragmentViewModel( state: SavedStateHandle, userRepository: UserRepository, + friendshipRepository: FriendshipRepository, ) : ViewModel() { private val _profile = MutableLiveData() val profile: LiveData = _profile @@ -22,13 +24,14 @@ class ProfileFragmentViewModel( private set init { - Log.d(TAG, "${state.keys()} $userRepository") + Log.d(TAG, "${state.keys()} $userRepository $friendshipRepository") } } @Suppress("UNCHECKED_CAST") class ProfileFragmentViewModelFactory( private val userRepository: UserRepository, + private val friendshipRepository: FriendshipRepository, owner: SavedStateRegistryOwner, defaultArgs: Bundle? = null, ) : AbstractSavedStateViewModelFactory(owner, defaultArgs) { @@ -37,6 +40,6 @@ class ProfileFragmentViewModelFactory( modelClass: Class, handle: SavedStateHandle, ): T { - return ProfileFragmentViewModel(handle, userRepository) as T + return ProfileFragmentViewModel(handle, userRepository, friendshipRepository) as T } } diff --git a/app/src/test/java/awais/instagrabber/viewmodels/ProfileFragmentViewModelTest.kt b/app/src/test/java/awais/instagrabber/viewmodels/ProfileFragmentViewModelTest.kt index 5aaaaec6..c116dea1 100644 --- a/app/src/test/java/awais/instagrabber/viewmodels/ProfileFragmentViewModelTest.kt +++ b/app/src/test/java/awais/instagrabber/viewmodels/ProfileFragmentViewModelTest.kt @@ -2,17 +2,17 @@ package awais.instagrabber.viewmodels import androidx.lifecycle.SavedStateHandle import androidx.test.ext.junit.runners.AndroidJUnit4 +import awais.instagrabber.repositories.FriendshipService import awais.instagrabber.repositories.UserService -import awais.instagrabber.repositories.responses.FriendshipStatus -import awais.instagrabber.repositories.responses.UserSearchResponse -import awais.instagrabber.repositories.responses.WrappedUser +import awais.instagrabber.repositories.responses.* +import awais.instagrabber.webservices.FriendshipRepository import awais.instagrabber.webservices.UserRepository import org.junit.Test import org.junit.runner.RunWith @RunWith(AndroidJUnit4::class) internal class ProfileFragmentViewModelTest { - private val userService = object: UserService { + private val userService = object : UserService { override suspend fun getUserInfo(uid: Long): WrappedUser { TODO("Not yet implemented") } @@ -30,12 +30,33 @@ internal class ProfileFragmentViewModelTest { } } + private val friendshipService = object : FriendshipService { + override suspend fun change(action: String, id: Long, form: Map): FriendshipChangeResponse { + TODO("Not yet implemented") + } + + override suspend fun toggleRestrict(action: String, form: Map): FriendshipRestrictResponse { + TODO("Not yet implemented") + } + + override suspend fun getList(userId: Long, type: String, queryParams: Map): String { + TODO("Not yet implemented") + } + + override suspend fun changeMute(action: String, form: Map): FriendshipChangeResponse { + TODO("Not yet implemented") + } + } + @Test fun testNoUsernameNoCurrentUser() { - val state = SavedStateHandle(mutableMapOf( - "username" to "" - )) + val state = SavedStateHandle( + mutableMapOf( + "username" to "" + ) + ) val userRepository = UserRepository(userService) - val viewModel = ProfileFragmentViewModel(state, userRepository) + val friendshipRepository = FriendshipRepository(friendshipService) + val viewModel = ProfileFragmentViewModel(state, userRepository, friendshipRepository) } } \ No newline at end of file