From c5c42189eeab0389a94717de9a66c6d00068e8bf Mon Sep 17 00:00:00 2001 From: calderwoodra Date: Tue, 22 May 2018 15:30:39 -0700 Subject: Began implementation of Dialer dark theme. - README on how to properly theme Dialer going forward. - Migrated all widgets to use global colors. - Removed all activity and application themes where it wasn't necessary. - Added themeing test rule for Espresso tests. Bug: 79883035 Test: tap PiperOrigin-RevId: 197634256 Change-Id: I4b7d94d45aeeb59d484b0069fdd1e200a654910b --- .../res/layout/swipe_up_down_method.xml | 2 +- .../impl/res/layout/fragment_incoming_call.xml | 1 + .../audioroute/res/layout/audioroute_item.xml | 2 +- java/com/android/incallui/call/DialerCall.java | 2 +- .../impl/res/layout/location_fragment.xml | 2 +- .../incallui/commontheme/res/values/colors.xml | 2 -- .../incall/impl/res/color/incall_button_icon.xml | 4 ++-- .../incallui/res/layout/frag_rtt_request_dialog.xml | 2 +- .../res/color/submit_button_background_color.xml | 21 --------------------- .../impl/res/drawable/incallui_message_bubble.xml | 21 +++++++++++++++++++++ .../rtt/impl/res/drawable/message_bubble.xml | 21 --------------------- .../incallui/rtt/impl/res/layout/audio_route.xml | 2 +- .../incallui/rtt/impl/res/layout/frag_rtt_chat.xml | 4 ++-- .../incallui/rtt/impl/res/layout/rtt_banner.xml | 6 +++--- .../res/layout/fragment_composer_text.xml | 2 +- .../sessiondata/res/layout/fragment_spam.xml | 5 ++--- .../frag_international_call_on_wifi_dialog.xml | 4 ++-- .../android/incallui/theme/res/values/styles.xml | 4 ++-- .../res/layout/frag_video_charges_alert_dialog.xml | 4 ++-- .../video/impl/res/layout/frag_videocall.xml | 4 ++-- .../impl/res/layout/frag_videocall_surfaceview.xml | 4 ++-- .../incallui/video/impl/res/values/colors.xml | 20 -------------------- .../incallui/video/impl/res/values/styles.xml | 2 +- 23 files changed, 49 insertions(+), 92 deletions(-) delete mode 100644 java/com/android/incallui/rtt/impl/res/color/submit_button_background_color.xml create mode 100644 java/com/android/incallui/rtt/impl/res/drawable/incallui_message_bubble.xml delete mode 100644 java/com/android/incallui/rtt/impl/res/drawable/message_bubble.xml delete mode 100644 java/com/android/incallui/video/impl/res/values/colors.xml (limited to 'java/com/android/incallui') diff --git a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml index 600115e27..2b3391dde 100644 --- a/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml +++ b/java/com/android/incallui/answer/impl/answermethod/res/layout/swipe_up_down_method.xml @@ -99,7 +99,7 @@ android:focusable="false" android:outlineProvider="none" android:src="@drawable/quantum_ic_call_white_24" - android:tint="@color/incoming_answer_icon" + android:tint="@color/dialer_call_green" android:tintMode="src_atop" tools:outlineProvider="background"/> diff --git a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml index 589a74325..a2319b9c0 100644 --- a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml +++ b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml @@ -111,6 +111,7 @@ android:layout_marginStart="24dp" android:layout_marginEnd="24dp"/> + \ No newline at end of file diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java index da7c54d27..b2c8dcc67 100644 --- a/java/com/android/incallui/call/DialerCall.java +++ b/java/com/android/incallui/call/DialerCall.java @@ -80,7 +80,7 @@ import com.android.dialer.rtt.RttTranscriptUtil; import com.android.dialer.spam.status.SpamStatus; import com.android.dialer.telecom.TelecomCallUtil; import com.android.dialer.telecom.TelecomUtil; -import com.android.dialer.theme.R; +import com.android.dialer.theme.common.R; import com.android.dialer.time.Clock; import com.android.dialer.util.PermissionsUtil; import com.android.incallui.audiomode.AudioModeProvider; diff --git a/java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml b/java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml index 5d1e2baf7..771e1b868 100644 --- a/java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml +++ b/java/com/android/incallui/calllocation/impl/res/layout/location_fragment.xml @@ -145,7 +145,7 @@ android:layout_marginBottom="12dp" android:layout_gravity="center_horizontal" android:src="@drawable/quantum_ic_error_outline_vd_theme_36" - android:tint="#C53929"/> + android:tint="@color/dialer_red"/> @color/blocked_contact_background - - #D8D8D8 diff --git a/java/com/android/incallui/incall/impl/res/color/incall_button_icon.xml b/java/com/android/incallui/incall/impl/res/color/incall_button_icon.xml index 8e9120b09..c6ed6e72f 100644 --- a/java/com/android/incallui/incall/impl/res/color/incall_button_icon.xml +++ b/java/com/android/incallui/incall/impl/res/color/incall_button_icon.xml @@ -16,6 +16,6 @@ --> - - + + diff --git a/java/com/android/incallui/res/layout/frag_rtt_request_dialog.xml b/java/com/android/incallui/res/layout/frag_rtt_request_dialog.xml index 2e40cabd3..f0bd1531e 100644 --- a/java/com/android/incallui/res/layout/frag_rtt_request_dialog.xml +++ b/java/com/android/incallui/res/layout/frag_rtt_request_dialog.xml @@ -57,7 +57,7 @@ android:layout_gravity="end" android:paddingStart="16dp" android:paddingEnd="16dp" - android:backgroundTint="@android:color/white" + android:backgroundTint="?android:attr/colorBackgroundFloating" android:fontFamily="sans-serif-medium" android:stateListAnimator="@null" android:text="@string/rtt_button_decline_request" diff --git a/java/com/android/incallui/rtt/impl/res/color/submit_button_background_color.xml b/java/com/android/incallui/rtt/impl/res/color/submit_button_background_color.xml deleted file mode 100644 index 0da2c374a..000000000 --- a/java/com/android/incallui/rtt/impl/res/color/submit_button_background_color.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/java/com/android/incallui/rtt/impl/res/drawable/incallui_message_bubble.xml b/java/com/android/incallui/rtt/impl/res/drawable/incallui_message_bubble.xml new file mode 100644 index 000000000..31044b64e --- /dev/null +++ b/java/com/android/incallui/rtt/impl/res/drawable/incallui_message_bubble.xml @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git a/java/com/android/incallui/rtt/impl/res/drawable/message_bubble.xml b/java/com/android/incallui/rtt/impl/res/drawable/message_bubble.xml deleted file mode 100644 index 2b01f62f9..000000000 --- a/java/com/android/incallui/rtt/impl/res/drawable/message_bubble.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/java/com/android/incallui/rtt/impl/res/layout/audio_route.xml b/java/com/android/incallui/rtt/impl/res/layout/audio_route.xml index f098316a1..6f22febdf 100644 --- a/java/com/android/incallui/rtt/impl/res/layout/audio_route.xml +++ b/java/com/android/incallui/rtt/impl/res/layout/audio_route.xml @@ -29,7 +29,7 @@ + android:background="@color/dialer_divider_line_color"/> diff --git a/java/com/android/incallui/rtt/impl/res/layout/rtt_banner.xml b/java/com/android/incallui/rtt/impl/res/layout/rtt_banner.xml index 8a5bba28d..065aa8c34 100644 --- a/java/com/android/incallui/rtt/impl/res/layout/rtt_banner.xml +++ b/java/com/android/incallui/rtt/impl/res/layout/rtt_banner.xml @@ -22,7 +22,7 @@ + android:tint="@color/dialer_end_call_button_color"/> + android:tint="?colorIconOnUnthemedDarkBackground"/> + android:tint="?colorIcon"/> + style="@style/Dialer.TextAppearance.Secondary2"/> \ No newline at end of file diff --git a/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml b/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml index 996bc75ba..5175b26ae 100644 --- a/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml +++ b/java/com/android/incallui/telecomeventui/res/layout/frag_international_call_on_wifi_dialog.xml @@ -28,7 +28,7 @@ android:layout_height="wrap_content" android:layout_marginBottom="10dp" android:text="@string/details" - android:textColor="@color/dialer_primary_text_color" + android:textColor="?android:attr/textColorPrimary" android:textSize="16sp"/> diff --git a/java/com/android/incallui/theme/res/values/styles.xml b/java/com/android/incallui/theme/res/values/styles.xml index 086d12e19..f396559c8 100644 --- a/java/com/android/incallui/theme/res/values/styles.xml +++ b/java/com/android/incallui/theme/res/values/styles.xml @@ -20,7 +20,7 @@ circular reveal animation for a new outgoing call to work correctly. We don't just use Theme.Black.NoTitleBar directly, since we want any popups or dialogs from the InCallActivity to have the correct Material style. --> - - + -- cgit v1.2.3 From 936127cee87e53ce6705ca574ff156f9cf412f10 Mon Sep 17 00:00:00 2001 From: erfanian Date: Fri, 25 May 2018 11:44:35 -0700 Subject: Some improvements to the answer fragment layouts. Test: unit PiperOrigin-RevId: 198080186 Change-Id: I0ecc1f918b2c62e42b287e4fc9ea38fafaf1e6c9 --- .../incallui/answer/impl/AnswerFragment.java | 56 +++++++++++++--------- .../impl/res/drawable/shape_chip_drawable.xml | 44 +++++++++++++++++ .../impl/res/layout/fragment_incoming_call.xml | 54 +++++++++++++++------ .../android/incallui/speakeasy/Annotations.java | 35 ++++++++++++++ .../incallui/speakeasy/SpeakEasyComponent.java | 9 +++- .../incallui/speakeasy/StubSpeakEasyModule.java | 12 ++++- 6 files changed, 169 insertions(+), 41 deletions(-) create mode 100644 java/com/android/incallui/answer/impl/res/drawable/shape_chip_drawable.xml create mode 100644 java/com/android/incallui/speakeasy/Annotations.java (limited to 'java/com/android/incallui') diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java index d44a5daa2..18e0e9864 100644 --- a/java/com/android/incallui/answer/impl/AnswerFragment.java +++ b/java/com/android/incallui/answer/impl/AnswerFragment.java @@ -49,6 +49,8 @@ import android.view.accessibility.AccessibilityEvent; 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; @@ -82,6 +84,8 @@ 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.SpeakEasyIcon; +import com.android.incallui.speakeasy.Annotations.SpeakEasyText; import com.android.incallui.speakeasy.SpeakEasyComponent; import com.android.incallui.util.AccessibilityUtil; import com.android.incallui.video.protocol.VideoCallScreen; @@ -144,6 +148,9 @@ public class AnswerFragment extends Fragment private View importanceBadge; private SwipeButtonView secondaryButton; private SwipeButtonView answerAndReleaseButton; + private LinearLayout chipLayout; + private ImageView chipIcon; + private TextView chipText; private AffordanceHolderLayout affordanceHolderLayout; // Use these flags to prevent user from clicking accept/reject buttons multiple times. // We use separate flags because in some rare cases accepting a call may fail to join the room, @@ -195,17 +202,6 @@ public class AnswerFragment extends Fragment public void performAction(AnswerFragment fragment) { fragment.performAnswerAndRelease(); } - }, - - SPEAKEASY( - R.drawable.quantum_ic_rtt_vd_theme_24, - R.string.speakeasy_secondary_button_hint, - R.string.speakeasy_secondary_button_hint, - R.string.speakeasy_secondary_button_hint) { - @Override - public void performAction(AnswerFragment fragment) { - fragment.performSpeakEasy(); - } }; @DrawableRes public int icon; @@ -232,8 +228,7 @@ public class AnswerFragment extends Fragment } } - private void performSpeakEasy() { - restoreAnswerAndReleaseButtonAnimation(); + private void performSpeakEasy(View unused) { answerScreenDelegate.onSpeakEasyCall(); buttonAcceptClicked = true; } @@ -457,16 +452,6 @@ public class AnswerFragment extends Fragment if (allowAnswerAndRelease()) { answerAndReleaseButton.setVisibility(View.VISIBLE); answerScreenDelegate.onAnswerAndReleaseButtonEnabled(); - } else if (allowSpeakEasy()) { - Optional alternativeIcon = SpeakEasyComponent.get(getContext()).speakEasyIcon(); - if (alternativeIcon.isPresent()) { - // TODO(erfanian): Replace enum hack when we have a dedicated button. - SecondaryBehavior.SPEAKEASY.icon = alternativeIcon.get(); - } - answerAndReleaseBehavior = SecondaryBehavior.SPEAKEASY; - answerAndReleaseBehavior.applyToView(answerAndReleaseButton); - answerAndReleaseButton.setVisibility(View.VISIBLE); - answerScreenDelegate.onAnswerAndReleaseButtonEnabled(); } else { answerAndReleaseButton.setVisibility(View.INVISIBLE); answerScreenDelegate.onAnswerAndReleaseButtonDisabled(); @@ -480,6 +465,27 @@ public class AnswerFragment extends Fragment }); } + /** Initialize chip buttons */ + private void initChips() { + if (!allowSpeakEasy()) { + chipLayout.setVisibility(View.GONE); + return; + } + chipLayout.setVisibility(View.VISIBLE); + chipLayout.setOnClickListener(this::performSpeakEasy); + + @SpeakEasyIcon + Optional alternativeIcon = SpeakEasyComponent.get(getContext()).speakEasyIcon(); + @SpeakEasyText + Optional alternativeText = SpeakEasyComponent.get(getContext()).speakEasyText(); + if (alternativeIcon.isPresent() && alternativeText.isPresent()) { + chipIcon.setImageDrawable(getContext().getDrawable(alternativeIcon.get())); + chipText.setText(alternativeText.get()); + // The button needs to override normal swipe up/down behavior. + chipLayout.bringToFront(); + } + } + @Override public boolean allowAnswerAndRelease() { return getArguments().getBoolean(ARG_ALLOW_ANSWER_AND_RELEASE); @@ -715,6 +721,9 @@ public class AnswerFragment extends Fragment View view = inflater.inflate(R.layout.fragment_incoming_call, container, false); secondaryButton = (SwipeButtonView) view.findViewById(R.id.incoming_secondary_button); answerAndReleaseButton = (SwipeButtonView) view.findViewById(R.id.incoming_secondary_button2); + chipLayout = view.findViewById(R.id.incall_data_container_chip_container); + chipIcon = view.findViewById(R.id.incall_data_container_chip_icon); + chipText = view.findViewById(R.id.incall_data_container_chip_text); affordanceHolderLayout = (AffordanceHolderLayout) view.findViewById(R.id.incoming_container); affordanceHolderLayout.setAffordanceCallback(affordanceCallback); @@ -755,6 +764,7 @@ public class AnswerFragment extends Fragment .newAnswerScreenDelegate(this); initSecondaryButton(); + initChips(); int flags = View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION; if (!isInMultiWindowMode diff --git a/java/com/android/incallui/answer/impl/res/drawable/shape_chip_drawable.xml b/java/com/android/incallui/answer/impl/res/drawable/shape_chip_drawable.xml new file mode 100644 index 000000000..3740f3d1b --- /dev/null +++ b/java/com/android/incallui/answer/impl/res/drawable/shape_chip_drawable.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml index a2319b9c0..944d290b1 100644 --- a/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml +++ b/java/com/android/incallui/answer/impl/res/layout/fragment_incoming_call.xml @@ -53,6 +53,13 @@ android:layout_height="match_parent" android:fitsSystemWindows="true"> + + + android:textSize="14sp"/> + android:clipToPadding="false"> + + + + + @@ -153,14 +187,6 @@ android:layout_height="220dp"/> - - - speakEasySettingsFragment(); + public abstract @SpeakEasySettingsFragment Optional speakEasySettingsFragment(); - public abstract Optional speakEasyIcon(); + public abstract @SpeakEasyIcon Optional speakEasyIcon(); + + public abstract @SpeakEasyText Optional speakEasyText(); public static SpeakEasyComponent get(Context context) { return ((SpeakEasyComponent.HasComponent) diff --git a/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java b/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java index 67b564cb0..9f23ddd37 100644 --- a/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java +++ b/java/com/android/incallui/speakeasy/StubSpeakEasyModule.java @@ -19,6 +19,9 @@ package com.android.incallui.speakeasy; import android.support.v4.app.Fragment; import com.android.dialer.inject.DialerVariant; import com.android.dialer.inject.InstallIn; +import com.android.incallui.speakeasy.Annotations.SpeakEasyIcon; +import com.android.incallui.speakeasy.Annotations.SpeakEasySettingsFragment; +import com.android.incallui.speakeasy.Annotations.SpeakEasyText; import com.google.common.base.Optional; import dagger.Binds; import dagger.Module; @@ -33,12 +36,17 @@ public abstract class StubSpeakEasyModule { abstract SpeakEasyCallManager bindsSpeakEasy(SpeakEasyCallManagerStub stub); @Provides - static Optional provideSpeakEasySettingsFragment() { + static @SpeakEasySettingsFragment Optional provideSpeakEasySettingsFragment() { return Optional.absent(); } @Provides - static Optional provideSpeakEasyIcon() { + static @SpeakEasyIcon Optional provideSpeakEasyIcon() { + return Optional.absent(); + } + + @Provides + static @SpeakEasyText Optional provideSpeakEasyText() { return Optional.absent(); } } -- cgit v1.2.3