From 81ae21863de1fe836f5e62aa5e324a35a8eb7d06 Mon Sep 17 00:00:00 2001 From: Tyler Gunn Date: Wed, 5 Aug 2015 16:15:30 -0700 Subject: Show "Note sent" toast when starting outgoing call with a note. Bug: 22685114 Change-Id: Icc84b3639d7a5d4cf4faaa2db5ed70f2d9b2e967 --- InCallUI/res/values/strings.xml | 4 ++++ .../src/com/android/incallui/CallCardFragment.java | 6 +++++ .../com/android/incallui/CallCardPresenter.java | 26 ++++++++++++++++++++++ InCallUI/src/com/android/incallui/CallList.java | 4 +++- 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/InCallUI/res/values/strings.xml b/InCallUI/res/values/strings.xml index 15cba1f32..e59867cb3 100644 --- a/InCallUI/res/values/strings.xml +++ b/InCallUI/res/values/strings.xml @@ -460,4 +460,8 @@ via %s + + + Note sent diff --git a/InCallUI/src/com/android/incallui/CallCardFragment.java b/InCallUI/src/com/android/incallui/CallCardFragment.java index 5f2896040..dc92ac3e7 100644 --- a/InCallUI/src/com/android/incallui/CallCardFragment.java +++ b/InCallUI/src/com/android/incallui/CallCardFragment.java @@ -47,6 +47,7 @@ import android.view.animation.AnimationUtils; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette; import com.android.contacts.common.widget.FloatingActionButtonController; @@ -1088,6 +1089,11 @@ public class CallCardFragment extends BaseFragment private CallTimer mCallTimer; private Context mContext; private boolean mSpinnerShowing = false; + private boolean mHasShownToast = false; public static class ContactLookupCallback implements ContactInfoCacheCallback { private final WeakReference mCallCardPresenter; @@ -120,6 +121,12 @@ public class CallCardPresenter extends Presenter // Call may be null if disconnect happened already. if (call != null) { mPrimary = call; + if (shouldShowNoteSentToast(mPrimary)) { + final CallCardUi ui = getUi(); + if (ui != null) { + ui.showNoteSentToast(); + } + } CallList.getInstance().addCallUpdateListener(call.getId(), this); // start processing lookups right away. @@ -213,6 +220,10 @@ public class CallCardPresenter extends Presenter Call previousPrimary = mPrimary; mPrimary = primary; + if (primaryChanged && shouldShowNoteSentToast(primary)) { + ui.showNoteSentToast(); + } + // Refresh primary call information if either: // 1. Primary call changed. // 2. The call's ability to manage conference has changed. @@ -915,6 +926,20 @@ public class CallCardPresenter extends Presenter return isIncomingOrWaiting && !TextUtils.isEmpty(call.getCallSubject()); } + /** + * Determines whether the "note sent" toast should be shown. It should be shown for a new + * outgoing call with a subject. + * + * @param call The call + * @return {@code true} if the toast should be shown, {@code false} otherwise. + */ + private boolean shouldShowNoteSentToast(Call call) { + return call != null && !TextUtils + .isEmpty(call.getTelecommCall().getDetails().getIntentExtras().getString( + TelecomManager.EXTRA_CALL_SUBJECT)) && + (call.getState() == Call.State.DIALING || call.getState() == Call.State.CONNECTING); + } + public interface CallCardUi extends Ui { void setVisible(boolean on); void setCallCardVisible(boolean visible); @@ -942,5 +967,6 @@ public class CallCardPresenter extends Presenter boolean isCallSubjectVisible(); void animateForNewOutgoingCall(); void sendAccessibilityAnnouncement(); + void showNoteSentToast(); } } diff --git a/InCallUI/src/com/android/incallui/CallList.java b/InCallUI/src/com/android/incallui/CallList.java index fbcc1cc61..666ba9529 100644 --- a/InCallUI/src/com/android/incallui/CallList.java +++ b/InCallUI/src/com/android/incallui/CallList.java @@ -161,7 +161,9 @@ public class CallList { } /** - * Called when a single call has changed session modification state. + * Called when the last forwarded number changes for a call. With IMS, the last forwarded + * number changes due to a supplemental service notification, so it is not pressent at the + * start of the call. * * @param call The call. */ -- cgit v1.2.3