Add WFC label for incoming, update on state change.
Bug: 19866988
Change-Id: Ie97a4ae343fcc5adc6629ea5b5a28b4dea7604b8
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3b11821..abeeee0 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -1283,6 +1283,9 @@
<!-- Configuration setting for world mode Format is <true;GID if any to be checked>-->
<string translatable="false" name="config_world_mode"/>
+ <!-- Status hint label for an incoming call over a wifi network which has not been accepted yet.
+ [CHAR LIMIT=25] -->
+ <string name="status_hint_label_incoming_wifi_call">Incoming Wi-Fi call</string>
<!-- Status hint label for a call being made over a wifi network. [CHAR LIMIT=25] -->
<string name="status_hint_label_wifi_call">Wi-Fi call</string>
diff --git a/src/com/android/services/telephony/TelephonyConnection.java b/src/com/android/services/telephony/TelephonyConnection.java
index d4eadea..be04641 100644
--- a/src/com/android/services/telephony/TelephonyConnection.java
+++ b/src/com/android/services/telephony/TelephonyConnection.java
@@ -267,6 +267,7 @@
@Override
public void onStateChanged(int state) {
Log.v(this, "onStateChanged, state: " + Connection.stateToString(state));
+ updateStatusHints();
}
@Override
@@ -794,19 +795,7 @@
public void setWifi(boolean isWifi) {
mIsWifi = isWifi;
updateConnectionCapabilities();
-
- if (mIsWifi && mOriginalConnection.isIncoming()) {
- Context context = getPhone().getContext();
- ComponentName componentName =
- new ComponentName(context, TelephonyConnectionService.class);
- setStatusHints(new StatusHints(
- new ComponentName(context, TelephonyConnectionService.class),
- context.getString(R.string.status_hint_label_wifi_call),
- R.drawable.ic_signal_wifi_4_bar_24dp,
- null /* extras */));
- } else {
- setStatusHints(null);
- }
+ updateStatusHints();
}
/**
@@ -879,6 +868,24 @@
}
}
+ private void updateStatusHints() {
+ if (mIsWifi && (mOriginalConnection.getState() == Call.State.INCOMING
+ || mOriginalConnection.getState() == Call.State.ACTIVE)) {
+ int labelId = mOriginalConnection.getState() == Call.State.INCOMING
+ ? R.string.status_hint_label_incoming_wifi_call
+ : R.string.status_hint_label_wifi_call;
+
+ Context context = getPhone().getContext();
+ setStatusHints(new StatusHints(
+ new ComponentName(context, TelephonyConnectionService.class),
+ context.getString(labelId),
+ R.drawable.ic_signal_wifi_4_bar_24dp,
+ null /* extras */));
+ } else {
+ setStatusHints(null);
+ }
+ }
+
/**
* Register a listener for {@link TelephonyConnection} specific triggers.
* @param l The instance of the listener to add