Merge "Fixed data icon disappeared issue"
diff --git a/src/java/com/android/internal/telephony/CommandsInterface.java b/src/java/com/android/internal/telephony/CommandsInterface.java
index a6ff3fa..8a5cbda 100644
--- a/src/java/com/android/internal/telephony/CommandsInterface.java
+++ b/src/java/com/android/internal/telephony/CommandsInterface.java
@@ -1599,6 +1599,17 @@
default void isNrDualConnectivityEnabled(Message message, WorkSource workSource) {}
/**
+ * Enable or disable Voice over NR (VoNR)
+ * @param enabled enable or disable VoNR.
+ */
+ default void setVoNrEnabled(boolean enabled, Message message, WorkSource workSource) {}
+
+ /**
+ * Is voice over NR enabled
+ */
+ default void isVoNrEnabled(Message message, WorkSource workSource) {}
+
+ /**
* Request to enable/disable network state change notifications when
* location information (lac and/or cid) has changed.
*
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index 9d16f1f..c718dbb 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -4656,6 +4656,21 @@
mCi.setSimCardPower(state, result, workSource);
}
+ /**
+ * Enable or disable Voice over NR (VoNR)
+ * @param enabled enable or disable VoNR.
+ **/
+ public void setVoNrEnabled(boolean enabled, Message result, WorkSource workSource) {
+ mCi.setVoNrEnabled(enabled, result, workSource);
+ }
+
+ /**
+ * Is voice over NR enabled
+ */
+ public void isVoNrEnabled(Message message, WorkSource workSource) {
+ mCi.isVoNrEnabled(message, workSource);
+ }
+
public void setCarrierTestOverride(String mccmnc, String imsi, String iccid, String gid1,
String gid2, String pnn, String spn, String carrierPrivilegeRules, String apn) {
}
diff --git a/src/java/com/android/internal/telephony/RIL.java b/src/java/com/android/internal/telephony/RIL.java
index 29e12e1..dccd4f9 100644
--- a/src/java/com/android/internal/telephony/RIL.java
+++ b/src/java/com/android/internal/telephony/RIL.java
@@ -64,6 +64,7 @@
import android.os.PowerManager.WakeLock;
import android.os.RemoteException;
import android.os.SystemClock;
+import android.os.SystemProperties;
import android.os.WorkSource;
import android.provider.Settings;
import android.sysprop.TelephonyProperties;
@@ -235,6 +236,8 @@
final Integer mPhoneId;
+ private static final String PROPERTY_IS_VONR_ENABLED = "persist.radio.is_vonr_enabled_";
+
/**
* A set that records if radio service is disabled in hal for
* a specific phone id slot to avoid further getService request.
@@ -3096,6 +3099,46 @@
}
}
+ private void setVoNrEnabled(boolean enabled) {
+ SystemProperties.set(PROPERTY_IS_VONR_ENABLED + mPhoneId, String.valueOf(enabled));
+ }
+
+ private boolean isVoNrEnabled() {
+ return SystemProperties.getBoolean(PROPERTY_IS_VONR_ENABLED + mPhoneId, true);
+ }
+
+ /**
+ * Is voice over NR enabled
+ */
+ @Override
+ public void isVoNrEnabled(Message result, WorkSource workSource) {
+ boolean isEnabled = isVoNrEnabled();
+ if (result != null) {
+ AsyncResult.forMessage(result, isEnabled, null);
+ result.sendToTarget();
+ }
+ }
+
+ /**
+ * Enable or disable Voice over NR (VoNR)
+ * @param enabled enable or disable VoNR.
+ */
+ @Override
+ public void setVoNrEnabled(boolean enabled, Message result, WorkSource workSource) {
+ setVoNrEnabled(enabled);
+ /* calling a query api to let HAL know that VoNREnabled state is updated.
+ This is a temporary work around as new HIDL API is not allowed.
+ HAL can check the value of PROPERTY_IS_VONR_ENABLED property to determine
+ if there is any change whenever it receives isNrDualConnectivityEnabled request.
+ This behavior will be removed in Android T.
+ */
+ isNrDualConnectivityEnabled(null, workSource);
+ if (result != null) {
+ AsyncResult.forMessage(result, null, null);
+ result.sendToTarget();
+ }
+ }
+
@Override
public void setCdmaSubscriptionSource(int cdmaSubscription , Message result) {
IRadio radioProxy = getRadioProxy(result);