A few more interface updates.
Bug: 73773964
Test: none
PiperOrigin-RevId: 200079809
Change-Id: I1c505c4f63a17b34ed9fb062c9f9e1b1e16c3832
diff --git a/java/com/android/incallui/StatusBarNotifier.java b/java/com/android/incallui/StatusBarNotifier.java
index 6519e00..4026be7 100644
--- a/java/com/android/incallui/StatusBarNotifier.java
+++ b/java/com/android/incallui/StatusBarNotifier.java
@@ -19,6 +19,7 @@
import static android.telecom.Call.Details.PROPERTY_HIGH_DEF_AUDIO;
import static com.android.contacts.common.compat.CallCompat.Details.PROPERTY_ENTERPRISE_CALL;
import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ACCEPT_VIDEO_UPGRADE_REQUEST;
+import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ANSWER_SPEAKEASY_CALL;
import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ANSWER_VIDEO_INCOMING_CALL;
import static com.android.incallui.NotificationBroadcastReceiver.ACTION_ANSWER_VOICE_INCOMING_CALL;
import static com.android.incallui.NotificationBroadcastReceiver.ACTION_DECLINE_INCOMING_CALL;
@@ -57,6 +58,7 @@
import android.text.BidiFormatter;
import android.text.Spannable;
import android.text.SpannableString;
+import android.text.Spanned;
import android.text.TextDirectionHeuristics;
import android.text.TextUtils;
import android.text.style.ForegroundColorSpan;
@@ -90,7 +92,9 @@
import com.android.incallui.ringtone.DialerRingtoneManager;
import com.android.incallui.ringtone.InCallTonePlayer;
import com.android.incallui.ringtone.ToneGeneratorFactory;
+import com.android.incallui.speakeasy.SpeakEasyComponent;
import com.android.incallui.videotech.utils.SessionModificationState;
+import com.google.common.base.Optional;
import java.util.Objects;
/** This class adds Notifications to the status bar for the in-call experience. */
@@ -451,6 +455,7 @@
addVideoCallAction(builder);
} else {
addAnswerAction(builder);
+ addSpeakeasyAnswerAction(builder);
}
}
}
@@ -869,6 +874,44 @@
.build());
}
+ private void addSpeakeasyAnswerAction(Notification.Builder builder) {
+ if (!ConfigProviderComponent.get(context)
+ .getConfigProvider()
+ .getBoolean("enable_speakeasy_notification_button", false)) {
+ return;
+ }
+
+ if (!SpeakEasyComponent.get(context).speakEasyCallManager().isAvailable(context)) {
+ return;
+ }
+
+ Optional<Integer> buttonText = SpeakEasyComponent.get(context).speakEasyTextResource();
+ if (!buttonText.isPresent()) {
+ return;
+ }
+
+ LogUtil.d("StatusBarNotifier.addSpeakeasyAnswerAction", "showing button");
+ PendingIntent answerVoicePendingIntent =
+ createNotificationPendingIntent(context, ACTION_ANSWER_SPEAKEASY_CALL);
+
+ Spannable spannable = new SpannableString(context.getText(buttonText.get()));
+ // TODO(erfanian): Migrate these color values to somewhere more permanent in subsequent
+ // implementation.
+ spannable.setSpan(
+ new ForegroundColorSpan(
+ context.getColor(R.color.DO_NOT_USE_OR_I_WILL_BREAK_YOU_text_span_tertiary_button)),
+ 0,
+ spannable.length(),
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
+
+ builder.addAction(
+ new Notification.Action.Builder(
+ Icon.createWithResource(context, R.drawable.quantum_ic_call_white_24),
+ spannable,
+ answerVoicePendingIntent)
+ .build());
+ }
+
private void addDismissAction(Notification.Builder builder) {
LogUtil.d(
"StatusBarNotifier.addDismissAction",