Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b85bb889 authored by Mitul Sheth's avatar Mitul Sheth
Browse files

Merge branch 'add_sentry_support' into 'main'

chore: Setup sentry support for logging

See merge request !67
parents bdda3725 2e3cd9ef
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -56,6 +56,9 @@ val defaultValhallaEndpoint = if (stadiaKey != null) {
    "https://maps.earth/valhalla/route"
}

val sentryDSN = System.getenv("SENTRY_DSN") ?: "placeholdertoto"
val fieldContent = "\"$sentryDSN\""

android {
    namespace = "earth.maps.cardinal"
    compileSdk = 36
@@ -68,6 +71,8 @@ android {
        versionName = System.getenv("VERSION_NAME") ?: "debug"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"

        buildConfigField("String", "SENTRY_DSN", fieldContent)
    }

    flavorDimensions += "architecture"
@@ -212,6 +217,7 @@ dependencies {
    implementation(libs.ferrostar.composeui)
    implementation(libs.okhttp3)
    implementation(libs.androidaddressformatter)
    implementation(libs.eos.telemetry)

    // TODO: Migrate version to TOML (doesn't work). Likely related issue: https://github.com/gradle/gradle/issues/21267
    //noinspection UseTomlInstead
+20 −1
Original line number Diff line number Diff line
@@ -19,7 +19,26 @@
package earth.maps.cardinal

import android.app.Application
import android.util.Log
import dagger.hilt.android.HiltAndroidApp
import foundation.e.lib.telemetry.Telemetry.init

@HiltAndroidApp
class CardinalMapsApplication : Application()
class CardinalMapsApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        if (!BuildConfig.DEBUG) {
            try {
                init(BuildConfig.SENTRY_DSN, this, true)
            } catch (e: Exception) {
                Log.e(TAG, "Failed to initialize Sentry SDK", e)
            }
        }
    }

    companion object {
        private const val TAG = "CardinalMapsApplication"
    }

}
+2 −0
Original line number Diff line number Diff line
@@ -47,6 +47,7 @@ import earth.maps.cardinal.transit.TransitousService
import earth.maps.cardinal.ui.core.BaseSearchViewModel
import earth.maps.cardinal.ui.core.NavigationUtils
import earth.maps.cardinal.ui.core.Screen
import foundation.e.lib.telemetry.Telemetry
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.flow.combine
@@ -181,6 +182,7 @@ class DirectionsViewModel @Inject constructor(
                routeStateRepository.setRoutes(routes)
            } catch (invalidStatusCode: ParsingException.InvalidStatusCode) {
                routeStateRepository.setDirectionError(invalidStatusCode.toRouteError())
                Telemetry.reportException(e = invalidStatusCode)
            } catch (e: Exception) {
                Log.e(TAG, "Error while fetching route", e)
                routeStateRepository.setError(
+2 −0
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ mockk = "1.14.7"
kotlinxCoroutinesTest = "1.10.2"
hiltAndroidTesting = "2.57.2"
openinghoursparser = "0.29.0"
eosTelemetry = "1.0.1-release"

[libraries]
androidaddressformatter = { module = "com.github.woheller69:AndroidAddressFormatter", version.ref = "androidaddressformatter" }
@@ -86,6 +87,7 @@ mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "kotlinxCoroutinesTest" }
hilt-android-testing = { group = "com.google.dagger", name = "hilt-android-testing", version.ref = "hiltAndroidTesting" }
openinghoursparser = { module = "ch.poole:OpeningHoursParser", version.ref = "openinghoursparser" }
eos-telemetry = {group = "foundation.e.lib", name = "telemetry", version.ref = "eosTelemetry" }

[plugins]
android-application = { id = "com.android.application", version.ref = "agp" }
+1 −0
Original line number Diff line number Diff line
@@ -37,6 +37,7 @@ dependencyResolutionManagement {
        maven("https://jitpack.io") {
            content { includeGroup("com.github.woheller69") }
        }
        maven { url = uri("https://gitlab.e.foundation/api/v4/groups/9/-/packages/maven") }
    }
}