Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19e85a54 authored by wangqi's avatar wangqi Committed by Copybara-Service
Browse files

Change reply with sms to chip.

Bug: 79878432
Test: manual
PiperOrigin-RevId: 202022343
Change-Id: I7239b13e53a537e20af4b2684a53108aeea16025
parent 5578d928
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@
<resources>
  <color name="dialer_call_green">#34A853</color>
  <color name="dialer_end_call_button_color">#D93025</color>
  <color name="dialer_divider_line_color">#D8D8D8</color>
  <color name="dialer_divider_line_color">#DADCE0</color>
  <color name="dialer_link_color">#2A56C6</color>
  <color name="dialer_snackbar_action_text_color">#4285F4</color>

+1 −1
Original line number Diff line number Diff line
@@ -15,7 +15,7 @@
  -->
<resources>
  <!-- Essential theme colors -->
  <color name="dialer_theme_color">#2A56C6</color>
  <color name="dialer_theme_color">@color/google_blue_600</color>
  <color name="dialer_theme_color_20pct">#332A56C6</color>
  <color name="dialer_theme_color_dark">#1C3AA9</color>
  <color name="dialer_secondary_color">#F50057</color>
+1 −1
Original line number Diff line number Diff line
@@ -93,8 +93,8 @@ 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;
import java.util.Optional;

/** This class adds Notifications to the status bar for the in-call experience. */
public class StatusBarNotifier
+41 −23
Original line number Diff line number Diff line
@@ -50,11 +50,12 @@ import android.view.accessibility.AccessibilityNodeInfo;
import android.view.accessibility.AccessibilityNodeInfo.AccessibilityAction;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.android.dialer.common.Assert;
import com.android.dialer.common.FragmentUtils;
import com.android.dialer.common.LogUtil;
import com.android.dialer.common.MathUtil;
import com.android.dialer.logging.DialerImpression;
import com.android.dialer.logging.DialerImpression.Type;
import com.android.dialer.logging.Logger;
import com.android.dialer.multimedia.MultimediaData;
import com.android.dialer.telecom.TelecomUtil;
@@ -83,15 +84,15 @@ import com.android.incallui.incalluilock.InCallUiLock;
import com.android.incallui.maps.MapsComponent;
import com.android.incallui.sessiondata.AvatarPresenter;
import com.android.incallui.sessiondata.MultimediaFragment;
import com.android.incallui.speakeasy.Annotations.SpeakEasyChipResourceId;
import com.android.incallui.sessiondata.MultimediaFragment.Holder;
import com.android.incallui.speakeasy.SpeakEasyComponent;
import com.android.incallui.util.AccessibilityUtil;
import com.android.incallui.video.protocol.VideoCallScreen;
import com.android.incallui.videotech.utils.VideoUtils;
import com.google.common.base.Optional;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;

