mirror of
https://github.com/pachli/pachli-android.git
synced 2025-01-09 07:27:52 +01:00
54d7888316
Release builds normally strip out all logging to reduce the number of disk writes and reduce UI jank. These logs would still be useful in user error reports from orange builds. To preseve them: - Implement a simple `RingBuffer`. - Create `TreeRing`, a `Timber` `Tree` logger that logs to a `RingBuffer` instance in orange release builds. - Create `TreeRingCollector`, called when ACRA reports are generated, which includes the contents of the ring buffer in the report. - Enable desugaring to allow the use of java.time libraries on older Android versions. - Disable ProGuard obfuscation of class names as the obfuscation adds additional de-obfuscation steps when handling error reports from users.
64 lines
1.9 KiB
Plaintext
64 lines
1.9 KiB
Plaintext
/*
|
|
* Copyright 2023 Pachli Association
|
|
*
|
|
* This file is a part of Pachli.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it under the terms of the
|
|
* GNU General Public License as published by the Free Software Foundation; either version 3 of the
|
|
* License, or (at your option) any later version.
|
|
*
|
|
* Pachli is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
|
|
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
|
* Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along with Pachli; if not,
|
|
* see <http://www.gnu.org/licenses>.
|
|
*/
|
|
|
|
plugins {
|
|
alias(libs.plugins.pachli.android.library)
|
|
alias(libs.plugins.pachli.android.hilt)
|
|
}
|
|
|
|
android {
|
|
namespace = "app.pachli.core.activity"
|
|
|
|
defaultConfig {
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
testInstrumentationRunnerArguments["disableAnalytics"] = "true"
|
|
}
|
|
|
|
compileOptions {
|
|
isCoreLibraryDesugaringEnabled = true
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// BaseActivity exposes AccountManager as an injected property
|
|
api(projects.core.accounts)
|
|
|
|
implementation(projects.core.common)
|
|
implementation(projects.core.designsystem)
|
|
implementation(projects.core.navigation)
|
|
|
|
// BottomSheetActivity needs MastodonApi for searching
|
|
implementation(projects.core.network)
|
|
|
|
implementation(projects.core.preferences)
|
|
|
|
implementation(libs.bundles.androidx)
|
|
|
|
// Loading avatars
|
|
implementation(libs.bundles.glide)
|
|
|
|
// Crash reporting in orange (Pachli Current) builds only
|
|
orangeImplementation(libs.bundles.acra)
|
|
|
|
coreLibraryDesugaring(libs.desugar.jdk.libs)
|
|
orangeCompileOnly(libs.auto.service.annotations)
|
|
kspOrange(libs.auto.service.ksp)
|
|
|
|
// BottomSheetActivityTest uses mockito
|
|
testImplementation(libs.bundles.mockito)
|
|
}
|