GSI updates for frameworks/opt/telephony

Change-Id: Ia470aa9e91c81e97669b3d48368f6d26debd9e7a
diff --git a/patches/frameworks/opt/telephony/0001-Add-route-to-gateway-on-null-netmask.patch b/patches/frameworks/opt/telephony/0001-Add-route-to-gateway-on-null-netmask.patch
index 4e6bbcb..5ec625a 100644
--- a/patches/frameworks/opt/telephony/0001-Add-route-to-gateway-on-null-netmask.patch
+++ b/patches/frameworks/opt/telephony/0001-Add-route-to-gateway-on-null-netmask.patch
@@ -1,7 +1,7 @@
-From 0bd942753da9a6c8d7207afb1e0354a9873ddb69 Mon Sep 17 00:00:00 2001
+From 64b10816b1dc84676af92096fbe64efbde502121 Mon Sep 17 00:00:00 2001
 From: Pierre-Hugues Husson <phh@phh.me>
 Date: Thu, 16 Aug 2018 22:12:46 +0200
-Subject: [PATCH 1/2] Add route to gateway on null netmask
+Subject: [PATCH 1/5] Add route to gateway on null netmask
 
 Galaxy S9 returns empty prefix
 
@@ -11,7 +11,7 @@
  1 file changed, 17 insertions(+)
 
 diff --git a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
-index 0696aa931..11947a5af 100644
+index dafab121c..643f488c8 100644
 --- a/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
 +++ b/src/java/com/android/internal/telephony/dataconnection/DataConnection.java
 @@ -24,6 +24,7 @@ import android.content.Context;
