Merge "Cleanup voip-common API usage in Telephony." am: ade545edb6 am: 4a80a42875 am: d0606009b9
Change-Id: I2027acf3f7713c2a906854f4c0f7339eef4a3f36
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index c737ce8..e800f7d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -507,7 +507,7 @@
<receiver android:name="com.android.services.telephony.sip.SipIncomingCallReceiver">
<intent-filter>
- <action android:name="com.android.phone.SIP_INCOMING_CALL" />
+ <action android:name="android.net.sip.action.SIP_INCOMING_CALL" />
</intent-filter>
</receiver>
@@ -538,6 +538,12 @@
android:uiOptions="splitActionBarWhenNarrow">
</activity>
+ <service android:name="com.android.services.telephony.sip.components.TelephonySipService">
+ <intent-filter>
+ <action android:name="android.net.sip.action.START_SIP" />
+ </intent-filter>
+ </service>
+
<!-- End SIP -->
<activity android:name="MMIDialogActivity"
diff --git a/sip/src/com/android/services/telephony/sip/SipSettings.java b/sip/src/com/android/services/telephony/sip/SipSettings.java
index ded16df..700fe81 100644
--- a/sip/src/com/android/services/telephony/sip/SipSettings.java
+++ b/sip/src/com/android/services/telephony/sip/SipSettings.java
@@ -42,6 +42,7 @@
import com.android.phone.R;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.LinkedHashMap;
@@ -238,7 +239,7 @@
}
private void processActiveProfilesFromSipService() {
- SipProfile[] activeList = {};
+ List<SipProfile> activeList = new ArrayList<>();
try {
activeList = mSipManager.getListOfProfiles();
} catch (SipException e) {
diff --git a/sip/src/com/android/services/telephony/sip/SipUtil.java b/sip/src/com/android/services/telephony/sip/SipUtil.java
index 46b1930..828174e 100644
--- a/sip/src/com/android/services/telephony/sip/SipUtil.java
+++ b/sip/src/com/android/services/telephony/sip/SipUtil.java
@@ -34,8 +34,6 @@
import android.util.Log;
import com.android.phone.PhoneGlobals;
-import com.android.phone.R;
-import com.android.server.sip.SipService;
import java.io.IOException;
import java.util.ArrayList;
@@ -47,6 +45,7 @@
"com.android.services.telephony.sip.incoming_call_intent";
static final String EXTRA_PHONE_ACCOUNT =
"com.android.services.telephony.sip.phone_account";
+ static final String PHONE_PACKAGE = "com.android.phone";
private SipUtil() {
}
@@ -191,7 +190,10 @@
// Migrate SIP database from DE->CE storage if the device has just upgraded.
possiblyMigrateSipDb(phoneGlobalsContext);
// Wait until boot complete to start SIP so that it has access to CE storage.
- SipService.start(phoneGlobalsContext);
+ Intent startSipIntent = new Intent();
+ startSipIntent.setAction(SipManager.ACTION_START_SIP);
+ startSipIntent.setPackage(PHONE_PACKAGE);
+ phoneGlobalsContext.startService(startSipIntent);
}
/**
diff --git a/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java b/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java
new file mode 100644
index 0000000..5b863b1
--- /dev/null
+++ b/sip/src/com/android/services/telephony/sip/components/TelephonySipService.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.services.telephony.sip.components;
+
+import android.app.Service;
+import android.content.Intent;
+import android.net.sip.SipManager;
+import android.os.IBinder;
+
+import com.android.server.sip.SipService;
+
+/**
+ * This class represents telephony SIP service which handle start SIP service requests from
+ * Telephony.
+ */
+public class TelephonySipService extends Service {
+ @Override
+ public int onStartCommand(Intent intent, int flags, int startId) {
+ if ((intent != null)
+ && SipManager.ACTION_START_SIP.equals(intent.getAction())) {
+ SipService.start(this);
+ }
+ return START_STICKY;
+ }
+
+ @Override
+ public IBinder onBind(Intent intent) {
+ return null;
+ }
+}
diff --git a/src/com/android/phone/PhoneGlobals.java b/src/com/android/phone/PhoneGlobals.java
index 11ccda7..a369423 100644
--- a/src/com/android/phone/PhoneGlobals.java
+++ b/src/com/android/phone/PhoneGlobals.java
@@ -410,7 +410,7 @@
IntentFilter sipIntentFilter = new IntentFilter(Intent.ACTION_BOOT_COMPLETED);
sipIntentFilter.addAction(SipManager.ACTION_SIP_SERVICE_UP);
sipIntentFilter.addAction(SipManager.ACTION_SIP_CALL_OPTION_CHANGED);
- sipIntentFilter.addAction(SipManager.ACTION_SIP_REMOVE_PHONE);
+ sipIntentFilter.addAction(SipManager.ACTION_SIP_REMOVE_PROFILE);
registerReceiver(mSipReceiver, sipIntentFilter);
mCarrierVvmPackageInstalledReceiver.register(this);
@@ -716,7 +716,7 @@
} else if (action.equals(SipManager.ACTION_SIP_SERVICE_UP)
|| action.equals(SipManager.ACTION_SIP_CALL_OPTION_CHANGED)) {
sipAccountRegistry.setup(context);
- } else if (action.equals(SipManager.ACTION_SIP_REMOVE_PHONE)) {
+ } else if (action.equals(SipManager.ACTION_SIP_REMOVE_PROFILE)) {
if (DBG) {
Log.d(LOG_TAG, "SIP_REMOVE_PHONE "
+ intent.getStringExtra(SipManager.EXTRA_LOCAL_URI));