diff options
| author | Linux Build Service Account <lnxbuild@localhost> | 2015-03-21 08:51:11 -0700 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-03-21 08:51:11 -0700 |
| commit | 4fd0ca9427637e23e546854fce2b1e8d6e8a92eb (patch) | |
| tree | c10c5ea53dbd86a4b6cb1f81c8aa0f31175670b4 | |
| parent | 52ee1bd87ecb7af5fe4fe2de18f9f4fc97248f63 (diff) | |
| parent | eb01a1f7768720ff46d7a86f0c5320ea060dd3cd (diff) | |
| download | android_packages_apps_InCallUI-4fd0ca9427637e23e546854fce2b1e8d6e8a92eb.tar.gz android_packages_apps_InCallUI-4fd0ca9427637e23e546854fce2b1e8d6e8a92eb.tar.bz2 android_packages_apps_InCallUI-4fd0ca9427637e23e546854fce2b1e8d6e8a92eb.zip | |
Merge "Show HD audio icon."
| -rw-r--r-- | res/drawable-hdpi/ic_hd_audio.png | bin | 0 -> 386 bytes | |||
| -rw-r--r-- | res/drawable-mdpi/ic_hd_audio.png | bin | 0 -> 312 bytes | |||
| -rw-r--r-- | res/drawable-xhdpi/ic_hd_audio.png | bin | 0 -> 407 bytes | |||
| -rw-r--r-- | res/drawable-xxhdpi/ic_hd_audio.png | bin | 0 -> 564 bytes | |||
| -rw-r--r-- | res/drawable-xxxhdpi/ic_hd_audio.png | bin | 0 -> 638 bytes | |||
| -rw-r--r-- | src/com/android/incallui/CallCardFragment.java | 57 | ||||
| -rw-r--r-- | src/com/android/incallui/CallCardPresenter.java | 15 |
7 files changed, 46 insertions, 26 deletions
diff --git a/res/drawable-hdpi/ic_hd_audio.png b/res/drawable-hdpi/ic_hd_audio.png Binary files differnew file mode 100644 index 00000000..cccaf494 --- /dev/null +++ b/res/drawable-hdpi/ic_hd_audio.png diff --git a/res/drawable-mdpi/ic_hd_audio.png b/res/drawable-mdpi/ic_hd_audio.png Binary files differnew file mode 100644 index 00000000..6353b7ac --- /dev/null +++ b/res/drawable-mdpi/ic_hd_audio.png diff --git a/res/drawable-xhdpi/ic_hd_audio.png b/res/drawable-xhdpi/ic_hd_audio.png Binary files differnew file mode 100644 index 00000000..6d05d45f --- /dev/null +++ b/res/drawable-xhdpi/ic_hd_audio.png diff --git a/res/drawable-xxhdpi/ic_hd_audio.png b/res/drawable-xxhdpi/ic_hd_audio.png Binary files differnew file mode 100644 index 00000000..44294ba0 --- /dev/null +++ b/res/drawable-xxhdpi/ic_hd_audio.png diff --git a/res/drawable-xxxhdpi/ic_hd_audio.png b/res/drawable-xxxhdpi/ic_hd_audio.png Binary files differnew file mode 100644 index 00000000..459cd8f4 --- /dev/null +++ b/res/drawable-xxxhdpi/ic_hd_audio.png diff --git a/src/com/android/incallui/CallCardFragment.java b/src/com/android/incallui/CallCardFragment.java index 717094cf..3154f19d 100644 --- a/src/com/android/incallui/CallCardFragment.java +++ b/src/com/android/incallui/CallCardFragment.java @@ -650,7 +650,7 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr int sessionModificationState, DisconnectCause disconnectCause, String connectionLabel, - Drawable connectionIcon, + Drawable callStateIcon, String gatewayNumber, boolean isWaitingForRemoteSide) { boolean isGatewayCall = !TextUtils.isEmpty(gatewayNumber); @@ -681,44 +681,55 @@ public class CallCardFragment extends BaseFragment<CallCardPresenter, CallCardPr mCallStateLabel.setAlpha(1); mCallStateLabel.setVisibility(View.VISIBLE); - if (connectionIcon == null) { - mCallStateIcon.clearAnimation(); - mCallStateIcon.setVisibility(View.GONE); + if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) { + mCallStateLabel.clearAnimation(); } else { - mCallStateIcon.setVisibility(View.VISIBLE); - // Invoke setAlpha(float) instead of setAlpha(int) to set the view's alpha. This is - // needed because the pulse animation operates on the view alpha. - mCallStateIcon.setAlpha(1.0f); - mCallStateIcon.setImageDrawable(connectionIcon); + mCallStateLabel.startAnimation(mPulseAnimation); } - - if (VideoProfile.VideoState.isVideo(videoState) - || (state == Call.State.ACTIVE && sessionModificationState - == Call.SessionModificationState.WAITING_FOR_RESPONSE)) { - mCallStateVideoCallIcon.setVisibility(View.VISIBLE); - } else { - mCallStateVideoCallIcon.setVisibility(View.GONE); + } else { + mCallStateLabel.clearAnimation(); + Animation callStateLabelAnimation = mCallStateLabel.getAnimation(); + if (callStateLabelAnimation != null) { + callStateLabelAnimation.cancel(); } + mCallStateLabel.setText(null); + mCallStateLabel.setAlpha(0); + mCallStateLabel.setVisibility(View.GONE); + } - if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED) { - mCallStateLabel.clearAnimation(); + if (callStateIcon != null) { + mCallStateIcon.setVisibility(View.VISIBLE); + // Invoke setAlpha(float) instead of setAlpha(int) to set the view's alpha. This is + // needed because the pulse animation operates on the view alpha. + mCallStateIcon.setAlpha(1.0f); + mCallStateIcon.setImageDrawable(callStateIcon); + + if (state == Call.State.ACTIVE || state == Call.State.CONFERENCED + || TextUtils.isEmpty(callStateLabel)) { mCallStateIcon.clearAnimation(); } else { - mCallStateLabel.startAnimation(mPulseAnimation); if (mCallStateIcon.getVisibility() == View.VISIBLE) { mCallStateIcon.startAnimation(mPulseAnimation); } } } else { - mCallStateLabel.clearAnimation(); - mCallStateLabel.setText(null); - mCallStateLabel.setAlpha(0); - mCallStateLabel.setVisibility(View.GONE); + Animation callStateIconAnimation = mCallStateIcon.getAnimation(); + if (callStateIconAnimation != null) { + callStateIconAnimation.cancel(); + } + // Invoke setAlpha(float) instead of setAlpha(int) to set the view's alpha. This is // needed because the pulse animation operates on the view alpha. mCallStateIcon.setAlpha(0.0f); + mCallStateIcon.clearAnimation(); mCallStateIcon.setVisibility(View.GONE); + } + if (VideoProfile.VideoState.isBidirectional(videoState) + || (state == Call.State.ACTIVE && sessionModificationState + == Call.SessionModificationState.WAITING_FOR_RESPONSE)) { + mCallStateVideoCallIcon.setVisibility(View.VISIBLE); + } else { mCallStateVideoCallIcon.setVisibility(View.GONE); } } diff --git a/src/com/android/incallui/CallCardPresenter.java b/src/com/android/incallui/CallCardPresenter.java index b152eb51..d3a83da0 100644 --- a/src/com/android/incallui/CallCardPresenter.java +++ b/src/com/android/incallui/CallCardPresenter.java @@ -330,7 +330,7 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> mPrimary.getSessionModificationState(), mPrimary.getDisconnectCause(), getConnectionLabel(), - getConnectionIcon(), + getCallStateIcon(), getGatewayNumber(), mPrimary.isWaitingForRemoteSide()); setCallbackNumber(); @@ -717,7 +717,8 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> return getCallProviderLabel(mPrimary); } - private Drawable getConnectionIcon() { + private Drawable getCallStateIcon() { + // Return connection icon if one exists. StatusHints statusHints = mPrimary.getTelecommCall().getDetails().getStatusHints(); if (statusHints != null && statusHints.getIconResId() != 0) { Drawable icon = statusHints.getIcon(mContext); @@ -725,7 +726,15 @@ public class CallCardPresenter extends Presenter<CallCardPresenter.CallCardUi> return icon; } } - return getCallProviderIcon(mPrimary); + + // Return high definition audio icon if the capability is indicated. + if (mPrimary.getTelecommCall().getDetails().can( + android.telecom.Call.Details.CAPABILITY_HIGH_DEF_AUDIO) + && mPrimary.getState() == Call.State.ACTIVE) { + return mContext.getResources().getDrawable(R.drawable.ic_hd_audio); + } + + return null; } private boolean hasOutgoingGatewayCall() { |
