mirror of
https://github.com/AllanWang/Frost-for-Facebook.git
synced 2024-11-08 20:12:39 +01:00
Update when bugsnag gets added (#1128)
This commit is contained in:
parent
e113308923
commit
49d829355b
@ -10,7 +10,7 @@ android {
|
|||||||
|
|
||||||
androidGitVersion {
|
androidGitVersion {
|
||||||
codeFormat = 'MMNNPPXX'
|
codeFormat = 'MMNNPPXX'
|
||||||
format = '%tag%%.count%%-commit%'
|
format = '%tag%%-count%%-commit%'
|
||||||
prefix 'v'
|
prefix 'v'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -64,32 +64,8 @@ class FrostApp : Application() {
|
|||||||
Prefs.initialize(this, "${BuildConfig.APPLICATION_ID}.prefs")
|
Prefs.initialize(this, "${BuildConfig.APPLICATION_ID}.prefs")
|
||||||
// if (LeakCanary.isInAnalyzerProcess(this)) return
|
// if (LeakCanary.isInAnalyzerProcess(this)) return
|
||||||
// refWatcher = LeakCanary.install(this)
|
// refWatcher = LeakCanary.install(this)
|
||||||
if (!BuildConfig.DEBUG) {
|
|
||||||
Bugsnag.init(this)
|
|
||||||
val releaseStage = setOf(FLAVOUR_PRODUCTION,
|
|
||||||
FLAVOUR_TEST,
|
|
||||||
FLAVOUR_GITHUB,
|
|
||||||
FLAVOUR_RELEASE)
|
|
||||||
Bugsnag.setNotifyReleaseStages(*releaseStage.toTypedArray(), FLAVOUR_UNNAMED)
|
|
||||||
val versionSegments = BuildConfig.VERSION_NAME.split("_")
|
|
||||||
if (versionSegments.size > 1) {
|
|
||||||
Bugsnag.setAppVersion(versionSegments.first())
|
|
||||||
Bugsnag.setReleaseStage(if (versionSegments.last() in releaseStage) versionSegments.last()
|
|
||||||
else FLAVOUR_UNNAMED)
|
|
||||||
Bugsnag.setUserName(BuildConfig.VERSION_NAME)
|
|
||||||
}
|
|
||||||
|
|
||||||
Bugsnag.setAutoCaptureSessions(true)
|
|
||||||
Bugsnag.setUserId(Prefs.frostId)
|
|
||||||
Bugsnag.beforeNotify { error ->
|
|
||||||
when {
|
|
||||||
error.exception is UndeliverableException -> false
|
|
||||||
error.exception.stackTrace.any { it.className.contains("XposedBridge") } -> false
|
|
||||||
else -> true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
KL.shouldLog = { BuildConfig.DEBUG }
|
KL.shouldLog = { BuildConfig.DEBUG }
|
||||||
|
initBugsnag()
|
||||||
Prefs.verboseLogging = false
|
Prefs.verboseLogging = false
|
||||||
L.i { "Begin Frost for Facebook" }
|
L.i { "Begin Frost for Facebook" }
|
||||||
try {
|
try {
|
||||||
@ -152,5 +128,24 @@ class FrostApp : Application() {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun initBugsnag() {
|
||||||
|
if (BuildConfig.DEBUG) return
|
||||||
|
if (!BuildConfig.APPLICATION_ID.startsWith("com.pitchedapps.frost")) return
|
||||||
|
val version = BuildUtils.match(BuildConfig.VERSION_NAME)
|
||||||
|
?: return L.d { "Bugsnag disabled for ${BuildConfig.VERSION_NAME}" }
|
||||||
|
Bugsnag.init(this)
|
||||||
|
Bugsnag.setNotifyReleaseStages(*BuildUtils.getAllStages())
|
||||||
|
Bugsnag.setAppVersion(version.versionName)
|
||||||
|
Bugsnag.setReleaseStage(BuildUtils.getStage(BuildConfig.BUILD_TYPE))
|
||||||
|
Bugsnag.setAutoCaptureSessions(true)
|
||||||
|
Bugsnag.setUserId(Prefs.frostId)
|
||||||
|
Bugsnag.beforeNotify { error ->
|
||||||
|
when {
|
||||||
|
error.exception is UndeliverableException -> false
|
||||||
|
error.exception.stackTrace.any { it.className.contains("XposedBridge") } -> false
|
||||||
|
else -> true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.pitchedapps.frost.utils
|
||||||
|
|
||||||
|
object BuildUtils {
|
||||||
|
|
||||||
|
data class Data(val versionName: String, val tail: String)
|
||||||
|
|
||||||
|
// Builds
|
||||||
|
const val BUILD_PRODUCTION = "production"
|
||||||
|
const val BUILD_TEST = "releaseTest"
|
||||||
|
const val BUILD_GITHUB = "github"
|
||||||
|
const val BUILD_RELEASE = "release"
|
||||||
|
const val BUILD_UNNAMED = "unnamed"
|
||||||
|
|
||||||
|
fun match(version: String): Data? {
|
||||||
|
val regex = Regex("([0-9]+\\.[0-9]+\\.[0-9]+)-?([0-9]*-?[0-9a-zA-Z]*)")
|
||||||
|
val result = regex.matchEntire(version)?.groupValues ?: return null
|
||||||
|
return Data(result[1], result[2])
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getAllStages(): Array<String> =
|
||||||
|
arrayOf(BUILD_PRODUCTION, BUILD_TEST, BUILD_GITHUB, BUILD_RELEASE, BUILD_UNNAMED)
|
||||||
|
|
||||||
|
fun getStage(build: String): String = build.takeIf { it in getAllStages() } ?: BUILD_UNNAMED
|
||||||
|
|
||||||
|
}
|
@ -16,10 +16,3 @@ const val REQUEST_NAV = 1 shl 15
|
|||||||
const val REQUEST_SEARCH = 1 shl 16
|
const val REQUEST_SEARCH = 1 shl 16
|
||||||
|
|
||||||
const val MAIN_TIMEOUT_DURATION = 30 * 60 * 1000 // 30 min
|
const val MAIN_TIMEOUT_DURATION = 30 * 60 * 1000 // 30 min
|
||||||
|
|
||||||
// Flavours
|
|
||||||
const val FLAVOUR_PRODUCTION = "production"
|
|
||||||
const val FLAVOUR_TEST = "releaseTest"
|
|
||||||
const val FLAVOUR_GITHUB = "github"
|
|
||||||
const val FLAVOUR_RELEASE = "release"
|
|
||||||
const val FLAVOUR_UNNAMED = "unnamed"
|
|
@ -0,0 +1,22 @@
|
|||||||
|
package com.pitchedapps.frost.utils
|
||||||
|
|
||||||
|
import com.pitchedapps.frost.BuildConfig
|
||||||
|
import org.junit.Test
|
||||||
|
import kotlin.test.assertEquals
|
||||||
|
import kotlin.test.assertNotNull
|
||||||
|
import kotlin.test.assertNull
|
||||||
|
|
||||||
|
class BuildUtilsTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun matchingVersions() {
|
||||||
|
assertNull(BuildUtils.match("unknown"))
|
||||||
|
assertEquals(BuildUtils.Data("1.0.0", ""), BuildUtils.match("1.0.0"))
|
||||||
|
assertEquals(BuildUtils.Data("1.0.1", "22-asdf"), BuildUtils.match("1.0.1-22-asdf"))
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun androidTests() {
|
||||||
|
assertNotNull(BuildUtils.match(BuildConfig.VERSION_NAME))
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user