Loading java/com/android/dialer/theme/common/res/values/colors.xml +2 −2 Original line number Diff line number Diff line Loading @@ -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> Loading java/com/android/dialer/theme/hidden/res/values/colors_dialer_light.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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> Loading java/com/android/incallui/StatusBarNotifier.java +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading java/com/android/incallui/answer/impl/AnswerFragment.java +41 −23 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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") Loading @@ -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"; Loading Loading @@ -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()) { Loading Loading @@ -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 Loading Loading @@ -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(); Loading Loading @@ -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 Loading java/com/android/incallui/answer/impl/res/drawable/secondary_action_chip_background.xml 0 → 100644 +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
java/com/android/dialer/theme/common/res/values/colors.xml +2 −2 Original line number Diff line number Diff line Loading @@ -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> Loading
java/com/android/dialer/theme/hidden/res/values/colors_dialer_light.xml +1 −1 Original line number Diff line number Diff line Loading @@ -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> Loading
java/com/android/incallui/StatusBarNotifier.java +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
java/com/android/incallui/answer/impl/AnswerFragment.java +41 −23 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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") Loading @@ -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"; Loading Loading @@ -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()) { Loading Loading @@ -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 Loading Loading @@ -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(); Loading Loading @@ -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 Loading
java/com/android/incallui/answer/impl/res/drawable/secondary_action_chip_background.xml 0 → 100644 +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>