<!--
  ~ Copyright (C) 2012 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>

    <!-- Secondary text color in the Phone app -->
    <color name="dialtacts_secondary_text_color">#888888</color>
    <color name="smartdial_confidence_drawable_color">#39caff</color>
    <color name="smartdial_highlighted_text_color">#ffffff</color>

    <!-- Color of the text describing an unconsumed missed call. -->
    <color name="call_log_missed_call_highlight_color">#FF0000</color>

    <!-- Color of the text describing an unconsumed voicemail. -->
    <color name="call_log_voicemail_highlight_color">#33b5e5</color>

    <!-- Colour background for the voicemail playback ui. -->
    <color name="voicemail_playback_ui_background">@android:color/black</color>

    <!-- Colour of voicemail progress bar to the right of position indicator. -->
    <color name="voicemail_playback_seek_bar_yet_to_play">#44ffffff</color>

    <!-- Colour of voicemail progress bar to the left of position indicator. -->
    <color name="voicemail_playback_seek_bar_already_played">#ccffffff</color>

    <!-- Standard color for selected items. -->
    <color name="item_selected">#660099cc</color>
</resources>
