summaryrefslogtreecommitdiff
path: root/InCallUI
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2015-04-16 21:09:48 +0000
committerandroid-build-merger <android-build-merger@google.com>2015-04-16 21:09:48 +0000
commitbf637f2988d67332e56e39578738d6e4cd86df00 (patch)
tree143c7c544a654c8b37524ca1aa9668c97ec47857 /InCallUI
parent65a246396debcf45cd5ea934c8d0cb218ef59b26 (diff)
parentdc3122e9d7bc0c6f5fef00bed36bb300c40afadf (diff)
Show IMS Conference StatusHints in InCall.
automerge: 1838e77 * commit '1838e77845e2ba822bc7f510515b50cf00ddc2a4': Show IMS Conference StatusHints in InCall.
Diffstat (limited to 'InCallUI')
-rw-r--r--InCallUI/res/layout/primary_call_info.xml3
-rw-r--r--InCallUI/src/com/android/incallui/CallCardFragment.java20
-rw-r--r--InCallUI/src/com/android/incallui/CallCardPresenter.java9
3 files changed, 20 insertions, 12 deletions
diff --git a/InCallUI/res/layout/primary_call_info.xml b/InCallUI/res/layout/primary_call_info.xml
index 8f0c0e24d..207b95bef 100644
--- a/InCallUI/res/layout/primary_call_info.xml
+++ b/InCallUI/res/layout/primary_call_info.xml
@@ -44,7 +44,8 @@
<ImageView android:id="@+id/callStateIcon"
android:layout_width="16dp"
android:layout_height="match_parent"
- android:layout_marginEnd="8dp"
+ android:layout_marginStart="6dp"
+ android:layout_marginEnd="10dp"
android:tint="@color/incall_accent_color"
android:alpha="0.0"
android:scaleType="center"
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java
index 88ab73a60..c6f61be01 100644
--- a/InCallUI/src/com/android/incallui/CallCardFragment.java
+++ b/InCallUI/src/com/android/incallui/CallCardFragment.java
@@ -482,10 +482,12 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
String connectionLabel,
Drawable callStateIcon,
String gatewayNumber,
- boolean isWifi) {
+ boolean isWifi,
+ boolean isConference) {
boolean isGatewayCall = !TextUtils.isEmpty(gatewayNumber);
CharSequence callStateLabel = getCallStateLabelFromState(state, videoState,
- sessionModificationState, disconnectCause, connectionLabel, isGatewayCall, isWifi);
+ sessionModificationState, disconnectCause, connectionLabel, isGatewayCall, isWifi,
+ isConference);
Log.v(this, "setCallState " + callStateLabel);
Log.v(this, "DisconnectCause " + disconnectCause.toString());
@@ -651,15 +653,17 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
* 3. Incoming calls will only display "Incoming via..." for accounts.
* 4. Video calls, and session modification states (eg. requesting video).
* 5. Incoming and active Wi-Fi calls will show label provided by hint.
+ *
+ * TODO: Move this to the CallCardPresenter.
*/
private CharSequence getCallStateLabelFromState(int state, int videoState,
int sessionModificationState, DisconnectCause disconnectCause, String label,
- boolean isGatewayCall, boolean isWifi) {
+ boolean isGatewayCall, boolean isWifi, boolean isConference) {
final Context context = getView().getContext();
CharSequence callStateLabel = null; // Label to display as part of the call banner
- boolean isSpecialCall = label != null;
- boolean isAccount = isSpecialCall && !isGatewayCall;
+ boolean hasSuggestedLabel = label != null;
+ boolean isAccount = hasSuggestedLabel && !isGatewayCall;
switch (state) {
case Call.State.IDLE:
@@ -668,7 +672,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
case Call.State.ACTIVE:
// We normally don't show a "call state label" at all in this state
// (but we can use the call state label to display the provider name).
- if (isAccount || isWifi) {
+ if ((isAccount || isWifi || isConference) && hasSuggestedLabel) {
callStateLabel = label;
} else if (sessionModificationState
== Call.SessionModificationState.REQUEST_FAILED) {
@@ -688,7 +692,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
break;
case Call.State.CONNECTING:
case Call.State.DIALING:
- if (isSpecialCall && !isWifi) {
+ if (hasSuggestedLabel && !isWifi) {
callStateLabel = context.getString(R.string.calling_via_template, label);
} else {
callStateLabel = context.getString(R.string.card_title_dialing);
@@ -699,7 +703,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr
break;
case Call.State.INCOMING:
case Call.State.CALL_WAITING:
- if (isWifi) {
+ if (isWifi && hasSuggestedLabel) {
callStateLabel = label;
} else if (isAccount) {
callStateLabel = context.getString(R.string.incoming_via_template, label);
diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java
index cb17b5e90..89cb659d0 100644
--- a/InCallUI/src/com/android/incallui/CallCardPresenter.java
+++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java
@@ -244,7 +244,8 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
null,
null,
null,
- false /* isWifi */);
+ false /* isWifi */,
+ false /* isConference */);
getUi().showHdAudioIndicator(false);
}
@@ -291,7 +292,8 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
getConnectionLabel(),
getCallStateIcon(),
getGatewayNumber(),
- primaryCallCan(Details.CAPABILITY_WIFI));
+ primaryCallCan(Details.CAPABILITY_WIFI),
+ mPrimary.isConferenceCall());
boolean showHdAudioIndicator =
isPrimaryCallActive() && primaryCallCan(Details.CAPABILITY_HIGH_DEF_AUDIO);
@@ -762,7 +764,8 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi>
String providerLabel, boolean isConference, boolean isVideoCall);
void setCallState(int state, int videoState, int sessionModificationState,
DisconnectCause disconnectCause, String connectionLabel,
- Drawable connectionIcon, String gatewayNumber, boolean isWifi);
+ Drawable connectionIcon, String gatewayNumber, boolean isWifi,
+ boolean isConference);
void setPrimaryCallElapsedTime(boolean show, long duration);
void setPrimaryName(String name, boolean nameIsNumber);
void setPrimaryImage(Drawable image);