Merge "Move @SystemApi access to ImsService" into oc-dev
diff --git a/api/system-current.txt b/api/system-current.txt
index 29a869f..23dc949 100644
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -43874,8 +43874,8 @@
package android.telephony.ims {
- public class ImsServiceBase extends android.app.Service {
- ctor public ImsServiceBase();
+ public class ImsService extends android.app.Service {
+ ctor public ImsService();
method public android.os.IBinder onBind(android.content.Intent);
}
diff --git a/telephony/java/android/telephony/ims/ImsService.java b/telephony/java/android/telephony/ims/ImsService.java
index f1f683c..ba70374 100644
--- a/telephony/java/android/telephony/ims/ImsService.java
+++ b/telephony/java/android/telephony/ims/ImsService.java
@@ -16,7 +16,9 @@
package android.telephony.ims;
+import android.annotation.SystemApi;
import android.app.PendingIntent;
+import android.app.Service;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.IBinder;
@@ -72,26 +74,30 @@
* {@link CarrierConfigManager#KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING}.
*
* The features that are currently supported in an ImsService are:
- * - RCS_FEATURE: This ImsService implements the {@link RcsFeature} class.
- * - MMTEL_FEATURE: This ImsService implements the {@link MMTelFeature} class.
- * - EMERGENCY_MMTEL_FEATURE: This ImsService implements the {@link MMTelFeature} class and will be
+ * - RCS_FEATURE: This ImsService implements the RcsFeature class.
+ * - MMTEL_FEATURE: This ImsService implements the MMTelFeature class.
+ * - EMERGENCY_MMTEL_FEATURE: This ImsService implements the MMTelFeature class and will be
* available to place emergency calls at all times. This MUST be implemented by the default
* ImsService provided in the device overlay.
- *
- * @hide
+ * @hide
*/
-public abstract class ImsService extends ImsServiceBase {
+@SystemApi
+public class ImsService extends Service {
private static final String LOG_TAG = "ImsService";
/**
* The intent that must be defined as an intent-filter in the AndroidManifest of the ImsService.
+ * @hide
*/
public static final String SERVICE_INTERFACE = "android.telephony.ims.ImsService";
// A map of slot Id -> Set of features corresponding to that slot.
private final SparseArray<SparseArray<ImsFeature>> mFeatures = new SparseArray<>();
+ /**
+ * @hide
+ */
// Implements all supported features as a flat interface.
protected final IBinder mImsServiceController = new IImsServiceController.Stub() {
@@ -328,6 +334,9 @@
};
+ /**
+ * @hide
+ */
@Override
public IBinder onBind(Intent intent) {
if(SERVICE_INTERFACE.equals(intent.getAction())) {
@@ -409,12 +418,18 @@
return null;
}
+ /**
+ * @hide
+ */
@VisibleForTesting
// Be sure to lock on mFeatures before accessing this method
public SparseArray<ImsFeature> getImsFeatureMap(int slotId) {
return mFeatures.get(slotId);
}
+ /**
+ * @hide
+ */
@VisibleForTesting
// Be sure to lock on mFeatures before accessing this method
public ImsFeature getImsFeatureFromType(SparseArray<ImsFeature> set, int featureType) {
@@ -451,17 +466,26 @@
/**
* @return An implementation of MMTelFeature that will be used by the system for MMTel
* functionality. Must be able to handle emergency calls at any time as well.
+ * @hide
*/
- public abstract MMTelFeature onCreateEmergencyMMTelImsFeature(int slotId);
+ public MMTelFeature onCreateEmergencyMMTelImsFeature(int slotId) {
+ return null;
+ }
/**
* @return An implementation of MMTelFeature that will be used by the system for MMTel
* functionality.
+ * @hide
*/
- public abstract MMTelFeature onCreateMMTelImsFeature(int slotId);
+ public MMTelFeature onCreateMMTelImsFeature(int slotId) {
+ return null;
+ }
/**
* @return An implementation of RcsFeature that will be used by the system for RCS.
+ * @hide
*/
- public abstract RcsFeature onCreateRcsFeature(int slotId);
+ public RcsFeature onCreateRcsFeature(int slotId) {
+ return null;
+ }
}
diff --git a/telephony/java/android/telephony/ims/ImsServiceBase.java b/telephony/java/android/telephony/ims/ImsServiceBase.java
deleted file mode 100644
index bb36862..0000000
--- a/telephony/java/android/telephony/ims/ImsServiceBase.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2017 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 android.telephony.ims;
-
-import android.annotation.SystemApi;
-import android.app.Service;
-import android.content.Intent;
-import android.os.Binder;
-import android.os.IBinder;
-
-/**
- * Base ImsService Implementation, which is used by the ImsResolver to bind. ImsServices that do not
- * need to provide an ImsService implementation but still wish to be managed by the ImsResolver
- * lifecycle may implement this class directly.
- * @hide
- */
-@SystemApi
-public class ImsServiceBase extends Service {
-
- /**
- * Binder connection that does nothing but keep the connection between this Service and the
- * framework active. If this service crashes, the framework will be notified.
- */
- private IBinder mConnection = new Binder();
-
- @Override
- public IBinder onBind(Intent intent) {
- return mConnection;
- }
-
-}