mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-29 13:53:54 +01:00
Convert ViewModelFactory to kotlin
This commit is contained in:
parent
dac3657536
commit
4ddb36ac63
2 changed files with 26 additions and 41 deletions
|
|
@ -1,41 +0,0 @@
|
|||
package fr.free.nrw.commons.profile.leaderboard;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
import fr.free.nrw.commons.auth.SessionManager;
|
||||
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient;
|
||||
import javax.inject.Inject;
|
||||
|
||||
/**
|
||||
* This class extends the ViewModelProvider.Factory and creates a ViewModelFactory class
|
||||
* for leaderboardListViewModel
|
||||
*/
|
||||
public class ViewModelFactory implements ViewModelProvider.Factory {
|
||||
|
||||
private OkHttpJsonApiClient okHttpJsonApiClient;
|
||||
private SessionManager sessionManager;
|
||||
|
||||
|
||||
@Inject
|
||||
public ViewModelFactory(OkHttpJsonApiClient okHttpJsonApiClient, SessionManager sessionManager) {
|
||||
this.okHttpJsonApiClient = okHttpJsonApiClient;
|
||||
this.sessionManager = sessionManager;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creats a new LeaderboardListViewModel
|
||||
* @param modelClass
|
||||
* @param <T>
|
||||
* @return
|
||||
*/
|
||||
@NonNull
|
||||
@Override
|
||||
public <T extends ViewModel> T create(@NonNull Class<T> modelClass) {
|
||||
if (modelClass.isAssignableFrom(LeaderboardListViewModel.class)) {
|
||||
return (T) new LeaderboardListViewModel(okHttpJsonApiClient, sessionManager);
|
||||
}
|
||||
throw new IllegalArgumentException("Unknown class name");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
package fr.free.nrw.commons.profile.leaderboard
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import fr.free.nrw.commons.auth.SessionManager
|
||||
import fr.free.nrw.commons.mwapi.OkHttpJsonApiClient
|
||||
import javax.inject.Inject
|
||||
|
||||
|
||||
/**
|
||||
* This class extends the ViewModelProvider.Factory and creates a ViewModelFactory class
|
||||
* for leaderboardListViewModel
|
||||
*/
|
||||
class ViewModelFactory @Inject constructor(
|
||||
private val okHttpJsonApiClient: OkHttpJsonApiClient,
|
||||
private val sessionManager: SessionManager
|
||||
) : ViewModelProvider.Factory {
|
||||
|
||||
@Suppress("UNCHECKED_CAST")
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T =
|
||||
if (modelClass.isAssignableFrom(LeaderboardListViewModel::class.java)) {
|
||||
LeaderboardListViewModel(okHttpJsonApiClient, sessionManager) as T
|
||||
} else {
|
||||
throw IllegalArgumentException("Unknown class name")
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue