From c673b7464b5d097eb85ef48c1a67ee0a8eecdbd3 Mon Sep 17 00:00:00 2001 From: Bnyro Date: Sat, 18 Feb 2023 10:20:49 +0100 Subject: [PATCH] Better login/register error messages --- .../com/github/libretube/ui/dialogs/LoginDialog.kt | 10 ++++++++++ 1 file changed, 10 insertions(+) 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()