diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-06-27 19:53:55 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-06-27 19:53:55 +0000 |
commit | 1b4ec7b954ba2d8efae2f383697babe54b795f67 (patch) | |
tree | 4c051c4a8702f4256f83f0e55182e27b2ed5b840 /java | |
parent | cae28c6d5c04a79fb058043ce0c3e043e610309a (diff) | |
parent | d637af51091dc86a197da6520484e10a356a421b (diff) |
Merge changes I0f1ed20a,Ia68d3b13,I72047d59,Ieff3c7fb,I53c3896a, ...
* changes:
Added method to set Save and Redo buttons enabled/disabled Added logic to setState() method to change state of buttons
Update emergency call map and device number UI.
Fix SpeedDialUiItem.getDefaultVoiceChannel
Fix an AOSP build error caused by version codes
Update connection label.
Remove redundant version checks and annotations in the assisted dialing package.
Diffstat (limited to 'java')
20 files changed, 99 insertions, 148 deletions
diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java index 756fd6125..6715e2b21 100644 --- a/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java +++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediator.java @@ -16,8 +16,6 @@ package com.android.dialer.assisteddialing; -import android.annotation.TargetApi; -import android.os.Build.VERSION_CODES; import android.support.annotation.NonNull; import java.util.Optional; @@ -25,14 +23,10 @@ import java.util.Optional; public interface AssistedDialingMediator { /** Returns {@code true} if the current client platform supports Assisted Dialing. */ - public boolean isPlatformEligible(); + boolean isPlatformEligible(); /** Returns the country code in which the library thinks the user typically resides. */ - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) - public Optional<String> userHomeCountryCode(); + Optional<String> userHomeCountryCode(); - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) - public Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform); + Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform); } diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java index 7214437ab..7fdb8dafc 100644 --- a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java +++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorImpl.java @@ -16,10 +16,7 @@ package com.android.dialer.assisteddialing; -import android.annotation.TargetApi; -import android.os.Build.VERSION_CODES; import android.support.annotation.NonNull; -import android.support.annotation.RequiresApi; import com.android.dialer.common.LogUtil; import java.util.Optional; @@ -30,7 +27,6 @@ import java.util.Optional; * call is eligible for assisted dialing, and performing the transformation of numbers eligible for * assisted dialing. */ -@RequiresApi(VERSION_CODES.N) final class AssistedDialingMediatorImpl implements AssistedDialingMediator { private final LocationDetector locationDetector; @@ -58,8 +54,6 @@ final class AssistedDialingMediatorImpl implements AssistedDialingMediator { /** Returns the country code in which the library thinks the user typically resides. */ @Override - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) public Optional<String> userHomeCountryCode() { return locationDetector.getUpperCaseUserHomeCountry(); } @@ -69,8 +63,6 @@ final class AssistedDialingMediatorImpl implements AssistedDialingMediator { * transformed number should be capable of dialing out of the User's current country and * successfully connecting with a contact in the User's home country. */ - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) @Override public Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform) { Optional<String> userHomeCountryCode = locationDetector.getUpperCaseUserHomeCountry(); diff --git a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java index 9a40e0576..cb3ca79f9 100644 --- a/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java +++ b/java/com/android/dialer/assisteddialing/AssistedDialingMediatorStub.java @@ -16,8 +16,6 @@ package com.android.dialer.assisteddialing; -import android.annotation.TargetApi; -import android.os.Build.VERSION_CODES; import android.support.annotation.NonNull; import java.util.Optional; @@ -26,16 +24,12 @@ public final class AssistedDialingMediatorStub implements AssistedDialingMediato /** Always returns an empty Optional. */ @Override - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) public Optional<TransformationInfo> attemptAssistedDial(@NonNull String numberToTransform) { return Optional.empty(); } /** Always returns an empty Optional. */ @Override - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) public Optional<String> userHomeCountryCode() { return Optional.empty(); } diff --git a/java/com/android/dialer/assisteddialing/ConcreteCreator.java b/java/com/android/dialer/assisteddialing/ConcreteCreator.java index 050774340..b4f926dd3 100644 --- a/java/com/android/dialer/assisteddialing/ConcreteCreator.java +++ b/java/com/android/dialer/assisteddialing/ConcreteCreator.java @@ -16,13 +16,10 @@ package com.android.dialer.assisteddialing; -import android.annotation.TargetApi; import android.content.Context; import android.os.Build; -import android.os.Build.VERSION_CODES; import android.preference.PreferenceManager; import android.support.annotation.NonNull; -import android.support.annotation.VisibleForTesting; import android.support.v4.os.UserManagerCompat; import android.telephony.TelephonyManager; import com.android.dialer.common.LogUtil; @@ -36,13 +33,11 @@ import com.android.dialer.strictmode.StrictModeUtils; * <p>This helps keep the dependencies required by AssistedDialingMediator for assisted dialing * explicit. */ -@TargetApi(VERSION_CODES.N) public final class ConcreteCreator { - // Floor set at N due to use of Optional. - @VisibleForTesting public static final int BUILD_CODE_FLOOR = Build.VERSION_CODES.N; - // Ceiling set at P because this feature will ship as part of the framework in Q. - @VisibleForTesting public static final int BUILD_CODE_CEILING = 28; + // Ceiling set at P (version code 28) because this feature will ship as part of the framework in + // Q. + public static final int BUILD_CODE_CEILING = 28; /** * Creates a new AssistedDialingMediator @@ -105,8 +100,7 @@ public final class ConcreteCreator { throw new NullPointerException("Provided configProvider was null"); } - return (Build.VERSION.SDK_INT >= BUILD_CODE_FLOOR - && Build.VERSION.SDK_INT <= BUILD_CODE_CEILING) + return Build.VERSION.SDK_INT <= BUILD_CODE_CEILING && configProvider.getBoolean("assisted_dialing_enabled", false); } diff --git a/java/com/android/dialer/assisteddialing/Constraints.java b/java/com/android/dialer/assisteddialing/Constraints.java index cae3734be..41a3e92b2 100644 --- a/java/com/android/dialer/assisteddialing/Constraints.java +++ b/java/com/android/dialer/assisteddialing/Constraints.java @@ -16,9 +16,7 @@ package com.android.dialer.assisteddialing; -import android.annotation.TargetApi; import android.content.Context; -import android.os.Build.VERSION_CODES; import android.support.annotation.NonNull; import android.telephony.PhoneNumberUtils; import android.text.TextUtils; @@ -35,8 +33,6 @@ import java.util.Locale; import java.util.Optional; /** Ensures that a number is eligible for Assisted Dialing */ -@TargetApi(VERSION_CODES.N) -@SuppressWarnings("AndroidApiChecker") // Use of optional final class Constraints { private final PhoneNumberUtil phoneNumberUtil; private final Context context; @@ -46,7 +42,7 @@ final class Constraints { * Create a new instance of Constraints. * * @param context The context used to determine whether or not a number is an emergency number. - * @param configProviderCountryCodes A csv of supported country codes, e.g. "US,CA" + * @param countryCodeProvider A csv of supported country codes, e.g. "US,CA" */ public Constraints(@NonNull Context context, @NonNull CountryCodeProvider countryCodeProvider) { if (context == null) { @@ -73,7 +69,7 @@ final class Constraints { * @return A boolean indicating whether or not the provided values are eligible for assisted * dialing. */ - public boolean meetsPreconditions( + boolean meetsPreconditions( @NonNull String numberToCheck, @NonNull String userHomeCountryCode, @NonNull String userRoamingCountryCode) { diff --git a/java/com/android/dialer/assisteddialing/CountryCodeProvider.java b/java/com/android/dialer/assisteddialing/CountryCodeProvider.java index 118696e9b..04b229150 100644 --- a/java/com/android/dialer/assisteddialing/CountryCodeProvider.java +++ b/java/com/android/dialer/assisteddialing/CountryCodeProvider.java @@ -16,8 +16,6 @@ package com.android.dialer.assisteddialing; -import android.annotation.TargetApi; -import android.os.Build.VERSION_CODES; import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import android.util.ArraySet; @@ -32,8 +30,6 @@ import java.util.StringTokenizer; import java.util.stream.Collectors; /** A class to provide the appropriate country codes related to assisted dialing. */ -@TargetApi(VERSION_CODES.N) -@SuppressWarnings("AndroidApiChecker") // Java 8 APIs public final class CountryCodeProvider { // TODO(erfanian): Ensure the below standard is consistent between libphonenumber and the diff --git a/java/com/android/dialer/assisteddialing/LocationDetector.java b/java/com/android/dialer/assisteddialing/LocationDetector.java index 8e7535c1b..9fa944125 100644 --- a/java/com/android/dialer/assisteddialing/LocationDetector.java +++ b/java/com/android/dialer/assisteddialing/LocationDetector.java @@ -16,8 +16,6 @@ package com.android.dialer.assisteddialing; -import android.annotation.TargetApi; -import android.os.Build.VERSION_CODES; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.telephony.TelephonyManager; @@ -36,7 +34,7 @@ final class LocationDetector { private final TelephonyManager telephonyManager; private final String userProvidedHomeCountry; - public LocationDetector( + LocationDetector( @NonNull TelephonyManager telephonyManager, @Nullable String userProvidedHomeCountry) { if (telephonyManager == null) { throw new NullPointerException("Provided TelephonyManager was null"); @@ -53,9 +51,7 @@ final class LocationDetector { * Returns what we believe to be the User's home country. This should resolve to * PROPERTY_ICC_OPERATOR_ISO_COUNTRY */ - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) - public Optional<String> getUpperCaseUserHomeCountry() { + Optional<String> getUpperCaseUserHomeCountry() { if (!TextUtils.isEmpty(userProvidedHomeCountry)) { LogUtil.i( @@ -73,9 +69,7 @@ final class LocationDetector { } /** Returns what we believe to be the User's current (roaming) country */ - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) - public Optional<String> getUpperCaseUserRoamingCountry() { + Optional<String> getUpperCaseUserRoamingCountry() { // TODO Increase coverage of location resolution?? String networkCountryIso = telephonyManager.getNetworkCountryIso(); if (networkCountryIso != null) { diff --git a/java/com/android/dialer/assisteddialing/NumberTransformer.java b/java/com/android/dialer/assisteddialing/NumberTransformer.java index 8bbad329d..eabf8564e 100644 --- a/java/com/android/dialer/assisteddialing/NumberTransformer.java +++ b/java/com/android/dialer/assisteddialing/NumberTransformer.java @@ -16,9 +16,6 @@ package com.android.dialer.assisteddialing; -import android.annotation.TargetApi; -import android.os.Build.VERSION_CODES; -import android.support.annotation.NonNull; import android.text.TextUtils; import com.android.dialer.common.LogUtil; import com.android.dialer.strictmode.StrictModeUtils; @@ -33,21 +30,9 @@ final class NumberTransformer { private final PhoneNumberUtil phoneNumberUtil; private final Constraints constraints; - public NumberTransformer(Constraints constraints) { + NumberTransformer(Constraints constraints) { this.constraints = constraints; - this.phoneNumberUtil = StrictModeUtils.bypass(() -> PhoneNumberUtil.getInstance()); - } - - /** - * Returns a boolean for callers to quickly determine whether or not the AssistedDialingMediator - * thinks an attempt at assisted dialing is likely to succeed. - */ - public boolean canDoAssistedDialingTransformation( - @NonNull String numberToCheck, - @NonNull String userHomeCountryCode, - @NonNull String userRoamingCountryCode) { - return constraints.meetsPreconditions( - numberToCheck, userHomeCountryCode, userRoamingCountryCode); + this.phoneNumberUtil = StrictModeUtils.bypass(PhoneNumberUtil::getInstance); } /** @@ -57,9 +42,7 @@ final class NumberTransformer { * transformation fails, we return an empty optional. The operation can be considered a success * when the Optional we return has a value set. */ - @SuppressWarnings("AndroidApiChecker") // Use of optional - @TargetApi(VERSION_CODES.N) - public Optional<TransformationInfo> doAssistedDialingTransformation( + Optional<TransformationInfo> doAssistedDialingTransformation( String numbertoTransform, String userHomeCountryCode, String userRoamingCountryCode) { if (!constraints.meetsPreconditions( diff --git a/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java b/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java index 965a16975..2da25287e 100644 --- a/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java +++ b/java/com/android/dialer/assisteddialing/ui/AssistedDialingSettingFragment.java @@ -15,10 +15,8 @@ */ package com.android.dialer.assisteddialing.ui; -import android.annotation.TargetApi; import android.icu.util.ULocale; import android.icu.util.ULocale.Builder; -import android.os.Build.VERSION_CODES; import android.os.Bundle; import android.preference.ListPreference; import android.preference.Preference; @@ -38,8 +36,6 @@ import java.util.List; import java.util.Optional; /** The setting for Assisted Dialing */ -@TargetApi(VERSION_CODES.N) -@SuppressWarnings("AndroidApiChecker") // Java 8 APIs public class AssistedDialingSettingFragment extends PreferenceFragment { private CountryCodeProvider countryCodeProvider; diff --git a/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java b/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java index 9e227553b..4d268f35b 100644 --- a/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java +++ b/java/com/android/dialer/speeddial/loader/SpeedDialUiItem.java @@ -263,14 +263,13 @@ public abstract class SpeedDialUiItem { return defaultChannel(); } - // Default channel is a video channel, so find it's corresponding voice channel - Channel prevChannel = channels().get(0); - for (int i = 1; i < channels().size(); i++) { - Channel currentChannel = channels().get(i); - if (currentChannel.equals(defaultChannel())) { - return prevChannel; + // Default channel is a video channel, so find it's corresponding voice channel by number since + // unreachable channels may not be in the list + for (Channel currentChannel : channels()) { + if (currentChannel.number().equals(defaultChannel().number()) + && currentChannel.technology() == Channel.VOICE) { + return currentChannel; } - prevChannel = currentChannel; } return null; } @@ -306,7 +305,8 @@ public abstract class SpeedDialUiItem { public abstract String photoUri(); /** - * Since a contact can have multiple phone numbers and each number can have multiple technologies, + * Returns a list of channels available. A Duo channel is included iff it is reachable. Since a + * contact can have multiple phone numbers and each number can have multiple technologies, * enumerate each one here so that the user can choose the correct one. Each channel here * represents a row in the {@link com.android.dialer.speeddial.DisambigDialog}. * @@ -330,7 +330,11 @@ public abstract class SpeedDialUiItem { public abstract ImmutableList<Channel> channels(); /** - * Will be null when the user hasn't chosen a default yet. + * Will be null when the user hasn't chosen a default yet. Note that a default channel may not be + * in the list returned by {@link #channels()}. This is because that list does not contain an + * unreachable Duo channel. When the default channel is a Duo channel and it becomes unreachable, + * it will remain as the default channel but disappear in the list returned by {@link + * #channels()}. * * @see com.android.dialer.speeddial.database.SpeedDialEntry#defaultChannel() */ diff --git a/java/com/android/dialer/theme/common/res/values/text_styles.xml b/java/com/android/dialer/theme/common/res/values/text_styles.xml index 0d1fd850e..df5dafa31 100644 --- a/java/com/android/dialer/theme/common/res/values/text_styles.xml +++ b/java/com/android/dialer/theme/common/res/values/text_styles.xml @@ -43,6 +43,12 @@ <item name="android:fontFamily">sans-serif-regular</item> </style> + <style name="Dialer.TextAppearance.Primary2" parent="TextAppearance.AppCompat"> + <item name="android:textColor">?android:attr/textColorPrimary</item> + <item name="android:textSize">16sp</item> + <item name="android:fontFamily">sans-serif-regular</item> + </style> + <style name="Dialer.TextAppearance.Secondary" parent="TextAppearance.AppCompat"> <item name="android:textColor">?android:attr/textColorSecondary</item> <item name="android:textSize">14sp</item> @@ -81,6 +87,11 @@ <item name="android:maxLines">1</item> </style> + <style name="Dialer.TextAppearance.Primary2.Ellipsize"> + <item name="android:ellipsize">end</item> + <item name="android:maxLines">1</item> + </style> + <style name="Dialer.TextAppearance.Secondary.Ellipsize"> <item name="android:ellipsize">end</item> <item name="android:maxLines">1</item> diff --git a/java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java b/java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java index 39a791d5f..89e45dca7 100644 --- a/java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java +++ b/java/com/android/dialer/voicemail/settings/RecordVoicemailGreetingActivity.java @@ -21,6 +21,7 @@ import android.os.Bundle; import android.support.annotation.IntDef; import android.view.View; import android.view.View.OnClickListener; +import android.widget.Button; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @@ -46,14 +47,21 @@ public class RecordVoicemailGreetingActivity extends Activity implements OnClick private int currentState; private int duration; private RecordButton recordButton; + private Button saveButton; + private Button redoButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_record_voicemail_greeting); + recordButton = findViewById(R.id.record_button); + saveButton = findViewById(R.id.save_button); + redoButton = findViewById(R.id.redo_button); + duration = 0; setState(RECORD_GREETING_INIT); + recordButton.setOnClickListener(this); } @Override @@ -83,18 +91,32 @@ public class RecordVoicemailGreetingActivity extends Activity implements OnClick case RECORD_GREETING_INIT: recordButton.setState(state); recordButton.setTracks(0, 0); + setSaveRedoButtonsEnabled(false); break; case RECORD_GREETING_PLAYING_BACK: case RECORD_GREETING_RECORDED: recordButton.setState(state); recordButton.setTracks(0, (float) duration / MAX_GREETING_DURATION_MS); + setSaveRedoButtonsEnabled(true); break; case RECORD_GREETING_RECORDING: recordButton.setState(state); recordButton.setTracks(0, 1f); + setSaveRedoButtonsEnabled(false); break; default: break; } } + + /** Enables/Disables save and redo buttons in the layout */ + private void setSaveRedoButtonsEnabled(boolean enabled) { + if (enabled) { + saveButton.setVisibility(View.VISIBLE); + redoButton.setVisibility(View.VISIBLE); + } else { + saveButton.setVisibility(View.GONE); + redoButton.setVisibility(View.GONE); + } + } } diff --git a/java/com/android/incallui/CallCardPresenter.java b/java/com/android/incallui/CallCardPresenter.java index b9e6744ea..dd1fc4f37 100644 --- a/java/com/android/incallui/CallCardPresenter.java +++ b/java/com/android/incallui/CallCardPresenter.java @@ -469,6 +469,8 @@ public class CallCardPresenter .setSessionModificationState(primary.getVideoTech().getSessionModificationState()) .setDisconnectCause(primary.getDisconnectCause()) .setConnectionLabel(getConnectionLabel()) + .setPrimaryColor( + InCallPresenter.getInstance().getThemeColorManager().getPrimaryColor()) .setSimSuggestionReason(getSimSuggestionReason()) .setConnectionIcon(getCallStateIcon()) .setGatewayNumber(getGatewayNumber()) 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 3a68bd4f6..b5f1e4bb3 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 @@ -118,9 +118,9 @@ android:layout_marginStart="24dp" android:layout_marginEnd="24dp"/> - <!-- TODO(a bug): textColorPrimary or textColorPrimaryInverse? --> <TextView android:id="@+id/incall_important_call_badge" + style="@style/Dialer.TextAppearance.SubHeader" android:layout_width="wrap_content" android:layout_height="32dp" android:layout_marginTop="4dp" @@ -129,7 +129,6 @@ android:gravity="center" android:maxLines="1" android:text="@string/call_incoming_important" - style="@style/Dialer.TextAppearance.SubHeader" android:textColor="?android:attr/colorBackground"/> <FrameLayout @@ -138,9 +137,7 @@ android:layout_height="wrap_content"/> <include - layout="@layout/device_number_row" - android:layout_width="match_parent" - android:layout_height="wrap_content"/> + layout="@layout/device_number_row"/> <FrameLayout android:id="@+id/incall_data_container" diff --git a/java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml b/java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml index 0bcba95f2..c0924468c 100644 --- a/java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml +++ b/java/com/android/incallui/calllocation/impl/res/drawable/bg_location_card.xml @@ -17,5 +17,5 @@ <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/ripple_material_light"> - <item android:drawable="@android:color/white"/> + <item android:drawable="?android:attr/colorBackgroundFloating"/> </ripple> diff --git a/java/com/android/incallui/calllocation/impl/res/values/styles.xml b/java/com/android/incallui/calllocation/impl/res/values/styles.xml deleted file mode 100644 index 45e9c98d4..000000000 --- a/java/com/android/incallui/calllocation/impl/res/values/styles.xml +++ /dev/null @@ -1,47 +0,0 @@ -<!-- - ~ 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 - --> -<resources> - - <style name="LocationAddressTitleTextStyle"> - <item name="android:textSize">14sp</item> - <item name="android:textColor">#dd000000</item> - <item name="android:fontFamily">sans-serif-medium</item> - </style> - - <style name="LocationAddressTextStyle"> - <item name="android:textSize">16sp</item> - <item name="android:textColor">#dd000000</item> - <item name="android:fontFamily">sans-serif</item> - </style> - - <style name="LocationLatLongTextStyle"> - <item name="android:textSize">14sp</item> - <item name="android:textColor">#88000000</item> - <item name="android:fontFamily">sans-serif</item> - </style> - - <style name="LocationLoadingTextStyle"> - <item name="android:textSize">14sp</item> - <item name="android:textColor">#dd000000</item> - <item name="android:fontFamily">sans-serif</item> - </style> - - <style name="LocationErrorTextStyle"> - <item name="android:textSize">14sp</item> - <item name="android:textColor">#dd000000</item> - <item name="android:fontFamily">sans-serif</item> - </style> -</resources> diff --git a/java/com/android/incallui/contactgrid/TopRow.java b/java/com/android/incallui/contactgrid/TopRow.java index 82a103a61..d242c3a14 100644 --- a/java/com/android/incallui/contactgrid/TopRow.java +++ b/java/com/android/incallui/contactgrid/TopRow.java @@ -21,8 +21,12 @@ import android.graphics.drawable.Drawable; import android.support.annotation.Nullable; import android.telephony.PhoneNumberUtils; 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; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.incallui.call.state.DialerCallState; @@ -141,8 +145,7 @@ public class TopRow { } else if (state.isWifi() && !TextUtils.isEmpty(state.connectionLabel())) { return state.connectionLabel(); } else if (isAccount(state)) { - return context.getString( - R.string.contact_grid_incoming_via_template, state.connectionLabel()); + return getColoredConnectionLabel(context, state); } else if (state.isWorkCall()) { return context.getString(R.string.contact_grid_incoming_work_call); } else { @@ -150,6 +153,22 @@ public class TopRow { } } + private static Spannable getColoredConnectionLabel(Context context, PrimaryCallState state) { + Assert.isNotNull(state.connectionLabel()); + String label = + context.getString(R.string.contact_grid_incoming_via_template, state.connectionLabel()); + Spannable spannable = new SpannableString(label); + + int start = label.indexOf(state.connectionLabel()); + int end = start + state.connectionLabel().length(); + spannable.setSpan( + new ForegroundColorSpan(state.primaryColor()), + start, + end, + Spanned.SPAN_INCLUSIVE_EXCLUSIVE); + return spannable; + } + private static CharSequence getLabelForIncomingVideo( Context context, @SessionModificationState int sessionModificationState, boolean isWifi) { if (sessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) { diff --git a/java/com/android/incallui/contactgrid/res/layout/device_number_row.xml b/java/com/android/incallui/contactgrid/res/layout/device_number_row.xml index 4f8bbad5a..f4792d8ed 100644 --- a/java/com/android/incallui/contactgrid/res/layout/device_number_row.xml +++ b/java/com/android/incallui/contactgrid/res/layout/device_number_row.xml @@ -19,21 +19,19 @@ android:id="@+id/contactgrid_location_divider" android:layout_width="match_parent" android:layout_height="1dp" - android:layout_gravity="bottom" - android:background="#D8D8D8" + android:background="@color/dialer_divider_line_color" android:visibility="gone"/> <TextView android:id="@+id/contactgrid_device_number_text" + style="@style/Dialer.TextAppearance.Primary2" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="16dp" android:padding="16dp" - android:background="@android:color/white" - android:elevation="2dp" + android:background="?android:attr/colorBackgroundFloating" + android:elevation="4dp" android:gravity="start" android:orientation="vertical" - android:textColor="#DD000000" - android:textSize="16sp" android:visibility="gone"/> </merge>
\ No newline at end of file diff --git a/java/com/android/incallui/contactgrid/res/values/strings.xml b/java/com/android/incallui/contactgrid/res/values/strings.xml index 7c0f5a679..9ee10c327 100644 --- a/java/com/android/incallui/contactgrid/res/values/strings.xml +++ b/java/com/android/incallui/contactgrid/res/values/strings.xml @@ -89,7 +89,7 @@ <string name="contact_grid_incoming_work_call">Work call from</string> <!-- Displayed in the answer call screen for incoming calls via a phone account. --> - <string name="contact_grid_incoming_via_template">Incoming via <xliff:g id="provider_name">%s</xliff:g></string> + <string name="contact_grid_incoming_via_template">Call via <xliff:g id="provider_name">%s</xliff:g> from</string> <!-- Displayed in the answer call screen for incoming spam calls. --> <string name="contact_grid_incoming_suspected_spam">Suspected spam caller</string> diff --git a/java/com/android/incallui/incall/protocol/PrimaryCallState.java b/java/com/android/incallui/incall/protocol/PrimaryCallState.java index 423f86875..e07caf1b6 100644 --- a/java/com/android/incallui/incall/protocol/PrimaryCallState.java +++ b/java/com/android/incallui/incall/protocol/PrimaryCallState.java @@ -17,6 +17,7 @@ package com.android.incallui.incall.protocol; import android.graphics.drawable.Drawable; +import android.support.annotation.ColorInt; import android.support.annotation.IntDef; import android.support.annotation.Nullable; import android.telecom.DisconnectCause; @@ -59,6 +60,8 @@ public abstract class PrimaryCallState { @Nullable public abstract String connectionLabel(); + public abstract @ColorInt int primaryColor(); + @Nullable public abstract SuggestionProvider.Reason simSuggestionReason(); @@ -127,7 +130,8 @@ public abstract class PrimaryCallState { .setIsBusinessNumber(false) .setSupportsCallOnHold(true) .setSwapToSecondaryButtonState(ButtonState.NOT_SUPPORT) - .setIsAssistedDialed(false); + .setIsAssistedDialed(false) + .setPrimaryColor(0); } /** Builder class for primary call state info. */ @@ -148,6 +152,8 @@ public abstract class PrimaryCallState { public abstract Builder setConnectionIcon(Drawable connectionIcon); + public abstract Builder setPrimaryColor(@ColorInt int color); + public abstract Builder setGatewayNumber(String gatewayNumber); public abstract Builder setCallSubject(String callSubject); |