Merge "Provide all active subscriptions when register default app providers." am: 9ef59ac901 am: 825f59adfe

Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1694533

Change-Id: I2bf871f8c72c12acca809101665545cb16f205b2
This commit is contained in:
Grace Jia
2021-05-04 04:13:34 +00:00
committed by Automerger Merge Worker

View File

@@ -31,6 +31,7 @@ import android.telecom.DefaultDialerManager;
import android.telecom.PhoneAccountHandle;
import android.telecom.TelecomManager;
import android.telephony.CarrierConfigManager;
import android.telephony.SubscriptionManager;
import android.util.IntArray;
import android.util.Slog;
@@ -44,6 +45,9 @@ import com.android.server.SystemService;
import com.android.server.pm.UserManagerService;
import com.android.server.pm.permission.PermissionManagerServiceInternal;
import java.util.ArrayList;
import java.util.List;
/**
* Starts the telecom component by binding to its ITelecomService implementation. Telecom is setup
* to run in the system-server process so once it is loaded into memory it will stay running.
@@ -208,13 +212,23 @@ public class TelecomLoaderService extends SystemService {
return null;
}
}
SubscriptionManager subscriptionManager =
mContext.getSystemService(SubscriptionManager.class);
if (subscriptionManager == null) {
return null;
}
TelecomManager telecomManager =
(TelecomManager) mContext.getSystemService(Context.TELECOM_SERVICE);
PhoneAccountHandle phoneAccount = telecomManager.getSimCallManager(userId);
if (phoneAccount != null) {
return new String[]{phoneAccount.getComponentName().getPackageName()};
List<String> packages = new ArrayList<>();
int[] subIds = subscriptionManager.getActiveSubscriptionIdList();
for (int subId : subIds) {
PhoneAccountHandle phoneAccount =
telecomManager.getSimCallManagerForSubscription(subId);
if (phoneAccount != null) {
packages.add(phoneAccount.getComponentName().getPackageName());
}
}
return null;
return packages.toArray(new String[] {});
});
}