diff --git a/patches/frameworks/opt/telephony/0002-Telephony-Don-not-call-onUssdRelease-for-Huawei-RIL.patch b/patches/frameworks/opt/telephony/0002-Telephony-Don-not-call-onUssdRelease-for-Huawei-RIL.patch
new file mode 100644
index 0000000..b9b99ac
--- /dev/null
+++ b/patches/frameworks/opt/telephony/0002-Telephony-Don-not-call-onUssdRelease-for-Huawei-RIL.patch
@@ -0,0 +1,33 @@
+From c67a53577ca937fdad4cf359f04e89292aa5c8fe Mon Sep 17 00:00:00 2001
+From: Artem Borisov <dedsa2002@gmail.com>
+Date: Sat, 10 Nov 2018 17:19:17 +0000
+Subject: [PATCH 2/5] Telephony: Don not call onUssdRelease for Huawei RIL
+
+Huawei RIL doesn't seem to work properly with USSD_MODE_NW_RELEASE,
+always releasing USSD when it should be finished instead.
+Let's explicitly call onUssdFinished in this case.
+
+Change-Id: I69faed1c51d4582834879975d6ab13daf7f48ad4
+
+Conflicts:
+	src/java/com/android/internal/telephony/GsmCdmaPhone.java
+---
+ src/java/com/android/internal/telephony/GsmCdmaPhone.java | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+index 1fa1621b6..a5ffb5da0 100644
+--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
++++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+@@ -2154,6 +2154,8 @@ public class GsmCdmaPhone extends Phone {
+             if (isUssdRelease) {
+                 if (SystemProperties.getBoolean("ro.telephony.isHisiRIL", false)) {
+                     found.onUssdFinished(ussdMessage, isUssdRequest);
++                } else if (SystemProperties.getBoolean("persist.sys.radio.huawei", false)) {
++                    found.onUssdFinished(ussdMessage, isUssdRequest);
+                 } else {
+                     found.onUssdRelease();
+                 }
+-- 
+2.17.1
+
diff --git a/patches/frameworks/opt/telephony/0003-Make-MAX_CONNECTIONS_GSM-settable-from-property.patch b/patches/frameworks/opt/telephony/0003-Make-MAX_CONNECTIONS_GSM-settable-from-property.patch
new file mode 100644
index 0000000..96ae042
--- /dev/null
+++ b/patches/frameworks/opt/telephony/0003-Make-MAX_CONNECTIONS_GSM-settable-from-property.patch
@@ -0,0 +1,28 @@
+From c4631974c0ca50d8444744fa7ce4bfcb8fe1a1d8 Mon Sep 17 00:00:00 2001
+From: Pierre-Hugues Husson <phh@phh.me>
+Date: Fri, 28 Dec 2018 13:06:32 +0100
+Subject: [PATCH 3/5] Make MAX_CONNECTIONS_GSM settable from property
+
+cf https://github.com/phhusson/treble_experimentations/issues/110
+
+Change-Id: I5df755535aa5ded704d4c33122d63ac2481bd5f6
+---
+ src/java/com/android/internal/telephony/GsmCdmaCallTracker.java | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/java/com/android/internal/telephony/GsmCdmaCallTracker.java b/src/java/com/android/internal/telephony/GsmCdmaCallTracker.java
+index f4c561c29..b42caf47c 100755
+--- a/src/java/com/android/internal/telephony/GsmCdmaCallTracker.java
++++ b/src/java/com/android/internal/telephony/GsmCdmaCallTracker.java
+@@ -62,7 +62,7 @@ public class GsmCdmaCallTracker extends CallTracker {
+ 
+     //***** Constants
+ 
+-    public static final int MAX_CONNECTIONS_GSM = 19;   //7 allowed in GSM + 12 from IMS for SRVCC
++    public static final int MAX_CONNECTIONS_GSM = android.os.SystemProperties.getInt("persist.sys.phh.radio.max_connections_gsm", 19);   //7 allowed in GSM + 12 from IMS for SRVCC
+     private static final int MAX_CONNECTIONS_PER_CALL_GSM = 5; //only 5 connections allowed per call
+ 
+     private static final int MAX_CONNECTIONS_CDMA = 8;
+-- 
+2.17.1
+
diff --git a/patches/frameworks/opt/telephony/0004-Choose-a-more-generic-prop.patch b/patches/frameworks/opt/telephony/0004-Choose-a-more-generic-prop.patch
new file mode 100644
index 0000000..74e8e5a
--- /dev/null
+++ b/patches/frameworks/opt/telephony/0004-Choose-a-more-generic-prop.patch
@@ -0,0 +1,31 @@
+From e6cf4987afa6d20418e59ed7426d3aa8ad99fdaa Mon Sep 17 00:00:00 2001
+From: Dil3mm4 <dil3mm4.dev@gmail.com>
+Date: Sat, 17 Nov 2018 18:18:42 +0000
+Subject: [PATCH 4/5] Choose a more generic prop.
+
+Since USSD it's a problem over MTK too and not only on Kirin, let's be more generic.
+
+Change-Id: Icf1700f55be40915f9c64059019287f300d81405
+
+Conflicts:
+	src/java/com/android/internal/telephony/GsmCdmaPhone.java
+---
+ src/java/com/android/internal/telephony/GsmCdmaPhone.java | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+index a5ffb5da0..a1840aa43 100644
+--- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java
++++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java
+@@ -2154,7 +2154,7 @@ public class GsmCdmaPhone extends Phone {
+             if (isUssdRelease) {
+                 if (SystemProperties.getBoolean("ro.telephony.isHisiRIL", false)) {
+                     found.onUssdFinished(ussdMessage, isUssdRequest);
+-                } else if (SystemProperties.getBoolean("persist.sys.radio.huawei", false)) {
++                } else if (SystemProperties.getBoolean("persist.sys.radio.ussd.fix", false)) {
+                     found.onUssdFinished(ussdMessage, isUssdRequest);
+                 } else {
+                     found.onUssdRelease();
+-- 
+2.17.1
+
diff --git a/patches/frameworks/opt/telephony/0005-Add-a-property-to-force-all-APNs-to-be-modemCognitiv.patch b/patches/frameworks/opt/telephony/0005-Add-a-property-to-force-all-APNs-to-be-modemCognitiv.patch
new file mode 100644
index 0000000..29020f6
--- /dev/null
+++ b/patches/frameworks/opt/telephony/0005-Add-a-property-to-force-all-APNs-to-be-modemCognitiv.patch
@@ -0,0 +1,38 @@
+From fcb73a7bdf4c39bfd3f22c2fef324d5c82679263 Mon Sep 17 00:00:00 2001
+From: Pierre-Hugues Husson <phh@phh.me>
+Date: Tue, 26 Feb 2019 23:13:21 +0100
+Subject: [PATCH 5/5] Add a property to force all APNs to be modemCognitive.
+ Needed on some MTK modems
+
+Change-Id: I111f1375f3f11e81251eaf782c84a0bef345366c
+
+Conflicts:
+	src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+---
+ .../internal/telephony/dataconnection/DcTracker.java        | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+index 7de9392a9..bb935547d 100644
+--- a/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
++++ b/src/java/com/android/internal/telephony/dataconnection/DcTracker.java
+@@ -3336,12 +3336,14 @@ public class DcTracker extends Handler {
+         notifyOffApnsOfAvailability(reason);
+     }
+ 
+-    protected void setDataProfilesAsNeeded() {
++    private void setDataProfilesAsNeeded() {
++        boolean forceCognitive = SystemProperties.getBoolean("persist.sys.phh.radio.force_cognitive", false);
++
+         if (DBG) log("setDataProfilesAsNeeded");
+         if (mAllApnSettings != null && !mAllApnSettings.isEmpty()) {
+             ArrayList<DataProfile> dps = new ArrayList<DataProfile>();
+             for (ApnSetting apn : mAllApnSettings) {
+-                if (apn.modemCognitive) {
++                if (apn.modemCognitive || forceCognitive) {
+                     DataProfile dp = createDataProfile(apn);
+                     if (!dps.contains(dp)) {
+                         dps.add(dp);
+-- 
+2.17.1
+