From 9fd9be2bfdebc101869706cc23a252edfa0174b7 Mon Sep 17 00:00:00 2001 From: Michael Gernoth Date: Tue, 5 Jan 2016 21:41:15 +0100 Subject: ril: Fix data after reboot In previous versions, setPreferredNetworkType was called directly after startup while the modem was powered down so the correct network type was available while the modem is initializing. This changed in M and the preferred network type is set much later which causes the modem to not allow datacalls until it is rebooted again. Rebooting the modem the first time setPreferredNetworkType is encountered fixes this. Change-Id: I4a8540c9d8b092bf3516a767cf9ec25c2b09d1a1 --- .../com/android/internal/telephony/smdk4x12QComRIL.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/ril/telephony/java/com/android/internal/telephony/smdk4x12QComRIL.java b/ril/telephony/java/com/android/internal/telephony/smdk4x12QComRIL.java index 530ad80..68ba932 100644 --- a/ril/telephony/java/com/android/internal/telephony/smdk4x12QComRIL.java +++ b/ril/telephony/java/com/android/internal/telephony/smdk4x12QComRIL.java @@ -59,6 +59,8 @@ import com.android.internal.telephony.uicc.IccCardStatus; */ public class smdk4x12QComRIL extends RIL implements CommandsInterface { + private boolean setPreferredNetworkTypeSeen = false; + private AudioManager mAudioManager; private Object mSMSLock = new Object(); @@ -666,4 +668,17 @@ public class smdk4x12QComRIL extends RIL implements CommandsInterface { response.sendToTarget(); } } + + @Override + public void setPreferredNetworkType(int networkType , Message response) { + riljLog("setPreferredNetworkType: " + networkType); + + if (!setPreferredNetworkTypeSeen) { + riljLog("Need to reboot modem!"); + setRadioPower(false, null); + setPreferredNetworkTypeSeen = true; + } + + super.setPreferredNetworkType(networkType, response); + } } -- cgit v1.2.3