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

Commit ef7ac408 authored by twyen's avatar twyen Committed by Copybara-Service
Browse files

Handle null carrier config for emergency call hint

getCarrierConfig() is @Nullable. While the default implementation always return a bundle, this is not true for other carrier apps.

ShadowTelephonyManager.getCarrierConfig() now return null as default to catch this behavior.

TEST=TAP
Bug: 80629471
Test: TAP
PiperOrigin-RevId: 199327865
Change-Id: I7416bee3d5f5307919c6825fc74c26f25b6b001f
parent 9337f657
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.app.Notification;
import android.app.PendingIntent;
import android.content.Context;
import android.os.Build.VERSION_CODES;
import android.os.PersistableBundle;
import android.support.annotation.NonNull;
import android.support.v4.os.BuildCompat;
import android.telecom.PhoneAccount;
@@ -98,11 +99,14 @@ public final class LegacyVoicemailNotifier {
        context
            .getResources()
            .getQuantityString(R.plurals.notification_voicemail_title, count, count);
    boolean isOngoing =
        pinnedTelephonyManager
            .getCarrierConfig()
            .getBoolean(CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL);

    PersistableBundle config = pinnedTelephonyManager.getCarrierConfig();
    boolean isOngoing;
    if (config == null) {
      isOngoing = false;
    } else {
      isOngoing =
          config.getBoolean(CarrierConfigManager.KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL);
    }
    String contentText;
    PendingIntent contentIntent;
    if (!TextUtils.isEmpty(voicemailNumber) && callVoicemailIntent != null) {
+3 −2
Original line number Diff line number Diff line
@@ -38,6 +38,7 @@ import android.net.Uri;
import android.os.Build.VERSION;
import android.os.Build.VERSION_CODES;
import android.os.Bundle;
import android.os.PersistableBundle;
import android.os.Trace;
import android.provider.Contacts.People;
import android.provider.Contacts.Phones;
@@ -501,9 +502,9 @@ public class DialpadFragment extends Fragment
      return false;
    }
    TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class);
    PersistableBundle config = telephonyManager.getCarrierConfig();
    // A delay of -1 means wifi emergency call is available/the warning is not required.
    if (telephonyManager.getCarrierConfig().getInt(KEY_EMERGENCY_NOTIFICATION_DELAY_INT, -1)
        == -1) {
    if (config == null || config.getInt(KEY_EMERGENCY_NOTIFICATION_DELAY_INT, -1) == -1) {
      return false;
    }

+3 −0
Original line number Diff line number Diff line
@@ -458,6 +458,9 @@ public class OmtpVvmCarrierConfigHelper {
    }

    PersistableBundle config = telephonyManager.getCarrierConfig();
    if (config == null) {
      return null;
    }

    if (TextUtils.isEmpty(config.getString(CarrierConfigManager.KEY_VVM_TYPE_STRING))) {
      return null;