diff --git a/telephony/java/android/telephony/AnomalyReporter.java b/telephony/java/android/telephony/AnomalyReporter.java index e7d95e4f53b34..58974eec838bf 100644 --- a/telephony/java/android/telephony/AnomalyReporter.java +++ b/telephony/java/android/telephony/AnomalyReporter.java @@ -27,6 +27,7 @@ import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.ParcelUuid; +import android.provider.DeviceConfig; import com.android.internal.telephony.TelephonyStatsLog; import com.android.internal.util.IndentingPrintWriter; @@ -57,6 +58,9 @@ import java.util.concurrent.ConcurrentHashMap; public final class AnomalyReporter { private static final String TAG = "AnomalyReporter"; + private static final String KEY_IS_TELEPHONY_ANOMALY_REPORT_ENABLED = + "is_telephony_anomaly_report_enabled"; + private static Context sContext = null; private static Map sEvents = new ConcurrentHashMap<>(); @@ -101,6 +105,12 @@ 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) { + // Don't report if the server-side flag isn't loaded, as it implies other anomaly report + // related config hasn't loaded. + boolean isAnomalyReportEnabledFromServer = DeviceConfig.getBoolean( + 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); return;