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 8f8a52605..861dfb52f 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
@@ -12,10 +12,9 @@ import com.github.libretube.api.obj.Login
import com.github.libretube.databinding.DialogLoginBinding
import com.github.libretube.extensions.TAG
import com.github.libretube.util.PreferenceHelper
+import com.github.libretube.util.TextUtils
import com.github.libretube.util.ThemeHelper
import com.google.android.material.dialog.MaterialAlertDialogBuilder
-import retrofit2.HttpException
-import java.io.IOException
class LoginDialog : DialogFragment() {
private lateinit var binding: DialogLoginBinding
@@ -34,7 +33,20 @@ class LoginDialog : DialogFragment() {
}
}
binding.register.setOnClickListener {
- if (isInsertionValid()) {
+ if (isEmail(binding.username.text.toString())) {
+ MaterialAlertDialogBuilder(requireContext())
+ .setTitle(R.string.privacy_alert)
+ .setMessage(R.string.username_email)
+ .setNegativeButton(R.string.proceed) { _, _ ->
+ signIn(
+ binding.username.text.toString(),
+ binding.password.text.toString(),
+ true
+ )
+ }
+ .setPositiveButton(R.string.cancel, null)
+ .show()
+ } else if (isInsertionValid()) {
signIn(
binding.username.text.toString(),
binding.password.text.toString(),
@@ -65,15 +77,9 @@ class LoginDialog : DialogFragment() {
} else {
RetrofitInstance.authApi.login(login)
}
- } catch (e: IOException) {
- Log.e(TAG(), "IOException, you might not have internet connection")
- Toast.makeText(context, R.string.unknown_error, Toast.LENGTH_SHORT).show()
- return@launchWhenCreated
- } catch (e: HttpException) {
- Log.e(TAG(), "HttpException, unexpected response")
- Toast.makeText(context, R.string.server_error, Toast.LENGTH_SHORT).show()
- return@launchWhenCreated
} catch (e: Exception) {
+ Log.e(TAG(), e.toString())
+ Toast.makeText(context, e.localizedMessage, Toast.LENGTH_SHORT).show()
return@launchWhenCreated
}
@@ -96,4 +102,8 @@ class LoginDialog : DialogFragment() {
activity?.recreate()
}
}
+
+ private fun isEmail(text: String): Boolean {
+ return TextUtils.EMAIL_REGEX.toRegex().matches(text)
+ }
}
diff --git a/app/src/main/java/com/github/libretube/util/TextUtils.kt b/app/src/main/java/com/github/libretube/util/TextUtils.kt
index 8b8cc4008..cc9014cac 100644
--- a/app/src/main/java/com/github/libretube/util/TextUtils.kt
+++ b/app/src/main/java/com/github/libretube/util/TextUtils.kt
@@ -6,6 +6,11 @@ object TextUtils {
*/
const val SEPARATOR = " • "
+ /**
+ * Regex to check for e-mails
+ */
+ const val EMAIL_REGEX = "^[A-Za-z](.*)([@]{1})(.{1,})(\\.)(.{1,})"
+
fun toTwoDecimalsString(num: Int): String {
return if (num >= 10) num.toString() else "0$num"
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index bab5c6600..57c9f7f85 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -408,6 +408,9 @@
App Backup
Import & export subscriptions, playlists, …
Successfully exported!
+ Privacy alert
+ You inserted an e-mail address as username which is not recommended. Are you sure you want to proceed?
+ Proceed
Download Service