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);