diff options
author | Qi Wang <wangqi@google.com> | 2016-03-01 18:35:32 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2016-03-01 18:35:32 +0000 |
commit | af5880f151fbcda28dcb16f59c040b96fa4807d9 (patch) | |
tree | 41e22d86ec3c937e8779f52bf5228894d92b537f /InCallUI | |
parent | 9ae9630e9caad36bd338a4cb5e009d47adc9223e (diff) | |
parent | e1c196e04154815e2fb55801af73beb9fb2aa324 (diff) |
Merge "Accessibility: announce the active call after switching calls." into nyc-dev
Diffstat (limited to 'InCallUI')
-rw-r--r-- | InCallUI/src/com/android/incallui/CallCardFragment.java | 17 | ||||
-rw-r--r-- | InCallUI/src/com/android/incallui/CallCardPresenter.java | 10 |
2 files changed, 20 insertions, 7 deletions
diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java index 9ba4a2b70..785d3d3aa 100644 --- a/InCallUI/src/com/android/incallui/CallCardFragment.java +++ b/InCallUI/src/com/android/incallui/CallCardFragment.java @@ -1124,10 +1124,19 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr public void dispatchPopulateAccessibilityEvent(AccessibilityEvent event) { if (event.getEventType() == AccessibilityEvent.TYPE_ANNOUNCEMENT) { - dispatchPopulateAccessibilityEvent(event, mCallStateLabel); - dispatchPopulateAccessibilityEvent(event, mPrimaryName); - dispatchPopulateAccessibilityEvent(event, mCallTypeLabel); - dispatchPopulateAccessibilityEvent(event, mPhoneNumber); + // Indicate this call is in active if no label is provided. The label is empty when + // the call is in active, not in other status such as onhold or dialing etc. + if (!mCallStateLabel.isShown() || TextUtils.isEmpty(mCallStateLabel.getText())) { + event.getText().add( + TextUtils.expandTemplate( + getResources().getText(R.string.accessibility_call_is_active), + mPrimaryName.getText())); + } else { + dispatchPopulateAccessibilityEvent(event, mCallStateLabel); + dispatchPopulateAccessibilityEvent(event, mPrimaryName); + dispatchPopulateAccessibilityEvent(event, mCallTypeLabel); + dispatchPopulateAccessibilityEvent(event, mPhoneNumber); + } return; } dispatchPopulateAccessibilityEvent(event, mCallStateLabel); diff --git a/InCallUI/src/com/android/incallui/CallCardPresenter.java b/InCallUI/src/com/android/incallui/CallCardPresenter.java index dd255e09e..bf7b4769b 100644 --- a/InCallUI/src/com/android/incallui/CallCardPresenter.java +++ b/InCallUI/src/com/android/incallui/CallCardPresenter.java @@ -337,7 +337,7 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> getUi().setEndCallButtonEnabled(shouldShowEndCallButton(mPrimary, callState), callState != Call.State.INCOMING /* animate */); - maybeSendAccessibilityEvent(oldState, newState); + maybeSendAccessibilityEvent(oldState, newState, primaryChanged); } @Override @@ -1062,7 +1062,8 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> return true; } - private void maybeSendAccessibilityEvent(InCallState oldState, InCallState newState) { + private void maybeSendAccessibilityEvent(InCallState oldState, InCallState newState, + boolean primaryChanged) { if (mContext == null) { return; } @@ -1071,8 +1072,11 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> if (!am.isEnabled()) { return; } + // Announce the current call if it's new incoming/outgoing call or primary call is changed + // due to switching calls between two ongoing calls (one is on hold). if ((oldState != InCallState.OUTGOING && newState == InCallState.OUTGOING) - || (oldState != InCallState.INCOMING && newState == InCallState.INCOMING)) { + || (oldState != InCallState.INCOMING && newState == InCallState.INCOMING) + || primaryChanged) { if (getUi() != null) { getUi().sendAccessibilityAnnouncement(); } |