Move SIP broadcast receiver to dynamic registration

Background Check was causing some SIP broadcast intents
to never be received. This was causing issues with
settings configuation.

Bug: 64300565
Test: Manual, Bug repro procedure
Merged-In: I1ed17b3f93aaff92a25ad00c7ef514bddf83d988
Change-Id: I1ed17b3f93aaff92a25ad00c7ef514bddf83d988
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index e2001fd..7c47c17 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -500,16 +500,6 @@
             </intent-filter>
         </service>
 
-        <receiver android:name="com.android.services.telephony.sip.SipBroadcastReceiver">
-            <intent-filter>
-                <action android:name="android.intent.action.BOOT_COMPLETED" />
-                <action android:name="android.net.sip.SIP_SERVICE_UP" />
-                <action android:name="com.android.phone.SIP_INCOMING_CALL" />
-                <action android:name="com.android.phone.SIP_REMOVE_PHONE" />
-                <action android:name="com.android.phone.SIP_CALL_OPTION_CHANGED" />
-            </intent-filter>
-        </receiver>
-
         <activity android:name="com.android.services.telephony.sip.SipPhoneAccountSettingsActivity"
                 android:theme="@android:style/Theme.NoDisplay"
                 android:excludeFromRecents="true">
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index a617b0c..156decd 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -28,6 +28,7 @@
 import android.media.AudioManager;
 import android.net.ConnectivityManager;
 import android.net.Uri;
+import android.net.sip.SipManager;
 import android.os.AsyncResult;
 import android.os.Bundle;
 import android.os.Handler;
@@ -57,6 +58,7 @@
 import com.android.internal.telephony.TelephonyIntents;
 import com.android.phone.common.CallLogAsync;
 import com.android.phone.settings.SettingsConstants;
+import com.android.services.telephony.sip.SipBroadcastReceiver;
 import com.android.services.telephony.sip.SipUtil;
 
 /**
@@ -158,6 +160,8 @@
 
     // Broadcast receiver for various intent broadcasts (see onCreate())
     private final BroadcastReceiver mReceiver = new PhoneAppBroadcastReceiver();
+    // Broadcast receiver for SIP based intents (see onCreate())
+    private final SipBroadcastReceiver mSipBroadcastReceiver = new SipBroadcastReceiver();
 
     Handler mHandler = new Handler() {
         @Override
@@ -335,6 +339,13 @@
             intentFilter.addAction(TelephonyIntents.ACTION_EMERGENCY_CALLBACK_MODE_CHANGED);
             registerReceiver(mReceiver, intentFilter);
 
+            IntentFilter sipIntentFilter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED);
+            sipIntentFilter.addAction(SipManager.ACTION_SIP_INCOMING_CALL);
+            sipIntentFilter.addAction(SipManager.ACTION_SIP_SERVICE_UP);
+            sipIntentFilter.addAction(SipManager.ACTION_SIP_CALL_OPTION_CHANGED);
+            sipIntentFilter.addAction(SipManager.ACTION_SIP_REMOVE_PHONE);
+            registerReceiver(mSipBroadcastReceiver, sipIntentFilter);
+
             //set the default values for the preferences in the phone.
             PreferenceManager.setDefaultValues(this, R.xml.network_setting_fragment, false);