aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBenergy Meenan Ravuri <bravuri@codeaurora.org>2016-04-04 20:30:34 +0530
committerLinux Build Service Account <lnxbuild@localhost>2016-08-24 08:12:32 -0600
commit7d0fa830874b20844d525218ce7bd54df8334566 (patch)
treebea2fff02e7e4808ca05b60139f208fd19fc398c
parentb6f78ff7167f0c1e555fb9df0074e9e0179d5ad9 (diff)
downloadandroid_frameworks_opt_telephony-7d0fa830874b20844d525218ce7bd54df8334566.tar.gz
android_frameworks_opt_telephony-7d0fa830874b20844d525218ce7bd54df8334566.tar.bz2
android_frameworks_opt_telephony-7d0fa830874b20844d525218ce7bd54df8334566.zip
IMS: Update VoLTE, VoWifi icons based on IMS capabilities
Handle IMS capabilities changed indication and update service state. Change-Id: I54e3a51c2756c5e399432f89fb6250c5a2ae93a9 CRs-Fixed: 998552
-rw-r--r--src/java/com/android/internal/telephony/Phone.java14
-rw-r--r--src/java/com/android/internal/telephony/ServiceStateTracker.java17
-rw-r--r--src/java/com/android/internal/telephony/imsphone/ImsPhone.java4
-rw-r--r--src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java18
4 files changed, 52 insertions, 1 deletions
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index 0277a45a6..81ab185b9 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -3235,6 +3235,20 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
}
/**
+ * Determines if video wifi calling enabled for the phone
+ *
+ * @return {@code true} if video wifi calling is enabled, {@code false} otherwise.
+ */
+ public boolean isVideoWifiCallingEnabled() {
+ Phone imsPhone = mImsPhone;
+ if ((imsPhone != null)
+ && (imsPhone.getServiceState().getState() == ServiceState.STATE_IN_SERVICE)) {
+ return imsPhone.isVideoWifiCallingEnabled();
+ }
+ return false;
+ }
+
+ /**
* Returns the status of Link Capacity Estimation (LCE) service.
*/
public int getLceStatus() {
diff --git a/src/java/com/android/internal/telephony/ServiceStateTracker.java b/src/java/com/android/internal/telephony/ServiceStateTracker.java
index 20bfeec03..5f7478dd0 100644
--- a/src/java/com/android/internal/telephony/ServiceStateTracker.java
+++ b/src/java/com/android/internal/telephony/ServiceStateTracker.java
@@ -1184,6 +1184,7 @@ public class ServiceStateTracker extends Handler {
case EVENT_IMS_CAPABILITY_CHANGED:
if (DBG) log("EVENT_IMS_CAPABILITY_CHANGED");
updateSpnDisplay();
+ updateRilImsRadioTechnology();
break;
//CDMA
@@ -2421,6 +2422,18 @@ public class ServiceStateTracker extends Handler {
}
}
+ private void updateRilImsRadioTechnology() {
+ int imsRadioTechnology = mPhone.getImsPhone() != null ?
+ mPhone.getImsPhone().getServiceState().getRilImsRadioTechnology() :
+ ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN;
+ if (imsRadioTechnology != mSS.getRilImsRadioTechnology()) {
+ Rlog.i(LOG_TAG, "updateRilImsRadioTechnology : Old ims RAT: " +
+ mSS.getRilImsRadioTechnology() + " new ims RAT: " + imsRadioTechnology);
+ mSS.setRilImsRadioTechnology(imsRadioTechnology);
+ mPhone.notifyServiceStateChanged(mSS);
+ }
+ }
+
/**
* A complete "service state" from our perspective is
* composed of a handful of separate requests to the radio.
@@ -2595,6 +2608,8 @@ public class ServiceStateTracker extends Handler {
}
}
+ // Ims call capable rat will be filled as part of service state changed.
+ mNewSS.setRilImsRadioTechnology(mSS.getRilImsRadioTechnology());
// swap mSS and mNewSS to put new state in mSS
ServiceState tss = mSS;
mSS = mNewSS;
@@ -2819,6 +2834,8 @@ public class ServiceStateTracker extends Handler {
mNewSS.getVoiceRegState(), mNewSS.getDataRegState());
}
+ // Ims call capable rat will be filled as part of service state changed.
+ mNewSS.setRilImsRadioTechnology(mSS.getRilImsRadioTechnology());
ServiceState tss;
tss = mSS;
mSS = mNewSS;
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
index 7190d3a95..3911f9715 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhone.java
@@ -1431,6 +1431,10 @@ public class ImsPhone extends ImsPhoneBase {
return mCT.isVideoCallEnabled();
}
+ public boolean isVideoWifiCallingEnabled() {
+ return mCT.isVideoWifiCallingEnabled();
+ }
+
@Override
public Phone getDefaultPhone() {
return mDefaultPhone;
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
index 317e372cf..efb984829 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java
@@ -1904,7 +1904,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
for (ImsPhoneConnection connection : mConnections) {
connection.updateWifiState();
}
-
+ mPhone.getServiceState().setRilImsRadioTechnology(getRilImsRadioTechnology());
mPhone.onFeatureCapabilityChanged();
mEventLog.writeOnImsCapabilities(mImsFeatureEnabled);
@@ -2163,6 +2163,22 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall {
|| mImsFeatureEnabled[ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_WIFI]);
}
+ public boolean isVideoWifiCallingEnabled() {
+ return mImsFeatureEnabled[ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_WIFI];
+ }
+
+ private int getRilImsRadioTechnology() {
+ int imsRadioTechnology = ServiceState.RIL_RADIO_TECHNOLOGY_UNKNOWN;
+ if (mImsFeatureEnabled[ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_LTE]
+ || mImsFeatureEnabled[ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_LTE]) {
+ imsRadioTechnology = ServiceState.RIL_RADIO_TECHNOLOGY_LTE;
+ } else if (mImsFeatureEnabled[ImsConfig.FeatureConstants.FEATURE_TYPE_VOICE_OVER_WIFI]
+ || mImsFeatureEnabled[ImsConfig.FeatureConstants.FEATURE_TYPE_VIDEO_OVER_WIFI]) {
+ imsRadioTechnology = ServiceState.RIL_RADIO_TECHNOLOGY_IWLAN;
+ }
+ return imsRadioTechnology;
+ }
+
@Override
public PhoneConstants.State getState() {
return mState;