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