Merge cherrypicks of ['googleplex-android-review.googlesource.com/28172376'] into 24Q3-release. Change-Id: Ic8d1854219bc6e202e66f96b868c1534df148bfd
diff --git a/satellite_client/src/android/telephony/satellite/wrapper/SatelliteManagerWrapper.java b/satellite_client/src/android/telephony/satellite/wrapper/SatelliteManagerWrapper.java index 59045f6..aab002a 100644 --- a/satellite_client/src/android/telephony/satellite/wrapper/SatelliteManagerWrapper.java +++ b/satellite_client/src/android/telephony/satellite/wrapper/SatelliteManagerWrapper.java
@@ -102,8 +102,8 @@ SatelliteSupportedStateCallbackWrapper, SatelliteSupportedStateCallback> sSatelliteSupportedStateCallbackWrapperMap = new ConcurrentHashMap<>(); - private static final ConcurrentHashMap< - CarrierRoamingNtnModeListenerWrapper, TelephonyCallback.CarrierRoamingNtnModeListener> + private static final ConcurrentHashMap<CarrierRoamingNtnModeListenerWrapper, + CarrierRoamingNtnModeListener> sCarrierRoamingNtnModeListenerWrapperMap = new ConcurrentHashMap<>(); private static final ConcurrentHashMap<SatelliteCommunicationAllowedStateCallbackWrapper, @@ -823,31 +823,43 @@ } } + private class CarrierRoamingNtnModeListener extends TelephonyCallback + implements TelephonyCallback.CarrierRoamingNtnModeListener { + + private CarrierRoamingNtnModeListenerWrapper mListenerWrapper; + + public CarrierRoamingNtnModeListener(CarrierRoamingNtnModeListenerWrapper listenerWrapper) { + mListenerWrapper = listenerWrapper; + } + + @Override + public void onCarrierRoamingNtnModeChanged(boolean active) { + logd("onCarrierRoamingNtnModeChanged: active=" + active); + mListenerWrapper.onCarrierRoamingNtnModeChanged(active); + } + } + /** Register for carrier roaming non-terrestrial network mode changes. */ public void registerForCarrierRoamingNtnModeChanged(int subId, @NonNull @CallbackExecutor Executor executor, @NonNull CarrierRoamingNtnModeListenerWrapper listener) { - TelephonyCallback.CarrierRoamingNtnModeListener internalListener = new TelephonyCallback - .CarrierRoamingNtnModeListener() { - @Override - public void onCarrierRoamingNtnModeChanged(boolean active) { - listener.onCarrierRoamingNtnModeChanged(active); - } - }; + logd("registerForCarrierRoamingNtnModeChanged: subId=" + subId); + CarrierRoamingNtnModeListener internalListener = new CarrierRoamingNtnModeListener(listener); sCarrierRoamingNtnModeListenerWrapperMap.put(listener, internalListener); TelephonyManager tm = mTelephonyManager.createForSubscriptionId(subId); - tm.registerTelephonyCallback(executor, (TelephonyCallback) internalListener); + tm.registerTelephonyCallback(executor, internalListener); } /** Unregister for carrier roaming non-terrestrial network mode changes. */ public void unregisterForCarrierRoamingNtnModeChanged(int subId, @NonNull CarrierRoamingNtnModeListenerWrapper listener) { - TelephonyCallback.CarrierRoamingNtnModeListener internalListener = + logd("unregisterForCarrierRoamingNtnModeChanged: subId=" + subId); + CarrierRoamingNtnModeListener internalListener = sCarrierRoamingNtnModeListenerWrapperMap.get(listener); if (internalListener != null) { TelephonyManager tm = mTelephonyManager.createForSubscriptionId(subId); - tm.unregisterTelephonyCallback((TelephonyCallback) internalListener); + tm.unregisterTelephonyCallback(internalListener); } }