mirror of
				https://github.com/commons-app/apps-android-commons.git
				synced 2025-10-31 14:53:59 +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
	
	 Paul Hawke
						Paul Hawke