mirror of
https://github.com/pachli/pachli-android.git
synced 2025-02-08 16:08:54 +01:00
Some users report that Pachli is not retrieving/displaying notifications in a timely fashion. To assist in diagnosing these errors, provide an additional set of tabs on the "About" screen that contain information about how Pachli is fetching notifications, and if not, why not. Allow the user to save notification related logs and other details to a file that can be attached to an e-mail or bug report. Recording data: - Provide a `NotificationConfig` singleton with properties to record different aspects of the notification configuration. Update these properties as different notification actions occur. - Store logs in a `LogEntryEntity` table. Log events of interest with a new `Timber` `LogEntryTree` that is planted in all cases. - Add `PruneLogEntryEntityWorker` to trim saved logs to the last 48 hours. Display: - Add a `NotificationFragment` to `AboutActivity`. It hosts two other fragments in tabs to show details from `NotificationConfig` and the relevant logs, as well as controls for interacting with them. Bug fixes: - Filter out notifications with a null tag when processing active notifications, prevents an NPE crash Other changes: - Log more details when errors occur so the bug reports are more helpful
49 lines
1.5 KiB
Plaintext
49 lines
1.5 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)
|
|
alias(libs.plugins.pachli.android.room)
|
|
alias(libs.plugins.kotlin.parcelize)
|
|
}
|
|
|
|
android {
|
|
namespace = "app.pachli.core.database"
|
|
|
|
defaultConfig {
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
compileOptions {
|
|
isCoreLibraryDesugaringEnabled = true
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
implementation(projects.core.common)
|
|
implementation(projects.core.network)
|
|
implementation(projects.core.preferences)
|
|
|
|
// Because of the use of @Json in DraftEntity
|
|
implementation(libs.moshi)
|
|
implementation(libs.moshi.adapters)
|
|
ksp(libs.moshi.codegen)
|
|
// Instant in LogEntryEntity
|
|
coreLibraryDesugaring(libs.desugar.jdk.libs)
|
|
}
|