fix crash in EditProfileViewModel
This commit is contained in:
		
					parent
					
						
							
								1f75ef7b2b
							
						
					
				
			
			
				commit
				
					
						1d28f4728f
					
				
			
		
					 1 changed files with 11 additions and 6 deletions
				
			
		|  | @ -35,6 +35,7 @@ import io.reactivex.schedulers.Schedulers | |||
| import okhttp3.MediaType | ||||
| import okhttp3.MultipartBody | ||||
| import okhttp3.RequestBody | ||||
| import org.json.JSONException | ||||
| import org.json.JSONObject | ||||
| import retrofit2.Call | ||||
| import retrofit2.Callback | ||||
|  | @ -51,9 +52,9 @@ private const val AVATAR_FILE_NAME = "avatar.png" | |||
| private const val TAG = "EditProfileViewModel" | ||||
| 
 | ||||
| class EditProfileViewModel  @Inject constructor( | ||||
|             private val mastodonApi: MastodonApi, | ||||
|             private val eventHub: EventHub | ||||
|     ): ViewModel() { | ||||
|         private val mastodonApi: MastodonApi, | ||||
|         private val eventHub: EventHub | ||||
| ): ViewModel() { | ||||
| 
 | ||||
|     val profileData = MutableLiveData<Resource<Account>>() | ||||
|     val avatarData = MutableLiveData<Resource<Bitmap>>() | ||||
|  | @ -70,7 +71,7 @@ class EditProfileViewModel  @Inject constructor( | |||
|             profileData.postValue(Loading()) | ||||
| 
 | ||||
|             val call = mastodonApi.accountVerifyCredentials() | ||||
|                     call.enqueue(object : Callback<Account> { | ||||
|             call.enqueue(object : Callback<Account> { | ||||
|                 override fun onResponse(call: Call<Account>, | ||||
|                                         response: Response<Account>) { | ||||
|                     if (response.isSuccessful) { | ||||
|  | @ -185,7 +186,7 @@ class EditProfileViewModel  @Inject constructor( | |||
|         val field4 = calculateFieldToUpdate(newFields.getOrNull(3), fieldsUnchanged) | ||||
| 
 | ||||
|         if (displayName == null && note == null && locked == null && avatar == null && header == null | ||||
|         && field1 == null && field2 == null && field3 == null && field4 == null) { | ||||
|                 && field1 == null && field2 == null && field3 == null && field4 == null) { | ||||
|             /** if nothing has changed, there is no need to make a network request */ | ||||
|             saveData.postValue(Success()) | ||||
|             return | ||||
|  | @ -199,7 +200,11 @@ class EditProfileViewModel  @Inject constructor( | |||
|                 if (!response.isSuccessful || newProfileData == null) { | ||||
|                     val errorResponse = response.errorBody()?.string() | ||||
|                     val errorMsg = if(!errorResponse.isNullOrBlank()) { | ||||
|                         JSONObject(errorResponse).optString("error", null) | ||||
|                         try { | ||||
|                             JSONObject(errorResponse).optString("error", null) | ||||
|                         } catch (e: JSONException) { | ||||
|                             null | ||||
|                         } | ||||
|                     } else { | ||||
|                         null | ||||
|                     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue