diff --git a/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt b/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt index 5b58bcb87..45305cd07 100644 --- a/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt +++ b/app/src/main/java/com/github/libretube/ui/dialogs/LoginDialog.kt @@ -7,13 +7,17 @@ import android.widget.Toast import androidx.fragment.app.DialogFragment import androidx.lifecycle.lifecycleScope import com.github.libretube.R +import com.github.libretube.api.JsonHelper import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.obj.Login +import com.github.libretube.api.obj.Token import com.github.libretube.databinding.DialogLoginBinding import com.github.libretube.extensions.TAG import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.util.TextUtils import com.google.android.material.dialog.MaterialAlertDialogBuilder +import kotlinx.serialization.decodeFromString +import retrofit2.HttpException class LoginDialog( private val onLogin: () -> Unit @@ -76,6 +80,12 @@ class LoginDialog( } else { RetrofitInstance.authApi.login(login) } + } catch (e: HttpException) { + val errorMessage = e.response()?.errorBody()?.string()?.let { + JsonHelper.json.decodeFromString(it).error + } ?: context?.getString(R.string.server_error) ?: "" + Toast.makeText(context, errorMessage, Toast.LENGTH_SHORT).show() + return@launchWhenCreated } catch (e: Exception) { Log.e(TAG(), e.toString()) Toast.makeText(context, e.localizedMessage, Toast.LENGTH_SHORT).show()