Loading src/java/com/android/internal/telephony/NetworkRegistrationManager.java +43 −3 Original line number Diff line number Diff line Loading @@ -236,12 +236,22 @@ public class NetworkRegistrationManager extends Handler { } private void bindService() { Intent intent = null; String packageName = getPackageName(); String className = getClassName(); if (TextUtils.isEmpty(packageName)) { loge("Can't find the binding package"); return; } if (TextUtils.isEmpty(className)) { intent = new Intent(NetworkService.SERVICE_INTERFACE); intent.setPackage(packageName); } else { ComponentName cm = new ComponentName(packageName, className); intent = new Intent(NetworkService.SERVICE_INTERFACE).setComponent(cm); } if (TextUtils.equals(packageName, mTargetBindingPackageName)) { logd("Service " + packageName + " already bound or being bound."); return; Loading @@ -258,9 +268,6 @@ public class NetworkRegistrationManager extends Handler { mPhone.getContext().unbindService(mServiceConnection); } Intent intent = new Intent(NetworkService.SERVICE_INTERFACE); intent.setPackage(getPackageName()); try { // We bind this as a foreground service because it is operating directly on the SIM, // and we do not want it subjected to power-savings restrictions while doing so. Loading Loading @@ -312,6 +319,39 @@ public class NetworkRegistrationManager extends Handler { return packageName; } private String getClassName() { String className; int resourceId; String carrierConfig; switch (mTransportType) { case AccessNetworkConstants.TRANSPORT_TYPE_WWAN: resourceId = com.android.internal.R.string.config_wwan_network_service_class; carrierConfig = CarrierConfigManager .KEY_CARRIER_NETWORK_SERVICE_WWAN_CLASS_OVERRIDE_STRING; break; case AccessNetworkConstants.TRANSPORT_TYPE_WLAN: resourceId = com.android.internal.R.string.config_wlan_network_service_class; carrierConfig = CarrierConfigManager .KEY_CARRIER_NETWORK_SERVICE_WLAN_CLASS_OVERRIDE_STRING; break; default: throw new IllegalStateException("Transport type not WWAN or WLAN. type=" + mTransportType); } // Read class name from resource overlay className = mPhone.getContext().getResources().getString(resourceId); PersistableBundle b = mCarrierConfigManager.getConfigForSubId(mPhone.getSubId()); if (b != null && !TextUtils.isEmpty(b.getString(carrierConfig))) { // If carrier config overrides it, use the one from carrier config className = b.getString(carrierConfig, className); } return className; } private void logd(String msg) { Rlog.d(mTag, msg); } Loading src/java/com/android/internal/telephony/dataconnection/AccessNetworksManager.java +37 −5 Original line number Diff line number Diff line Loading @@ -238,7 +238,9 @@ public class AccessNetworksManager extends Handler { * configuration from carrier config if it exists. If not, read it from resources. */ private void bindQualifiedNetworksService() { Intent intent = null; String packageName = getQualifiedNetworksServicePackageName(); String className = getQualifiedNetworksServiceClassName(); if (DBG) log("Qualified network service package = " + packageName); if (TextUtils.isEmpty(packageName)) { Loading @@ -246,6 +248,15 @@ public class AccessNetworksManager extends Handler { return; } if (TextUtils.isEmpty(className)) { intent = new Intent(QualifiedNetworksService.QUALIFIED_NETWORKS_SERVICE_INTERFACE); intent.setPackage(packageName); } else { ComponentName cm = new ComponentName(packageName, className); intent = new Intent(QualifiedNetworksService.QUALIFIED_NETWORKS_SERVICE_INTERFACE) .setComponent(cm); } if (TextUtils.equals(packageName, mTargetBindingPackageName)) { if (DBG) log("Service " + packageName + " already bound or being bound."); return; Loading @@ -266,10 +277,7 @@ public class AccessNetworksManager extends Handler { try { mServiceConnection = new QualifiedNetworksServiceConnection(); log("bind to " + packageName); if (!mPhone.getContext().bindService( new Intent(QualifiedNetworksService.QUALIFIED_NETWORKS_SERVICE_INTERFACE) .setPackage(packageName), mServiceConnection, if (!mPhone.getContext().bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE)) { loge("Cannot bind to the qualified networks service."); return; Loading Loading @@ -306,6 +314,30 @@ public class AccessNetworksManager extends Handler { return packageName; } /** * Get the qualified network service class name. * * @return class name of the qualified networks service package. */ private String getQualifiedNetworksServiceClassName() { // Read package name from the resource String className = mPhone.getContext().getResources().getString( com.android.internal.R.string.config_qualified_networks_service_class); PersistableBundle b = mCarrierConfigManager.getConfigForSubId(mPhone.getSubId()); if (b != null) { // If carrier config overrides it, use the one from carrier config String carrierConfigClassName = b.getString(CarrierConfigManager .KEY_CARRIER_QUALIFIED_NETWORKS_SERVICE_CLASS_OVERRIDE_STRING); if (!TextUtils.isEmpty(carrierConfigClassName)) { if (DBG) log("Found carrier config override " + carrierConfigClassName); className = carrierConfigClassName; } } return className; } private @NonNull List<QualifiedNetworks> getQualifiedNetworksList() { List<QualifiedNetworks> qualifiedNetworksList = new ArrayList<>(); Loading src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java +60 −3 Original line number Diff line number Diff line Loading @@ -285,12 +285,22 @@ public class DataServiceManager extends Handler { } private void bindDataService() { Intent intent = null; String packageName = getDataServicePackageName(); String className = getDataServiceClassName(); if (TextUtils.isEmpty(packageName)) { loge("Can't find the binding package"); return; } if (TextUtils.isEmpty(className)) { intent = new Intent(DataService.SERVICE_INTERFACE); intent.setPackage(packageName); } else { ComponentName cm = new ComponentName(packageName, className); intent = new Intent(DataService.SERVICE_INTERFACE).setComponent(cm); } if (TextUtils.equals(packageName, mTargetBindingPackageName)) { if (DBG) log("Service " + packageName + " already bound or being bound."); return; Loading @@ -316,9 +326,7 @@ public class DataServiceManager extends Handler { try { mServiceConnection = new CellularDataServiceConnection(); if (!mPhone.getContext().bindService( new Intent(DataService.SERVICE_INTERFACE).setPackage(packageName), mServiceConnection, Context.BIND_AUTO_CREATE)) { intent, mServiceConnection, Context.BIND_AUTO_CREATE)) { loge("Cannot bind to the data service."); return; } Loading Loading @@ -399,6 +407,55 @@ public class DataServiceManager extends Handler { return packageName; } /** * Get the data service class name for our current transport type. * * @return class name of the data service package for the the current transportType. */ private String getDataServiceClassName() { return getDataServiceClassName(mTransportType); } /** * Get the data service class by transport type. * * @param transportType either WWAN or WLAN * @return class name of the data service package for the specified transportType. */ private String getDataServiceClassName(int transportType) { String className; int resourceId; String carrierConfig; switch (transportType) { case AccessNetworkConstants.TRANSPORT_TYPE_WWAN: resourceId = com.android.internal.R.string.config_wwan_data_service_class; carrierConfig = CarrierConfigManager .KEY_CARRIER_DATA_SERVICE_WWAN_CLASS_OVERRIDE_STRING; break; case AccessNetworkConstants.TRANSPORT_TYPE_WLAN: resourceId = com.android.internal.R.string.config_wlan_data_service_class; carrierConfig = CarrierConfigManager .KEY_CARRIER_DATA_SERVICE_WLAN_CLASS_OVERRIDE_STRING; break; default: throw new IllegalStateException("Transport type not WWAN or WLAN. type=" + transportType); } // Read package name from resource overlay className = mPhone.getContext().getResources().getString(resourceId); PersistableBundle b = mCarrierConfigManager.getConfigForSubId(mPhone.getSubId()); if (b != null && !TextUtils.isEmpty(b.getString(carrierConfig))) { // If carrier config overrides it, use the one from carrier config className = b.getString(carrierConfig, className); } return className; } private void sendCompleteMessage(Message msg, int code) { if (msg != null) { msg.arg1 = code; Loading Loading
src/java/com/android/internal/telephony/NetworkRegistrationManager.java +43 −3 Original line number Diff line number Diff line Loading @@ -236,12 +236,22 @@ public class NetworkRegistrationManager extends Handler { } private void bindService() { Intent intent = null; String packageName = getPackageName(); String className = getClassName(); if (TextUtils.isEmpty(packageName)) { loge("Can't find the binding package"); return; } if (TextUtils.isEmpty(className)) { intent = new Intent(NetworkService.SERVICE_INTERFACE); intent.setPackage(packageName); } else { ComponentName cm = new ComponentName(packageName, className); intent = new Intent(NetworkService.SERVICE_INTERFACE).setComponent(cm); } if (TextUtils.equals(packageName, mTargetBindingPackageName)) { logd("Service " + packageName + " already bound or being bound."); return; Loading @@ -258,9 +268,6 @@ public class NetworkRegistrationManager extends Handler { mPhone.getContext().unbindService(mServiceConnection); } Intent intent = new Intent(NetworkService.SERVICE_INTERFACE); intent.setPackage(getPackageName()); try { // We bind this as a foreground service because it is operating directly on the SIM, // and we do not want it subjected to power-savings restrictions while doing so. Loading Loading @@ -312,6 +319,39 @@ public class NetworkRegistrationManager extends Handler { return packageName; } private String getClassName() { String className; int resourceId; String carrierConfig; switch (mTransportType) { case AccessNetworkConstants.TRANSPORT_TYPE_WWAN: resourceId = com.android.internal.R.string.config_wwan_network_service_class; carrierConfig = CarrierConfigManager .KEY_CARRIER_NETWORK_SERVICE_WWAN_CLASS_OVERRIDE_STRING; break; case AccessNetworkConstants.TRANSPORT_TYPE_WLAN: resourceId = com.android.internal.R.string.config_wlan_network_service_class; carrierConfig = CarrierConfigManager .KEY_CARRIER_NETWORK_SERVICE_WLAN_CLASS_OVERRIDE_STRING; break; default: throw new IllegalStateException("Transport type not WWAN or WLAN. type=" + mTransportType); } // Read class name from resource overlay className = mPhone.getContext().getResources().getString(resourceId); PersistableBundle b = mCarrierConfigManager.getConfigForSubId(mPhone.getSubId()); if (b != null && !TextUtils.isEmpty(b.getString(carrierConfig))) { // If carrier config overrides it, use the one from carrier config className = b.getString(carrierConfig, className); } return className; } private void logd(String msg) { Rlog.d(mTag, msg); } Loading
src/java/com/android/internal/telephony/dataconnection/AccessNetworksManager.java +37 −5 Original line number Diff line number Diff line Loading @@ -238,7 +238,9 @@ public class AccessNetworksManager extends Handler { * configuration from carrier config if it exists. If not, read it from resources. */ private void bindQualifiedNetworksService() { Intent intent = null; String packageName = getQualifiedNetworksServicePackageName(); String className = getQualifiedNetworksServiceClassName(); if (DBG) log("Qualified network service package = " + packageName); if (TextUtils.isEmpty(packageName)) { Loading @@ -246,6 +248,15 @@ public class AccessNetworksManager extends Handler { return; } if (TextUtils.isEmpty(className)) { intent = new Intent(QualifiedNetworksService.QUALIFIED_NETWORKS_SERVICE_INTERFACE); intent.setPackage(packageName); } else { ComponentName cm = new ComponentName(packageName, className); intent = new Intent(QualifiedNetworksService.QUALIFIED_NETWORKS_SERVICE_INTERFACE) .setComponent(cm); } if (TextUtils.equals(packageName, mTargetBindingPackageName)) { if (DBG) log("Service " + packageName + " already bound or being bound."); return; Loading @@ -266,10 +277,7 @@ public class AccessNetworksManager extends Handler { try { mServiceConnection = new QualifiedNetworksServiceConnection(); log("bind to " + packageName); if (!mPhone.getContext().bindService( new Intent(QualifiedNetworksService.QUALIFIED_NETWORKS_SERVICE_INTERFACE) .setPackage(packageName), mServiceConnection, if (!mPhone.getContext().bindService(intent, mServiceConnection, Context.BIND_AUTO_CREATE)) { loge("Cannot bind to the qualified networks service."); return; Loading Loading @@ -306,6 +314,30 @@ public class AccessNetworksManager extends Handler { return packageName; } /** * Get the qualified network service class name. * * @return class name of the qualified networks service package. */ private String getQualifiedNetworksServiceClassName() { // Read package name from the resource String className = mPhone.getContext().getResources().getString( com.android.internal.R.string.config_qualified_networks_service_class); PersistableBundle b = mCarrierConfigManager.getConfigForSubId(mPhone.getSubId()); if (b != null) { // If carrier config overrides it, use the one from carrier config String carrierConfigClassName = b.getString(CarrierConfigManager .KEY_CARRIER_QUALIFIED_NETWORKS_SERVICE_CLASS_OVERRIDE_STRING); if (!TextUtils.isEmpty(carrierConfigClassName)) { if (DBG) log("Found carrier config override " + carrierConfigClassName); className = carrierConfigClassName; } } return className; } private @NonNull List<QualifiedNetworks> getQualifiedNetworksList() { List<QualifiedNetworks> qualifiedNetworksList = new ArrayList<>(); Loading
src/java/com/android/internal/telephony/dataconnection/DataServiceManager.java +60 −3 Original line number Diff line number Diff line Loading @@ -285,12 +285,22 @@ public class DataServiceManager extends Handler { } private void bindDataService() { Intent intent = null; String packageName = getDataServicePackageName(); String className = getDataServiceClassName(); if (TextUtils.isEmpty(packageName)) { loge("Can't find the binding package"); return; } if (TextUtils.isEmpty(className)) { intent = new Intent(DataService.SERVICE_INTERFACE); intent.setPackage(packageName); } else { ComponentName cm = new ComponentName(packageName, className); intent = new Intent(DataService.SERVICE_INTERFACE).setComponent(cm); } if (TextUtils.equals(packageName, mTargetBindingPackageName)) { if (DBG) log("Service " + packageName + " already bound or being bound."); return; Loading @@ -316,9 +326,7 @@ public class DataServiceManager extends Handler { try { mServiceConnection = new CellularDataServiceConnection(); if (!mPhone.getContext().bindService( new Intent(DataService.SERVICE_INTERFACE).setPackage(packageName), mServiceConnection, Context.BIND_AUTO_CREATE)) { intent, mServiceConnection, Context.BIND_AUTO_CREATE)) { loge("Cannot bind to the data service."); return; } Loading Loading @@ -399,6 +407,55 @@ public class DataServiceManager extends Handler { return packageName; } /** * Get the data service class name for our current transport type. * * @return class name of the data service package for the the current transportType. */ private String getDataServiceClassName() { return getDataServiceClassName(mTransportType); } /** * Get the data service class by transport type. * * @param transportType either WWAN or WLAN * @return class name of the data service package for the specified transportType. */ private String getDataServiceClassName(int transportType) { String className; int resourceId; String carrierConfig; switch (transportType) { case AccessNetworkConstants.TRANSPORT_TYPE_WWAN: resourceId = com.android.internal.R.string.config_wwan_data_service_class; carrierConfig = CarrierConfigManager .KEY_CARRIER_DATA_SERVICE_WWAN_CLASS_OVERRIDE_STRING; break; case AccessNetworkConstants.TRANSPORT_TYPE_WLAN: resourceId = com.android.internal.R.string.config_wlan_data_service_class; carrierConfig = CarrierConfigManager .KEY_CARRIER_DATA_SERVICE_WLAN_CLASS_OVERRIDE_STRING; break; default: throw new IllegalStateException("Transport type not WWAN or WLAN. type=" + transportType); } // Read package name from resource overlay className = mPhone.getContext().getResources().getString(resourceId); PersistableBundle b = mCarrierConfigManager.getConfigForSubId(mPhone.getSubId()); if (b != null && !TextUtils.isEmpty(b.getString(carrierConfig))) { // If carrier config overrides it, use the one from carrier config className = b.getString(carrierConfig, className); } return className; } private void sendCompleteMessage(Message msg, int code) { if (msg != null) { msg.arg1 = code; Loading