<?xml version="1.0" encoding="utf-8"?>
<!--
/**
 * Copyright (C) 2014 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>

    <!-- Main text -->
    <dimen name="main_text_padding_left_right">40dp</dimen>
    <dimen name="main_text_padding_bottom">24dp</dimen>
    <dimen name="main_text_padding_top">0dp</dimen>
    <dimen name="main_text_padding_between_text">24dp</dimen>
    <dimen name="main_text_size">16sp</dimen>

    <!-- Dialog Fragment text -->
    <dimen name="dialog_text_padding_left_right">24dp</dimen>
    <dimen name="dialog_text_padding_bottom">8dp</dimen>
    <dimen name="dialog_text_padding_top">24dp</dimen>
    <dimen name="dialog_fragment_width">336dp</dimen>
    <dimen name="dialog_fragment_margin_top_bottom">16dp</dimen>

    <!-- Buttons -->
    <dimen name="button_corner_radius">2dp</dimen>
    <dimen name="car_button_height">56dp</dimen>
    <dimen name="button_text_size">14dp</dimen>

    <dimen name="row_height">72dp</dimen>
    <dimen name="row_padding_top">0dp</dimen>
    <dimen name="button_padding_top">32dp</dimen>

    <dimen name="checkbox_padding_left">24dp</dimen>
    <dimen name="checkbox_margin_top">24dp</dimen>

    <!-- MDM app info -->
    <dimen name="mdm_app_name_padding_start">16dp</dimen>
    <dimen name="icon_width_height">56dp</dimen>

    <dimen name="logo_padding_bottom">24dp</dimen>
    <dimen name="logo_padding_left_right">40dp</dimen>
    <dimen name="max_logo_width">140dp</dimen>
    <dimen name="max_logo_height">86dp</dimen>

    <!--== Provisioning2 ==-->

    <!-- General -->
    <dimen name="spacer_0">0dp</dimen>
    <dimen name="spacer_8">8dp</dimen>
    <dimen name="spacer_12">12dp</dimen>
    <dimen name="spacer_16">16dp</dimen>
    <dimen name="spacer_20">20dp</dimen>
    <dimen name="spacer_24">24dp</dimen>
    <dimen name="spacer_32">32dp</dimen>
    <dimen name="spacer_36">36dp</dimen>
    <dimen name="spacer_40">40dp</dimen>
    <dimen name="spacer_60">60dp</dimen>
    <dimen name="spacer_64">64dp</dimen>
    <dimen name="spacer_112">112dp</dimen>

    <!-- Pre-provisioning -->
    <dimen name="car_primary_icon_size">44dp</dimen>

    <dimen name="info_text_title_size">24sp</dimen>

    <dimen name="intro_button_width">208dp</dimen>
    <dimen name="intro_button_height">36dp</dimen>
    <dimen name="case_icon_size">32dp</dimen>

    <dimen name="intro_margin">@dimen/spacer_24</dimen>
    <dimen name="intro_animation_min_height">240dp</dimen>

    <dimen name="terms_screen_margin">@dimen/spacer_0</dimen>
    <dimen name="terms_screen_padding">@dimen/spacer_0</dimen>

    <dimen name="car_avatar_icon_size">56dp</dimen>

    <!-- Provisioning -->
    <dimen name="animation_height">162dp</dimen>
</resources>
