diff options
author | Nancy Chen <nancychen@google.com> | 2014-10-24 16:00:55 -0700 |
---|---|---|
committer | Nancy Chen <nancychen@google.com> | 2014-10-29 22:42:49 +0000 |
commit | 991acb8d1b00d68e2be118cae5e9396d1127d5bb (patch) | |
tree | 831436338bb29e872f0d7eaf66024f411aa53f35 /InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java | |
parent | e05642ba64551c6fc96dee79e65d223f9326a749 (diff) |
In Multi-SIM cases use the color of the SIM icon for InCallUI.
Set the color of the InCallUI to be the color of the SIM icon. In the
single SIM case, the background should be the default background.
* Added id to all call button backgrounds for color change
* Initialize color onResume for InCallActivity
* CallCardFragment/CallButtonFragment/DialpadFragment update their colors
* Added InCallUIMaterialColorMapUtils to extract color
Bug: 17971273
Change-Id: Ia247b153b57ffc8a5277d521c433ab0be6696cf6
Diffstat (limited to 'InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java')
-rw-r--r-- | InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java b/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java new file mode 100644 index 000000000..efab45f21 --- /dev/null +++ b/InCallUI/src/com/android/incallui/InCallUIMaterialColorMapUtils.java @@ -0,0 +1,52 @@ +package com.android.incallui; + +import android.content.res.Resources; +import android.content.res.TypedArray; +import android.telecom.PhoneAccount; + +import com.android.contacts.common.util.MaterialColorMapUtils; +import com.android.contacts.common.util.MaterialColorMapUtils.MaterialPalette; + +public class InCallUIMaterialColorMapUtils extends MaterialColorMapUtils { + private final TypedArray sPrimaryColors; + private final TypedArray sSecondaryColors; + private final Resources mResources; + + public InCallUIMaterialColorMapUtils(Resources resources) { + super(resources); + sPrimaryColors = resources.obtainTypedArray( + com.android.incallui.R.array.background_colors); + sSecondaryColors = resources.obtainTypedArray( + com.android.contacts.common.R.array.background_colors_dark); + mResources = resources; + } + + /** + * Currently the InCallUI color will only vary by SIM color which is a list of colors + * defined in the background_colors array, so first search the list for the matching color and + * fall back to the closest matching color if an exact match does not exist. + */ + @Override + public MaterialPalette calculatePrimaryAndSecondaryColor(int color) { + if (color == PhoneAccount.NO_COLOR) { + return getDefaultPrimaryAndSecondaryColors(mResources); + } + + for (int i = 0; i < sPrimaryColors.length(); i++) { + if (sPrimaryColors.getColor(i, 0) == color) { + return new MaterialPalette( + sPrimaryColors.getColor(i, 0), + sSecondaryColors.getColor(i, 0)); + } + } + + // The color isn't in the list, so use the superclass to find an approximate color. + return super.calculatePrimaryAndSecondaryColor(color); + } + + public static MaterialPalette getDefaultPrimaryAndSecondaryColors(Resources resources) { + final int primaryColor = resources.getColor(R.color.dialer_theme_color); + final int secondaryColor = resources.getColor(R.color.dialer_theme_color_dark); + return new MaterialPalette(primaryColor, secondaryColor); + } +}
\ No newline at end of file |