diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/AddSourceActivity.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/AddSourceActivity.kt index 1042a8f..b444be7 100644 --- a/app/src/main/java/apps/amine/bou/readerforselfoss/AddSourceActivity.kt +++ b/app/src/main/java/apps/amine/bou/readerforselfoss/AddSourceActivity.kt @@ -109,7 +109,7 @@ class AddSourceActivity : AppCompatActivity() { super.onResume() val config = Config(this) - if (config.baseUrl.isEmpty() || !config.baseUrl.isBaseUrlValid(false)) { + if (config.baseUrl.isEmpty() || !config.baseUrl.isBaseUrlValid(false, this@AddSourceActivity)) { mustLoginToAddSource() } else { handleSpoutsSpinner(spoutsSpinner, api, progress, formContainer) diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/LoginActivity.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/LoginActivity.kt index be3c620..0410307 100644 --- a/app/src/main/java/apps/amine/bou/readerforselfoss/LoginActivity.kt +++ b/app/src/main/java/apps/amine/bou/readerforselfoss/LoginActivity.kt @@ -54,7 +54,6 @@ class LoginActivity : AppCompatActivity() { handleBaseUrlFail() - settings = getSharedPreferences(Config.settingsName, Context.MODE_PRIVATE) userIdentifier = settings.getString("unique_id", "") logErrors = settings.getBoolean("login_debug", false) @@ -145,7 +144,7 @@ class LoginActivity : AppCompatActivity() { var cancel = false var focusView: View? = null - if (!url.isBaseUrlValid(logErrors)) { + if (!url.isBaseUrlValid(logErrors, this@LoginActivity)) { urlView.error = getString(R.string.login_url_problem) focusView = urlView cancel = true diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/Acra.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/Acra.kt index b828459..8b00e72 100644 --- a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/Acra.kt +++ b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/Acra.kt @@ -2,15 +2,21 @@ package apps.amine.bou.readerforselfoss.utils import android.content.Context import android.preference.PreferenceManager +import android.provider.Settings import org.acra.ErrorReporter fun ErrorReporter.maybeHandleSilentException(throwable: Throwable, ctx: Context) { val sharedPref = PreferenceManager.getDefaultSharedPreferences(ctx) - if (sharedPref.getBoolean("acra_should_log", false)) { + val isTestLab = Settings.System.getString(ctx.contentResolver, "firebase.test.lab") == "true" + + if (sharedPref.getBoolean("acra_should_log", false) && !isTestLab) { this.handleSilentException(throwable) } } -fun ErrorReporter.doHandleSilentException(throwable: Throwable) { - this.handleSilentException(throwable) +fun ErrorReporter.doHandleSilentException(throwable: Throwable, ctx: Context) { + val isTestLab = Settings.System.getString(ctx.contentResolver, "firebase.test.lab") == "true" + if (!isTestLab) { + this.handleSilentException(throwable) + } } \ No newline at end of file diff --git a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt index ddaedd7..7321e3b 100644 --- a/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt +++ b/app/src/main/java/apps/amine/bou/readerforselfoss/utils/LinksUtils.kt @@ -135,7 +135,7 @@ private fun openInBrowser(linkDecoded: String, app: Activity) { fun String.isUrlValid(): Boolean = HttpUrl.parse(this) != null && Patterns.WEB_URL.matcher(this).matches() -fun String.isBaseUrlValid(logErrors: Boolean): Boolean { +fun String.isBaseUrlValid(logErrors: Boolean, ctx: Context): Boolean { val baseUrl = HttpUrl.parse(this) var existsAndEndsWithSlash = false if (baseUrl != null) { @@ -145,7 +145,7 @@ fun String.isBaseUrlValid(logErrors: Boolean): Boolean { val isValid = Patterns.WEB_URL.matcher(this).matches() && existsAndEndsWithSlash if (!isValid && logErrors) { - ACRA.getErrorReporter().doHandleSilentException(java.lang.Exception("Patterns.WEB_URL.matcher(this).matches() == ${Patterns.WEB_URL.matcher(this).matches()} && existsAndEndsWithSlash == $existsAndEndsWithSlash && baseUrl.pathSegments() == ${baseUrl?.pathSegments()}")) + ACRA.getErrorReporter().doHandleSilentException(java.lang.Exception("Patterns.WEB_URL.matcher(this).matches() == ${Patterns.WEB_URL.matcher(this).matches()} && existsAndEndsWithSlash == $existsAndEndsWithSlash && baseUrl.pathSegments() == ${baseUrl?.pathSegments()}"), ctx) } return isValid }