<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2008, 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>
    <color name="recording_time_elapsed_text">#FFFFFFFF</color>
    <color name="recording_time_remaining_text">#FFFF0033</color>
    <color name="on_viewfinder_label_background_color">#77333333</color>
    <color name="review_control_pressed_color">#FF33B5E5</color>
    <color name="review_control_pressed_fan_color">#3F33B5E5</color>
    <color name="review_background">#FF000000</color>
    <color name="icon_disabled_color">#DD777777</color>
    <color name="time_lapse_arc">#FFC5C5C5</color>
    <color name="indicator_background">#40000000</color>
    <color name="popup_title_color">#ff33b5e5</color>
    <color name="popup_background">#ff282828</color>
    <color name="pano_progress_empty">#FF2E2E2E</color>
    <color name="pano_progress_done">#FF33525E</color>
    <color name="pano_progress_indication">#FF0099CC</color>
    <color name="pano_progress_indication_fast">#FFFF2222</color>
    <color name="mode_selection_border">#33B5E5</color>
    <color name="holo_blue_light">#ff33b5e5</color>
    <color name="bright_foreground_disabled_holo_dark">#ff4c4c4c</color>
    <color name="bright_foreground_holo_dark">#fff3f3f3</color>
    <color name="face_detect_start">#80ffffff</color>
    <color name="face_detect_success">#8050d060</color>
    <color name="face_detect_fail">#80d05060</color>
</resources>