/** The new version of the incoming call screen. */
@SuppressLint("ClickableViewAccessibility")
@@ -101,7 +102,7 @@ public class AnswerFragment extends Fragment
        SmsSheetHolder,
        CreateCustomSmsHolder,
        AnswerMethodHolder,
        MultimediaFragment.Holder {
        Holder {

  @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE)
  static final String ARG_CALL_ID = "call_id";
@@ -432,6 +433,11 @@ public class AnswerFragment extends Fragment
    secondaryButton.setFocusable(AccessibilityUtil.isAccessibilityEnabled(getContext()));
    secondaryButton.setAccessibilityDelegate(accessibilityDelegate);

    // TODO(wangqi): Remove this when all secondary behavior is migrated to chip button.
    if (secondaryBehavior.equals(SecondaryBehavior.REJECT_WITH_SMS)) {
      secondaryButton.setVisibility(View.INVISIBLE);
    }

    if (isVideoUpgradeRequest()) {
      secondaryButton.setVisibility(View.INVISIBLE);
    } else if (isVideoCall()) {
@@ -461,26 +467,39 @@ public class AnswerFragment extends Fragment
        });
  }

  /** Initialize chip buttons */
  private void initChips() {
  private void addSecondaryActionChip(
      @DrawableRes int iconRes, @StringRes int textRes, OnClickListener onClickListener) {
    LinearLayout button =
        (LinearLayout)
            getLayoutInflater().inflate(R.layout.secondary_action_chip, chipContainer, false);

    if (!allowSpeakEasy()) {
      chipContainer.setVisibility(View.GONE);
      return;
    ImageView icon = button.findViewById(R.id.secondary_action_icon);
    icon.setImageResource(iconRes);
    TextView text = button.findViewById(R.id.secondary_action_text);
    text.setText(textRes);
    button.setOnClickListener(onClickListener);
    chipContainer.addView(button);
  }
    chipContainer.setVisibility(View.VISIBLE);

    @SpeakEasyChipResourceId
    Optional<Integer> chipLayoutOptional = SpeakEasyComponent.get(getContext()).speakEasyChip();
    if (chipLayoutOptional.isPresent()) {

      LinearLayout chipLayout =
          (LinearLayout) getLayoutInflater().inflate(chipLayoutOptional.get(), null);

      chipLayout.setOnClickListener(this::performSpeakEasy);

      chipContainer.addView(chipLayout);
  /** Initialize chip buttons */
  private void initChips() {
    if (allowSpeakEasy()) {
      Optional<Integer> speakEasyIconOptional =
          SpeakEasyComponent.get(getContext()).speakEasyIconResource();
      Optional<Integer> speakEasyTextOptional =
          SpeakEasyComponent.get(getContext()).speakEasyTextResource();
      if (speakEasyIconOptional.isPresent() && speakEasyTextOptional.isPresent()) {
        addSecondaryActionChip(
            speakEasyIconOptional.get(), speakEasyTextOptional.get(), this::performSpeakEasy);
      }
    }
    if (!isVideoCall() && !isVideoUpgradeRequest()) {
      addSecondaryActionChip(
          R.drawable.quantum_ic_message_white_24,
          R.string.call_incoming_reply_with_sms,
          v -> performSecondaryButtonAction());
    }
    chipContainer.setVisibility(chipContainer.getChildCount() > 0 ? View.VISIBLE : View.GONE);
  }

  @Override
@@ -986,8 +1005,7 @@ public class AnswerFragment extends Fragment
            "AnswerFragment.rejectCall",
            "Null context when rejecting call. Logger call was skipped");
      } else {
        Logger.get(context)
            .logImpression(DialerImpression.Type.REJECT_INCOMING_CALL_FROM_ANSWER_SCREEN);
        Logger.get(context).logImpression(Type.REJECT_INCOMING_CALL_FROM_ANSWER_SCREEN);
      }
      buttonRejectClicked = true;
      answerScreenDelegate.onReject();
@@ -1138,7 +1156,7 @@ public class AnswerFragment extends Fragment
    public void onViewCreated(View view, @Nullable Bundle bundle) {
      super.onViewCreated(view, bundle);
      avatarImageView = ((ImageView) view.findViewById(R.id.contactgrid_avatar));
      FragmentUtils.getParentUnsafe(this, MultimediaFragment.Holder.class).updateAvatar(this);
      FragmentUtils.getParentUnsafe(this, Holder.class).updateAvatar(this);
    }

    @NonNull
+33 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<!--
  ~ Copyright (C) 2018 The Android Open Source Project
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~      http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License
  -->
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
    android:color="@color/dialer_divider_line_color">
  <item>
    <shape>
      <solid android:color="?android:attr/colorBackgroundFloating"/>
      <stroke
          android:width="1dp"
          android:color="@color/dialer_divider_line_color"/>
      <padding
          android:bottom="9dp"
          android:left="8dp"
          android:right="8dp"
          android:top="9dp"/>
      <corners android:radius="40dp"/>
    </shape>
  </item>
</ripple>
Loading