mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-11-02 15:53:55 +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