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

Commit 5579b3ba authored by Ling Ma's avatar Ling Ma
Browse files

AnomalyReport catch any exception when try to read deviceConfig

If the app context, likely tests that didn't mock permission, doesn't have deviceConfig read permission, don't try to enforce server-side flag .

Fix: 247700179
Test: manual trigger + https://android-build.googleplex.com/builds/abtd/run/L02900000956490923
Change-Id: I8f0e84219057974649def4bcc312ae0dc38670d1
parent 981a340d
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -105,14 +105,20 @@ public final class AnomalyReporter {
     * @param carrierId the carrier of the id associated with this event.
     */
    public static void reportAnomaly(@NonNull UUID eventId, String description, int carrierId) {
        if (sContext == null) {
            Rlog.w(TAG, "AnomalyReporter not yet initialized, dropping event=" + eventId);
            return;
        }

        // Don't report if the server-side flag isn't loaded, as it implies other anomaly report
        // related config hasn't loaded.
        try {
            boolean isAnomalyReportEnabledFromServer = DeviceConfig.getBoolean(
                DeviceConfig.NAMESPACE_TELEPHONY, KEY_IS_TELEPHONY_ANOMALY_REPORT_ENABLED, false);
                    DeviceConfig.NAMESPACE_TELEPHONY, KEY_IS_TELEPHONY_ANOMALY_REPORT_ENABLED,
                    false);
            if (!isAnomalyReportEnabledFromServer) return;

        if (sContext == null) {
            Rlog.w(TAG, "AnomalyReporter not yet initialized, dropping event=" + eventId);
        } catch (Exception e) {
            Rlog.w(TAG, "Unable to read device config, dropping event=" + eventId);
            return;
        }